# HG changeset patch # User Daniel Atallah # Date 1172799638 0 # Node ID 5c9980e926746762b26001598ccb564c047e4c89 # Parent dc6081d167cffce056fceb55ab1d7c6efe3f79f7# Parent f403bc58ba078f8995ecf366333cd991db6cfecb merge of '1af9edac4ef10d94b0471bbe6205d52e420b0d0e' and '8effb23a79e3af60c83455c2c92ea2e94bb799a8' diff -r dc6081d167cf -r 5c9980e92674 libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Thu Mar 01 02:42:20 2007 +0000 +++ b/libpurple/protocols/jabber/presence.c Fri Mar 02 01:40:38 2007 +0000 @@ -392,7 +392,7 @@ static int i = 1; char *room_jid = g_strdup_printf("%s@%s", jid->node, jid->domain); - if(state == JABBER_BUDDY_STATE_ERROR) { + if(state == JABBER_BUDDY_STATE_ERROR && jid->resource == NULL) { char *title, *msg = jabber_parse_error(js, packet); if(chat->conv) { diff -r dc6081d167cf -r 5c9980e92674 libpurple/protocols/msn/table.c --- a/libpurple/protocols/msn/table.c Thu Mar 01 02:42:20 2007 +0000 +++ b/libpurple/protocols/msn/table.c Fri Mar 02 01:40:38 2007 +0000 @@ -41,7 +41,7 @@ table = g_new0(MsnTable, 1); - table->cmds = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); + table->cmds = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, (GDestroyNotify)g_hash_table_destroy); table->msgs = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); table->errors = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); diff -r dc6081d167cf -r 5c9980e92674 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Thu Mar 01 02:42:20 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Fri Mar 02 01:40:38 2007 +0000 @@ -3592,7 +3592,8 @@ if (gaim_account_get_user_info(account) != NULL) serv_set_info(gc, gaim_account_get_user_info(account)); - oscar_format_screenname(gc, account->username); + if (!od->icq) + oscar_format_screenname(gc, account->username); /* Set our available message based on the current status */ status = gaim_account_get_active_status(account); diff -r dc6081d167cf -r 5c9980e92674 libpurple/protocols/yahoo/yahoo.c --- a/libpurple/protocols/yahoo/yahoo.c Thu Mar 01 02:42:20 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Fri Mar 02 01:40:38 2007 +0000 @@ -52,8 +52,12 @@ /* #define YAHOO_DEBUG */ +/* #define TRY_WEBMESSENGER_LOGIN 0 */ + static void yahoo_add_buddy(GaimConnection *gc, GaimBuddy *, GaimGroup *); +#ifdef TRY_WEBMESSENGER_LOGIN static void yahoo_login_page_cb(GaimUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, size_t len, const gchar *error_message); +#endif static void yahoo_set_status(GaimAccount *account, GaimStatus *status); static void @@ -1885,7 +1889,9 @@ static void yahoo_process_authresp(GaimConnection *gc, struct yahoo_packet *pkt) { +#ifdef TRY_WEBMESSENGER_LOGIN struct yahoo_data *yd = gc->proto_data; +#endif GSList *l = pkt->hash; int err = 0; char *msg; @@ -1908,6 +1914,7 @@ msg = g_strdup(_("Invalid screen name.")); break; case 13: +#ifdef TRY_WEBMESSENGER_LOGIN if (!yd->wm) { GaimUtilFetchUrlData *url_data; yd->wm = TRUE; @@ -1921,6 +1928,7 @@ yd->url_datas = g_slist_prepend(yd->url_datas, url_data); return; } +#endif msg = g_strdup(_("Incorrect password.")); break; case 14: @@ -2364,6 +2372,7 @@ gc->inpa = gaim_input_add(yd->fd, GAIM_INPUT_READ, yahoo_pending, gc); } +#ifdef TRY_WEBMESSENGER_LOGIN static void yahoo_got_web_connected(gpointer data, gint source, const gchar *error_message) { GaimConnection *gc = data; @@ -2585,6 +2594,13 @@ yd->url_datas = g_slist_remove(yd->url_datas, url_data); + if (error_message != NULL) + { + /* TODO: Include error_message in the message below */ + gaim_connection_error(gc, _("Unable to connect.")); + return; + } + url = g_string_append(url, sn); url = g_string_append(url, "&passwd="); @@ -2636,6 +2652,7 @@ gaim_cipher_context_destroy(context); } +#endif static void yahoo_server_check(GaimAccount *account) { diff -r dc6081d167cf -r 5c9980e92674 libpurple/server.c --- a/libpurple/server.c Thu Mar 01 02:42:20 2007 +0000 +++ b/libpurple/server.c Fri Mar 02 01:40:38 2007 +0000 @@ -448,6 +448,7 @@ * been given us by the prpls. So we create temp holders and pass * those instead. It's basically just to avoid segfaults. */ + /* TODO: MAX(message, BUF_LONG) is pretty ugly. */ buffy = g_malloc(MAX(strlen(msg) + 1, BUF_LONG)); strcpy(buffy, msg); angel = g_strdup(who); @@ -771,7 +772,7 @@ * data is binary, plugins don't see it. Bitch all you want; i really * don't want you to be dealing with it. */ - + /* TODO: MAX(message, BUF_LONG) is pretty ugly. */ buffy = g_malloc(MAX(strlen(message) + 1, BUF_LONG)); strcpy(buffy, message); angel = g_strdup(who); diff -r dc6081d167cf -r 5c9980e92674 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Thu Mar 01 02:42:20 2007 +0000 +++ b/pidgin/gtkconv.c Fri Mar 02 01:40:38 2007 +0000 @@ -2355,9 +2355,6 @@ l = pidgin_conv_get_tab_icons(conv); gtk_window_set_icon_list(GTK_WINDOW(win->window), l); - - if (status != NULL) - g_object_unref(status); } } @@ -5882,8 +5879,10 @@ l = pidgin_conv_get_tab_icons(conv); } gtk_window_set_icon_list(GTK_WINDOW(win->window), l); - if (window_icon != NULL) + if (window_icon != NULL) { g_object_unref(G_OBJECT(window_icon)); + g_list_free(l); + } } } diff -r dc6081d167cf -r 5c9980e92674 pidgin/gtkmain.c --- a/pidgin/gtkmain.c Thu Mar 01 02:42:20 2007 +0000 +++ b/pidgin/gtkmain.c Fri Mar 02 01:40:38 2007 +0000 @@ -171,6 +171,11 @@ * function that can be called by applications to disable forking * during initialization. But it's not in 0.10.0, so we shouldn't * use it. + * + * All of this child process reaping stuff is currently only used for + * processes that were forked to play sounds. It's not needed for + * forked DNS child, which have their own waitpid() call. It might + * be wise to move this code into gtksound.c. */ static void clean_pid()