]>
jfr.im git - irc/gameservirc.git/blob - gameserv/news.cpp
10 list
<string
> todaysnews
;
11 void addNews(list
<string
> &news
, const char *fmt
, ...);
12 void clearNews(list
<string
> &news
) {news
.clear();};
13 void showNews(char *nick
, list
<string
> &news
);
14 void saveNews(char *filename
, list
<string
> &news
);
15 void loadNews(char *filename
, list
<string
> &news
);
17 void addNews(list
<string
> &news
, const char *fmt
, ...)
24 input
= new char[1024];
25 memset(input
, 0, 1024);
35 case 'd': sprintf(input
, "%s%d", input
, va_arg(args
, int)); break;
36 case 's': sprintf(input
, "%s%s", input
, va_arg(args
, char *)); break;
37 case 'S': sprintf(input
, "%s%s", input
, s_GameServ
); break;
40 sprintf(input
, "%s%ld", input
, va_arg(args
, long int)); break;
45 sprintf(input
, "%s%c", input
, *t
);
50 log("New News Item: %s", input
);
53 notice(s_GameServ
, c_Forest
, "News Flash: %s", input
);
55 nstring
= new string(input
);
56 news
.push_back(*nstring
);
64 void showNews(char *nick
, list
<string
> &news
)
68 list
<string
>::iterator iter
;
70 notice(s_GameServ
, nick
, "The Daily Happenings: ");
71 for (iter
=news
.begin(); iter
!= news
.end(); iter
++)
73 notice(s_GameServ
, nick
, "%s", (*iter
).c_str());
75 notice(s_GameServ
, nick
, "End of News");
79 void saveNews(char *filename
, list
<string
> &news
)
82 outfile
.open(filename
);
86 log("Error opening %s", filename
);
90 list
<string
>::iterator iter
;
91 for (iter
=news
.begin(); iter
!= news
.end(); iter
++)
93 outfile
<< (*iter
).c_str() << endl
;
98 void loadNews(char *filename
, list
<string
> &news
)
100 // First clear the old news out
103 // Now load from the file
105 infile
.open(filename
);
108 log("Error opening %s", filename
);
114 buf
= new char [1024];
116 while (infile
.getline(buf
, 1024, '\n'))
118 if (buf
[0] == '\0' || buf
[0] == '\n')
123 str
= new string(buf
);
124 news
.push_back(*str
);
131 void do_news(char *u
)
133 showNews(u
, todaysnews
);