/pidgin/main: e15b0467ef3b: Merge from mainline.

Elliott Sales de Andrade qulogic at pidgin.im
Tue Jul 24 04:03:51 EDT 2012


Changeset: e15b0467ef3be6c76382730904f8321a98de5ad1
Author:	 Elliott Sales de Andrade <qulogic at pidgin.im>
Date:	 2012-07-22 20:10 -0400
Branch:	 cpw.qulogic.gtk3-required
URL: http://hg.pidgin.im/pidgin/main/rev/e15b0467ef3b

Description:

Merge from mainline.

diffstat:

 COPYRIGHT                                 |    3 +-
 ChangeLog                                 |    8 +
 README                                    |    4 +-
 README.MTN                                |    6 +-
 README.mingw                              |    2 +-
 config.h.mingw                            |    3 -
 configure.ac                              |    2 +-
 doc/pidgin.1.in                           |    4 +-
 libpurple/protocols/msn/userlist.c        |    1 +
 libpurple/protocols/yahoo/yahoo_picture.c |    3 -
 libpurple/protocols/yahoo/yahoo_profile.c |    4 -
 pidgin/gtkdebug.c                         |  692 +++++++++++------------------
 pidgin/gtkrequest.c                       |    7 -
 pidgin/gtkwebview.c                       |  134 +++++-
 po/de.po                                  |   14 +-
 15 files changed, 414 insertions(+), 473 deletions(-)

diffs (truncated from 1612 to 300 lines):

diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -15,7 +15,7 @@
 piece of code, then that code should be traced through our version
 control system to see from where it came and who has modified it.
 
-Copyright (C) 1998-2011 by the following:
+Copyright (C) 1998-2012 by the following:
 
 Saleem Abdulrasool
 Jakub Adam
@@ -40,6 +40,7 @@
 Chris Banal
 Luca Barbato
 Levi Bard
