]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/news.cpp
Changed version to 1.2.4+devel
[irc/gameservirc.git] / gameserv / news.cpp
index 371ce81f407020fdd179cfdfe3f5ad584e6bac3b..57b7c561e1e3417edad4b206d089268f414c951b 100644 (file)
@@ -1,11 +1,13 @@
 #include "extern.h"
 #include <fstream>
+#include <stdio.h>
 
 using std::ofstream;
 using std::ifstream;
 
 List<myString> todaysnews;
 void addNews(List<myString> &news, const char *fmt, ...);
+void clearNews(List<myString> &news) {news.deleteNodes();};
 void showNews(char *nick, List<myString> &news);
 void saveNews(char *filename, List<myString> &news);
 void loadNews(char *filename, List<myString> &news);
@@ -18,6 +20,7 @@ void addNews(List<myString> &news, const char *fmt, ...)
     va_list args;
     char *input;
     input = new char[1024];
+    memset(input, 0, 1024);
     const char *t = fmt;
 
     va_start(args, fmt);
@@ -44,6 +47,8 @@ void addNews(List<myString> &news, const char *fmt, ...)
     #ifdef DEBUGMODE
         log("New News Item: %s", input);
     #endif
+
+    notice(s_GameServ, c_Forest, "News Flash: %s", input);
     myString *nstring;
     nstring = new myString(input);
     news.insertAtBack(nstring);
@@ -73,11 +78,9 @@ void showNews(char *nick, List<myString> &news)
 
 void saveNews(char *filename, List<myString> &news)
 {
-    if (news.isEmpty())
-       return;
-
     ofstream outfile;
     outfile.open(filename);
+
     if (outfile.fail())
     {
        log("Error opening %s", filename);
@@ -96,9 +99,6 @@ void saveNews(char *filename, List<myString> &news)
 
 void loadNews(char *filename, List<myString> &news)
 {
-    if (news.isEmpty())
-       return;
-
     // First clear the old news out
     ListNode<myString> *it, *temp;
     it = news.First();
@@ -125,6 +125,11 @@ void loadNews(char *filename, List<myString> &news)
 
     while (infile.getline(buf, 1024, '\n'))
     {
+       if (buf[0] == '\0' || buf[0] == '\n')
+       {
+           delete [] buf;
+           return;
+       }
        string = new myString(buf);
        news.insertAtBack(string);
        delete string;
@@ -132,3 +137,8 @@ void loadNews(char *filename, List<myString> &news)
 
     delete [] buf;
 }
+
+void do_news(char *u)
+{
+    showNews(u, todaysnews);
+}