/pidgin/main: 6014ed8b3a2b: Merge 33548 from release-2.x.y

Richard Laager rlaager at pidgin.im
Sun Jan 13 17:02:39 EST 2013


Changeset: 6014ed8b3a2b447e3af58bf612ae1ac9129279e8
Author:	 Richard Laager <rlaager at pidgin.im>
Date:	 2013-01-13 15:17 -0600
Branch:	 default
URL: http://hg.pidgin.im/pidgin/main/rev/6014ed8b3a2b

Description:

Merge 33548 from release-2.x.y

diffstat:

 COPYRIGHT                           |   5 ++++
 ChangeLog                           |  45 +++++++++++++++++++++++++++---------
 configure.ac                        |   8 +++---
 libpurple/protocols/irc/irc.h       |   1 +
 libpurple/protocols/irc/msgs.c      |  32 ++++++++++++++++++++++++++
 libpurple/protocols/irc/parse.c     |   2 +-
 libpurple/protocols/yahoo/libymsg.h |   1 +
 libpurple/upnp.c                    |   4 ++-
 pidgin/gtkutils.c                   |   4 +--
 pidgin/pidginstock.c                |  24 +++++++++---------
 pidgin/plugins/cap/cap.c            |   6 +++-
 pidgin/plugins/notify.c             |  12 ++-------
 12 files changed, 100 insertions(+), 44 deletions(-)

diffs (truncated from 369 to 300 lines):

diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -17,6 +17,7 @@ control system to see from where it came
 
 Copyright (C) 1998-2012 by the following:
 
+Mark
 Saleem Abdulrasool
 Jakub Adam
 Dave Ahlswede
@@ -73,6 +74,7 @@ Craig Boston
 Éric Boumaour
 Chris Boyle
 Stanislav Brabec
+Bartosz Brachaczek
 Quentin Brandon
 Derrick J Brashear
 Mauro Sérgio Ferreira Brasil
@@ -175,6 +177,7 @@ Jesse Farmer
 Gavan Fantom (gavan)
 Leonardo Fernandes
 David Fiander
+Michael Fiedler
 Ryan Flegel
 Rob Flynn <gaim at robflynn.com>
 Rob Foehl (rwf)
@@ -459,6 +462,7 @@ Sam S.
 Thanumalayan S.
 Jonathan Sailor
 Elliott Sales de Andrade
+Catalin Salgau
 Tomasz Sałaciński <tsalacinski at gmail.com>
 Pradyumna Sampath
 Arvind Samptur
@@ -511,6 +515,7 @@ Peter Speybrouck
 Lex Spoon
 Chris Stafford
 Kevin Stange
