]>
jfr.im git - irc/gameservirc.git/blob - gameserv/news.cpp
13 list
<string
> todaysnews
;
14 void addNews(list
<string
> &news
, const char *fmt
, ...);
15 void clearNews(list
<string
> &news
) {news
.clear();};
16 void showNews(char *nick
, list
<string
> &news
);
17 void saveNews(char *filename
, list
<string
> &news
);
18 void loadNews(char *filename
, list
<string
> &news
);
20 void addNews(list
<string
> &news
, const char *fmt
, ...)
27 input
= new char[1024];
28 memset(input
, 0, 1024);
38 case 'd': sprintf(input
, "%s%d", input
, va_arg(args
, int)); break;
39 case 's': sprintf(input
, "%s%s", input
, va_arg(args
, char *)); break;
40 case 'S': sprintf(input
, "%s%s", input
, s_GameServ
); break;
43 sprintf(input
, "%s%ld", input
, va_arg(args
, long int)); break;
48 sprintf(input
, "%s%c", input
, *t
);
53 log("New News Item: %s", input
);
56 notice(s_GameServ
, c_Forest
, "News Flash: %s", input
);
58 nstring
= new string(input
);
59 news
.push_back(*nstring
);
67 void showNews(char *nick
, list
<string
> &news
)
71 list
<string
>::iterator iter
;
73 notice(s_GameServ
, nick
, "The Daily Happenings: ");
74 for (iter
=news
.begin(); iter
!= news
.end(); iter
++)
76 notice(s_GameServ
, nick
, "%s", (*iter
).c_str());
78 notice(s_GameServ
, nick
, "End of News");
82 void saveNews(char *filename
, list
<string
> &news
)
85 outfile
.open(filename
);
89 log("Error opening %s", filename
);
93 list
<string
>::iterator iter
;
94 for (iter
=news
.begin(); iter
!= news
.end(); iter
++)
96 outfile
<< (*iter
).c_str() << endl
;
101 void loadNews(char *filename
, list
<string
> &news
)
103 // First clear the old news out
106 // Now load from the file
108 infile
.open(filename
);
111 log("Error opening %s", filename
);
117 buf
= new char [1024];
119 while (infile
.getline(buf
, 1024, '\n'))
121 if (buf
[0] == '\0' || buf
[0] == '\n')
126 str
= new string(buf
);
127 news
.push_back(*str
);
134 void do_news(char *u
)
136 showNews(u
, todaysnews
);