diff ui.c @ 541:44f67ec5e945

Improve logging facilities. Private chats in query windows are now logged separately. A log file directory can be set in configuration. Room log files are always of format room_%d.ext. Log file extension can be set, default is ".log".
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 11 Nov 2012 18:32:42 +0200
parents 658c188101a6
children afb4caf32bdf
line wrap: on
line diff
--- a/ui.c	Sun Nov 11 07:33:31 2012 +0200
+++ b/ui.c	Sun Nov 11 18:32:42 2012 +0200
@@ -118,6 +118,7 @@
 
     memset(chatWindows, 0, sizeof(chatWindows));
     chatWindows[0] = nn_window_new(NULL);
+    nn_log_open(chatWindows[0]);
     currWin = chatWindows[0];
     
     return TRUE;
@@ -166,23 +167,26 @@
 
 BOOL nnwin_open(const char *name, BOOL curwin)
 {
+    nn_window_t *res;
     int i;
-    nn_window_t *res;
+
     if (name == NULL)
         return FALSE;
 
     if ((res = nn_window_new(name)) == NULL)
         return FALSE;
 
+    nn_log_open(res);
+
     for (i = 1; i < SET_MAX_WINDOWS; i++)
-        if (chatWindows[i] == NULL)
-        {
-            res->num = i;
-            chatWindows[i] = res;
-            if (curwin)
-                currWin = res;
-            return TRUE;
-        }
+    if (chatWindows[i] == NULL)
+    {
+        res->num = i;
+        chatWindows[i] = res;
+        if (curwin)
+            currWin = res;
+        return TRUE;
+    }
 
     return FALSE;
 }
@@ -194,13 +198,12 @@
     if (win == NULL) return;
 
     for (i = 1; i < SET_MAX_WINDOWS; i++)
+    if (chatWindows[i] == win)
     {
-        if (chatWindows[i] == win)
-        {
-            chatWindows[i] = NULL;
-            nn_window_free(win);
-            return;
-        }
+        chatWindows[i] = NULL;
+        nn_log_close(win);
+        nn_window_free(win);
+        return;
     }
 }