From: Eric W. <war...@us...> - 2001-11-19 22:25:43
|
Update of /cvsroot/gaim/gaim/src/protocols/yahoo In directory usw-pr-cvs1:/tmp/cvs-serv11742/protocols/yahoo Modified Files: yahoo.c Log Message: maybe this is better? Index: yahoo.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/yahoo.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- yahoo.c 2001/11/17 22:50:08 1.14 +++ yahoo.c 2001/11/19 22:25:40 1.15 @@ -398,6 +398,34 @@ buddy->msg = msg ? g_strdup(msg) : NULL; yd->login = g_slist_append(yd->login, buddy); break; + case 60: /* uh */ + while (yd->login) { + buddy = yd->login->data; + state = buddy->state; + yd->login = g_slist_remove(yd->login, buddy); + if (state == YAHOO_STATUS_AVAILABLE) + serv_got_update(gc, buddy->name, 1, 0, 0, 0, 0, 0); + else if (state == YAHOO_STATUS_IDLE) + serv_got_update(gc, buddy->name, 1, 0, 0, time(NULL) - 600, + (state << 1), 0); + else + serv_got_update(gc, buddy->name, 1, 0, 0, 0, + (state << 1) | UC_UNAVAILABLE, 0); + if (state == YAHOO_STATUS_CUSTOM) { + gpointer val = g_hash_table_lookup(yd->hash, buddy->name); + if (val) { + g_free(val); + g_hash_table_insert(yd->hash, buddy->name, + g_strdup(buddy->msg)); + } else + g_hash_table_insert(yd->hash, g_strdup(buddy->name), + g_strdup(buddy->msg)); + } + g_free(buddy->msg); + g_free(buddy->name); + g_free(buddy); + } + break; default: debug_printf("unknown login key %d\n", pair->key); break; @@ -641,6 +669,7 @@ case YAHOO_SERVICE_LOGON: yahoo_process_logon(gc, pkt); break; + case YAHOO_SERVICE_LOGOFF: case YAHOO_SERVICE_ISAWAY: case YAHOO_SERVICE_ISBACK: yahoo_process_status(gc, pkt); |