# HG changeset patch # User Elliott Sales de Andrade # Date 1228892290 0 # Node ID eae0e194658e0cd27609f574ec07550684a57f70 # Parent 781723b2a170d11bea80c4039dd695a5d3b8104f# Parent 35d0ce5f319ab7b6816fac633d61ddca8280f5cd merge of '834b032b518f6b4ab9148b946ca635214a9388d8' and 'fd954d6a415456dce86aa9443b24e1df25019bd7' diff -r 781723b2a170 -r eae0e194658e ChangeLog diff -r 781723b2a170 -r eae0e194658e ChangeLog.win32 --- a/ChangeLog.win32 Wed Dec 10 06:51:47 2008 +0000 +++ b/ChangeLog.win32 Wed Dec 10 06:58:10 2008 +0000 @@ -1,3 +1,7 @@ +version 2.5.3 (12/??/2008): + * Upgrade SILC to use the 1.1.8 toolkit + * Updated included Meanwhile library to include patch referenced in #7563 + version 2.5.2 (10/19/2008): * Updated GTK+ to 2.12.12 This will resolve an issue with stuff in QQ appearing as "(NULL)" @@ -28,7 +32,7 @@ version 2.4.0 (02/29/2008): * Updated GTK+ to 2.12.8 - * Updated include Meanwhile library to include patches referenced at: + * Updated included Meanwhile library to include patches referenced at: https://sourceforge.net/tracker/?func=detail&atid=656718&aid=1626349&group_id=110565 * Build the xmpp protocol with SASL support (and include Cyrus SASL 2.1.22). diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/bonjour/bonjour_ft.c --- a/libpurple/protocols/bonjour/bonjour_ft.c Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/bonjour/bonjour_ft.c Wed Dec 10 06:58:10 2008 +0000 @@ -411,8 +411,10 @@ BonjourData *bd; PurpleXfer *xfer; - if(pc == NULL || packet == NULL || pb == NULL) - return; + g_return_if_fail(pc != NULL); + g_return_if_fail(packet != NULL); + g_return_if_fail(pb != NULL); + bd = (BonjourData*) pc->proto_data; if(bd == NULL) return; @@ -488,8 +490,9 @@ xmlnode *query; BonjourData *bd; - if(pc == NULL || packet == NULL || pb == NULL) - return; + g_return_if_fail(pc != NULL); + g_return_if_fail(packet != NULL); + g_return_if_fail(pb != NULL); bd = (BonjourData*) pc->proto_data; if(bd == NULL) diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/bonjour/jabber.c --- a/libpurple/protocols/bonjour/jabber.c Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/bonjour/jabber.c Wed Dec 10 06:58:10 2008 +0000 @@ -77,7 +77,7 @@ }; static void -xep_iq_parse(xmlnode *packet, PurpleConnection *connection, PurpleBuddy *pb); +xep_iq_parse(xmlnode *packet, PurpleBuddy *pb); static BonjourJabberConversation * bonjour_jabber_conv_new(PurpleBuddy *pb, PurpleAccount *account, const char *ip) { @@ -128,7 +128,7 @@ if (contents) { char *bodystart = strchr(contents, '>'); - char *bodyend = strrchr(bodystart, '<'); + char *bodyend = bodystart ? strrchr(bodystart, '<') : NULL; if (bodystart && bodyend && (bodystart + 1) != bodyend) { *bodyend = '\0'; memmove(contents, bodystart + 1, (bodyend - bodystart)); @@ -364,11 +364,36 @@ if (!strcmp(packet->name, "message")) _jabber_parse_and_write_message_to_ui(packet, pb); else if(!strcmp(packet->name, "iq")) - xep_iq_parse(packet, NULL, pb); + xep_iq_parse(packet, pb); else purple_debug_warning("bonjour", "Unknown packet: %s\n", packet->name ? packet->name : "(null)"); } +static void bonjour_jabber_stream_ended(BonjourJabberConversation *bconv) { + + /* Inform the user that the conversation has been closed */ + BonjourBuddy *bb = NULL; + + purple_debug_info("bonjour", "Recieved conversation close notification from %s.\n", bconv->pb ? bconv->pb->name : "(unknown)"); + + if(bconv->pb != NULL) + bb = bconv->pb->proto_data; +#if 0 + if(bconv->pb != NULL) { + PurpleConversation *conv; + conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, bconv->pb->name, bconv->pb->account); + if (conv != NULL) { + char *tmp = g_strdup_printf(_("%s has closed the conversation."), bconv->pb->name); + purple_conversation_write(conv, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL)); + g_free(tmp); + } + } +#endif + /* Close the socket, clear the watcher and free memory */ + bonjour_jabber_close_conversation(bconv); + if(bb) + bb->conversation = NULL; +} static void _client_socket_handler(gpointer data, gint socket, PurpleInputCondition condition) @@ -414,35 +439,6 @@ bonjour_parser_process(bconv, message, message_length); } -void bonjour_jabber_stream_ended(BonjourJabberConversation *bconv) { - - purple_debug_info("bonjour", "Recieved conversation close notification from %s.\n", bconv->pb ? bconv->pb->name : "(unknown)"); - - /* Inform the user that the conversation has been closed */ - if (bconv != NULL) { - BonjourBuddy *bb = NULL; - - if(bconv->pb != NULL) - bb = bconv->pb->proto_data; -#if 0 - if(bconv->pb != NULL) { - PurpleConversation *conv; - conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, bconv->pb->name, bconv->pb->account); - if (conv != NULL) { - char *tmp = g_strdup_printf(_("%s has closed the conversation."), bconv->pb->name); - purple_conversation_write(conv, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL)); - g_free(tmp); - } - } -#endif - /* Close the socket, clear the watcher and free memory */ - bonjour_jabber_close_conversation(bconv); - if(bb) - bb->conversation = NULL; - } -} - - struct _stream_start_data { char *msg; }; @@ -1162,14 +1158,12 @@ check_if_blocked(PurpleBuddy *pb) { gboolean blocked = FALSE; - GSList *l = NULL; - PurpleAccount *acc = NULL; + GSList *l; + PurpleAccount *acc = purple_buddy_get_account(pb); - if(pb == NULL) + if(acc == NULL) return FALSE; - acc = pb->account; - for(l = acc->deny; l != NULL; l = l->next) { if(!purple_utf8_strcasecmp(pb->name, (char *)l->data)) { purple_debug_info("bonjour", "%s has been blocked by %s.\n", pb->name, acc->username); @@ -1181,25 +1175,19 @@ } static void -xep_iq_parse(xmlnode *packet, PurpleConnection *connection, PurpleBuddy *pb) +xep_iq_parse(xmlnode *packet, PurpleBuddy *pb) { - xmlnode *child = NULL; - - if(packet == NULL || pb == NULL) - return; - - if(connection == NULL) { - if(pb->account != NULL) - connection = (pb->account)->gc; - } + xmlnode *child; if(check_if_blocked(pb)) return; if ((child = xmlnode_get_child(packet, "si")) || (child = xmlnode_get_child(packet, "error"))) - xep_si_parse(connection, packet, pb); + xep_si_parse(purple_account_get_connection(pb->account), + packet, pb); else - xep_bytestreams_parse(connection, packet, pb); + xep_bytestreams_parse(purple_account_get_connection(pb->account), + packet, pb); } int diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/bonjour/jabber.h --- a/libpurple/protocols/bonjour/jabber.h Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/bonjour/jabber.h Wed Dec 10 06:58:10 2008 +0000 @@ -79,8 +79,6 @@ void bonjour_jabber_stream_started(BonjourJabberConversation *bconv); -void bonjour_jabber_stream_ended(BonjourJabberConversation *bconv); - void bonjour_jabber_process_packet(PurpleBuddy *pb, xmlnode *packet); void bonjour_jabber_stop(BonjourJabber *data); diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/msn/msn.c --- a/libpurple/protocols/msn/msn.c Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Wed Dec 10 06:58:10 2008 +0000 @@ -1837,7 +1837,7 @@ if (b->server_alias) { char *nicktext = g_markup_escape_text(b->server_alias, -1); - tmp = g_strdup_printf("%s
", nicktext); + tmp = g_strdup_printf("%s", nicktext); purple_notify_user_info_add_pair(user_info, _("Nickname"), tmp); g_free(tmp); g_free(nicktext); @@ -1943,9 +1943,8 @@ if (error_message != NULL || url_text == NULL || strcmp(url_text, "") == 0) { - tmp = g_strdup_printf("%s", _("Error retrieving profile")); - purple_notify_user_info_add_pair(user_info, NULL, tmp); - g_free(tmp); + purple_notify_user_info_add_pair(user_info, + _("Error retrieving profile"), NULL); purple_notify_userinfo(info_data->gc, info_data->name, user_info, NULL, NULL); purple_notify_user_info_destroy(user_info); @@ -2286,21 +2285,24 @@ char *p = strstr(url_buffer, "
gc), info_data->name); - purple_notify_user_info_add_pair(user_info, _("Error retrieving profile"), - ((p && b) ? _("The user has not created a public profile.") : - (p ? _("MSN reported not being able to find the user's profile. " - "This either means that the user does not exist, " - "or that the user exists " - "but has not created a public profile.") : - _("Could not find " /* This should never happen */ - "any information in the user's profile. " - "The user most likely does not exist.")))); + purple_notify_user_info_add_pair(user_info, + _("Error retrieving profile"), NULL); + purple_notify_user_info_add_pair(user_info, NULL, + ((p && b) ? _("The user has not created a public profile.") : + (p ? _("MSN reported not being able to find the user's profile. " + "This either means that the user does not exist, " + "or that the user exists " + "but has not created a public profile.") : + _("Could not find " /* This should never happen */ + "any information in the user's profile. " + "The user most likely does not exist.")))); } /* put a link to the actual profile URL */ - tmp = g_strdup_printf("%s%s", - PROFILE_URL, info_data->name, PROFILE_URL, info_data->name); - purple_notify_user_info_add_pair(user_info, _("Profile URL"), tmp); + purple_notify_user_info_add_section_break(user_info); + tmp = g_strdup_printf("%s", + PROFILE_URL, info_data->name, _("View web profile")); + purple_notify_user_info_add_pair(user_info, NULL, tmp); g_free(tmp); #if PHOTO_SUPPORT diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/myspace/user.c --- a/libpurple/protocols/myspace/user.c Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/myspace/user.c Wed Dec 10 06:58:10 2008 +0000 @@ -107,17 +107,6 @@ uid = purple_blist_node_get_int(&user->buddy->node, "UserID"); - if (full) { - /* TODO: link to username, if available */ - if (uid) { - char *profile = g_strdup_printf("http://myspace.com/%d", - uid, uid); - purple_notify_user_info_add_pair(user_info, _("Profile"), profile); - g_free(profile); - } - } - - /* a/s/l...the vitals */ if (user->age) { char age[16]; @@ -180,6 +169,16 @@ purple_notify_user_info_add_pair(user_info, _("Client Version"), client); g_free(client); } + + if (full && uid) { + /* TODO: link to username, if available */ + char *profile; + purple_notify_user_info_add_section_break(user_info); + profile = g_strdup_printf("%s", + uid, _("View web profile")); + purple_notify_user_info_add_pair(user_info, NULL, profile); + g_free(profile); + } } /** Set the currently playing song artist and or title. diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Wed Dec 10 06:58:10 2008 +0000 @@ -3187,6 +3187,12 @@ } } + purple_notify_user_info_add_section_break(user_info); + tmp = g_strdup_printf("%s", + purple_normalize(account, userinfo->sn), _("View web profile")); + purple_notify_user_info_add_pair(user_info, NULL, tmp); + g_free(tmp); + purple_notify_userinfo(gc, userinfo->sn, user_info, NULL, NULL); purple_notify_user_info_destroy(user_info); diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/yahoo/yahoo_aliases.c --- a/libpurple/protocols/yahoo/yahoo_aliases.c Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_aliases.c Wed Dec 10 06:58:10 2008 +0000 @@ -301,7 +301,7 @@ "\n\r\n", purple_account_get_username(gc->account), who, converted_alias_jp); - free(converted_alias_jp); + g_free(converted_alias_jp); g_free(alias_jp); } else { gchar *escaped_alias = g_markup_escape_text(alias, -1); @@ -321,7 +321,7 @@ "\n\r\n", purple_account_get_username(gc->account), who, cb->id, converted_alias_jp); - free(converted_alias_jp); + g_free(converted_alias_jp); g_free(alias_jp); } else { gchar *escaped_alias = g_markup_escape_text(alias, -1); diff -r 781723b2a170 -r eae0e194658e libpurple/protocols/yahoo/yahoo_profile.c --- a/libpurple/protocols/yahoo/yahoo_profile.c Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_profile.c Wed Dec 10 06:58:10 2008 +0000 @@ -807,7 +807,7 @@ */ if (error_message != NULL || url_text == NULL || strcmp(url_text, "") == 0) { purple_notify_user_info_add_pair(user_info, _("Error retrieving profile"), NULL); - purple_notify_userinfo(info_data->gc, info_data->name, + purple_notify_userinfo(info_data->gc, info_data->name, user_info, NULL, NULL); purple_notify_user_info_destroy(user_info); g_free(profile_url_text); @@ -841,10 +841,10 @@ _("If you wish to view this profile, " "you will need to visit this link in your web browser:"), profile_url_text, profile_url_text); - purple_notify_user_info_add_pair(user_info, NULL, tmp); + purple_notify_user_info_add_pair(user_info, NULL, tmp); g_free(tmp); - purple_notify_userinfo(info_data->gc, info_data->name, + purple_notify_userinfo(info_data->gc, info_data->name, user_info, NULL, NULL); g_free(profile_url_text); @@ -1193,17 +1193,15 @@ if(!found) { - GString *str = g_string_new(""); + const gchar *str; - g_string_append_printf(str, "
"); - g_string_append_printf(str, _("User information for %s unavailable"), - info_data->name); - g_string_append_printf(str, "
"); + purple_notify_user_info_add_section_break(user_info); + purple_notify_user_info_add_pair(user_info, + _("Error retrieving profile"), NULL); if (profile_state == PROFILE_STATE_UNKNOWN_LANGUAGE) { - g_string_append_printf(str, "%s

