[Top][All Lists]
[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 );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [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,
Philip S Tellis <address@hidden> <=