changeset 20750:0ee0cad488b4

merge of '40d389dd2daa85ead2860fa3617e9fc354476bf8' and 'ef27aa2268c20c7b9bc1cde4850481b6442ac22d'
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 02 Oct 2007 03:46:43 +0000
parents 9071ddcd48df (diff) 2e711c2d080e (current diff)
children fe77cc691f78
files
diffstat 11 files changed, 130 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Oct 02 02:19:14 2007 +0000
+++ b/ChangeLog	Tue Oct 02 03:46:43 2007 +0000
@@ -2,9 +2,9 @@
 
 version 2.2.2:
 	http://developer.pidgin.im/query?status=closed&milestone=2.2.2
-		NOTE: Due to the backporting that happened for the 2.2.1
-		      release, it is possible bugs this release fixes bugs
-		      that were marked as fixed in 2.2.1.
+		NOTE: Due to 2.2.1 being a security fix release, some bugs
+		      marked fixed in 2.2.1 may not have been fixed until
+		      this release (2.2.2).
 
 	libpurple:
 	* Real usernames are now shown in the system log.
@@ -64,7 +64,7 @@
 	* New protocol plugin: MySpaceIM (Jeff Connelly, Google Summer of
 	  Code)
 	* XMPP enhancements. See
-	  http://www.adiumx.com/blog/2007/07/soc-xmpp-update.php (Andreas 
+ 	  http://www.adiumx.com/blog/2007/07/soc-xmpp-update.php (Andreas 
 	  Monitzer, Google Summer of Code for Adium)
 	* Certificate management. Libpurple will validate certificates on
 	  SSL-encrypted protocols (William Ehlhardt, Google Summer of Code)
--- a/NEWS	Tue Oct 02 02:19:14 2007 +0000
+++ b/NEWS	Tue Oct 02 03:46:43 2007 +0000
@@ -5,6 +5,20 @@
 	ready for a general release.  Instead, this is basically a bug fix
 	release.
 
+	Luke: Unfortunately the necessity of this bug fix release means
+	some of the tickets that have been closed as part of the 2.2.1
+	milestone are not actually fixed yet.  We have grabbed as many
+	of the changes as we could while avoiding those that are as
+	yet unstable though, and this should still be a marked
+	improvement over 2.2.0.  We have spent a lot of time since the
+	last release looking at the tickets that have been submitted
+	and many of them have been closed.
+
+	Stu: I haven't NEWS'd in a while. I haven't actually done much for
+	too long also, maybe I'll find some time soon. This release is
+	basically what 2.2.0 should have been - it actually compiles this
+	time.
+
 2.2.0 (9/13/2007):
 	Sean: 2.2.0 contains the results of several major Google Summer
 	of Code branches bringing some new, extraordinary features. We
--- a/finch/gntblist.c	Tue Oct 02 02:19:14 2007 +0000
+++ b/finch/gntblist.c	Tue Oct 02 03:46:43 2007 +0000
@@ -2202,12 +2202,12 @@
 	group = purple_request_field_group_new(NULL);
 	purple_request_fields_add_group(fields, group);
 
-	field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
+	field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE);
 	purple_request_field_set_type_hint(field, "screenname");
 	purple_request_field_set_required(field, TRUE);
 	purple_request_field_group_add_field(group, field);
 