", - _("Sorry, this profile seems to be in a language " - "or format that is not supported at this time.")); + str = _("This profile is in a language " + "or format that is not supported at this time."); } else if (profile_state == PROFILE_STATE_NOT_FOUND) { PurpleBuddy *b = purple_find_buddy @@ -1217,27 +1215,26 @@ */ f = yahoo_friend_find(b->account->gc, b->name); } - g_string_append_printf(str, "%s

", - f? _("Could not retrieve the user's profile. " + str = f ? _("Could not retrieve the user's profile. " "This most likely is a temporary server-side problem. " - "Please try again later."): + "Please try again later.") : _("Could not retrieve the user's profile. " "This most likely means that the user does not exist; " "however, Yahoo! sometimes does fail to find a user's " "profile. If you know that the user exists, " - "please try again later.")); + "please try again later."); } else { - g_string_append_printf(str, "%s

", - _("The user's profile is empty.")); + str = _("The user's profile is empty."); } - - purple_notify_user_info_add_pair(user_info, NULL, str->str); - g_string_free(str, TRUE); + + purple_notify_user_info_add_pair(user_info, NULL, str); } /* put a link to the actual profile URL */ - tmp = g_strdup_printf("%s", profile_url_text, profile_url_text); - purple_notify_user_info_add_pair(user_info, _("Profile URL"), tmp); + purple_notify_user_info_add_section_break(user_info); + tmp = g_strdup_printf("%s", + profile_url_text, _("View web profile")); + purple_notify_user_info_add_pair(user_info, NULL, tmp); g_free(tmp); g_free(stripped); diff -r 781723b2a170 -r eae0e194658e libpurple/win32/global.mak --- a/libpurple/win32/global.mak Wed Dec 10 06:51:47 2008 +0000 +++ b/libpurple/win32/global.mak Wed Dec 10 06:58:10 2008 +0000 @@ -16,11 +16,11 @@ GTK_BIN ?= $(GTK_TOP)/bin BONJOUR_TOP ?= $(WIN32_DEV_TOP)/Bonjour_SDK LIBXML2_TOP ?= $(WIN32_DEV_TOP)/libxml2-2.6.30 -MEANWHILE_TOP ?= $(WIN32_DEV_TOP)/meanwhile-1.0.2_daa1 +MEANWHILE_TOP ?= $(WIN32_DEV_TOP)/meanwhile-1.0.2_daa2 NSPR_TOP ?= $(WIN32_DEV_TOP)/nspr-4.6.4 NSS_TOP ?= $(WIN32_DEV_TOP)/nss-3.11.4 PERL_LIB_TOP ?= $(WIN32_DEV_TOP)/perl-5.10.0 -SILC_TOOLKIT ?= $(WIN32_DEV_TOP)/silc-toolkit-1.1.7 +SILC_TOOLKIT ?= $(WIN32_DEV_TOP)/silc-toolkit-1.1.8 TCL_LIB_TOP ?= $(WIN32_DEV_TOP)/tcl-8.4.5 GSTREAMER_TOP ?= $(WIN32_DEV_TOP)/gstreamer-0.10.13