# HG changeset patch # User Sadrul Habib Chowdhury # Date 1191296803 0 # Node ID 0ee0cad488b45e34968b94fb59d7f7746444d447 # Parent 9071ddcd48dfdbb7284298b1114266a54f2acfec# Parent 2e711c2d080e453510fad94615870924d5e1ab24 merge of '40d389dd2daa85ead2860fa3617e9fc354476bf8' and 'ef27aa2268c20c7b9bc1cde4850481b6442ac22d' diff -r 2e711c2d080e -r 0ee0cad488b4 COPYRIGHT diff -r 2e711c2d080e -r 0ee0cad488b4 ChangeLog --- 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) diff -r 2e711c2d080e -r 0ee0cad488b4 NEWS --- 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 diff -r 2e711c2d080e -r 0ee0cad488b4 finch/gntblist.c --- 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); diff -r 2e711c2d080e -r 0ee0cad488b4 finch/gntconn.c diff -r 2e711c2d080e -r 0ee0cad488b4 finch/gntconv.c diff -r 2e711c2d080e -r 0ee0cad488b4 finch/libgnt/gntstyle.c --- 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 #include -#include #include #include diff -r 2e711c2d080e -r 0ee0cad488b4 finch/libgnt/gntwm.c --- 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 #include -#include #include #include #include diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/jabber/google.c --- 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; } diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/jabber/jabber.c diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/jabber/jutil.h --- 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; diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/msn/directconn.c diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/msn/msn.c diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/msn/servconn.c diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/myspace/markup.c diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/protocols/myspace/user.c diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/util.c diff -r 2e711c2d080e -r 0ee0cad488b4 libpurple/win32/win32dep.c diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/gtkblist.c diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/gtkcellrendererexpander.c diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/gtkconv.c --- 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); diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/gtkimhtmltoolbar.c diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/gtkmain.c diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/gtknotify.c --- 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) diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/gtkprefs.c diff -r 2e711c2d080e -r 0ee0cad488b4 pidgin/win32/nsis/translations/arabic.nsh --- 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" diff -r 2e711c2d080e -r 0ee0cad488b4 po/stats.pl --- 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)";