]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/news.cpp
Removed myString class and replaced with use of the STL string class...
[irc/gameservirc.git] / gameserv / news.cpp
index e558528ebe20c22de257a61c9b77938177f7b5c2..ab51e6d6f95323ca4eb6880c32e567929b6c8ee9 100644 (file)
@@ -1,22 +1,25 @@
 #include "extern.h"
 #include <fstream>
+#include <string>
+#include <stdio.h>
 
 using std::ofstream;
 using std::ifstream;
 
-List<myString> todaysnews;
-void addNews(List<myString> &news, const char *fmt, ...);
-void showNews(char *nick, List<myString> &news);
-void saveNews(char *filename, List<myString> &news);
-void loadNews(char *filename, List<myString> &news);
+using namespace std;
 
-void addNews(List<myString> &news, const char *fmt, ...)
+List<string> todaysnews;
+void addNews(List<string> &news, const char *fmt, ...);
+void clearNews(List<string> &news) {news.deleteNodes();};
+void showNews(char *nick, List<string> &news);
+void saveNews(char *filename, List<string> &news);
+void loadNews(char *filename, List<string> &news);
+
+void addNews(List<string> &news, const char *fmt, ...)
 {
     if (fmt[0] == '\0')
         return;
 
-    log("Adding news item: fmt = %s", fmt);
-
     va_list args;
     char *input;
     input = new char[1024];
@@ -48,8 +51,9 @@ void addNews(List<myString> &news, const char *fmt, ...)
         log("New News Item: %s", input);
     #endif
 
-    myString *nstring;
-    nstring = new myString(input);
+    notice(s_GameServ, c_Forest, "News Flash: %s", input);
+    string *nstring;
+    nstring = new string(input);
     news.insertAtBack(nstring);
 
     delete [] input;
@@ -58,53 +62,48 @@ void addNews(List<myString> &news, const char *fmt, ...)
 va_end(args);
 }
 
-void showNews(char *nick, List<myString> &news)
+void showNews(char *nick, List<string> &news)
 {
     if (!news.isEmpty())
     {
-       ListNode<myString> *it;
+       ListNode<string> *it;
        it = news.First();
 
        notice(s_GameServ, nick, "The Daily Happenings: ");
        while (it)
        {
-           notice(s_GameServ, nick, "%s", it->getData()->getString());
+           notice(s_GameServ, nick, "%s", it->getData()->c_str());
            it = it->Next();
        }
        notice(s_GameServ, nick, "End of News");
     }
 }
 
-void saveNews(char *filename, List<myString> &news)
+void saveNews(char *filename, List<string> &news)
 {
-    if (news.isEmpty())
-       return;
-
     ofstream outfile;
     outfile.open(filename);
+
     if (outfile.fail())
     {
        log("Error opening %s", filename);
        return;
     }
 
-    ListNode<myString> *it;
+    ListNode<string> *it;
     it = news.First();
     while (it)
     {
-       outfile << it->getData()->getString() << endl;
+       outfile << it->getData()->c_str() << endl;
        it = it->Next();
     }
     outfile.close();
 }
 
-void loadNews(char *filename, List<myString> &news)
+void loadNews(char *filename, List<string> &news)
 {
-    if (news.isEmpty())
-       return;
-
     // First clear the old news out
-    ListNode<myString> *it, *temp;
+    ListNode<string> *it, *temp;
     it = news.First();
 
     while (it)
@@ -124,15 +123,25 @@ void loadNews(char *filename, List<myString> &news)
     }
 
     char *buf;
-    myString *string;
+    string *str;
     buf = new char [1024];
 
     while (infile.getline(buf, 1024, '\n'))
     {
-       string = new myString(buf);
-       news.insertAtBack(string);
-       delete string;
+       if (buf[0] == '\0' || buf[0] == '\n')
+       {
+           delete [] buf;
+           return;
+       }
+       str = new string(buf);
+       news.insertAtBack(str);
+       delete str;
     }
 
     delete [] buf;
 }
+
+void do_news(char *u)
+{
+    showNews(u, todaysnews);
+}