comparison mcabber/src/roster.c @ 330:a9013124ede6

Add "/roster alternate"
author Mikael Berthe <mikael@lilotux.net>
date Sun, 17 Jul 2005 21:17:52 +0100
parents 45076d02eeef
children 1510dda4ad71
comparison
equal deleted inserted replaced
329:7c53bf62a2a2 330:a9013124ede6
44 static int hide_offline_buddies; 44 static int hide_offline_buddies;
45 static GSList *groups; 45 static GSList *groups;
46 static GSList *unread_list; 46 static GSList *unread_list;
47 GList *buddylist; 47 GList *buddylist;
48 GList *current_buddy; 48 GList *current_buddy;
49 GList *alternate_buddy;
49 50
50 51
51 /* ### Roster functions ### */ 52 /* ### Roster functions ### */
52 53
53 // Comparison function used to search in the roster (compares jids and types) 54 // Comparison function used to search in the roster (compares jids and types)
417 void buddylist_build(void) 418 void buddylist_build(void)
418 { 419 {
419 GSList *sl_roster_elt = groups; 420 GSList *sl_roster_elt = groups;
420 roster *roster_elt; 421 roster *roster_elt;
421 roster *roster_current_buddy = NULL; 422 roster *roster_current_buddy = NULL;
423 roster *roster_alternate_buddy = NULL;
422 int shrunk_group; 424 int shrunk_group;
423 425
424 // We need to remember which buddy is selected. 426 // We need to remember which buddy is selected.
425 if (current_buddy) 427 if (current_buddy)
426 roster_current_buddy = BUDDATA(current_buddy); 428 roster_current_buddy = BUDDATA(current_buddy);
427 current_buddy = NULL; 429 current_buddy = NULL;
430 if (alternate_buddy)
431 roster_alternate_buddy = BUDDATA(alternate_buddy);
432 alternate_buddy = NULL;
428 433
429 // Destroy old buddylist 434 // Destroy old buddylist
430 if (buddylist) { 435 if (buddylist) {
431 g_list_free(buddylist); 436 g_list_free(buddylist);
432 buddylist = NULL; 437 buddylist = NULL;
485 } 490 }
486 491
487 // Check if we can find our saved current_buddy... 492 // Check if we can find our saved current_buddy...
488 if (roster_current_buddy) 493 if (roster_current_buddy)
489 current_buddy = g_list_find(buddylist, roster_current_buddy); 494 current_buddy = g_list_find(buddylist, roster_current_buddy);
495 if (roster_alternate_buddy)
496 alternate_buddy = g_list_find(buddylist, roster_alternate_buddy);
490 // current_buddy initialization 497 // current_buddy initialization
491 if (!current_buddy || (g_list_position(buddylist, current_buddy) == -1)) 498 if (!current_buddy || (g_list_position(buddylist, current_buddy) == -1))
492 current_buddy = g_list_first(buddylist); 499 current_buddy = g_list_first(buddylist);
493 // XXX Maybe we should set update_roster to TRUE there? 500 // XXX Maybe we should set update_roster to TRUE there?
494 } 501 }