# HG changeset patch # User Etan Reisner # Date 1246059171 0 # Node ID 4475e746a34e3b683ebc37df5498bbf0f354b5d8 # Parent dfa7d2a0d9b8adc1fe247acc3fa03ad671668f2c# Parent 552b5292f36fb7c30ce24ca58fb805b728bb2aa2 merge of '1490bc9b5da3684cfe634ae71d22e5903a639e7c' and '96fc49b5da18a0e87d5d8e5976ce7b6abd15bad3' diff -r dfa7d2a0d9b8 -r 4475e746a34e ChangeLog.API --- a/ChangeLog.API Fri Jun 26 05:27:51 2009 +0000 +++ b/ChangeLog.API Fri Jun 26 23:32:51 2009 +0000 @@ -40,6 +40,7 @@ * purple_network_get_stun_ip * purple_network_get_turn_ip * purple_network_remove_port_mapping + * purple_plugins_get_search_paths * purple_proxy_connect_udp * purple_prpl_get_media_caps * purple_prpl_got_account_actions diff -r dfa7d2a0d9b8 -r 4475e746a34e configure.ac --- a/configure.ac Fri Jun 26 05:27:51 2009 +0000 +++ b/configure.ac Fri Jun 26 23:32:51 2009 +0000 @@ -1563,30 +1563,6 @@ AC_MSG_RESULT(no) fi - if test "x$prefix" != "xNONE"; then - prefix=`eval echo $prefix` - PERL_MM_PARAMS="INSTALLDIRS=vendor PREFIX=$prefix" - fi - - AC_ARG_WITH(perl-lib, - [AC_HELP_STRING([--with-perl-lib=[site|vendor|DIR]], - [specify where to install the Perl libraries for pidgin. Default is site.])], - [ - if test "x$withval" = xsite; then - PERL_MM_PARAMS="" - elif test "x$withval" = xvendor; then - if test -z "`$perlpath -v | grep '5\.0'`"; then - PERL_MM_PARAMS="INSTALLDIRS=vendor" - else - PERL_MM_PARAMS="INSTALLDIRS=vendor PREFIX=`perl -e 'use Config; print $Config{prefix}'`" - fi - else - PERL_MM_PARAMS="INSTALLDIRS=vendor PREFIX=$withval" - fi - ]) - - AC_SUBST(PERL_MM_PARAMS) - AC_MSG_CHECKING(for DynaLoader.a) DYNALOADER_A=`echo $PERL_LDFLAGS | $perlpath -pe 's/^(.* )*([[^ ]]*DynaLoader\.a).*/\2/'` diff -r dfa7d2a0d9b8 -r 4475e746a34e doc/notify-signals.dox --- a/doc/notify-signals.dox Fri Jun 26 05:27:51 2009 +0000 +++ b/doc/notify-signals.dox Fri Jun 26 23:32:51 2009 +0000 @@ -30,7 +30,7 @@ const char *url); @endsignalproto @signaldesc - Emitted before email notification is handed to the UI to display. + Emitted before notification of a single email is handed to the UI to display. @param subject Subject of email being notified of. @param from Who the email is from. @param to Who the email is to. diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/account.c --- a/libpurple/account.c Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/account.c Fri Jun 26 23:32:51 2009 +0000 @@ -1132,29 +1132,32 @@ purple_account_connect(PurpleAccount *account) { PurplePlugin *prpl; + const char *password, *username; PurplePluginProtocolInfo *prpl_info; - const char *password; g_return_if_fail(account != NULL); - purple_debug_info("account", "Connecting to account %s\n", - purple_account_get_username(account)); - - if (!purple_account_get_enabled(account, purple_core_get_ui())) + username = purple_account_get_username(account); + + if (!purple_account_get_enabled(account, purple_core_get_ui())) { + purple_debug_info("account", + "Account %s not enabled, not connecting.\n", + username); return; + } prpl = purple_find_prpl(purple_account_get_protocol_id(account)); - if (prpl == NULL) - { + if (prpl == NULL) { gchar *message; - message = g_strdup_printf(_("Missing protocol plugin for %s"), - purple_account_get_username(account)); + message = g_strdup_printf(_("Missing protocol plugin for %s"), username); purple_notify_error(account, _("Connection Error"), message, NULL); g_free(message); return; } + purple_debug_info("account", "Connecting to account %s.\n", username); + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); password = purple_account_get_password(account); if ((password == NULL) && diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/buddyicon.h --- a/libpurple/buddyicon.h Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/buddyicon.h Fri Jun 26 23:32:51 2009 +0000 @@ -189,8 +189,6 @@ * takes ownership of and will free. * @param icon_len The length of the icon data. * @param checksum A protocol checksum from the prpl or @c NULL. - * - * @return The buddy icon set, or NULL if no icon was set. */ void purple_buddy_icons_set_for_user(PurpleAccount *account, const char *username, diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/log.c --- a/libpurple/log.c Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/log.c Fri Jun 26 23:32:51 2009 +0000 @@ -1129,7 +1129,7 @@ /* set->buddy is always set below */ set->normalized_name = g_strdup(purple_normalize(account, name)); - /* Chat for .chat or .system at the end of the name to determine the type. */ + /* Check for .chat or .system at the end of the name to determine the type. */ if (len >= 7) { gchar *tmp = &name[len - 7]; if (purple_strequal(tmp, ".system")) { diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/plugin.c --- a/libpurple/plugin.c Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/plugin.c Fri Jun 26 23:32:51 2009 +0000 @@ -1222,6 +1222,12 @@ search_paths = g_list_append(search_paths, g_strdup(path)); } +GList * +purple_plugins_get_search_paths() +{ + return search_paths; +} + void purple_plugins_unload_all(void) { diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/plugin.h --- a/libpurple/plugin.h Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/plugin.h Fri Jun 26 23:32:51 2009 +0000 @@ -512,6 +512,15 @@ void purple_plugins_add_search_path(const char *path); /** + * Returns a list of plugin search paths. + * + * @constreturn A list of searched paths. + * + * @since 2.6.0 + */ +GList *purple_plugins_get_search_paths(void); + +/** * Unloads all loaded plugins. */ void purple_plugins_unload_all(void); diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/plugins/perl/Makefile.am --- a/libpurple/plugins/perl/Makefile.am Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/plugins/perl/Makefile.am Fri Jun 26 23:32:51 2009 +0000 @@ -99,7 +99,7 @@ ${LN_S} -f $$srcloc/$$f $$f; \ done; \ fi - @cd common && $(perlpath) Makefile.PL $(PERL_MM_PARAMS) + @cd common && $(perlpath) Makefile.PL common/Makefile.PL: common/Makefile.PL.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) @@ -108,7 +108,7 @@ @for dir in $(perl_dirs); do \ cd $$dir && \ if [ ! -f Makefile ]; then \ - $(perlpath) Makefile.PL $(PERL_MM_PARAMS); \ + $(perlpath) Makefile.PL; \ fi && \ ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ @@ -164,6 +164,7 @@ -I$(top_srcdir) \ -I$(top_srcdir)/libpurple \ -I$(top_builddir)/libpurple \ + -DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)\" \ $(DEBUG_CFLAGS) \ $(GLIB_CFLAGS) \ $(PLUGIN_CFLAGS) \ diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/plugins/perl/common/Makefile.PL.in --- a/libpurple/plugins/perl/common/Makefile.PL.in Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/plugins/perl/common/Makefile.PL.in Fri Jun 26 23:32:51 2009 +0000 @@ -13,4 +13,16 @@ 'INC' => '-I. -I@srcdir@ -I@top_srcdir@ -I@top_srcdir@/libpurple @GLIB_CFLAGS@', 'OBJECT' => '$(O_FILES)', # link all the C files too # 'OPTIMIZE' => '-g', # For debugging + 'INSTALLDIRS' => 'vendor', + 'INSTALL_BASE' => '$(prefix)', + 'INSTALLVENDORARCH' => '$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/perl', + 'INSTALLVENDORMAN3DIR' => '$(mandir)/man3', + 'macro' => { + 'prefix' => '@prefix@', + 'exec_prefix' => '@exec_prefix@', + 'libdir' => '@libdir@', + 'mandir' => '@mandir@', + 'datarootdir' => '@datarootdir@', + 'PURPLE_MAJOR_VERSION' => '@PURPLE_MAJOR_VERSION@', + }, ); diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/plugins/perl/perl.c --- a/libpurple/plugins/perl/perl.c Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/plugins/perl/perl.c Fri Jun 26 23:32:51 2009 +0000 @@ -131,6 +131,7 @@ #endif { char *file = __FILE__; + GList *search_paths = purple_plugins_get_search_paths(); dXSUB_SYS; /* This one allows dynamic loading of perl modules in perl scripts by @@ -139,6 +140,17 @@ #ifdef _WIN32 newXS("Win32CORE::bootstrap", boot_Win32CORE, file); #endif + + while (search_paths != NULL) { + gchar *uselib; + const gchar *search_path = search_paths->data; + search_paths = g_list_next(search_paths); + + uselib = g_strdup_printf("unshift @INC, \"%s%cperl\";", + search_path, G_DIR_SEPARATOR); + eval_pv(uselib, TRUE); + g_free(uselib); + } } static void diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Fri Jun 26 23:32:51 2009 +0000 @@ -907,8 +907,8 @@ if (type == JABBER_IQ_RESULT) { if(js->registration) { - buf = g_strdup_printf(_("Registration of %s@%s successful"), - js->user->node, js->user->domain); + buf = g_strdup_printf(_("Registration of %s@%s successful"), + js->user->node, js->user->domain); if(account->registration_cb) (account->registration_cb)(account, TRUE, account->registration_cb_user_data); } else { diff -r dfa7d2a0d9b8 -r 4475e746a34e libpurple/purple-remote --- a/libpurple/purple-remote Fri Jun 26 05:27:51 2009 +0000 +++ b/libpurple/purple-remote Fri Jun 26 23:32:51 2009 +0000 @@ -161,7 +161,6 @@ purple.PurpleSavedstatusSetSubstatus(current, account, type, message) purple.PurpleSavedstatusActivateForAccount(current, account) else: - accounts = purple.PurpleAccountsGetAllActive() saved = purple.PurpleSavedstatusNew("", status_type) purple.PurpleSavedstatusSetMessage(saved, message) purple.PurpleSavedstatusActivate(saved) diff -r dfa7d2a0d9b8 -r 4475e746a34e pidgin/gtkaccount.c --- a/pidgin/gtkaccount.c Fri Jun 26 05:27:51 2009 +0000 +++ b/pidgin/gtkaccount.c Fri Jun 26 23:32:51 2009 +0000 @@ -1990,8 +1990,9 @@ /* This is for when set_account() is called for a single account */ const char *path; path = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/accounts/buddyicon"); - if (path != NULL) + if ((path != NULL) && (*path != '\0')) { img = purple_imgstore_new_from_file(path); + } } } else { img = purple_buddy_icons_find_account_icon(account); diff -r dfa7d2a0d9b8 -r 4475e746a34e pidgin/gtkblist.c --- a/pidgin/gtkblist.c Fri Jun 26 05:27:51 2009 +0000 +++ b/pidgin/gtkblist.c Fri Jun 26 23:32:51 2009 +0000 @@ -1575,7 +1575,7 @@ if (!(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)) { show_offline = purple_blist_node_get_bool(node, "show_offline"); - pidgin_new_item_from_stock(menu, show_offline ? _("Hide when offline") : _("Show when offline"), + pidgin_new_item_from_stock(menu, show_offline ? _("Hide When Offline") : _("Show When Offline"), NULL, G_CALLBACK(gtk_blist_menu_showoffline_cb), node, 0, 0, NULL); } @@ -1759,7 +1759,7 @@ G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL); if (!(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)) { gboolean show_offline = purple_blist_node_get_bool(node, "show_offline"); - pidgin_new_item_from_stock(menu, show_offline ? _("Hide when offline") : _("Show when offline"), + pidgin_new_item_from_stock(menu, show_offline ? _("Hide When Offline") : _("Show When Offline"), NULL, G_CALLBACK(gtk_blist_menu_showoffline_cb), node, 0, 0, NULL); } @@ -6300,7 +6300,7 @@ selected = (gnode == selected_node); if (!expanded) { - g_snprintf(group_count, sizeof(group_count), " (%d/%d)", + g_snprintf(group_count, sizeof(group_count), "%d/%d", purple_blist_get_group_online_count(group), purple_blist_get_group_size(group, FALSE)); } @@ -6319,11 +6319,18 @@ esc = g_markup_escape_text(group->name, -1); if (text_color) { - mark = g_strdup_printf("%s%s", - text_color, text_font, esc ? esc : "", group_count); + mark = g_strdup_printf("%s%s%s%s", + text_color, text_font, + esc ? esc : "", + !expanded ? " (" : "", + group_count, + !expanded ? ")" : ""); } else { - mark = g_strdup_printf("%s%s", - text_font, esc ? esc : "", group_count); + mark = g_strdup_printf("%s%s%s%s", + text_font, esc ? esc : "", + !expanded ? " (" : "", + group_count, + !expanded ? ")" : ""); } g_free(esc); diff -r dfa7d2a0d9b8 -r 4475e746a34e pidgin/gtkconv.c --- a/pidgin/gtkconv.c Fri Jun 26 05:27:51 2009 +0000 +++ b/pidgin/gtkconv.c Fri Jun 26 23:32:51 2009 +0000 @@ -1770,7 +1770,7 @@ g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); } - button = pidgin_new_item_from_stock(menu, _("Last said"), GTK_STOCK_INDEX, + button = pidgin_new_item_from_stock(menu, _("Last Said"), GTK_STOCK_INDEX, G_CALLBACK(menu_last_said_cb), PIDGIN_CONVERSATION(conv), 0, 0, NULL); g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); if (!get_mark_for_user(PIDGIN_CONVERSATION(conv), who)) diff -r dfa7d2a0d9b8 -r 4475e746a34e pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Fri Jun 26 05:27:51 2009 +0000 +++ b/pidgin/gtkprefs.c Fri Jun 26 23:32:51 2009 +0000 @@ -1231,9 +1231,9 @@ _("Never"), "never", NULL); gtk_size_group_add_widget(sg, label); - gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); - - vbox = pidgin_make_frame(ret, _("Conversation Window Hiding")); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + + vbox = pidgin_make_frame(ret, _("Conversation Window")); label = pidgin_prefs_dropdown(vbox, _("_Hide new IM conversations:"), PURPLE_PREF_STRING, PIDGIN_PREFS_ROOT "/conversations/im/hide_new", _("Never"), "never", @@ -1241,8 +1241,11 @@ _("Always"), "always", NULL); gtk_size_group_add_widget(sg, label); - gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); - + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + +#ifdef _WIN32 + pidgin_prefs_checkbox(_("Minimi_ze new conversation windows"), PIDGIN_PREFS_ROOT "/win32/minimize_new_convs", vbox); +#endif /* All the tab options! */ vbox = pidgin_make_frame(ret, _("Tabs")); @@ -1353,8 +1356,6 @@ #ifdef _WIN32 pidgin_prefs_checkbox(_("F_lash window when IMs are received"), PIDGIN_PREFS_ROOT "/win32/blink_im", vbox); - - pidgin_prefs_checkbox(_("Minimi_ze new conversation windows"), PIDGIN_PREFS_ROOT "/win32/minimize_new_convs", vbox); #endif pidgin_prefs_labeled_spin_button(vbox, @@ -1362,7 +1363,6 @@ PIDGIN_PREFS_ROOT "/conversations/minimum_entry_lines", 1, 8, NULL); - #if GTK_CHECK_VERSION(2,4,0) vbox = pidgin_make_frame(ret, _("Font")); if (purple_running_gnome()) diff -r dfa7d2a0d9b8 -r 4475e746a34e pidgin/plugins/perl/Makefile.am --- a/pidgin/plugins/perl/Makefile.am Fri Jun 26 05:27:51 2009 +0000 +++ b/pidgin/plugins/perl/Makefile.am Fri Jun 26 23:32:51 2009 +0000 @@ -44,7 +44,7 @@ ${LN_S} -f $$srcloc/$$f $$f; \ done; \ fi - @cd common && $(perlpath) Makefile.PL $(PERL_MM_PARAMS) + @cd common && $(perlpath) Makefile.PL common/Makefile.PL: common/Makefile.PL.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) @@ -53,7 +53,7 @@ @for dir in $(perl_dirs); do \ cd $$dir && \ if [ ! -f Makefile ]; then \ - $(perlpath) Makefile.PL $(PERL_MM_PARAMS); \ + $(perlpath) Makefile.PL; \ fi && \ ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ diff -r dfa7d2a0d9b8 -r 4475e746a34e pidgin/plugins/perl/common/Makefile.PL.in --- a/pidgin/plugins/perl/common/Makefile.PL.in Fri Jun 26 05:27:51 2009 +0000 +++ b/pidgin/plugins/perl/common/Makefile.PL.in Fri Jun 26 23:32:51 2009 +0000 @@ -13,4 +13,15 @@ 'OBJECT' => '$(O_FILES)', # link all the C files too 'TYPEMAPS' => ["@top_srcdir@/libpurple/plugins/perl/common/typemap"], # 'OPTIMIZE' => '-g', # For debugging. + 'INSTALLDIRS' => 'vendor', + 'INSTALL_BASE' => '$(prefix)', + 'INSTALLVENDORARCH' => '$(libdir)/pidgin/perl', + 'INSTALLVENDORMAN3DIR' => '$(mandir)/man3', + 'macro' => { + 'prefix' => '@prefix@', + 'exec_prefix' => '@exec_prefix@', + 'libdir' => '@libdir@', + 'mandir' => '@mandir@', + 'datarootdir' => '@datarootdir@', + }, );