changeset 27942:583c36c03e50

propagate from branch 'im.pidgin.pidgin' (head e54933232e44b0c259cee6eff8f9354e6b94fe5d) to branch 'im.pidgin.pidgin.yaz' (head 416fab2796f48c8af3e71470dd7995d0cfcdd6ea)
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 24 Apr 2009 07:43:08 +0000
parents f3ccb5a36fd6 (current diff) 951102c642c5 (diff)
children 684690dbda4a
files pidgin/gtkconv.c
diffstat 12 files changed, 98 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/AUTHORS	Sun Apr 19 04:04:50 2009 +0000
+++ b/AUTHORS	Fri Apr 24 07:43:08 2009 +0000
@@ -9,6 +9,7 @@
 ------------------
 
 Daniel 'datallah' Atallah - Developer
+Paul 'darkrain42' Aurich - Developer
 John 'rekkanoryo' Bailey - Developer
 Ethan 'Paco-Paco' Blanton - Developer
 Thomas Butter - Developer
@@ -35,7 +36,6 @@
 
 Crazy Patch Writers:
 -------------------
-Paul 'darkrain42' Aurich
 Marcus 'malu' Lundblad
 Dennis 'EvilDennisR' Ristuccia
 Peter 'Fmoo' Ruibal
--- a/ChangeLog	Sun Apr 19 04:04:50 2009 +0000
+++ b/ChangeLog	Fri Apr 24 07:43:08 2009 +0000
@@ -28,7 +28,6 @@
 	  channels.
 	* Notify the user if a /nick command fails, rather than trying
 	  fallback nicks.
-	
 
 	Pidgin:
 	* Added -f command line option to tell Pidgin to ignore NetworkManager
@@ -44,6 +43,9 @@
 	  new dialog box every time a pounce is triggered. (Jorge Villaseñor) 
 	* The New Account dialog is now broken into three tabs.  Proxy
 	  configuration has been moved from the Advanced tab to the new tab.
+	* The nicks of the persons who leave the chatroom are italicized in the
+	  chat's conversation history. The nicks are un-italicized when they
+	  rejoin.
 
 	Finch:
 	* The hardware cursor is updated correctly. This will be useful
--- a/finch/gntblist.c	Sun Apr 19 04:04:50 2009 +0000
+++ b/finch/gntblist.c	Fri Apr 24 07:43:08 2009 +0000
@@ -935,7 +935,7 @@
 	else if (PURPLE_BLIST_NODE_IS_GROUP(node))
 		return purple_group_get_name((PurpleGroup*)node);
 
-	snprintf(text, sizeof(text) - 1, "%s %s", status, name);
+	g_snprintf(text, sizeof(text) - 1, "%s %s", status, name);
 
 	return text;
 }
@@ -2642,7 +2642,7 @@
 		char menuid[128];
 		FinchBlistManager *manager = iter->data;
 		GntMenuItem *item = gnt_menuitem_new(_(manager->name));
-		snprintf(menuid, sizeof(menuid), "grouping-%s", manager->id);
+		g_snprintf(menuid, sizeof(menuid), "grouping-%s", manager->id);
 		gnt_menuitem_set_id(GNT_MENU_ITEM(item), menuid);
 		gnt_menu_add_item(GNT_MENU(subsub), item);
 		g_object_set_data_full(G_OBJECT(item), "grouping-id", g_strdup(manager->id), g_free);
--- a/finch/gntnotify.c	Sun Apr 19 04:04:50 2009 +0000
+++ b/finch/gntnotify.c	Fri Apr 24 07:43:08 2009 +0000
@@ -263,7 +263,7 @@
 userinfo_hash(PurpleAccount *account, const char *who)
 {
 	char key[256];
-	snprintf(key, sizeof(key), "%s - %s", purple_account_get_username(account), purple_normalize(account, who));
+	g_snprintf(key, sizeof(key), "%s - %s", purple_account_get_username(account), purple_normalize(account, who));
 	return g_utf8_strup(key, -1);
 }
 
--- a/libpurple/plugin.h	Sun Apr 19 04:04:50 2009 +0000
+++ b/libpurple/plugin.h	Fri Apr 24 07:43:08 2009 +0000
@@ -105,6 +105,20 @@
 	void *ui_info; /**< Used only by UI-specific plugins to build a preference screen with a custom UI */
 	void *extra_info;
 	PurplePluginUiInfo *prefs_info; /**< Used by any plugin to display preferences.  If #ui_info has been specified, this will be ignored. */
