# HG changeset patch # User Nathan Walp # Date 1047682172 0 # Node ID e23a7e166680c98568107ae0828220c07881f99b # Parent 6219ffd18c634a7089a4a989437417cd4ce324ab [gaim-migrate @ 5097] - a couple compile cleanups - status messages and tooltips won't crash gaim when people put up certain away messages - yahoo status messages will show the current "custom" message instead of the previous one committer: Tailor Script diff -r 6219ffd18c63 -r e23a7e166680 src/buddy.c --- a/src/buddy.c Fri Mar 14 17:41:41 2003 +0000 +++ b/src/buddy.c Fri Mar 14 22:49:32 2003 +0000 @@ -358,13 +358,13 @@ node = g_value_get_pointer(&val); if (GAIM_BLIST_NODE_IS_BUDDY(node)) { if (position == GTK_TREE_VIEW_DROP_AFTER) { - gaim_blist_add_buddy(b, node->parent, node); + gaim_blist_add_buddy(b, (struct group *)node->parent, node); } else if (position == GTK_TREE_VIEW_DROP_BEFORE) { - gaim_blist_add_buddy(b, node->parent, node->prev); + gaim_blist_add_buddy(b, (struct group *)node->parent, node->prev); } } else if (GAIM_BLIST_NODE_IS_GROUP(node)) { - gaim_blist_add_buddy(b, node, NULL); - } + gaim_blist_add_buddy(b, (struct group *)node, NULL); + } gtk_tree_path_free(path); } } diff -r 6219ffd18c63 -r e23a7e166680 src/html.c --- a/src/html.c Fri Mar 14 17:41:41 2003 +0000 +++ b/src/html.c Fri Mar 14 22:49:32 2003 +0000 @@ -56,16 +56,20 @@ for (i = 0, j = 0; text2[i]; i++) { if (text2[i] == '<') { k = i + 1; - while (text2[k]) { - if (text2[k] == '<') { - visible = 1; - break; + if(g_ascii_isspace(text2[k])) { + visible = 1; + } else { + while (text2[k]) { + if (text2[k] == '<') { + visible = 1; + break; + } + if (text2[k] == '>') { + visible = 0; + break; + } + k++; } - if (text2[k] == '>') { - visible = 0; - break; - } - k++; } } else if (text2[i] == '>' && !visible) { visible = 1; diff -r 6219ffd18c63 -r e23a7e166680 src/protocols/jabber/jabber.c --- a/src/protocols/jabber/jabber.c Fri Mar 14 17:41:41 2003 +0000 +++ b/src/protocols/jabber/jabber.c Fri Mar 14 22:49:32 2003 +0000 @@ -3190,14 +3190,20 @@ { jab_res_info jri = jabber_find_resource(b->account->gc, b->name); if(jri) { - char *text = strip_html(jabber_lookup_away(GC_GJ(b->account->gc), + char *stripped = strip_html(jabber_lookup_away(GC_GJ(b->account->gc), b->name)); - char *ret = g_strdup_printf(_("Status: %s%s%s"), + char *text = NULL; + char *ret; + if(stripped) + text = g_markup_escape_text(stripped, strlen(stripped)); + ret = g_strdup_printf(_("Status: %s%s%s"), jabber_get_state_string(jri->state), text ? ": " : "", text ? text : ""); - if(text) + if(stripped) { + g_free(stripped); g_free(text); + } return ret; } return NULL; @@ -3206,13 +3212,16 @@ static char *jabber_status_text(struct buddy *b) { if (b->uc & UC_UNAVAILABLE) { - char *ret = strip_html(jabber_lookup_away(GC_GJ(b->account->gc), + char *stripped = strip_html(jabber_lookup_away(GC_GJ(b->account->gc), b->name)); - if(!ret) { + char *ret; + if(!stripped) { jab_res_info jri = jabber_find_resource(b->account->gc, b->name); if(jri) - ret = g_strdup(jabber_get_state_string(jri->state)); + stripped = g_strdup(jabber_get_state_string(jri->state)); } + ret = g_markup_escape_text(stripped, strlen(stripped)); + g_free(stripped); return ret; } return NULL; diff -r 6219ffd18c63 -r e23a7e166680 src/protocols/yahoo/yahoo.c --- a/src/protocols/yahoo/yahoo.c Fri Mar 14 17:41:41 2003 +0000 +++ b/src/protocols/yahoo/yahoo.c Fri Mar 14 22:49:32 2003 +0000 @@ -413,10 +413,6 @@ } if (g_hash_table_lookup(yd->games, name)) gamestate = YAHOO_STATUS_GAME; - if (state == YAHOO_STATUS_AVAILABLE) - serv_got_update(gc, name, 1, 0, 0, 0, gamestate); - else - serv_got_update(gc, name, 1, 0, 0, 0, (state << 2) | UC_UNAVAILABLE | gamestate); if (state == YAHOO_STATUS_CUSTOM) { gpointer val = g_hash_table_lookup(yd->hash, name); if (val) { @@ -427,6 +423,10 @@ g_hash_table_insert(yd->hash, g_strdup(name), msg ? g_strdup(msg) : g_malloc0(1)); } + if (state == YAHOO_STATUS_AVAILABLE) + serv_got_update(gc, name, 1, 0, 0, 0, gamestate); + else + serv_got_update(gc, name, 1, 0, 0, 0, (state << 2) | UC_UNAVAILABLE | gamestate); break; case 60: /* no clue */ break; @@ -1078,8 +1078,14 @@ if (b->uc & UC_UNAVAILABLE) { if ((b->uc >> 2) != YAHOO_STATUS_CUSTOM) return g_strdup(yahoo_get_status_string(b->uc >> 2)); - else - return strip_html(g_hash_table_lookup(yd->hash, b->name)); + else { + char *stripped = strip_html(g_hash_table_lookup(yd->hash, b->name)); + if(stripped) { + char *ret = g_markup_escape_text(stripped, strlen(stripped)); + g_free(stripped); + return ret; + } + } } return NULL; } @@ -1095,8 +1101,10 @@ else status = strip_html(g_hash_table_lookup(yd->hash, b->name)); if(status) { - ret = g_strdup_printf(_("Status: %s"), status); + char *escaped = g_markup_escape_text(status, strlen(status)); + ret = g_strdup_printf(_("Status: %s"), escaped); g_free(status); + g_free(escaped); return ret; } } diff -r 6219ffd18c63 -r e23a7e166680 src/prpl.c --- a/src/prpl.c Fri Mar 14 17:41:41 2003 +0000 +++ b/src/prpl.c Fri Mar 14 22:49:32 2003 +0000 @@ -553,7 +553,7 @@ return ((x->gc != y->gc) || g_strcasecmp(x->who, y->who)); } -void set_icon_data(struct gaim_connection *gc, char *who, void *data, int len) +void set_icon_data(struct gaim_connection *gc, const char *who, void *data, int len) { struct gaim_conversation *conv; struct icon_data tmp; @@ -650,7 +650,7 @@ } } -void *get_icon_data(struct gaim_connection *gc, char *who, int *len) +void *get_icon_data(struct gaim_connection *gc, const char *who, int *len) { struct icon_data tmp = { gc, normalize(who), NULL, 0 }; GList *l = g_list_find_custom(icons, &tmp, find_icon_data); diff -r 6219ffd18c63 -r e23a7e166680 src/prpl.h --- a/src/prpl.h Fri Mar 14 17:41:41 2003 +0000 +++ b/src/prpl.h Fri Mar 14 22:49:32 2003 +0000 @@ -433,7 +433,7 @@ * @param data The icon data. * @param len The length of @a data. */ -void set_icon_data(struct gaim_connection *gc, char *who, void *data, int len); +void set_icon_data(struct gaim_connection *gc, const char *who, void *data, int len); /** * Retrieves the buddy icon data for a user. @@ -444,7 +444,7 @@ * * @return The buddy icon data. */ -void *get_icon_data(struct gaim_connection *gc, char *who, int *len); +void *get_icon_data(struct gaim_connection *gc, const char *who, int *len); /* stuff to load/unload PRPLs as necessary */