/pidgin/main: 3ce95eee429d: Merge in the public updates
Gary Kramlich <[email protected]> Mon, 20 Jun 2016 20:10:08 -0400
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 3ce95eee429d18ccaa77de7371cc8843f4dc8519 Author: Gary Kramlich <[email protected]> Date: 2016-06-18 19:12 -0500 Branch: release-2.x.y URL: https://hg.pidgin.im/pidgin/main/rev/3ce95eee429d Description: Merge in the public updates diffstat: ChangeLog | 30 +- ChangeLog.API | 12 + configure.ac | 6 +- libpurple/account.c | 60 + libpurple/account.h | 59 + libpurple/cmds.c | 62 +- libpurple/cmds.h | 65 +- libpurple/internal.h | 3 - libpurple/media.h | 2 + libpurple/media/backend-iface.h | 2 + libpurple/mediamanager.c | 82 +- libpurple/prefs.c | 389 +- libpurple/prefs.h | 114 + libpurple/protocols/irc/msgs.c | 11 +- libpurple/protocols/oscar/Makefile.am | 1 + libpurple/protocols/oscar/Makefile.mingw | 1 + libpurple/protocols/oscar/kerberos.c | 441 + libpurple/protocols/oscar/oscar.c | 94 +- libpurple/protocols/oscar/oscar.h | 7 +- libpurple/protocols/oscar/oscarcommon.h | 9 +- libpurple/util.c | 18 +- libpurple/util.h | 26 + libpurple/win32/global.mak | 2 +- pidgin/win32/gtkwin32dep.c | 14 +- pidgin/win32/nsis/pidgin-installer.nsi | 2 + po/POTFILES.in | 1 + po/ar.po | 377 +- po/ast.po | 109 +- po/br.po | 16068 +++------ po/ca.po | 112 +- po/cs.po | 324 +- po/de.po | 3317 +- po/el.po | 196 +- po/en_AU.po | 140 +- po/en_GB.po | 112 +- po/es.po | 308 +- po/es_AR.po | 290 +- po/et.po | 108 +- po/fa.po | 130 +- po/fi.po | 212 +- po/ga.po | 112 +- po/gl.po | 2402 +- po/he.po | 119 +- po/hi.po | 214 +- po/hu.po | 166 +- po/hy.po | 7158 +--- po/id.po | 114 +- po/import-from-transifex | 85 + po/it.po | 411 +- po/ja.po | 115 +- po/ka.po | 107 +- po/km.po | 109 +- po/ku_IQ.po | 106 +- po/lt.po | 164 +- po/lv.po | 7592 ++-- po/mai.po | 111 +- po/mr.po | 112 +- po/ms_MY.po | 7438 +---- po/my_MM.po | 112 +- po/nb.po | 3195 +- po/ne.po | 1301 +- po/nl.po | 156 +- po/nn.po | 193 +- po/oc.po | 138 +- po/pa.po | 112 +- po/pl.po | 831 +- po/pt.po | 181 +- po/pt_BR.po | 135 +- po/ro.po | 112 +- po/ru.po | 312 +- po/sl.po | 177 +- po/sq.po | 208 +- po/sv.po | 214 +- po/te.po | 109 +- po/tr.po | 2924 +- po/tt.po | 105 +- po/uk.po | 112 +- po/uz.po | 157 +- share/ca-certs/AOL_Member_CA.pem | 25 - share/ca-certs/AddTrust_External_Root.pem | 25 - share/ca-certs/America_Online_Root_Certification_Authority_1.pem | 23 - share/ca-certs/Baltimore_CyberTrust_Root.pem | 21 - share/ca-certs/Certum_Root_CA.pem | 19 - share/ca-certs/Certum_Trusted_Network_CA.pem | 22 - share/ca-certs/Deutsche_Telekom_Root_CA_2.pem | 23 - share/ca-certs/DigiCertHighAssuranceCA-3.pem | 36 - share/ca-certs/DigiCertHighAssuranceEVRootCA.pem | 23 - share/ca-certs/Entrust.net_2048.pem | 27 - share/ca-certs/Entrust.net_Secure_Server_CA.pem | 28 - share/ca-certs/Equifax_Secure_CA.pem | 20 - share/ca-certs/Equifax_Secure_Global_eBusiness_CA-1.pem | 16 - share/ca-certs/GTE_CyberTrust_Global_Root.pem | 16 - share/ca-certs/Go_Daddy_Class_2_CA.pem | 25 - share/ca-certs/Makefile.am | 42 +- share/ca-certs/Microsoft_Internet_Authority_2010.pem | 30 - share/ca-certs/Microsoft_Secure_Server_Authority_2010.pem | 35 - share/ca-certs/StartCom_Certification_Authority.pem | 44 - share/ca-certs/Thawte_Premium_Server_CA.pem | 19 - share/ca-certs/Thawte_Primary_Root_CA.pem | 25 - share/ca-certs/ValiCert_Class_2_VA.pem | 19 - share/ca-certs/VeriSign_Class3_Extended_Validation_CA.pem | 34 - share/ca-certs/VeriSign_Class_3_Primary_CA-G2.pem | 19 - share/ca-certs/VeriSign_Class_3_Primary_CA-G5-2.pem | 29 - share/ca-certs/VeriSign_Class_3_Primary_CA-G5.pem | 30 - share/ca-certs/VeriSign_International_Server_Class_3_CA.pem | 21 - share/ca-certs/Verisign_Class3_Primary_CA.pem | 14 - share/ca-certs/mk-ca-bundle.pl | 499 + share/ca-certs/mozilla.pem | 3865 ++ 108 files changed, 30047 insertions(+), 35762 deletions(-) diffs (truncated from 149672 to 300 lines): diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,18 +1,44 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul -version 2.10.13 (MM/DD/YY): +version 2.11.0 (06/21/16): + General: + * 2.10.12 was accidentally released with new additions to the API and + should have been released as 2.11.0. Unfortunately, we did not catch + the mistake until after 2.10.12 was released, but we're fixing it now. + See ChangeLog.API for more information. + + libpurple: + * media: fix an issue with ximagesink displaying only a corner cut-out of + a larger webcam video (Jakub Adam) + * mediamanager: update output window destruction so that it reflects recent + changes in the media pipeline structure (Jakub Adam) + * Ported Instantbird's CommandUiOps to libpurple (Dequis) + Pidgin: * Fixed #14962 * Fixed alignment of incoming right-to-left messages in protocols that - don't support rich text + don't support rich text * Fix a potential crash while exiting pidgin + AIM: + * Add support for the newer kerberos-based authentication of AIM 8.x + Windows-Specific Changes: * Use getaddrinfo for DNS to enable IPv6 (#1075) + * Updates to dependencies: + * NSS 3.24 and NSPR 4.12. Bonjour * Fixed building on Mac OSX (Patrick Cloke) (#16883) + ICQ: + * Stop truncating passwords to 8 characters like old ICQ clients did. + (#16692). If you actually needed this, truncate your password + manually by pressing backspace a few times. + + IRC: + * Base64-decode SASL messages before passing to libsasl (#16268) + MXit * Fixed a buffer overflow. Discovered by Yves Younan of Cisco Talos. (TALOS-CAN-0120) diff --git a/ChangeLog.API b/ChangeLog.API --- a/ChangeLog.API +++ b/ChangeLog.API @@ -5,6 +5,18 @@ version 2.11.0: Added: * account-status-changing signal (account signals) * buddy-removed-from-group signal (blist signals) + * PurpleCommandsUiOps, to allow the UI to override the + built-in handling of commands. + * PurplePrefsUiOps, to allow the UI to override the way global + preferences are stored. + * PurpleAccountPrefsUiOps, to allow the UI to handle storage + of account preferences. + * purple_media_set_encryption_parameters + * purple_media_set_decryption_parameters + * purple_xfer_write_file + * purple_xfer_read_file + * purple_media_set_send_rtcp_mux + * purple_media_backend_set_send_rtcp_mux version 2.10.12: * No changes diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -43,10 +43,10 @@ AC_PREREQ([2.50]) # # Make sure to update finch/libgnt/configure.ac with libgnt version changes. # -m4_define([purple_lt_current], [10]) +m4_define([purple_lt_current], [11]) m4_define([purple_major_version], [2]) -m4_define([purple_minor_version], [10]) -m4_define([purple_micro_version], [13]) +m4_define([purple_minor_version], [11]) +m4_define([purple_micro_version], [0]) m4_define([purple_version_suffix], [devel]) m4_define([purple_version], [purple_major_version.purple_minor_version.purple_micro_version]) diff --git a/libpurple/account.c b/libpurple/account.c --- a/libpurple/account.c +++ b/libpurple/account.c @@ -84,6 +84,7 @@ typedef struct } PurpleAccountRequestInfo; static PurpleAccountUiOps *account_ui_ops = NULL; +static PurpleAccountPrefsUiOps *account_prefs_ui_ops = NULL; static GList *accounts = NULL; static guint save_timer = 0; @@ -480,6 +481,7 @@ accounts_to_xmlnode(void) static void sync_accounts(void) { + PurpleAccountPrefsUiOps *ui_ops; xmlnode *node; char *data; @@ -490,6 +492,13 @@ sync_accounts(void) return; } + ui_ops = purple_account_prefs_get_ui_ops(); + + if (ui_ops != NULL && ui_ops->save != NULL) { + ui_ops->save(); + return; + } + node = accounts_to_xmlnode(); data = xmlnode_to_formatted_str(node, NULL); purple_util_write_data_to_file("accounts.xml", data, -1); @@ -508,6 +517,15 @@ save_cb(gpointer data) static void schedule_accounts_save(void) { + PurpleAccountPrefsUiOps *ui_ops; + + ui_ops = purple_account_prefs_get_ui_ops(); + + if (ui_ops != NULL && ui_ops->schedule_save != NULL) { + ui_ops->schedule_save(); + return; + } + if (save_timer == 0) save_timer = purple_timeout_add_seconds(5, save_cb, NULL); } @@ -1019,10 +1037,19 @@ parse_account(xmlnode *node) static void load_accounts(void) { + PurpleAccountPrefsUiOps *ui_ops; xmlnode *node, *child; accounts_loaded = TRUE; + ui_ops = purple_account_prefs_get_ui_ops(); + + if (ui_ops != NULL && ui_ops->load != NULL) { + ui_ops->load(); + _purple_buddy_icons_account_loaded_cb(); + return; + } + node = purple_util_read_xml_from_file("accounts.xml", _("accounts")); if (node == NULL) @@ -2036,6 +2063,7 @@ void purple_account_set_int(PurpleAccount *account, const char *name, int value) { PurpleAccountSetting *setting; + PurpleAccountPrefsUiOps *ui_ops; g_return_if_fail(account != NULL); g_return_if_fail(name != NULL); @@ -2047,6 +2075,12 @@ purple_account_set_int(PurpleAccount *ac g_hash_table_insert(account->settings, g_strdup(name), setting); + ui_ops = purple_account_prefs_get_ui_ops(); + + if (ui_ops != NULL && ui_ops->set_int != NULL) { + ui_ops->set_int(account, name, value); + } + schedule_accounts_save(); } @@ -2055,6 +2089,7 @@ purple_account_set_string(PurpleAccount const char *value) { PurpleAccountSetting *setting; + PurpleAccountPrefsUiOps *ui_ops; g_return_if_fail(account != NULL); g_return_if_fail(name != NULL); @@ -2066,6 +2101,12 @@ purple_account_set_string(PurpleAccount g_hash_table_insert(account->settings, g_strdup(name), setting); + ui_ops = purple_account_prefs_get_ui_ops(); + + if (ui_ops != NULL && ui_ops->set_string != NULL) { + ui_ops->set_string(account, name, value); + } + schedule_accounts_save(); } @@ -2073,6 +2114,7 @@ void purple_account_set_bool(PurpleAccount *account, const char *name, gboolean value) { PurpleAccountSetting *setting; + PurpleAccountPrefsUiOps *ui_ops; g_return_if_fail(account != NULL); g_return_if_fail(name != NULL); @@ -2084,6 +2126,12 @@ purple_account_set_bool(PurpleAccount *a g_hash_table_insert(account->settings, g_strdup(name), setting); + ui_ops = purple_account_prefs_get_ui_ops(); + + if (ui_ops != NULL && ui_ops->set_bool != NULL) { + ui_ops->set_bool(account, name, value); + } + schedule_accounts_save(); } @@ -3150,6 +3198,18 @@ purple_accounts_get_ui_ops(void) return account_ui_ops; } +void +purple_account_prefs_set_ui_ops(PurpleAccountPrefsUiOps *ops) +{ + account_prefs_ui_ops = ops; +} + +PurpleAccountPrefsUiOps * +purple_account_prefs_get_ui_ops(void) +{ + return account_prefs_ui_ops; +} + void * purple_accounts_get_handle(void) { diff --git a/libpurple/account.h b/libpurple/account.h --- a/libpurple/account.h +++ b/libpurple/account.h @@ -32,6 +32,8 @@ /** @copydoc _PurpleAccountUiOps */ typedef struct _PurpleAccountUiOps PurpleAccountUiOps; +/** @copydoc _PurpleAccountPrefsUiOps */ +typedef struct _PurpleAccountPrefsUiOps PurpleAccountPrefsUiOps; /** @copydoc _PurpleAccount */ typedef struct _PurpleAccount PurpleAccount; @@ -121,6 +123,47 @@ struct _PurpleAccountUiOps void (*_purple_reserved4)(void); }; +/** Account prefs UI operations, to allow the UI to catch account preference + * changes. Unlike the #PurplePrefsUiOps API, these are always stored + * internally in a hash table. If the UI wants to handle accounts settings, + * it must set them to the account on load and handle changes with set_ + * methods. Implementing load/save/schedule_save disables the built-in + * accounts.xml code. + * + * @since 2.11.0 + */ +struct _PurpleAccountPrefsUiOps +{ + /** Notifies the UI that an integer account setting was set. */ + void (*set_int)(PurpleAccount *account, const char *name, int value); + + /** Notifies the UI that a string account setting was set. */ + void (*set_string)(PurpleAccount *account, const char *name, const char *value); + + /** Notifies the UI that a boolean account setting was set. */ + void (*set_bool)(PurpleAccount *account, const char *name, gboolean value); + + /** If this is set, accounts.xml loading will be disabled and this + * function will be called instead. + */ + void (*load)(void); + + /** If this is set, accounts.xml saving will be disabled and this + * function will be called instead. + */ + void (*save)(void); + + /** If this is set, the UI will handle scheduling the timer to call the + * save function, overriding the default timeout of 5 seconds. + */ + void (*schedule_save)(void); + + void (*_purple_reserved1)(void); + void (*_purple_reserved2)(void); + void (*_purple_reserved3)(void); + void (*_purple_reserved4)(void); +}; + /** Structure representing an account. */ struct _PurpleAccount _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits