/pidgin/main: 3ce95eee429d: Merge in the public updates
Gary Kramlich
grim at reaperworld.com
Mon Jun 20 20:10:08 EDT 2016
Changeset: 3ce95eee429d18ccaa77de7371cc8843f4dc8519
Author: Gary Kramlich <grim at reaperworld.com>
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
More information about the Commits
mailing list