ayttm-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ayttm-commits] CVS: ayttm/src chat_room.c,1.48,1.49 chat_window.c,1.53


From: Colin Leroy <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/src chat_room.c,1.48,1.49 chat_window.c,1.53,1.54 log_window.c,1.19,1.20 log_window.h,1.7,1.8
Date: Tue, 04 Mar 2003 11:47:53 -0500

Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv24786/src

Modified Files:
        chat_room.c chat_window.c log_window.c log_window.h 
Log Message:
Chatroom logging :)


Index: chat_room.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/chat_room.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- chat_room.c 4 Mar 2003 15:48:11 -0000       1.48
+++ chat_room.c 4 Mar 2003 16:47:51 -0000       1.49
@@ -22,6 +22,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <gdk/gdkkeysyms.h>
+#include <time.h>
 
 #include "globals.h"
 #include "gtk/gtk_eb_html.h"
@@ -580,6 +581,34 @@
        return find_chat_room_buddy(room, user) != NULL;
 }
 
+static void eb_chat_room_private_log_reference(eb_chat_room *room, char 
*handle)
+{
+       struct contact *con = find_contact_by_handle(handle);
+       char buff[1024];
+       log_info *li = g_new0(log_info, 1);
+       
+       if (con == NULL)
+               return;
+       
+       if (!strcmp(handle, room->local_user->handle))
+               return;
+       
+       make_safe_filename(buff, con->nick, con->group->name);
+       li->log_started = 0;
+       li->fp = fopen(buff, "a");
+       li->filename = NULL; /* don't care */
+       
+       memset(&buff, 0, 1024);
+       
+       g_snprintf(buff, 1024, "You had a <a href=\"log://%s\">group chat with 
%s</a>.\n",
+                       room->loginfo->filename,
+                       handle);
+       
+       eb_log_message(li, "", buff);
+       eb_log_close(li);
+       
+}
+
 void eb_chat_room_buddy_arrive( eb_chat_room * room, gchar * alias, gchar * 
handle )
 {
        eb_chat_room_buddy * ecrb = NULL;
@@ -596,6 +625,9 @@
 
         buf = g_strdup_printf(_("<i>%s (%s) has joined the chat</i>"), alias, 
handle);
         eb_chat_room_show_3rdperson(room, buf);
+       
+       eb_chat_room_private_log_reference(room, handle);
+       
        g_free(buf);
 
        room->fellows = l_list_append(room->fellows, ecrb);
@@ -667,6 +699,7 @@
 {
        gtk_eb_html_add(EXT_GTK_TEXT(chat_room->chat), message,0,0,0 );
        gtk_eb_html_add(EXT_GTK_TEXT(chat_room->chat), "\n",0,0,0 );
+       eb_log_message(chat_room->loginfo, "", message);
 }
 
 void eb_chat_room_show_message( eb_chat_room * chat_room,
@@ -746,6 +779,8 @@
                iGetLocalPref("do_ignore_back"), 
iGetLocalPref("do_ignore_fore"), iGetLocalPref("do_ignore_font"));
        gtk_eb_html_add(EXT_GTK_TEXT(chat_room->chat), "\n",0,0,0 );
        
+       eb_log_message(chat_room->loginfo, buff, link_message);
+       
        g_free(link_message);
        
        if(chat_room->sound_enabled 
@@ -794,9 +829,11 @@
        GtkWidget * separator;
        GtkWidget * entry_box;
        gboolean    enableSoundButton = FALSE;
+       time_t      mytime = time(NULL);
        char      * room_title = NULL;
-       gchar buff[2048];
-
+       char        buff[2048];
+       char        tmpnam[128];
+       
        /*if we are already here, just leave*/
        if(chat_room->connected)
                return;
@@ -1074,6 +1111,14 @@
        RUN_SERVICE(chat_room->local_user)->join_chat_room(chat_room);
        gtk_widget_grab_focus(chat_room->entry);
 
+       g_snprintf(tmpnam, 128, "cr_log%lu%d", mytime, total_rooms);
+       make_safe_filename(buff, tmpnam, NULL);
+
+       chat_room->loginfo = g_new0(log_info, 1);
+       chat_room->loginfo->filename = strdup(buff);
+       chat_room->loginfo->log_started = 0;
+       if ((chat_room->loginfo->fp = fopen(buff, "a")) == NULL)
+               perror(buff);
 }
 
 static LList * get_group_contacts(gchar *group, eb_chat_room * room)

Index: chat_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/chat_window.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- chat_window.c       4 Mar 2003 15:48:11 -0000       1.53
+++ chat_window.c       4 Mar 2003 16:47:51 -0000       1.54
@@ -2090,6 +2090,8 @@
        make_safe_filename(buff, remote->nick, remote->group->name);
 
        cw->loginfo = g_new0(log_info, 1);
+       cw->loginfo->filename = strdup(buff);
+       cw->loginfo->log_started = 0;
        if ((cw->loginfo->fp = fopen(buff, "a")) == NULL)
                perror(buff);
 

Index: log_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/log_window.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- log_window.c        4 Mar 2003 15:48:11 -0000       1.19
+++ log_window.c        4 Mar 2003 16:47:51 -0000       1.20
@@ -520,7 +520,7 @@
                fflush(loginfo->fp);
                loginfo->log_started = 1;
        }
-       fprintf(loginfo->fp, "%s %s %s %s\n",
+       fprintf(loginfo->fp, "%s%s %s%s\n",
          (stripHTML ? "" : "<P>"), my_name, my_message, (stripHTML ? "" : 
"</P>"));
        fflush(loginfo->fp);
 
@@ -547,5 +547,10 @@
        if (loginfo && loginfo->fp != NULL ) {
                fclose(loginfo->fp);
                loginfo->fp = NULL;
+       }
+       
+       if (loginfo && loginfo->filename != NULL ) {
+               free(loginfo->filename);
+               loginfo->filename = NULL;
        }
 }

Index: log_window.h
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/log_window.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- log_window.h        4 Mar 2003 15:48:11 -0000       1.7
+++ log_window.h        4 Mar 2003 16:47:51 -0000       1.8
@@ -52,6 +52,7 @@
 typedef struct _log_info
 {
   FILE *fp;
+  char *filename;
   int log_started;
 } log_info;
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]