+Ferdinand Stehle
 Joshua Stein
 Jakub Steiner
 Richard Stellingwerff
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -60,6 +60,21 @@ version 2.10.7:
 	* Fix a crash at startup with large contact list. Avatar support for
 	  buddies will be disabled till 3.0.0. (#15226, #14305)
 
+	General:
+	* The configure script will now exit with status 1 when specifying
+	  invalid protocol plugins using the --with-static-prpls and
+	  --with-dynamic-prpls arguments. (Michael Fiedler) (#15316)
+
+	libpurple:
+	* Don't link directly to libgcrypt when building with GnuTLS support.
+	  (Bartosz Brachaczek) (#15329)
+	* Fix UPNP mappings on routers that return empty <URLBase/> elements
+	  in their response. (Ferdinand Stehle) (#15373)
+
+	Pidgin:
+	* Make Pidgin more friendly to non-X11 GTK+, such as MacPorts' +no_x11
+	  variant.
+
 	Gadu-Gadu:
 	* Fix a crash at startup with large contact list. Avatar support for
 	  buddies will be disabled till 3.0.0. (#15226, #14305)
@@ -67,6 +82,7 @@ version 2.10.7:
 	IRC:
 	* Support for SASL authentication.  (Thijs Alkemade, Andy Spencer)
 	  (#13270)
+	* Print topic setter information at channel join. (#13317)
 
 	MSN:
 	* Fix a crash when removing a user before its icon is loaded. (Mark
@@ -75,10 +91,15 @@ version 2.10.7:
 	Yahoo!:
 	* Fix a double-free in profile/picture loading code. (Mihai Serban)
 	  (#15053)
+	* Fix retrieving server-side buddy aliases. (Catalin Salgu) (#15381)
 
 	Plugins:
 	* The Voice/Video Settings plugin supports using the sndio GStreamer
 	  backends. (Brad Smith) (#14414)
+	* Fix a crash in the Contact Availability Detection plugin. (Mark)
+	  (#15327)
+	* Make the Message Notification plugin more friendly to non-X11 GTK+,
+	  such as MacPorts' +no_x11 variant.
 
 	Windows-Specific Changes:
 	* Compile with secure flags (#15290)
@@ -86,18 +107,18 @@ version 2.10.7:
 	  (#15277)
 	* Updates to a number of dependencies, some of which have security
 	  related fixes. (#14571, #15285, #15286)
-	 * ATK 1.32.0-2
-	 * Cyrus SASL 2.1.25
-	 * expat 2.1.0-1
-	 * freetype 2.4.10-1
-	 * gettext 0.18.1.1-2
-	 * Glib 2.28.8-1
-	 * libpng 1.4.12-1
-	 * libxml2 2.9.0-1
-	 * NSS 3.13.6 and NSPR 4.9.2
-	 * Pango 1.29.4-1
-	 * SILC 1.1.10
-	 * zlib 1.2.5-2
+		* ATK 1.32.0-2
+		* Cyrus SASL 2.1.25
+		* expat 2.1.0-1
+		* freetype 2.4.10-1
+		* gettext 0.18.1.1-2
+		* Glib 2.28.8-1
+		* libpng 1.4.12-1
+		* libxml2 2.9.0-1
+		* NSS 3.13.6 and NSPR 4.9.2
+		* Pango 1.29.4-1
+		* SILC 1.1.10
+		* zlib 1.2.5-2
 	* Patch libmeanwhile (sametime library) to fix crash. (Jonathan Rice)
 	  (#12637)
 
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1326,7 +1326,7 @@ for i in $STATIC_PRPLS ; do
 		simple)		static_simple=yes ;;
 		yahoo)		static_yahoo=yes ;;
 		zephyr)		static_zephyr=yes ;;
-		*)			echo "Invalid static protocol $i!!" ; exit ;;
+		*)			echo "Invalid static protocol $i!!" ; exit 1 ;;
 	esac
 done
 AM_CONDITIONAL(STATIC_BONJOUR, test "x$static_bonjour" = "xyes")
@@ -1380,7 +1380,7 @@ for i in $DYNAMIC_PRPLS ; do
 		simple)		dynamic_simple=yes ;;
 		yahoo)		dynamic_yahoo=yes ;;
 		zephyr)		dynamic_zephyr=yes ;;
-		*)			echo "Invalid dynamic protocol $i!!" ; exit ;;
+		*)			echo "Invalid dynamic protocol $i!!" ; exit 1 ;;
 	esac
 done
 
@@ -1908,7 +1908,7 @@ if test "x$enable_gnutls" != "xno"; then
 
 		AC_CACHE_CHECK([for GnuTLS libraries], ac_cv_gnutls_libs,
 		[
-			LIBS="$LIBS $with_gnutls_libs -lgnutls -lgcrypt"
+			LIBS="$LIBS $with_gnutls_libs -lgnutls"
 			AC_TRY_LINK_FUNC(gnutls_init, ac_cv_gnutls_libs="yes", ac_cv_gnutls_libs="no")
 			LIBS="$LIBS_save"
 		])
@@ -1917,7 +1917,7 @@ if test "x$enable_gnutls" != "xno"; then
 			AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have GnuTLS])
 			AC_DEFINE(HAVE_SSL)
 			msg_gnutls="GnuTLS"
-			GNUTLS_LIBS="$with_gnutls_libs -lgnutls -lgcrypt"
+			GNUTLS_LIBS="$with_gnutls_libs -lgnutls"
 
 			enable_gnutls="yes"
 		else
diff --git a/libpurple/protocols/irc/irc.h b/libpurple/protocols/irc/irc.h
--- a/libpurple/protocols/irc/irc.h
+++ b/libpurple/protocols/irc/irc.h
@@ -174,6 +174,7 @@ void irc_msg_quit(struct irc_conn *irc, 
 void irc_msg_regonly(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_time(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_topic(struct irc_conn *irc, const char *name, const char *from, char **args);
+void irc_msg_topicinfo(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_unavailable(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_wallops(struct irc_conn *irc, const char *name, const char *from, char **args);
diff --git a/libpurple/protocols/irc/msgs.c b/libpurple/protocols/irc/msgs.c
--- a/libpurple/protocols/irc/msgs.c
+++ b/libpurple/protocols/irc/msgs.c
@@ -642,6 +642,38 @@ void irc_msg_topic(struct irc_conn *irc,
 	g_free(topic);
 }
 
+void irc_msg_topicinfo(struct irc_conn *irc, const char *name, const char *from, char **args)
+{
+	PurpleConversation *convo;
+	struct tm *tm;
+	time_t t;
+	char *msg, *timestamp, *datestamp;
+	
+	if (!args || !args[1] || !args[2] || !args[3])
+		return;
+
+	convo = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, args[1], irc->account);
+	if (!convo) {
+		purple_debug(PURPLE_DEBUG_ERROR, "irc", "Got topic info for %s, which doesn't exist\n", args[1]);
+		return;
+	}
+
+	t = (time_t)atol(args[3]);
+	if (t == 0) {
+		purple_debug(PURPLE_DEBUG_ERROR, "irc", "Got apparently nonsensical topic timestamp %s\n", args[3]);
+		return;
+	}
+	tm = localtime(&t);
+
+	timestamp = g_strdup(purple_time_format(tm));
+	datestamp = g_strdup(purple_date_format_short(tm));
+	msg = g_strdup_printf("Topic for %s set by %s at %s on %s", args[1], args[2], timestamp, datestamp);
+	purple_conv_chat_write(PURPLE_CONV_CHAT(convo), "", msg, PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NO_LINKIFY, time(NULL));
+	g_free(timestamp);
+	g_free(datestamp);
+	g_free(msg);
+}
+
 void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args)
 {
 	PurpleConnection *gc = purple_account_get_connection(irc->account);
diff --git a/libpurple/protocols/irc/parse.c b/libpurple/protocols/irc/parse.c
--- a/libpurple/protocols/irc/parse.c
+++ b/libpurple/protocols/irc/parse.c
@@ -73,7 +73,7 @@ static struct _irc_msg {
 	{ "324", "ncv:", irc_msg_chanmode },	/* Channel modes		*/
 	{ "331", "nc:",	irc_msg_topic },	/* No channel topic		*/
 	{ "332", "nc:", irc_msg_topic },	/* Channel topic		*/
-	{ "333", "*", irc_msg_ignore },		/* Topic setter stuff		*/
+	{ "333", "ncvv", irc_msg_topicinfo },	/* Topic setter stuff		*/
 	{ "352", "ncvvvnv:", irc_msg_who },	/* Channel WHO			*/
 	{ "353", "nvc:", irc_msg_names },	/* Names list			*/
 	{ "366", "nc:", irc_msg_names },	/* End of names			*/
diff --git a/libpurple/protocols/yahoo/libymsg.h b/libpurple/protocols/yahoo/libymsg.h
--- a/libpurple/protocols/yahoo/libymsg.h
+++ b/libpurple/protocols/yahoo/libymsg.h
@@ -96,6 +96,7 @@
 #define YAHOOJP_CLIENT_VERSION "9.0.0.1727"
 
 #define YAHOO_CLIENT_USERAGENT "Mozilla/5.0"
+#define YAHOO_CLIENT_USERAGENT_ALIAS "Mozilla/4.0 (compatible; MSIE 5.5)"
 
 /* Index into attention types list. */
 #define YAHOO_BUZZ 0
diff --git a/libpurple/upnp.c b/libpurple/upnp.c
--- a/libpurple/upnp.c
+++ b/libpurple/upnp.c
@@ -259,7 +259,9 @@ purple_upnp_parse_description_response(c
 	/* get the baseURL of the device */
 	if((baseURLNode = xmlnode_get_child(xmlRootNode, "URLBase")) != NULL) {
 		baseURL = xmlnode_get_data(baseURLNode);
-	} else {
+	}
+	/* fixes upnp-descriptions with empty urlbase-element */
+	if(baseURL == NULL){
 		baseURL = g_strdup(httpURL);
 	}
 
diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c
--- a/pidgin/gtkutils.c
+++ b/pidgin/gtkutils.c
@@ -28,9 +28,7 @@
 #include "internal.h"
 #include "pidgin.h"
 
-#ifndef _WIN32
-# include <X11/Xlib.h>
-#else
+#ifdef _WIN32
 # ifdef small
 #  undef small
 # endif
diff --git a/pidgin/pidginstock.c b/pidgin/pidginstock.c
--- a/pidgin/pidginstock.c
+++ b/pidgin/pidginstock.c
@@ -67,7 +67,7 @@ static struct StockIcon
 	{ PIDGIN_STOCK_IGNORE,          NULL,      GTK_STOCK_DIALOG_ERROR     },
 	{ PIDGIN_STOCK_INVITE,          NULL,      GTK_STOCK_JUMP_TO          },
 	{ PIDGIN_STOCK_MODIFY,          NULL,      GTK_STOCK_PREFERENCES      },
-	{ PIDGIN_STOCK_ADD,             NULL,	   GTK_STOCK_ADD			  },
+	{ PIDGIN_STOCK_ADD,             NULL,	   GTK_STOCK_ADD              },
 	{ PIDGIN_STOCK_PAUSE,           NULL,      GTK_STOCK_MEDIA_PAUSE      },
 	{ PIDGIN_STOCK_POUNCE,          NULL,      GTK_STOCK_REDO             },
 	{ PIDGIN_STOCK_OPEN_MAIL,       NULL,      GTK_STOCK_JUMP_TO          },
@@ -80,17 +80,17 @@ static struct StockIcon
 
 static const GtkStockItem stock_items[] =
 {
-	{ PIDGIN_STOCK_ALIAS,               N_("_Alias"),      0, 0, NULL },
-	{ PIDGIN_STOCK_CHAT,                N_("_Join"),       0, 0, NULL },
-	{ PIDGIN_STOCK_CLOSE_TABS,          N_("Close _tabs"), 0, 0, NULL },
-	{ PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, N_("I_M"),         0, 0, NULL },
-	{ PIDGIN_STOCK_TOOLBAR_USER_INFO,   N_("_Get Info"),   0, 0, NULL },
-	{ PIDGIN_STOCK_INVITE,              N_("_Invite"),     0, 0, NULL },
-	{ PIDGIN_STOCK_MODIFY,              N_("_Modify..."),  0, 0, NULL },
-	{ PIDGIN_STOCK_ADD,                 N_("_Add..."),     0, 0, NULL },
-	{ PIDGIN_STOCK_OPEN_MAIL,           N_("_Open Mail"),  0, 0, NULL },
-	{ PIDGIN_STOCK_PAUSE,               N_("_Pause"),      0, 0, NULL },
-	{ PIDGIN_STOCK_EDIT,                N_("_Edit"),       0, 0, NULL }
+	{ PIDGIN_STOCK_ALIAS,               N_("_Alias"),      0, 0, PACKAGE },
+	{ PIDGIN_STOCK_CHAT,                N_("_Join"),       0, 0, PACKAGE },
+	{ PIDGIN_STOCK_CLOSE_TABS,          N_("Close _tabs"), 0, 0, PACKAGE },
+	{ PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, N_("I_M"),         0, 0, PACKAGE },
+	{ PIDGIN_STOCK_TOOLBAR_USER_INFO,   N_("_Get Info"),   0, 0, PACKAGE },
+	{ PIDGIN_STOCK_INVITE,              N_("_Invite"),     0, 0, PACKAGE },
+	{ PIDGIN_STOCK_MODIFY,              N_("_Modify..."),  0, 0, PACKAGE },



More information about the Commits mailing list