diff options
author | Gary Kramlich <grim@reaperworld.com> | 2008-10-30 03:03:45 +0000 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2008-10-30 03:03:45 +0000 |
commit | b3093d2ef1c1b6c09c854e7b1ca3a22793dde30f (patch) | |
tree | 62167c060e4c5558bd74fa36cba7aaa7e0ac3c86 | |
parent | 02dfe1a1aeb8a9e51127257ebce23bbb0651ea3c (diff) | |
parent | 3464839b880cfa847856306f0f82ebcc06218084 (diff) | |
download | pidgin-b3093d2ef1c1b6c09c854e7b1ca3a22793dde30f.tar.gz |
merge of '76e72697f7d6cc9d219da138eac6284c9925fe68'
and '95b50f8a21615f4691e0c8f66dc7d6ed932603ca'
-rw-r--r-- | libpurple/blist.c | 53 | ||||
-rw-r--r-- | libpurple/blist.h | 4 | ||||
-rw-r--r-- | libpurple/plugins/autoaccept.c | 6 | ||||
-rw-r--r-- | libpurple/plugins/log_reader.c | 80 | ||||
-rw-r--r-- | libpurple/plugins/signals-test.c | 81 | ||||
-rw-r--r-- | libpurple/plugins/statenotify.c | 7 |
6 files changed, 173 insertions, 58 deletions
diff --git a/libpurple/blist.c b/libpurple/blist.c index 3f9ae26bd4..d42cd8db13 100644 --- a/libpurple/blist.c +++ b/libpurple/blist.c @@ -42,6 +42,59 @@ static guint save_timer = 0; static gboolean blist_loaded = FALSE; +/****************************************************************************** + * Structs + *****************************************************************************/ +#ifdef PURPLE_HIDE_STRUCTS +struct _PurpleBlistNode { + PurpleBlistNodeType type; + PurpleBlistNode *prev; + PurpleBlistNode *next; + PurpleBlistNode *parent; + PurpleBlistNode *child; + GHashTable *settings; + void *ui_data; + PurpleBlistNodeFlags flags; +}; + +struct _PurpleBuddy { + PurpleBlistNode node; + char *name; + char *alias; + char *server_alias; + void *proto_data; + PurpleBuddyIcon *icon; + PurpleAccount *account; + PurplePresence *presence; +}; + +struct _PurpleContact { + PurpleBlistNode node; + char *alias; + int totalsize; + int currentsize; + int online; + PurpleBuddy *priority; + gboolean priority_valid; +}; + +struct _PurpleGroup { + PurpleBlistNode node; + char *name; + int totalsize; + int currentsize; + int online; +}; + +struct _PurpleChat { + PurpleBlistNode node; + char *alias; + GHashTable *components; + PurpleAccount *account; +}; + +#endif /* PURPLE_HIDE_STRUCTS */ + /********************************************************************* * Private utility functions * *********************************************************************/ diff --git a/libpurple/blist.h b/libpurple/blist.h index a10dcd58eb..9e7b56bf10 100644 --- a/libpurple/blist.h +++ b/libpurple/blist.h @@ -89,6 +89,8 @@ typedef enum /* Data Structures */ /**************************************************************************/ +#ifndef PURPLE_HIDE_STRUCTS + /** * A Buddy list node. This can represent a group, a buddy, or anything else. * This is a base class for struct buddy and struct group and for anything @@ -154,6 +156,8 @@ struct _PurpleChat { PurpleAccount *account; /**< The account this chat is attached to */ }; +#endif /* PURPLE_HIDE_STRUCTS */ + /** * The Buddy List diff --git a/libpurple/plugins/autoaccept.c b/libpurple/plugins/autoaccept.c index b6bf451872..a27087f449 100644 --- a/libpurple/plugins/autoaccept.c +++ b/libpurple/plugins/autoaccept.c @@ -104,7 +104,7 @@ file_recv_request_cb(PurpleXfer *xfer, gpointer handle) return; } - node = node->parent; + node = purple_blist_node_get_parent(node); g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node)); pref = purple_prefs_get_string(PREF_PATH); @@ -179,7 +179,7 @@ static void save_cb(PurpleBlistNode *node, int choice) { if (PURPLE_BLIST_NODE_IS_BUDDY(node)) - node = node->parent; + node = purple_blist_node_get_parent(node); g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node)); purple_blist_node_set_int(node, "autoaccept", choice); } @@ -190,7 +190,7 @@ set_auto_accept_settings(PurpleBlistNode *node, gpointer plugin) char *message; if (PURPLE_BLIST_NODE_IS_BUDDY(node)) - node = node->parent; + node = purple_blist_node_get_parent(node); g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node)); message = g_strdup_printf(_("When a file-transfer request arrives from %s"), diff --git a/libpurple/plugins/log_reader.c b/libpurple/plugins/log_reader.c index 492b253707..82a138cc5d 100644 --- a/libpurple/plugins/log_reader.c +++ b/libpurple/plugins/log_reader.c @@ -661,8 +661,10 @@ static GList *msn_logger_list(PurpleLogType type, const char *sn, PurpleAccount username = g_strdup(purple_normalize(account, account->username)); } - if (buddy) - savedfilename = purple_blist_node_get_string(&buddy->node, "log_reader_msn_log_filename"); + if (buddy) { + PurpleBlistNode *node = (PurpleBlistNode *)buddy; + savedfilename = purple_blist_node_get_string(node, "log_reader_msn_log_filename"); + } if (savedfilename) { /* As a special case, we allow the null string to kill the parsing @@ -822,7 +824,8 @@ static GList *msn_logger_list(PurpleLogType type, const char *sn, PurpleAccount * detected for both buddies. */ if (buddy && logfile) { - purple_blist_node_set_string(&buddy->node, "log_reader_msn_log_filename", logfile); + PurpleBlistNode *node = (PurpleBlistNode *)buddy; + purple_blist_node_set_string(node, "log_reader_msn_log_filename", logfile); g_free(logfile); } @@ -981,8 +984,8 @@ static char * msn_logger_read (PurpleLog *log, PurpleLogReadFlags *flags) gboolean from_name_matches; gboolean to_name_matches; - if (buddy && buddy->alias) - their_name = buddy->alias; + if (buddy) + their_name = purple_buddy_get_alias(buddy); if (log->account->alias) { @@ -1018,13 +1021,17 @@ static char * msn_logger_read (PurpleLog *log, PurpleLogReadFlags *flags) } else if (to_name_matches) { name_guessed = NAME_GUESS_THEM; } else { - if (buddy && buddy->alias) { - char *alias = g_strdup(buddy->alias); + if (buddy) { + const gchar *a = NULL, *server_alias = NULL; + gchar *alias = NULL, *temp = NULL; + + a = purple_buddy_get_alias(buddy); + if(a) + alias = g_strdup(a); /* "Truncate" the string at the first non-alphanumeric * character. The idea is to relax the comparison. */ - char *temp; for (temp = alias; *temp ; temp++) { if (!isalnum(*temp)) { *temp = '\0'; @@ -1056,9 +1063,9 @@ static char * msn_logger_read (PurpleLog *log, PurpleLogReadFlags *flags) } } else if (to_name_matches) { name_guessed = NAME_GUESS_ME; - } else if (buddy->server_alias) { + } else if ((server_alias = purple_buddy_get_server_alias(buddy))) { friendly_name_length = - strlen(buddy->server_alias); + strlen(server_alias); /* Try to guess which user is them. * The first step is to determine if either of @@ -1068,13 +1075,13 @@ static char * msn_logger_read (PurpleLog *log, PurpleLogReadFlags *flags) */ from_name_matches = (purple_str_has_prefix( from_name, - buddy->server_alias) && + server_alias) && !isalnum(*(from_name + friendly_name_length))); to_name_matches = to_name && ( (purple_str_has_prefix( - to_name, buddy->server_alias) && + to_name, server_alias) && !isalnum(*(to_name + friendly_name_length)))); @@ -1565,18 +1572,31 @@ static char * trillian_logger_read (PurpleLog *log, PurpleLogReadFlags *flags) g_string_append(formatted, "</b>"); footer = NULL; } else if (strstr(line, " signed off ")) { - if (buddy != NULL && buddy->alias) - g_string_append_printf(formatted, - _("%s has signed off."), buddy->alias); - else + if (buddy != NULL) { + const gchar *alias = purple_buddy_get_alias(buddy); + + if(alias != NULL) + g_string_append_printf(formatted, + _("%s has signed off."), alias); + else + g_string_append_printf(formatted, + _("%s has signed off."), log->name); + } else { g_string_append_printf(formatted, _("%s has signed off."), log->name); + } line = ""; } else if (strstr(line, " signed on ")) { - if (buddy != NULL && buddy->alias) - g_string_append(formatted, buddy->alias); - else + if (buddy != NULL) { + const gchar *alias = purple_buddy_get_alias(buddy); + + if(alias) + g_string_append(formatted, alias); + else + g_string_append(formatted, log->name); + } else { g_string_append(formatted, log->name); + } line = " logged in."; } else if (purple_str_has_prefix(line, "One or more messages may have been undeliverable.")) { @@ -1631,11 +1651,15 @@ static char * trillian_logger_read (PurpleLog *log, PurpleLogReadFlags *flags) footer = "</span></b>"; } } else if (purple_str_has_prefix(line, data->their_nickname)) { - if (buddy != NULL && buddy->alias) { - line += strlen(data->their_nickname) + 2; - g_string_append_printf(formatted, - "<span style=\"color: #A82F2F;\">" - "<b>%s</b></span>: ", buddy->alias); + if (buddy != NULL) { + const gchar *alias = purple_buddy_get_alias(buddy); + + if(alias != NULL) { + line += strlen(data->their_nickname) + 2; + g_string_append_printf(formatted, + "<span style=\"color: #A82F2F;\">" + "<b>%s</b></span>: ", alias); + } } } else { const char *line2 = strstr(line, ":"); @@ -2001,10 +2025,14 @@ static char *qip_logger_read(PurpleLog *log, PurpleLogReadFlags *flags) g_string_append(formatted, "</font> "); if (is_in_message) { - if (buddy_name != NULL && buddy != NULL && buddy->alias) { + const gchar *alias = NULL; + + if (buddy_name != NULL && buddy != NULL && + (alias = purple_buddy_get_alias(buddy))) + { g_string_append_printf(formatted, "<span style=\"color: #A82F2F;\">" - "<b>%s</b></span>: ", buddy->alias); + "<b>%s</b></span>: ", alias); } } else { const char *acct_name; diff --git a/libpurple/plugins/signals-test.c b/libpurple/plugins/signals-test.c index 2a2033f4a4..220fb87b5f 100644 --- a/libpurple/plugins/signals-test.c +++ b/libpurple/plugins/signals-test.c @@ -116,8 +116,9 @@ buddy_status_changed_cb(PurpleBuddy *buddy, PurpleStatus *old_status, PurpleStatus *status, void *data) { purple_debug_misc("signals test", "buddy-status-changed (%s %s to %s)\n", - buddy->name, purple_status_get_id(old_status), - purple_status_get_id(status)); + purple_buddy_get_name(buddy), + purple_status_get_id(old_status), + purple_status_get_id(status)); } static void @@ -125,25 +126,29 @@ buddy_idle_changed_cb(PurpleBuddy *buddy, gboolean old_idle, gboolean idle, void *data) { purple_debug_misc("signals test", "buddy-idle-changed (%s %s)\n", - buddy->name, old_idle ? "unidled" : "idled"); + purple_buddy_get_name(buddy), + old_idle ? "unidled" : "idled"); } static void buddy_signed_on_cb(PurpleBuddy *buddy, void *data) { - purple_debug_misc("signals test", "buddy-signed-on (%s)\n", buddy->name); + purple_debug_misc("signals test", "buddy-signed-on (%s)\n", + purple_buddy_get_name(buddy)); } static void buddy_signed_off_cb(PurpleBuddy *buddy, void *data) { - purple_debug_misc("signals test", "buddy-signed-off (%s)\n", buddy->name); + purple_debug_misc("signals test", "buddy-signed-off (%s)\n", + purple_buddy_get_name(buddy)); } static void buddy_added_cb(PurpleBuddy *buddy, void *data) { - purple_debug_misc("signals test", "buddy_added_cb (%s)\n", purple_buddy_get_name(buddy)); + purple_debug_misc("signals test", "buddy_added_cb (%s)\n", + purple_buddy_get_name(buddy)); } static void @@ -160,17 +165,27 @@ blist_node_aliased(PurpleBlistNode *node, const char *old_alias) PurpleChat *c = (PurpleChat *)node; PurpleGroup *g = (PurpleGroup *)node; - if (PURPLE_BLIST_NODE_IS_CONTACT(node)) - purple_debug_misc("signals test", "blist-node-aliased (Contact: %s, %s)\n", p->alias, old_alias); - else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) - purple_debug_misc("signals test", "blist-node-aliased (Buddy: %s, %s)\n", b->name, old_alias); - else if (PURPLE_BLIST_NODE_IS_CHAT(node)) - purple_debug_misc("signals test", "blist-node-aliased (Chat: %s, %s)\n", c->alias, old_alias); - else if (PURPLE_BLIST_NODE_IS_GROUP(node)) - purple_debug_misc("signals test", "blist-node-aliased (Group: %s, %s)\n", g->name, old_alias); - else - purple_debug_misc("signals test", "blist-node-aliased (UNKNOWN: %d, %s)\n", node->type, old_alias); - + if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { + purple_debug_misc("signals test", + "blist-node-aliased (Contact: %s, %s)\n", + purple_contact_get_alias(p), old_alias); + } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { + purple_debug_misc("signals test", + "blist-node-aliased (Buddy: %s, %s)\n", + purple_buddy_get_name(b), old_alias); + } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { + purple_debug_misc("signals test", + "blist-node-aliased (Chat: %s, %s)\n", + purple_chat_get_name(c), old_alias); + } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { + purple_debug_misc("signals test", + "blist-node-aliased (Group: %s, %s)\n", + purple_group_get_name(g), old_alias); + } else { + purple_debug_misc("signals test", + "blist-node-aliased (UNKNOWN: %d, %s)\n", + purple_blist_node_get_type(node), old_alias); + } } static void @@ -181,17 +196,27 @@ blist_node_extended_menu_cb(PurpleBlistNode *node, void *data) PurpleChat *c = (PurpleChat *)node; PurpleGroup *g = (PurpleGroup *)node; - if (PURPLE_BLIST_NODE_IS_CONTACT(node)) - purple_debug_misc("signals test", "blist-node-extended-menu (Contact: %s)\n", p->alias); - else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) - purple_debug_misc("signals test", "blist-node-extended-menu (Buddy: %s)\n", b->name); - else if (PURPLE_BLIST_NODE_IS_CHAT(node)) - purple_debug_misc("signals test", "blist-node-extended-menu (Chat: %s)\n", c->alias); - else if (PURPLE_BLIST_NODE_IS_GROUP(node)) - purple_debug_misc("signals test", "blist-node-extended-menu (Group: %s)\n", g->name); - else - purple_debug_misc("signals test", "blist-node-extended-menu (UNKNOWN: %d)\n", node->type); - + if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { + purple_debug_misc("signals test", + "blist-node-extended-menu (Contact: %s)\n", + purple_contact_get_alias(p)); + } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { + purple_debug_misc("signals test", + "blist-node-extended-menu (Buddy: %s)\n", + purple_buddy_get_name(b)); + } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { + purple_debug_misc("signals test", + "blist-node-extended-menu (Chat: %s)\n", + purple_chat_get_name(c)); + } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { + purple_debug_misc("signals test", + "blist-node-extended-menu (Group: %s)\n", + purple_group_get_name(g)); + } else { + purple_debug_misc("signals test", + "blist-node-extended-menu (UNKNOWN: %d)\n", + purple_blist_node_get_type(node)); + } } diff --git a/libpurple/plugins/statenotify.c b/libpurple/plugins/statenotify.c index a8f3b4439b..e9f25d5653 100644 --- a/libpurple/plugins/statenotify.c +++ b/libpurple/plugins/statenotify.c @@ -15,13 +15,18 @@ static void write_status(PurpleBuddy *buddy, const char *message) { + PurpleAccount *account = NULL; PurpleConversation *conv; const char *who; char buf[256]; char *escaped; + const gchar *buddy_name = NULL; + + account = purple_buddy_get_account(buddy); + buddy_name = purple_buddy_get_name(buddy); conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, - buddy->name, buddy->account); + buddy_name, account); if (conv == NULL) return; |