]>
jfr.im git - irc/gameservirc.git/blob - gameserv/news.cpp
7 List
<myString
> todaysnews
;
8 void addNews(List
<myString
> &news
, const char *fmt
, ...);
9 void clearNews(List
<myString
> &news
) {news
.deleteNodes();};
10 void showNews(char *nick
, List
<myString
> &news
);
11 void saveNews(char *filename
, List
<myString
> &news
);
12 void loadNews(char *filename
, List
<myString
> &news
);
14 void addNews(List
<myString
> &news
, const char *fmt
, ...)
21 input
= new char[1024];
22 memset(input
, 0, 1024);
32 case 'd': sprintf(input
, "%s%d", input
, va_arg(args
, int)); break;
33 case 's': sprintf(input
, "%s%s", input
, va_arg(args
, char *)); break;
34 case 'S': sprintf(input
, "%s%s", input
, s_GameServ
); break;
37 sprintf(input
, "%s%ld", input
, va_arg(args
, long int)); break;
42 sprintf(input
, "%s%c", input
, *t
);
47 log("New News Item: %s", input
);
51 nstring
= new myString(input
);
52 news
.insertAtBack(nstring
);
60 void showNews(char *nick
, List
<myString
> &news
)
64 ListNode
<myString
> *it
;
67 notice(s_GameServ
, nick
, "The Daily Happenings: ");
70 notice(s_GameServ
, nick
, "%s", it
->getData()->getString());
73 notice(s_GameServ
, nick
, "End of News");
77 void saveNews(char *filename
, List
<myString
> &news
)
80 outfile
.open(filename
);
84 log("Error opening %s", filename
);
88 ListNode
<myString
> *it
;
92 outfile
<< it
->getData()->getString() << endl
;
98 void loadNews(char *filename
, List
<myString
> &news
)
100 // First clear the old news out
101 ListNode
<myString
> *it
, *temp
;
111 // Now load from the file
113 infile
.open(filename
);
116 log("Error opening %s", filename
);
122 buf
= new char [1024];
124 while (infile
.getline(buf
, 1024, '\n'))
126 if (buf
[0] == '\0' || buf
[0] == '\n')
131 string
= new myString(buf
);
132 news
.insertAtBack(string
);
139 void do_news(char *u
)
141 showNews(u
, todaysnews
);