+
+	/**
+	 * This callback has a different use depending on whether this
+	 * plugin type is PURPLE_PLUGIN_STANDARD or PURPLE_PLUGIN_PROTOCOL.
+	 *
+	 * If PURPLE_PLUGIN_STANDARD then the list of actions will show up
+	 * in the Tools menu, under a submenu with the name of the plugin.
+	 * context will be NULL.
+	 *
+	 * If PURPLE_PLUGIN_PROTOCOL then the list of actions will show up
+	 * in the Accounts menu, under a submenu with the name of the
+	 * account.  context will be set to the PurpleConnection for that
+	 * account.  This callback will only be called for online accounts.
+	 */
 	GList *(*actions)(PurplePlugin *plugin, gpointer context);
 
 	void (*_purple_reserved1)(void);
--- a/libpurple/protocols/jabber/jingle/content.c	Sun Apr 19 04:04:50 2009 +0000
+++ b/libpurple/protocols/jabber/jingle/content.c	Fri Apr 24 07:43:08 2009 +0000
@@ -391,7 +391,13 @@
 jingle_content_parse(xmlnode *content)
 {
 	const gchar *type = xmlnode_get_namespace(xmlnode_get_child(content, "description"));
-	return JINGLE_CONTENT_CLASS(g_type_class_ref(jingle_get_type(type)))->parse(content);
+	GType jingle_type = jingle_get_type(type);
+
+	if (jingle_type != G_TYPE_NONE) {
+		return JINGLE_CONTENT_CLASS(g_type_class_ref(jingle_type))->parse(content);
+	} else {
+		return NULL;
+	}
 }
 
 static xmlnode *
--- a/libpurple/protocols/qq/ChangeLog	Sun Apr 19 04:04:50 2009 +0000
+++ b/libpurple/protocols/qq/ChangeLog	Fri Apr 24 07:43:08 2009 +0000
@@ -1,3 +1,6 @@
+2009.04.23 - flos <lonicerae(at)gmail.com>
+	* Fixed a bug of updating buddy who is not in user's buddy list
+
 2009.02.25 - flos <lonicerae(at)gmail.com>
 	* Changed text 'ZipCode' to 'Postal Code'
 
--- a/libpurple/protocols/qq/buddy_info.c	Sun Apr 19 04:04:50 2009 +0000
+++ b/libpurple/protocols/qq/buddy_info.c	Fri Apr 24 07:43:08 2009 +0000
@@ -606,21 +606,21 @@
 /* after getting info or modify myself, refresh the buddy list accordingly */
 static void update_buddy_info(PurpleConnection *gc, gchar **segments)
 {
-	PurpleBuddy *buddy;
-	qq_data *qd;
-	qq_buddy_data *bd;
+	PurpleBuddy *buddy = NULL;
+	qq_data *qd = NULL;
+	qq_buddy_data *bd = NULL;
 	guint32 uid;
 	gchar *who;
 	gchar *alias_utf8;
+
 	PurpleAccount *account = purple_connection_get_account(gc);
-
 	qd = (qq_data *)purple_connection_get_protocol_data(gc);
 
 	uid = strtoul(segments[QQ_INFO_UID], NULL, 10);
 	who = uid_to_purple_name(uid);
-
 	qq_filter_str(segments[QQ_INFO_NICK]);
 	alias_utf8 = qq_to_utf8(segments[QQ_INFO_NICK], QQ_CHARSET_DEFAULT);
+
 	if (uid == qd->uid) {	/* it is me */
 		purple_debug_info("QQ", "Got my info\n");
 		qd->my_icon = strtol(segments[QQ_INFO_FACE], NULL, 10);
@@ -631,12 +631,14 @@
 		buddy = qq_buddy_find_or_new(gc, uid);
 	} else {
 		buddy = purple_find_buddy(gc->account, who);
+		/* purple_debug_info("QQ", "buddy=%p\n", (void*)buddy); */
 	}
 
 	/* if the buddy is null, the api will catch it and return null here */
 	bd = purple_buddy_get_protocol_data(buddy);
+	/* purple_debug_info("QQ", "bd=%p\n", (void*)bd); */
 
-	if (buddy == NULL || bd) {
+	if (bd == NULL || buddy == NULL) {
 		g_free(who);
 		g_free(alias_utf8);
 		return;
@@ -646,6 +648,7 @@
 	bd->age = strtol(segments[QQ_INFO_AGE], NULL, 10);
 	bd->gender = strtol(segments[QQ_INFO_GENDER], NULL, 10);
 	bd->face = strtol(segments[QQ_INFO_FACE], NULL, 10);
+
 	if (alias_utf8 != NULL) {
 		if (bd->nickname) g_free(bd->nickname);
 		bd->nickname = g_strdup(alias_utf8);
--- a/pidgin/gtkconv.c	Sun Apr 19 04:04:50 2009 +0000
+++ b/pidgin/gtkconv.c	Fri Apr 24 07:43:08 2009 +0000
@@ -4107,6 +4107,11 @@
 				"send-name");
 		g_object_get(tag, "foreground-gdk", &color, NULL);
 	} else {
+		GtkTextTag *tag;
+		if ((tag = get_buddy_tag(conv, name, 0, FALSE)))
+			g_object_set(G_OBJECT(tag), "style", PANGO_STYLE_NORMAL, NULL);
+		if ((tag = get_buddy_tag(conv, name, PURPLE_MESSAGE_NICK, FALSE)))
+			g_object_set(G_OBJECT(tag), "style", PANGO_STYLE_NORMAL, NULL);
 		color = (GdkColor*)get_nick_color(gtkconv, name);
 	}
 
@@ -6153,6 +6158,7 @@
 	PurpleConvChatBuddy *cbuddy;
 	GtkTreeIter iter;
 	GtkTreeModel *model;
+	GtkTextTag *tag;
 	int f = 1;
 
 	chat    = PURPLE_CONV_CHAT(conv);
@@ -6180,6 +6186,11 @@
 		g_free(val);
 	}
 
+	if ((tag = get_buddy_tag(conv, old_name, 0, FALSE)))
+		g_object_set(G_OBJECT(tag), "style", PANGO_STYLE_ITALIC, NULL);
+	if ((tag = get_buddy_tag(conv, old_name, PURPLE_MESSAGE_NICK, FALSE)))
+		g_object_set(G_OBJECT(tag), "style", PANGO_STYLE_ITALIC, NULL);
+
 	if (!purple_conv_chat_find_user(chat, old_name))
 		return;
 
@@ -6202,6 +6213,7 @@
 	char tmp[BUF_LONG];
 	int num_users;
 	gboolean f;
+	GtkTextTag *tag;
 
 	chat    = PURPLE_CONV_CHAT(conv);
 	gtkconv = PIDGIN_CONVERSATION(conv);
@@ -6234,6 +6246,11 @@
 
 			g_free(val);
 		} while (f);
