# HG changeset patch # User Mark Doliner # Date 1095625032 0 # Node ID 30e052ebb5aed26515d52675bbca1b40590f5dd4 # Parent 2ef4b5121efc36cceba7f8849860e113480ad981 [gaim-migrate @ 11011] Patch from Dave West: Updates the SILC prpl to use gaim_prpl_got_user_status instead of gaim_blist_update_buddy_presence. Thanks Dave! Sorry it took me so long to get to this! committer: Tailor Script diff -r 2ef4b5121efc -r 30e052ebb5ae src/protocols/silc/buddy.c --- a/src/protocols/silc/buddy.c Sun Sep 19 19:07:14 2004 +0000 +++ b/src/protocols/silc/buddy.c Sun Sep 19 20:17:12 2004 +0000 @@ -732,7 +732,7 @@ _("You cannot receive buddy notifications until you " "import his/her public key. You can use the Get Public Key " "command to get the public key.")); - gaim_blist_update_buddy_presence(r->b, FALSE); + gaim_prpl_got_user_status(gaim_buddy_get_account(r->b), gaim_buddy_get_name(r->b), SILCGAIM_STATUS_ID_OFFLINE, NULL); } static void @@ -771,7 +771,7 @@ "%s" G_DIR_SEPARATOR_S "clientkeys" G_DIR_SEPARATOR_S "clientkey_%s.pub", silcgaim_silcdir(), fingerprint); gaim_blist_node_set_string((GaimBlistNode *)b, "public-key", filename); - gaim_blist_update_buddy_presence(r->b, FALSE); + gaim_prpl_got_user_status(gaim_buddy_get_account(r->b), gaim_buddy_get_name(r->b), SILCGAIM_STATUS_ID_OFFLINE, NULL); silc_free(fingerprint); silc_free(r->offline_pk); silc_free(r); @@ -962,8 +962,8 @@ silcgaim_silcdir(), fingerprint); gaim_blist_node_set_string((GaimBlistNode *)b, "public-key", filename); - /* Update online status on the buddy list */ - gaim_blist_update_buddy_presence(b, TRUE); + /* Update online status */ + gaim_prpl_got_user_status(gaim_buddy_get_account(r->b), gaim_buddy_get_name(r->b), SILCGAIM_STATUS_ID_ONLINE, NULL); /* Finally, start watching this user so we receive its status changes from the server */ diff -r 2ef4b5121efc -r 30e052ebb5ae src/protocols/silc/ops.c --- a/src/protocols/silc/ops.c Sun Sep 19 19:07:14 2004 +0000 +++ b/src/protocols/silc/ops.c Sun Sep 19 20:17:12 2004 +0000 @@ -708,7 +708,7 @@ client_entry->mode & SILC_UMODE_PAGE || client_entry->mode & SILC_UMODE_DETACHED)) { client_entry->mode = mode; - gaim_blist_update_buddy_presence(b, TRUE); + gaim_prpl_got_user_status(gaim_buddy_get_account(b), gaim_buddy_get_name(b), SILCGAIM_STATUS_ID_ONLINE, NULL); } else if ((mode & SILC_UMODE_GONE) || (mode & SILC_UMODE_INDISPOSED) || @@ -716,16 +716,16 @@ (mode & SILC_UMODE_PAGE) || (mode & SILC_UMODE_DETACHED)) { client_entry->mode = mode; - gaim_blist_update_buddy_presence(b, FALSE); + gaim_prpl_got_user_status(gaim_buddy_get_account(b), gaim_buddy_get_name(b), SILCGAIM_STATUS_ID_OFFLINE, NULL); } } else if (notify == SILC_NOTIFY_TYPE_SIGNOFF || notify == SILC_NOTIFY_TYPE_SERVER_SIGNOFF || notify == SILC_NOTIFY_TYPE_KILLED) { client_entry->mode = mode; - gaim_blist_update_buddy_presence(b, FALSE); + gaim_prpl_got_user_status(gaim_buddy_get_account(b), gaim_buddy_get_name(b), SILCGAIM_STATUS_ID_OFFLINE, NULL); } else if (notify == SILC_NOTIFY_TYPE_NONE) { client_entry->mode = mode; - gaim_blist_update_buddy_presence(b, TRUE); + gaim_prpl_got_user_status(gaim_buddy_get_account(b), gaim_buddy_get_name(b), SILCGAIM_STATUS_ID_ONLINE, NULL); } } break; diff -r 2ef4b5121efc -r 30e052ebb5ae src/protocols/silc/silc.c --- a/src/protocols/silc/silc.c Sun Sep 19 19:07:14 2004 +0000 +++ b/src/protocols/silc/silc.c Sun Sep 19 20:17:12 2004 +0000 @@ -43,19 +43,19 @@ GaimStatusType *type; GList *types = NULL; - type = gaim_status_type_new(GAIM_STATUS_OFFLINE, "offline", _("Offline"), FALSE); + type = gaim_status_type_new(GAIM_STATUS_OFFLINE, SILCGAIM_STATUS_ID_OFFLINE, _("Offline"), FALSE); types = g_list_append(types, type); - type = gaim_status_type_new(GAIM_STATUS_ONLINE, "offline", _("Online"), FALSE); + type = gaim_status_type_new(GAIM_STATUS_ONLINE, SILCGAIM_STATUS_ID_ONLINE, _("Online"), FALSE); types = g_list_append(types, type); - type = gaim_status_type_new_full(GAIM_STATUS_AVAILABLE, "hyper", _("Hyper Active"), FALSE, TRUE, FALSE); + type = gaim_status_type_new_full(GAIM_STATUS_AVAILABLE, SILCGAIM_STATUS_ID_HYPER, _("Hyper Active"), FALSE, TRUE, FALSE); types = g_list_append(types, type); - type = gaim_status_type_new_full(GAIM_STATUS_AWAY, "away", _("Away"), FALSE, TRUE, FALSE); + type = gaim_status_type_new_full(GAIM_STATUS_AWAY, SILCGAIM_STATUS_ID_AWAY, _("Away"), FALSE, TRUE, FALSE); types = g_list_append(types, type); - type = gaim_status_type_new_full(GAIM_STATUS_AWAY, "busy", _("Busy"), FALSE, TRUE, FALSE); + type = gaim_status_type_new_full(GAIM_STATUS_AWAY, SILCGAIM_STATUS_ID_BUSY, _("Busy"), FALSE, TRUE, FALSE); types = g_list_append(types, type); - type = gaim_status_type_new_full(GAIM_STATUS_AWAY, "indisposed", _("Indisposed"), FALSE, TRUE, FALSE); + type = gaim_status_type_new_full(GAIM_STATUS_AWAY, SILCGAIM_STATUS_ID_INDISPOSED, _("Indisposed"), FALSE, TRUE, FALSE); types = g_list_append(types, type); - type = gaim_status_type_new_full(GAIM_STATUS_AWAY, "page", _("Wake Me Up"), FALSE, TRUE, FALSE); + type = gaim_status_type_new_full(GAIM_STATUS_AWAY, SILCGAIM_STATUS_ID_PAGE, _("Wake Me Up"), FALSE, TRUE, FALSE); types = g_list_append(types, type); return types; diff -r 2ef4b5121efc -r 30e052ebb5ae src/protocols/silc/silcgaim.h --- a/src/protocols/silc/silcgaim.h Sun Sep 19 19:07:14 2004 +0000 +++ b/src/protocols/silc/silcgaim.h Sun Sep 19 20:17:12 2004 +0000 @@ -44,6 +44,15 @@ #define SILCGAIM_PRVGRP 0x001fffff +/* Status IDs */ +#define SILCGAIM_STATUS_ID_OFFLINE "offline" +#define SILCGAIM_STATUS_ID_ONLINE "online" +#define SILCGAIM_STATUS_ID_HYPER "hyper" +#define SILCGAIM_STATUS_ID_AWAY "away" +#define SILCGAIM_STATUS_ID_BUSY "busy" +#define SILCGAIM_STATUS_ID_INDISPOSED "indisposed" +#define SILCGAIM_STATUS_ID_PAGE "page" + typedef struct { unsigned long id; const char *channel;