-	field = purple_request_field_account_new("account", _("_Account"), NULL);
+	field = purple_request_field_account_new("account", _("Account"), NULL);
 	purple_request_field_set_type_hint(field, "account");
 	purple_request_field_set_visible(field,
 		(purple_connections_get_all() != NULL &&
@@ -2227,6 +2227,69 @@
 }
 
 static void
+join_chat_select_cb(gpointer data, PurpleRequestFields *fields)
+{
+	PurpleAccount *account;
+	const char *name;
+	PurpleConnection *gc;
+	PurpleChat *chat;
+	GHashTable *hash = NULL;
+
+	account = purple_request_fields_get_account(fields, "account");
+	name = purple_request_fields_get_string(fields,  "chat");
+
+	if (!purple_account_is_connected(account))
+		return;
+
+	gc = purple_account_get_connection(account);	
+	purple_conversation_new(PURPLE_CONV_TYPE_CHAT, account, name);
+	chat = purple_blist_find_chat(account, name);
+	if (chat == NULL) {
+		if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL)
+			hash = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, name);
+	} else {
+		hash = chat->components;
+	}
+	serv_join_chat(gc, hash);
+	if (chat == NULL && hash != NULL)
+		g_hash_table_destroy(hash);
+}
+
+static void
+join_chat_select(GntMenuItem *item, gpointer n)
+{
+	PurpleRequestFields *fields;
+	PurpleRequestFieldGroup *group;
+	PurpleRequestField *field;
+
+	fields = purple_request_fields_new();
+
+	group = purple_request_field_group_new(NULL);
+	purple_request_fields_add_group(fields, group);
+
+	field = purple_request_field_string_new("chat", _("Channel"), NULL, FALSE);
+	purple_request_field_set_required(field, TRUE);
+	purple_request_field_group_add_field(group, field);
+
+	field = purple_request_field_account_new("account", _("Account"), NULL);
+	purple_request_field_set_type_hint(field, "account");
+	purple_request_field_set_visible(field,
+		(purple_connections_get_all() != NULL &&
+		 purple_connections_get_all()->next != NULL));
+	purple_request_field_set_required(field, TRUE);
+	purple_request_field_group_add_field(group, field);
+
+	purple_request_fields(purple_get_blist(), _("Join a Chat"),
+						NULL,
+						_("Please enter the name of the chat you want to join."),
+						fields,
+						_("Join"), G_CALLBACK(join_chat_select_cb),
+						_("Cancel"), NULL,
+						NULL, NULL, NULL,
+						NULL);
+}
+
+static void
 menu_add_buddy_cb(GntMenuItem *item, gpointer null)
 {
 	purple_blist_request_add_buddy(NULL, NULL, NULL, NULL);
@@ -2268,6 +2331,10 @@
 	gnt_menu_add_item(GNT_MENU(sub), item);
 	gnt_menuitem_set_callback(GNT_MENU_ITEM(item), send_im_select, NULL);
 
+	item = gnt_menuitem_new(_("Join Chat..."));
+	gnt_menu_add_item(GNT_MENU(sub), item);
+	gnt_menuitem_set_callback(GNT_MENU_ITEM(item), join_chat_select, NULL);
+
 	item = gnt_menuitem_new(_("Show"));
 	gnt_menu_add_item(GNT_MENU(sub), item);
 	subsub = gnt_menu_new(GNT_MENU_POPUP);
--- a/finch/libgnt/gntstyle.c	Tue Oct 02 02:19:14 2007 +0000
+++ b/finch/libgnt/gntstyle.c	Tue Oct 02 03:46:43 2007 +0000
@@ -26,7 +26,6 @@
 
 #include <glib.h>
 #include <ctype.h>
-#include <glib/gprintf.h>
 #include <stdlib.h>
 #include <string.h>
 
--- a/finch/libgnt/gntwm.c	Tue Oct 02 02:19:14 2007 +0000
+++ b/finch/libgnt/gntwm.c	Tue Oct 02 03:46:43 2007 +0000
@@ -27,8 +27,8 @@
 
 #include "config.h"
 
+#include <glib.h>
 #include <ctype.h>
-#include <glib/gprintf.h>
 #include <gmodule.h>
 #include <stdlib.h>
 #include <string.h>
--- a/libpurple/protocols/jabber/google.c	Tue Oct 02 02:19:14 2007 +0000
+++ b/libpurple/protocols/jabber/google.c	Tue Oct 02 03:46:43 2007 +0000
@@ -64,7 +64,8 @@
 	message = xmlnode_get_child(child, "mail-thread-info");
 
 	if (count == 0 || !message) {
-		purple_notify_emails(js->gc, count, FALSE, NULL, NULL, (const char**) default_tos, NULL, NULL, NULL);
+		if (count > 0)
+			purple_notify_emails(js->gc, count, FALSE, NULL, NULL, (const char**) default_tos, NULL, NULL, NULL);
 		g_free(default_tos[0]);
 		return;
 	}
--- a/libpurple/protocols/jabber/jutil.h	Tue Oct 02 02:19:14 2007 +0000
+++ b/libpurple/protocols/jabber/jutil.h	Tue Oct 02 03:46:43 2007 +0000
@@ -22,8 +22,6 @@
 #ifndef _PURPLE_JABBER_JUTIL_H_
 #define _PURPLE_JABBER_JUTIL_H_
 
-#include "account.h"
-
 typedef struct _JabberID {
 	char *node;
 	char *domain;
--- a/pidgin/gtkconv.c	Tue Oct 02 02:19:14 2007 +0000
+++ b/pidgin/gtkconv.c	Tue Oct 02 03:46:43 2007 +0000
@@ -6835,7 +6835,9 @@
 
 	event = gtk_event_box_new();
 	gtk_container_add(GTK_CONTAINER(gtkconv->u.im->icon_container), event);
+#if GTK_CHECK_VERSION(2,4,0)
 	gtk_event_box_set_visible_window(GTK_EVENT_BOX(event), FALSE);
+#endif
 	gtk_widget_add_events(event,
                               GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK);
 	g_signal_connect(G_OBJECT(event), "button-press-event",
@@ -8940,7 +8942,9 @@
 
 	/* Close button. */
 	gtkconv->close = gtk_event_box_new();
+#if GTK_CHECK_VERSION(2,4,0)
 	gtk_event_box_set_visible_window(GTK_EVENT_BOX(gtkconv->close), FALSE);
+#endif
 	gtk_widget_set_events(gtkconv->close, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK);
 	close_image = gtk_label_new("×");
 	g_signal_connect(G_OBJECT(gtkconv->close), "enter-notify-event", G_CALLBACK(close_button_entered_cb), close_image);
--- a/pidgin/gtknotify.c	Tue Oct 02 02:19:14 2007 +0000
+++ b/pidgin/gtknotify.c	Tue Oct 02 03:46:43 2007 +0000
@@ -430,7 +430,12 @@
 						PIDGIN_MAIL_DATA, &data, -1);
 				if (data->account == account) {
 					if (clear) {
+#if GTK_CHECK_VERSION(2,2,0)
 						advanced = gtk_tree_store_remove(treemodel, &iter);
+#else
+						gtk_tree_store_remove(treemodel, &iter);
+						advanced = (iter.stamp == 0) ? FALSE : TRUE;
+#endif
 						purple_notify_close(PURPLE_NOTIFY_EMAILS, data);
 						/* We're completely done if we've processed all entries */
 						if (!advanced)
--- a/pidgin/win32/nsis/translations/arabic.nsh	Tue Oct 02 02:19:14 2007 +0000
+++ b/pidgin/win32/nsis/translations/arabic.nsh	Tue Oct 02 03:46:43 2007 +0000
@@ -2,64 +2,59 @@
 ;;  Arabic.nsh
 ;;
 ;;  Arabic language translated strings for the Windows Pidgin NSIS installer.
-;;  Windows Code page: 1252
+;;  Windows Code page: 1256
 ;;
 ;;  Version 3
-;;  Note: If translating this file, replace '!insertmacro PIDGIN_MACRO_DEFAULT_STRING'
-;;  with '!define'.
-
-; Make sure to update the PIDGIN_MACRO_LANGUAGEFILE_END macro in
-; langmacros.nsh when updating this file
 
 ; Startup Checks
-!define INSTALLER_IS_RUNNING			"المثبِّت يعمل بالفعل."
-!define PIDGIN_IS_RUNNING			"بِدْجِن يعمل حاليا.  من فضلك أغلق بِدْجن ثم أعد المحاولة."
-!define GTK_INSTALLER_NEEDED			"بيئة جتك+ (GTK+) مفقودة أو تحتاج للتحديث.$\rمن فضلك ثبِّت v${GTK_MIN_VERSION} أو أحدث من بيئة جتك+"
+!define INSTALLER_IS_RUNNING			"  ."
+!define PIDGIN_IS_RUNNING			"  .        ."
+!define GTK_INSTALLER_NEEDED			" + (GTK+)    .$\r   v${GTK_MIN_VERSION}     +"
 
 ; License Page
-!define PIDGIN_LICENSE_BUTTON			"التالي >"
-!define PIDGIN_LICENSE_BOTTOM_TEXT		"$(^Name) يخضع لرخصة جنو العموميّة العامة (GPL). الرخصة المعطاة هنا لغرض الإعلام فقط. $_CLICK"
+!define PIDGIN_LICENSE_BUTTON			" >"
+!define PIDGIN_LICENSE_BOTTOM_TEXT		"$(^Name)      (GPL).      . $_CLICK"
 
 ; Components Page
-!define PIDGIN_SECTION_TITLE			"عميل التراسل الفوري بِدْجِن (مطلوب)"
-!define GTK_SECTION_TITLE			"بيئة جتك+ (مطلوبة إن لم تكن موجودة)"
-!define PIDGIN_SHORTCUTS_SECTION_TITLE		"الاختصارات"
-!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE	"سطح المكتب"
-!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE	"قائمة ابدأ"
-!define PIDGIN_SECTION_DESCRIPTION		" و ملفات لُب بِدْجِن dll"
-!define GTK_SECTION_DESCRIPTION		"عدّة واجهة رسوميّة متعددة المنصات، يستخدمها بِدْجِن."
+!define PIDGIN_SECTION_TITLE			"    ()"
+!define GTK_SECTION_TITLE			" + (    )"
+!define PIDGIN_SHORTCUTS_SECTION_TITLE		""
+!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE	" "
+!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE	" "
+!define PIDGIN_SECTION_DESCRIPTION		"     dll"
+!define GTK_SECTION_DESCRIPTION		"    ʡ  ."
 
-!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION	"اختصارات لبدأ بِدْجِن"
-!define PIDGIN_DESKTOP_SHORTCUT_DESC		"أنشئ اختصارا لبِدْجِن على سطح المكتب"
-!define PIDGIN_STARTMENU_SHORTCUT_DESC		"أنشئ مُدخلة لبدجن في قائمة ابدأ"
+!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION	"  "
+!define PIDGIN_DESKTOP_SHORTCUT_DESC		"     "
+!define PIDGIN_STARTMENU_SHORTCUT_DESC		"     "
 
 ; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT			"وُجِدت نسخة قديمة من بيئة جتك+. أتريد التحديث؟$\rلاحظ: قد لا يعمل $(^Name) مالم تفعل هذا."
-!define GTK_WINDOWS_INCOMPATIBLE		"لا يتوافق ويندوز 95/98/Me مع جتك+ 2.8.0 أو أحدث.  جتك+ ${GTK_INSTALL_VERSION} لن تُثبّت.$\rإذا لم يكن لديك جتك+ ${GTK_MIN_VERSION} أو أحدث مثبتة بالفعل، سيُحبط التثبيت."
+!define GTK_UPGRADE_PROMPT			"     +.  ˿$\r:    $(^Name)   ."
+!define GTK_WINDOWS_INCOMPATIBLE		"   95/98/Me  + 2.8.0  .  + ${GTK_INSTALL_VERSION}  .$\r    + ${GTK_MIN_VERSION}      ."
 
 ; Installer Finish Page
-!define PIDGIN_FINISH_VISIT_WEB_SITE		"قم بزيارة صفحة بدجن على الوِب"
+!define PIDGIN_FINISH_VISIT_WEB_SITE		"     "
 
 ; Pidgin Section Prompts and Texts
-!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL	"تعذّر إزالة نسخة بدجن المثبّتة. ثتُثبّت النسخة الحديثة بدون إزالة النسخة المثبّتة مسبقا."
+!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL	"    .        ."
 
 ; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR			"خطأ أثناء تثبيت بيئة جتك+."
-!define GTK_BAD_INSTALL_PATH			"لا يمكن الوصول أو إنشاء المسار الذي حددته."
+!define GTK_INSTALL_ERROR			"    +."
+!define GTK_BAD_INSTALL_PATH			"       ."
 
 ; URL Handler section
-!define URI_HANDLERS_SECTION_TITLE		"متعاملات المسارات"
+!define URI_HANDLERS_SECTION_TITLE		" "
 
 ; Uninstall Section Prompts
-!define un.PIDGIN_UNINSTALL_ERROR_1		"لم يُعثر المثبت على خانات السجل الخاصة ببدجن.$\rغالبا ثبت هذا البرنامج مستخدم آخر."
-!define un.PIDGIN_UNINSTALL_ERROR_2		"لا تملك الصلاحيات لتثبيت هذا التطبيق."
+!define un.PIDGIN_UNINSTALL_ERROR_1		"       .$\r     ."
+!define un.PIDGIN_UNINSTALL_ERROR_2		"     ."
 
 ; Spellcheck Section Prompts
-!define PIDGIN_SPELLCHECK_SECTION_TITLE	"دعم التدقيق الإملائي"
-!define PIDGIN_SPELLCHECK_ERROR		"خطأ أثناء تثبيت التدقيق الإملائي"
-!define PIDGIN_SPELLCHECK_DICT_ERROR		"خطأ أثناء تثبيت قاموس التدقيق الإملائي"
-!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION	"دعم التدقيق الإملائي.  (مطلوب اتصال بالإنترنت للتثبيت)"
-!define ASPELL_INSTALL_FAILED			"فشل التثبيت"
+!define PIDGIN_SPELLCHECK_SECTION_TITLE	"  "
+!define PIDGIN_SPELLCHECK_ERROR		"    "
+!define PIDGIN_SPELLCHECK_DICT_ERROR		"     "
+!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION	"  .  (   )"
+!define ASPELL_INSTALL_FAILED			" "
 !define PIDGIN_SPELLCHECK_BRETON		"Breton"
 !define PIDGIN_SPELLCHECK_CATALAN		"Catalan"
 !define PIDGIN_SPELLCHECK_CZECH		"Czech"
--- a/po/stats.pl	Tue Oct 02 02:19:14 2007 +0000
+++ b/po/stats.pl	Tue Oct 02 03:46:43 2007 +0000
@@ -32,7 +32,7 @@
 $lang{en_GB} = "English (British)";
 $lang{my_MM} = "Burmese (Myanmar)";
 $lang{pt_BR} = "Portuguese (Brazilian)";
-$lang{'sr@Latn'} = "Serbian (Latin)";
+$lang{'sr@latin'} = "Serbian (Latin)";
 $lang{zh_CN} = "Chinese (Simplified)";
 $lang{zh_HK} = "Chinese (Hong Kong)";
 $lang{zh_TW} = "Chinese (Traditional)";