/soc/2013/ankitkv/gobjectification: 8b63b9948107: Merged default...
Ankit Vani <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 8b63b99481079f9f2eac4ac5f89c87b9a6cd7a1d Author: Ankit Vani <[email protected]> Date: 2014-05-10 03:56 +0530 Branch: soc.2013.gobjectification.plugins URL: https://hg.pidgin.im/soc/2013/ankitkv/gobjectification/rev/8b63b9948107 Description: Merged default branch diffstat: ChangeLog | 21 +++- Makefile.am | 4 +- autogen.sh | 1 - finch/gntaccount.c | 22 ++-- finch/gntdebug.c | 1 + finch/gntnotify.c | 2 + finch/gntprefs.c | 6 +- finch/gntrequest.c | 7 +- finch/libfinch.c | 6 +- finch/libgnt/gntbox.c | 4 +- finch/libgnt/gntcheckbox.c | 2 +- finch/libgnt/gntcombobox.c | 2 +- finch/libgnt/gntentry.c | 2 +- finch/libgnt/gnttextview.c | 2 +- finch/libgnt/gntwidget.c | 2 + finch/libgnt/gntwm.c | 4 +- finch/libgnt/gntws.c | 2 + finch/libgnt/wms/irssi.c | 2 +- libpurple/accountopt.c | 18 +++ libpurple/accountopt.h | 25 +++++ libpurple/dnsquery.c | 4 +- libpurple/dnssrv.c | 6 + libpurple/log.c | 38 +++++-- libpurple/mediamanager.c | 6 +- libpurple/network.c | 5 +- libpurple/plugins/log_reader.c | 34 ++++-- libpurple/plugins/perl/common/Cipher.xs | 6 + libpurple/plugins/perl/perl-common.c | 3 +- libpurple/protocols/bonjour/bonjour_ft.c | 3 +- libpurple/protocols/bonjour/jabber.c | 28 ++++- libpurple/protocols/irc/cmds.c | 90 +++++++++++++---- libpurple/protocols/irc/dcc_send.c | 3 +- libpurple/protocols/jabber/Makefile.am | 2 + libpurple/protocols/jabber/chat.c | 3 +- libpurple/protocols/jabber/facebook.c | 86 ++++++++++++----- libpurple/protocols/jabber/facebook_roster.c | 135 +++++++++++++++++++++++++++ libpurple/protocols/jabber/facebook_roster.h | 35 +++++++ libpurple/protocols/jabber/jabber.c | 4 +- libpurple/protocols/jabber/jabber.h | 5 + libpurple/protocols/jabber/roster.c | 10 +- libpurple/protocols/jabber/si.c | 3 +- libpurple/protocols/msn/contact.c | 1 + libpurple/protocols/msn/msnutils.c | 2 +- libpurple/protocols/oscar/family_auth.c | 2 +- libpurple/protocols/oscar/family_icbm.c | 8 +- libpurple/protocols/oscar/family_oservice.c | 9 +- libpurple/protocols/oscar/oscar.c | 6 +- libpurple/protocols/oscar/peer.c | 3 +- libpurple/protocols/oscar/userinfo.c | 9 +- libpurple/protocols/sametime/sametime.c | 1 + libpurple/protocols/silc/buddy.c | 12 +- libpurple/protocols/silc/util.c | 6 +- libpurple/protocols/simple/simple.c | 10 +- libpurple/protocols/yahoo/util.c | 17 ++- libpurple/protocols/yahoo/ymsg.c | 4 +- libpurple/protocols/zephyr/ZOpenPort.c | 15 ++- libpurple/protocols/zephyr/ZReadAscii.c | 7 +- libpurple/protocols/zephyr/ZRetSubs.c | 1 + libpurple/protocols/zephyr/Zinternal.c | 4 +- libpurple/protocols/zephyr/zephyr.c | 48 +++++---- libpurple/proxy.c | 15 ++- libpurple/stun.c | 9 +- libpurple/util.c | 45 ++++---- libpurple/xfer.c | 7 +- libpurple/xmlnode.c | 1 + pidgin/gtkaccount.c | 40 +++++-- pidgin/gtkblist.c | 3 + pidgin/gtkconv.c | 5 +- pidgin/gtknotify.c | 5 +- pidgin/gtkprefs.c | 6 +- pidgin/gtkrequest.c | 33 +++++- pidgin/gtksession.c | 3 +- pidgin/gtkstatusbox.c | 4 + pidgin/plugins/screencap.c | 84 ++++++---------- pidgin/plugins/spellchk.c | 5 +- 75 files changed, 788 insertions(+), 286 deletions(-) diffs (truncated from 2541 to 300 lines): diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -86,16 +86,27 @@ version 3.0.0 (??/??/????): * Doxygen has been replaced by gtk-doc for generating documentation. version 2.10.10 (?/?/?): - Finch: - * Fix build against Python 3. (Ed Catmur) (#15969) - - Gadu-Gadu: - * Updated internal libgadu to version 1.12.0-rc2. + libpurple3 compatibility: + * Encrypted account passwords are preserved until the new one is set. + * Fix loading Google Talk and Facebook XMPP accounts. Windows-Specific Changes: * Updates to dependencies: * NSS 3.16 and NSPR 4.10.4 + Finch: + * Fix build against Python 3. (Ed Catmur) (#15969) + + Gadu-Gadu: + * Updated internal libgadu to version 1.12.0-rc2. + + IRC: + * Fix a possible leak of unencrypted data when using /me command + with OTR. (Thijs Alkemade) (#15750) + + XMPP: + * Fix Facebook XMPP roster quirks. (#15041, #15957) + version 2.10.9 (2/2/2014): XMPP: * Fix problems logging into some servers including jabber.org and diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -126,10 +126,10 @@ package_revision_raw.txt: .FORCE fi package_revision.h: package_revision_raw.txt $(AM_V_GEN)if test -f $<; then \ - echo "#define REVISION \"`cat $<`\"" > $@; \ + echo "#define REVISION \"`cat $<`\"" > $@; \ fi $(AM_V_at)if test ! -f $@ -a -f $(srcdir)/$@; then \ - cp $(srcdir)/$@ $@; \ + cp $(srcdir)/$@ $@; \ fi $(AM_V_at)test -f $@ || echo "#define REVISION \"unknown\"" > $@ diff --git a/autogen.sh b/autogen.sh --- a/autogen.sh +++ b/autogen.sh @@ -184,4 +184,3 @@ if test -z "$NOCONFIGURE"; then echo "running ./configure ${CONFIGURE_FLAGS} $@" ./configure ${CONFIGURE_FLAGS} $@ fi - diff --git a/finch/gntaccount.c b/finch/gntaccount.c --- a/finch/gntaccount.c +++ b/finch/gntaccount.c @@ -137,7 +137,7 @@ save_account_cb(AccountEditDialog *dialo PurpleAccountUserSplit *split = iter->data; GntWidget *entry = entries->data; - value = gnt_entry_get_text(GNT_ENTRY(entry)); + value = entry ? gnt_entry_get_text(GNT_ENTRY(entry)) : NULL; if (value == NULL || *value == '\0') value = purple_account_user_split_get_default_value(split); g_string_append_printf(username, "%c%s", @@ -317,17 +317,19 @@ update_user_splits(AccountEditDialog *di for (iter = purple_protocol_get_user_splits(protocol); iter; iter = iter->next) { PurpleAccountUserSplit *split = iter->data; - GntWidget *entry; - char *buf; + GntWidget *entry = NULL; + char *buf = NULL; - hbox = gnt_hbox_new(TRUE); - gnt_box_add_widget(GNT_BOX(dialog->splits), hbox); + if (!purple_account_user_split_is_constant(split)) { + hbox = gnt_hbox_new(TRUE); + gnt_box_add_widget(GNT_BOX(dialog->splits), hbox); - buf = g_strdup_printf("%s:", purple_account_user_split_get_text(split)); - gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(buf)); + buf = g_strdup_printf("%s:", purple_account_user_split_get_text(split)); + gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(buf)); - entry = gnt_entry_new(NULL); - gnt_box_add_widget(GNT_BOX(hbox), entry); + entry = gnt_entry_new(NULL); + gnt_box_add_widget(GNT_BOX(hbox), entry); + } dialog->split_entries = g_list_append(dialog->split_entries, entry); g_free(buf); @@ -358,7 +360,7 @@ update_user_splits(AccountEditDialog *di if (value == NULL) value = purple_account_user_split_get_default_value(split); - if (value != NULL) + if (value != NULL && entry != NULL) gnt_entry_set_text(GNT_ENTRY(entry), value); } diff --git a/finch/gntdebug.c b/finch/gntdebug.c --- a/finch/gntdebug.c +++ b/finch/gntdebug.c @@ -130,6 +130,7 @@ finch_debug_print(PurpleDebugLevel level { case PURPLE_DEBUG_WARNING: flag |= GNT_TEXT_FLAG_UNDERLINE; + /* fall through */ case PURPLE_DEBUG_ERROR: case PURPLE_DEBUG_FATAL: flag |= GNT_TEXT_FLAG_BOLD; diff --git a/finch/gntnotify.c b/finch/gntnotify.c --- a/finch/gntnotify.c +++ b/finch/gntnotify.c @@ -59,8 +59,10 @@ finch_notify_common(PurpleNotifyType nty { case PURPLE_NOTIFY_MSG_ERROR: sf |= GNT_TEXT_FLAG_BOLD; + /* fall through */ case PURPLE_NOTIFY_MSG_WARNING: pf |= GNT_TEXT_FLAG_UNDERLINE; + /* fall through */ case PURPLE_NOTIFY_MSG_INFO: pf |= GNT_TEXT_FLAG_BOLD; break; diff --git a/finch/gntprefs.c b/finch/gntprefs.c --- a/finch/gntprefs.c +++ b/finch/gntprefs.c @@ -143,12 +143,14 @@ get_pref_field(Prefs *prefs) switch (prefs->type) { case PURPLE_PREF_BOOLEAN: - sscanf(iter->data, "%d", &idata); + if (sscanf(iter->data, "%d", &idata) != 1) + idata = FALSE; if (purple_prefs_get_bool(prefs->pref) == idata) select = TRUE; break; case PURPLE_PREF_INT: - sscanf(iter->data, "%d", &idata); + if (sscanf(iter->data, "%d", &idata) != 1) + idata = 0; if (purple_prefs_get_int(prefs->pref) == idata) select = TRUE; break; diff --git a/finch/gntrequest.c b/finch/gntrequest.c --- a/finch/gntrequest.c +++ b/finch/gntrequest.c @@ -916,8 +916,11 @@ void finch_request_save_in_prefs(gpointe case PURPLE_PREF_INT: { long int tmp = GPOINTER_TO_INT(val); - if (type == PURPLE_REQUEST_FIELD_LIST) /* Lists always return string */ - sscanf(val, "%ld", &tmp); + if (type == PURPLE_REQUEST_FIELD_LIST) { + /* Lists always return string */ + if (sscanf(val, "%ld", &tmp) != 1) + tmp = 0; + } purple_prefs_set_int(id, (gint)tmp); break; } diff --git a/finch/libfinch.c b/finch/libfinch.c --- a/finch/libfinch.c +++ b/finch/libfinch.c @@ -268,7 +268,6 @@ init_libpurple(int argc, char **argv) gboolean opt_version = FALSE; char *opt_config_dir_arg = NULL; gboolean debug_enabled = FALSE; - GStatBuf st; struct option long_options[] = { {"config", required_argument, NULL, 'c'}, @@ -368,8 +367,8 @@ init_libpurple(int argc, char **argv) } path = g_build_filename(purple_user_dir(), "plugins", NULL); - if (!g_stat(path, &st)) - g_mkdir(path, S_IRUSR | S_IWUSR | S_IXUSR); + if (g_mkdir(path, S_IRUSR | S_IWUSR | S_IXUSR) != 0 && errno != EEXIST) + fprintf(stderr, "Couldn't create plugins dir\n"); purple_plugins_add_search_path(path); g_free(path); @@ -418,4 +417,3 @@ gboolean finch_start(int *argc, char *** purple_blist_show(); return TRUE; } - diff --git a/finch/libgnt/gntbox.c b/finch/libgnt/gntbox.c --- a/finch/libgnt/gntbox.c +++ b/finch/libgnt/gntbox.c @@ -232,8 +232,8 @@ gnt_box_size_request(GntWidget *widget) h = maxh; } - gnt_widget_confirm_size(wid, w, h); - gnt_widget_set_size(wid, w, h); + if (gnt_widget_confirm_size(wid, w, h)) + gnt_widget_set_size(wid, w, h); } reposition_children(widget); diff --git a/finch/libgnt/gntcheckbox.c b/finch/libgnt/gntcheckbox.c --- a/finch/libgnt/gntcheckbox.c +++ b/finch/libgnt/gntcheckbox.c @@ -52,7 +52,7 @@ gnt_check_box_draw(GntWidget *widget) wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL)); mvwaddstr(widget->window, 0, 4, C_(GNT_BUTTON(cb)->priv->text)); - wmove(widget->window, 0, 1); + (void)wmove(widget->window, 0, 1); GNTDEBUG; } diff --git a/finch/libgnt/gntcombobox.c b/finch/libgnt/gntcombobox.c --- a/finch/libgnt/gntcombobox.c +++ b/finch/libgnt/gntcombobox.c @@ -96,7 +96,7 @@ gnt_combo_box_draw(GntWidget *widget) whline(widget->window, ' ' | gnt_color_pair(type), widget->priv.width - 4 - len); mvwaddch(widget->window, 1, widget->priv.width - 3, ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL)); mvwaddch(widget->window, 1, widget->priv.width - 2, ACS_DARROW | gnt_color_pair(GNT_COLOR_NORMAL)); - wmove(widget->window, 1, 1); + (void)wmove(widget->window, 1, 1); g_free(text); GNTDEBUG; diff --git a/finch/libgnt/gntentry.c b/finch/libgnt/gntentry.c --- a/finch/libgnt/gntentry.c +++ b/finch/libgnt/gntentry.c @@ -299,7 +299,7 @@ gnt_entry_draw(GntWidget *widget) curpos = gnt_util_onscreen_width(entry->scroll, entry->cursor); if (focus) mvwchgat(widget->window, 0, curpos, 1, A_REVERSE, GNT_COLOR_TEXT_NORMAL, NULL); - wmove(widget->window, 0, curpos); + (void)wmove(widget->window, 0, curpos); GNTDEBUG; } diff --git a/finch/libgnt/gnttextview.c b/finch/libgnt/gnttextview.c --- a/finch/libgnt/gnttextview.c +++ b/finch/libgnt/gnttextview.c @@ -106,7 +106,7 @@ gnt_text_view_draw(GntWidget *widget) GList *iter; GntTextLine *line = lines->data; - wmove(widget->window, widget->priv.height - 1 - i - comp, 0); + (void)wmove(widget->window, widget->priv.height - 1 - i - comp, 0); for (iter = line->segments; iter; iter = iter->next) { diff --git a/finch/libgnt/gntwidget.c b/finch/libgnt/gntwidget.c --- a/finch/libgnt/gntwidget.c +++ b/finch/libgnt/gntwidget.c @@ -318,6 +318,8 @@ gnt_widget_destroy(GntWidget *obj) void gnt_widget_show(GntWidget *widget) { + g_return_if_fail(widget != NULL); + gnt_widget_draw(widget); gnt_screen_occupy(widget); } diff --git a/finch/libgnt/gntwm.c b/finch/libgnt/gntwm.c --- a/finch/libgnt/gntwm.c +++ b/finch/libgnt/gntwm.c @@ -141,7 +141,7 @@ gnt_wm_copy_win(GntWidget *widget, GntNo int curx = active->priv.x + getcurx(active->window); int cury = active->priv.y + getcury(active->window); if (wmove(node->window, cury - widget->priv.y, curx - widget->priv.x) != OK) - wmove(node->window, 0, 0); + (void)wmove(node->window, 0, 0); } } } @@ -1817,6 +1817,8 @@ gnt_wm_new_window_real(GntWM *wm, GntWid maxx = getmaxx(stdscr); maxy = getmaxy(stdscr) - 1; /* room for the taskbar */ + maxx = MAX(0, maxx); + maxy = MAX(0, maxy); x = MAX(0, x); y = MAX(0, y); diff --git a/finch/libgnt/gntws.c b/finch/libgnt/gntws.c --- a/finch/libgnt/gntws.c +++ b/finch/libgnt/gntws.c @@ -62,6 +62,8 @@ gnt_ws_draw_taskbar(GntWS *ws, gboolean if (gnt_is_refugee()) return;