changeset 15755:5c9980e92674

merge of '1af9edac4ef10d94b0471bbe6205d52e420b0d0e' and '8effb23a79e3af60c83455c2c92ea2e94bb799a8'
author Daniel Atallah <daniel.atallah@gmail.com>
date Fri, 02 Mar 2007 01:40:38 +0000
parents dc6081d167cf (current diff) f403bc58ba07 (diff)
children 2b6acdc5b614
files gaim-installer.nsi pidgin/pixmaps/gaim-install.ico pidgin/win32/nsis/gaim-header.bmp pidgin/win32/nsis/gaim-intro.bmp pidgin/win32/nsis/gaim-plugin.nsh
diffstat 7 files changed, 31 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- 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) {
--- 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);
 
--- 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);
--- 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)
 {
--- 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);
--- 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);
+		}
 	}
 }
 
--- 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()