ayttm-commits
[Top][All Lists]
Advanced

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

[Ayttm-commits] CVS: ayttm/src chat_window.c,1.48,1.49 main.c,1.21,1.22


From: Philip S Tellis <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/src chat_window.c,1.48,1.49 main.c,1.21,1.22 util.c,1.45,1.46 util.h,1.24,1.25
Date: Tue, 11 Feb 2003 01:22:04 -0500

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

Modified Files:
        chat_window.c main.c util.c util.h 
Log Message:
added add_dummy_contact to chat with buddies not on your contact list

Index: chat_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/chat_window.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- chat_window.c       7 Feb 2003 09:00:16 -0000       1.48
+++ chat_window.c       11 Feb 2003 06:21:59 -0000      1.49
@@ -1134,8 +1134,21 @@
 
        /* do we need to ignore this user? If so, do it BEFORE filters so they 
can't DoS us */
 
-       if(!strcasecmp(remote_contact->group->name, _("Ignore") ))
+       {
+       char * group_name;
+       if(remote_contact && remote_contact->group && 
remote_contact->group->name)
+               group_name = remote_contact->group->name;
+       else
+               group_name = _("Unknown");
+
+       /* don't translate this string */
+       if(!strncmp(group_name, "__Ayttm_Dummy_Group__", 
strlen("__Ayttm_Dummy_Group__")))
+               group_name = _("Unknown");
+
+       if ( (iGetLocalPref("do_ignore_unknown") && !strcmp(_("Unknown"), 
group_name)) || 
+                       !strcasecmp(group_name, _("Ignore")) )
                return;
+       }
 
        /* Inbound filters here - Meredydd */
 

Index: main.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/main.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- main.c      3 Feb 2003 11:11:26 -0000       1.21
+++ main.c      11 Feb 2003 06:21:59 -0000      1.22
@@ -187,6 +187,7 @@
        pid_t pid;
        const char * cmd = argv [0];
 
+       srand(time(NULL));
        setlocale(LC_ALL, "");
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
@@ -433,6 +434,8 @@
 
         init_smileys();
        gtk_main();
+
+       clean_up_dummies();
 
        unload_modules(); // Need to unload what we load
        sound_shutdown();

Index: util.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/util.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- util.c      9 Feb 2003 09:58:04 -0000       1.45
+++ util.c      11 Feb 2003 06:21:59 -0000      1.46
@@ -1041,7 +1041,7 @@
        user->group = grp;
 }
 
-struct contact * add_new_contact( char * group, char * con, int type )
+static struct contact * create_contact( char * con, int type )
 {
        struct contact * c = calloc(1, sizeof(struct contact));
        if (con != NULL) 
@@ -1049,9 +1049,56 @@
 
        c->default_chatb = c->default_filetransb = type;
 
+}
+
+struct contact * add_new_contact( char * group, char * con, int type )
+{
+       struct contact * c = create_contact(con, type);
+
        add_contact(group, c);
 
        return c;
+}
+
+static grouplist * dummy_group = NULL;
+/* used to chat with someone without adding him to your buddy list */
+struct contact * add_dummy_contact(char * con, eb_account * ea)
+{
+       struct contact * c = create_contact(con, ea->service_id);
+
+       c->accounts = l_list_prepend(c->accounts, ea);
+       ea->account_contact = c;
+       ea->icon_handler = ea->status_handler = -1;
+
+       if(!dummy_group) {
+               dummy_group = calloc(1, sizeof(grouplist));
+               /* don't translate this string */
+               snprintf(dummy_group->name, sizeof(dummy_group->name),
+                               "__Ayttm_Dummy_Group__%d__", rand());
+       }
+
+       dummy_group->members = l_list_prepend(dummy_group->members, c);
+       c->group = dummy_group;
+       return c;
+}
+
+void clean_up_dummies()
+{
+       LList *l, *l2;
+
+       for(l = dummy_group->members; l; l=l->next) {
+               struct contact * c = l->data;
+               for(l2 = c->accounts; l2; l2=l2->next) {
+                       eb_account * ea = l2->data;
+                       if(CAN(ea, free_account_data))
+                               RUN_SERVICE(ea)->free_account_data(ea);
+                       free(ea);
+               }
+               l_list_free(c->accounts);
+               free(c);
+       }
+       l_list_free(dummy_group->members);
+       free(dummy_group);
 }
 
 void add_unknown_with_name( eb_account * ea, char * name )

Index: util.h
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/util.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- util.h      9 Feb 2003 09:58:04 -0000       1.24
+++ util.h      11 Feb 2003 06:21:59 -0000      1.25
@@ -109,6 +109,8 @@
 void add_group( char * name );
 void rename_group( grouplist *g, char * new_name );
 struct contact * add_new_contact( char * group, char * con, int type );
+struct contact * add_dummy_contact( char * con, eb_account * account );
+void clean_up_dummies(void);
 void add_unknown( eb_account * ea );
 void add_unknown_with_name( eb_account * ea, char * name );
 void add_account( char * contact, eb_account * account );





reply via email to

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