+
+		if ((tag = get_buddy_tag(conv, l->data, 0, FALSE)))
+			g_object_set(G_OBJECT(tag), "style", PANGO_STYLE_ITALIC, NULL);
+		if ((tag = get_buddy_tag(conv, l->data, PURPLE_MESSAGE_NICK, FALSE)))
+			g_object_set(G_OBJECT(tag), "style", PANGO_STYLE_ITALIC, NULL);
 	}
 
 	g_snprintf(tmp, sizeof(tmp),
--- a/pidgin/gtkdialogs.c	Sun Apr 19 04:04:50 2009 +0000
+++ b/pidgin/gtkdialogs.c	Fri Apr 24 07:43:08 2009 +0000
@@ -73,6 +73,7 @@
 /* Order: Alphabetical by Last Name */
 static const struct developer developers[] = {
 	{"Daniel 'datallah' Atallah",	NULL, NULL},
+	{"Paul 'darkrain42' Aurich",	NULL, NULL },
 	{"John 'rekkanoryo' Bailey",	N_("bug master"), "rekkanoryo@pidgin.im"},
 	{"Ethan 'Paco-Paco' Blanton",	NULL, NULL},
 	{"Hylke Bons",			N_("artist"), "h.bons@student.rug.nl"},
@@ -101,7 +102,6 @@
 
 /* Order: Alphabetical by Last Name */
 static const struct developer patch_writers[] = {
-	{"Paul 'darkrain42' Aurich", NULL, NULL },
 	{"Marcus 'malu' Lundblad", NULL, NULL},
 	{"Dennis 'EvilDennisR' Ristuccia",	N_("Senior Contributor/QA"),	NULL},
 	{"Peter 'Fmoo' Ruibal",		NULL,	NULL},
--- a/pidgin/win32/nsis/pidgin-installer.nsi	Sun Apr 19 04:04:50 2009 +0000
+++ b/pidgin/win32/nsis/pidgin-installer.nsi	Fri Apr 24 07:43:08 2009 +0000
@@ -813,6 +813,7 @@
 
     ; Shortcuts..
     Delete "$DESKTOP\Pidgin.lnk"
+    Delete "$SMPROGRAMS\Pidgin.lnk"
 
     Goto done
 
--- a/po/de.po	Sun Apr 19 04:04:50 2009 +0000
+++ b/po/de.po	Fri Apr 24 07:43:08 2009 +0000
@@ -11,10 +11,10 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-16 16:28+0200\n"
-"PO-Revision-Date: 2009-04-16 16:27+0200\n"
-"Last-Translator: Björn Voigt <bjoern@cs.tu-berlin.de>\n"
-"Language-Team: German <de@li.org>\n"
+"POT-Creation-Date: 2009-04-23 19:04+0200\n"
+"PO-Revision-Date: 2009-04-23 19:02+0200\n"
+"Last-Translator: Jochen Kemnade <jochenkemnade@web.de>\n"
+"Language-Team: Deutsch <de@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -902,6 +902,8 @@
 #, c-format
 msgid "%s is trying to start an unsupported media session type with you."
 msgstr ""
+"%s versucht, einen nicht unterstützten Typ von Medien-Sitzung mit Ihnen zu "
+"starten."
 
 msgid "You have rejected the call."
 msgstr "Sie haben den Anruf abgelehnt."
@@ -1564,19 +1566,20 @@
 "\n"
 "Fetching TinyURL..."
 msgstr ""
+"\n"
+"Hole TinyURL..."
 
 msgid "Only create TinyURL for urls of this length or greater"
-msgstr ""
+msgstr "TinyURL nur für URLs mit mindestens dieser Länge generieren"
 
 msgid "TinyURL (or other) address prefix"
 msgstr ""
 
-#, fuzzy
 msgid "TinyURL"
-msgstr "URL anpassen"
+msgstr "TinyURL"
 
 msgid "TinyURL plugin"
-msgstr ""
+msgstr "TinyURL-Plugin"
 
 msgid "When receiving a message with URL(s), TinyURL for easier copying"
 msgstr ""
@@ -3451,6 +3454,17 @@
 "Ihr gewählter Kontoname wurde vom Server abgelehnt.  Er enthält vermutlich "
 "ungültige Zeichen."
 
+#. We only want to do the following dance if the connection
+#. has not been successfully completed.  If it has, just
+#. notify the user that their /nick command didn't go.
+#, c-format
+msgid "The nickname \"%s\" is already being used."
+msgstr "Der Spitzname \"%s\" existiert bereits."
+
+#, fuzzy
+msgid "Nickname in use"
+msgstr "Spitzname"
+
 msgid "Cannot change nick"
 msgstr "Kann den Spitznamen nicht ändern"
 
@@ -3797,9 +3811,8 @@
 msgid "Operating System"
 msgstr "Betriebssystem"
 
-#, fuzzy
 msgid "Local Time"
-msgstr "Lokale Datei:"
+msgstr "Lokale Zeit"
 
 msgid "Last Activity"
 msgstr "Letzte Aktivität"
@@ -4546,29 +4559,33 @@
 msgid "%s has buzzed you!"
 msgstr "%s hat bei Ihnen angeklopft!"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to initiate media with %s: invalid JID"
-msgstr "Kann die Nachricht an %s nicht senden, ungültige JID"
-
-#, fuzzy, c-format
+msgstr "Medien-Sitzung mit %s konnte nicht gestartet werden: ungültige JID"
+
+#, c-format
 msgid "Unable to initiate media with %s: user is not online"
-msgstr "Kann die Datei nicht an %s senden, Benutzer ist nicht online"
-
-#, fuzzy, c-format
+msgstr ""
+"Medien-Sitzung mit %s konnte nicht gestartet werden: Benutzer ist nicht "
+"online"
+
+#, c-format
 msgid "Unable to initiate media with %s: not subscribed to user presence"
 msgstr ""
-"Kann die Datei nicht an %s senden, Anwesenheit des Benutzers nicht abonniert"
+"Medien-Sitzung mit %s konnte nicht gestartet werden: Anwesenheit des "
+"Benutzers nicht abonniert"
 
 #, fuzzy
 msgid "Media Initiation Failed"
 msgstr "Registrierung fehlgeschlagen"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Please select the resource of %s with which you would like to start a media "
 "session."
 msgstr ""
-"Bitte wählen Sie die Ressource von %s, an die Sie eine Datei schicken möchten"
+"Bitte wählen Sie die Ressource von %s, mir der Sie eine Medien-Sitzung "
+"starten möchten"
 
 msgid "Select a Resource"
 msgstr "Wählen Sie eine Ressource"
@@ -12194,11 +12211,11 @@
 
 #, c-format
 msgid "%s wishes to start an audio/video session with you."
-msgstr ""
+msgstr "%s möchte eine Audio-/Video-Sitzung mit Ihnen starten."
 
 #, c-format
 msgid "%s wishes to start a video session with you."
-msgstr ""
+msgstr "%s möchte eine Video-Sitzung mit Ihnen starten."
 
 #, c-format
 msgid "%s has %d new message."