+Mark Barfield
 Ryan Barrett
 Kevin Barry
 Lukas Barth
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -47,6 +47,14 @@
 	* The Offline Message Emulation plugin now adds a note that the message
 	  was an offline message. (Flavius Anton) (#2497)
 
+	MSN:
+	* Fix a crash when removing a user before its icon is loaded. (Mark
+	  Barfield) (#15217)
+
+	Yahoo!:
+	* Fix a double-free in profile/picture loading code. (Mihai Serban)
+	  (#15053)
+
 version 2.10.6 (07/06/2012):
 	Pidgin:
 	* Fix a bug that requires a triple-click to open a conversation
diff --git a/README b/README
--- a/README
+++ b/README
@@ -6,7 +6,7 @@
 to write an IM client that connects to many IM networks.  It supports
 AIM, ICQ, XMPP, MSN and Yahoo!, among others.
 
-Pidgin is an graphical IM client written in C which uses the GTK+
+Pidgin is a graphical IM client written in C which uses the GTK+
 toolkit.
 
 Finch is a text-based IM client written in C which uses the ncurses
@@ -43,7 +43,7 @@
 
 To get started, simply add a new account.
 
-If you come across a bug, please report it at: http://pidgin.im
+If you come across a bug, please report it at: http://developer.pidgin.im
 
 PLUGINS
 =======
diff --git a/README.MTN b/README.hg
rename from README.MTN
rename to README.hg
--- a/README.MTN
+++ b/README.hg
@@ -1,13 +1,13 @@
-If you plan to use Pidgin, Finch and libpurple from our Monotone repository,
+If you plan to use Pidgin, Finch and libpurple from our Mercurial repository,
 PLEASE read this message in its entirety!
 
 Pidgin, Finch, and libpurple are a fast-moving project with a somewhat regular
-release schedule.  Due to the rate of development, the code in our Monotone
+release schedule.  Due to the rate of development, the code in our Mercurial
 repository undergoes frequent bursts of massive changes, often leaving behind
 brokenness and partial functionality while the responsible developers rewrite
 some portion of code or seek to add new features.
 
-What this all boils down to is that the code in our Monotone repository _WILL_
+What this all boils down to is that the code in our Mercurial repository _WILL_
 sometimes be broken.  Because of this, we ask that users who are not interested
 in personally tracking down bugs and fixing them (without a lot of
 assistance from the developers!) use only released versions.  Since releases
diff --git a/README.mingw b/README.mingw
--- a/README.mingw
+++ b/README.mingw
@@ -1,5 +1,5 @@
 How to build Pidgin for Windows using MinGW
-=============================
+===========================================
 
 For the latest build instructions, please refer to:
 
diff --git a/config.h.mingw b/config.h.mingw
--- a/config.h.mingw
+++ b/config.h.mingw
@@ -180,9 +180,6 @@
 /* Define to 1 if you have the `random' function. */
 /* #define HAVE_RANDOM 1 */
 
-/* Define to 1 if you have the <regex.h> header file. */
-/* #define HAVE_REGEX_H 1 */
-
 /* Define to 1 if you have the `setlocale' function. */
 #define HAVE_SETLOCALE 1
 
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -123,7 +123,7 @@
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h signal.h stdint.h regex.h)
+AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h signal.h stdint.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
diff --git a/doc/pidgin.1.in b/doc/pidgin.1.in
--- a/doc/pidgin.1.in
+++ b/doc/pidgin.1.in
@@ -218,9 +218,7 @@
 .TP
 .B Notify buddies that you are typing to them
 Some protocols allow clients to tell their buddies when they are typing.
-This option enables this feature for protocols that supports it.  For XMPP,
-this also enables sending the "User has left the conversation" message
-when ending the conversation.
+This option enables this feature for protocols that supports it.
 
 .TP
 .B Default Formatting
diff --git a/libpurple/protocols/msn/userlist.c b/libpurple/protocols/msn/userlist.c
--- a/libpurple/protocols/msn/userlist.c
+++ b/libpurple/protocols/msn/userlist.c
@@ -263,6 +263,7 @@
 msn_userlist_remove_user(MsnUserList *userlist, MsnUser *user)
 {
 	userlist->users = g_list_remove(userlist->users, user);
+	g_queue_remove(userlist->buddy_icon_requests, user);
 	msn_user_unref(user);
 }
 
diff --git a/libpurple/protocols/yahoo/yahoo_picture.c b/libpurple/protocols/yahoo/yahoo_picture.c
--- a/libpurple/protocols/yahoo/yahoo_picture.c
+++ b/libpurple/protocols/yahoo/yahoo_picture.c
@@ -137,9 +137,6 @@
 		if (url_data != NULL) {
 			yd = purple_connection_get_protocol_data(gc);
 			yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
-		} else {
-			g_free(data->who);
-			g_free(data);
 		}
 	} else if (who && send_icon_info) {
 		yahoo_send_picture_info(gc, who);
diff --git a/libpurple/protocols/yahoo/yahoo_profile.c b/libpurple/protocols/yahoo/yahoo_profile.c
--- a/libpurple/protocols/yahoo/yahoo_profile.c
+++ b/libpurple/protocols/yahoo/yahoo_profile.c
@@ -1278,10 +1278,6 @@
 	url_data = purple_util_fetch_url(url, TRUE, NULL, FALSE, -1, yahoo_got_info, data);
 	if (url_data != NULL)
 		yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
-	else {
-		g_free(data->name);
-		g_free(data);
-	}
 
 	g_free(url);
 }
diff --git a/pidgin/gtkdebug.c b/pidgin/gtkdebug.c
--- a/pidgin/gtkdebug.c
+++ b/pidgin/gtkdebug.c
@@ -33,72 +33,57 @@
 
 #include "gtkdebug.h"
 #include "gtkdialogs.h"
-#include "gtkimhtml.h"
 #include "gtkutils.h"
+#include "gtkwebview.h"
 #include "pidginstock.h"
 
-#ifdef HAVE_REGEX_H
-# include <regex.h>
-#	define USE_REGEX 1
-#else
-#if GLIB_CHECK_VERSION(2,14,0)
-#	define USE_REGEX 1
-#endif
-#endif /* HAVE_REGEX_H */
-
 #include <gdk/gdkkeysyms.h>
 
 typedef struct
 {
 	GtkWidget *window;
 	GtkWidget *text;
-
-	GtkListStore *store;
+	GtkWidget *filter;
+	GtkWidget *expression;
+	GtkWidget *filterlevel;
 
 	gboolean paused;
 
-#ifdef USE_REGEX
-	GtkWidget *filter;
-	GtkWidget *expression;
-
 	gboolean invert;
 	gboolean highlight;
-
 	guint timer;
-#	ifdef HAVE_REGEX_H
-	regex_t regex;
-#	else
 	GRegex *regex;
-#	endif /* HAVE_REGEX_H */
-#else
-	GtkWidget *find;
-#endif /* USE_REGEX */
-	GtkWidget *filterlevel;
 } DebugWindow;
 
-static const char debug_fg_colors[][8] = {
-	"#000000",    /**< All debug levels. */
-	"#666666",    /**< Misc.             */
-	"#000000",    /**< Information.      */
-	"#660000",    /**< Warnings.         */
-	"#FF0000",    /**< Errors.           */
-	"#FF0000",    /**< Fatal errors.     */
-};
+#define EMPTY_HTML \
+	"<html><head><style>" \
+	"body{white-space:pre-wrap;}" \
+	"div.l0{color:#000000;}"                    /* All debug levels. */ \
+	"div.l1{color:#666666;}"                    /* Misc.             */ \
+	"div.l2{color:#000000;}"                    /* Information.      */ \
+	"div.l3{color:#660000;}"                    /* Warnings.         */ \
+	"div.l4{color:#FF0000;}"                    /* Errors.           */ \
+	"div.l5{color:#FF0000;font-weight:bold;}"   /* Fatal errors.     */ \
+	/* Filter levels */ \
+	"div#pause~div{display:none;}" \
+	"body.l1 div.l0{display:none;}" \
+	"body.l2 div.l0,body.l2 div.l1{display:none;}" \
+	"body.l3 div.l0,body.l3 div.l1,body.l3 div.l2{display:none;}" \
+	"body.l4 div.l0,body.l4 div.l1,body.l4 div.l2,body.l4 div.l3{display:none;}" \
+	"body.l5 div.l0,body.l5 div.l1,body.l5 div.l2,body.l5 div.l3,body.l5 div.l4{display:none;}" \
+	/* Regex */ \
+	"div.hide{display:none;}" \
+	"span.regex{background-color:#ffafaf;font-weight:bold;}" \
+	"</style></head></html>"
 
 static DebugWindow *debug_win = NULL;
 static guint debug_enabled_timer = 0;
 
-#ifdef USE_REGEX
-static void regex_filter_all(DebugWindow *win);
-static void regex_show_all(DebugWindow *win);
-#endif /* USE_REGEX */
-
 static gint
 debug_window_destroy(GtkWidget *w, GdkEvent *event, void *unused)
 {
 	purple_prefs_disconnect_by_handle(pidgin_debug_get_handle());
 
-#ifdef USE_REGEX
 	if(debug_win->timer != 0) {
 		const gchar *text;
 
@@ -107,12 +92,7 @@
 		text = gtk_entry_get_text(GTK_ENTRY(debug_win->expression));
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/debug/regex", text);
 	}
-#ifdef HAVE_REGEX_H
-	regfree(&debug_win->regex);
-#else
 	g_regex_unref(debug_win->regex);
-#endif /* HAVE_REGEX_H */
-#endif /* USE_REGEX */
 
 	/* If the "Save Log" dialog is open then close it */
 	purple_request_close_with_handle(debug_win);
@@ -136,88 +116,6 @@
 	return FALSE;
 }
 
-#ifndef USE_REGEX
-struct _find {
-	DebugWindow *window;
-	GtkWidget *entry;
-};
-
-static void
-do_find_cb(GtkWidget *widget, gint response, struct _find *f)
-{
-	switch (response) {
-	case GTK_RESPONSE_OK:
-		gtk_imhtml_search_find(GTK_IMHTML(f->window->text),
-							   gtk_entry_get_text(GTK_ENTRY(f->entry)));
-		break;
-



More information about the Commits mailing list