/pidgin/main: 71ac79e660c4: Merge with release-2.x.y
Andrew Victor
andrew.victor at mxit.com
Mon Dec 17 18:04:57 EST 2012
Changeset: 71ac79e660c4ed752343137138ebc15f4e0750e6
Author: Andrew Victor <andrew.victor at mxit.com>
Date: 2012-12-18 01:02 +0200
Branch: mxit-2.x.y
URL: http://hg.pidgin.im/pidgin/main/rev/71ac79e660c4
Description:
Merge with release-2.x.y
diffstat:
COPYRIGHT | 3 ++
ChangeLog | 35 +++++++++++++++++++-----------
configure.ac | 4 +-
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/protocols/yahoo/yahoo_aliases.c | 8 +++---
libpurple/upnp.c | 4 ++-
pidgin/pidginstock.c | 24 ++++++++++----------
10 files changed, 81 insertions(+), 33 deletions(-)
diffs (286 lines):
diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -175,6 +175,7 @@ Jesse Farmer
Gavan Fantom (gavan)
Leonardo Fernandes
David Fiander
+Michael Fiedler
Ryan Flegel
Rob Flynn <gaim at robflynn.com>
Rob Foehl (rwf)
@@ -456,6 +457,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
@@ -508,6 +510,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
@@ -4,9 +4,16 @@ version 2.10.7:
Alien hatchery:
* No changes
+ 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)
+ (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
@@ -19,6 +26,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
@@ -27,6 +35,7 @@ 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
@@ -42,18 +51,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
@@ -1185,7 +1185,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")
@@ -1243,7 +1243,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
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
@@ -173,6 +173,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
@@ -646,6 +646,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/protocols/yahoo/yahoo_aliases.c b/libpurple/protocols/yahoo/yahoo_aliases.c
--- a/libpurple/protocols/yahoo/yahoo_aliases.c
+++ b/libpurple/protocols/yahoo/yahoo_aliases.c
@@ -198,7 +198,7 @@ yahoo_fetch_aliases(PurpleConnection *gc
url = yd->jp ? YAHOOJP_ALIAS_FETCH_URL : YAHOO_ALIAS_FETCH_URL;
purple_url_parse(url, &webaddress, NULL, &webpage, NULL, NULL);
request = g_strdup_printf("GET %s%s/%s HTTP/1.1\r\n"
- "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n"
+ "User-Agent: " YAHOO_CLIENT_USERAGENT_ALIAS "\r\n"
"Cookie: T=%s; Y=%s\r\n"
"Host: %s\r\n"
"Cache-Control: no-cache\r\n\r\n",
@@ -366,7 +366,7 @@ yahoo_update_alias(PurpleConnection *gc,
}
request = g_strdup_printf("POST %s%s/%s HTTP/1.1\r\n"
- "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n"
+ "User-Agent: " YAHOO_CLIENT_USERAGENT_ALIAS "\r\n"
"Cookie: T=%s; Y=%s\r\n"
"Host: %s\r\n"
"Content-Length: %" G_GSIZE_FORMAT "\r\n"
@@ -481,7 +481,7 @@ yahoo_set_userinfo_cb(PurpleConnection *
purple_url_parse(yd->jp ? YAHOOJP_USERINFO_URL : YAHOO_USERINFO_URL, &webaddress, NULL, &webpage, NULL, NULL);
request = g_strdup_printf("POST %s HTTP/1.1\r\n"
- "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n"
+ "User-Agent: " YAHOO_CLIENT_USERAGENT_ALIAS "\r\n"
"Cookie: T=%s; path=/; domain=.yahoo.com; Y=%s;\r\n"
"Host: %s\r\n"
"Content-Length: %d\r\n"
@@ -518,7 +518,7 @@ yahoo_set_userinfo_cb(PurpleConnection *
#endif
url_data = purple_util_fetch_url_request_len_with_account(account, webaddress, FALSE,
- YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE, -1,
+ YAHOO_CLIENT_USERAGENT_ALIAS, TRUE, request, FALSE, -1,
yahoo_fetch_aliases_cb, gc);
if (url_data != NULL)
yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
diff --git a/libpurple/upnp.c b/libpurple/upnp.c
--- a/libpurple/upnp.c
+++ b/libpurple/upnp.c
@@ -258,7 +258,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/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 },
+ { PIDGIN_STOCK_ADD, N_("_Add..."), 0, 0, PACKAGE },
+ { PIDGIN_STOCK_OPEN_MAIL, N_("_Open Mail"), 0, 0, PACKAGE },
+ { PIDGIN_STOCK_PAUSE, N_("_Pause"), 0, 0, PACKAGE },
+ { PIDGIN_STOCK_EDIT, N_("_Edit"), 0, 0, PACKAGE }
};
typedef struct {
More information about the Commits
mailing list