# HG changeset patch # User maiku@pidgin.im # Date 1253700128 0 # Node ID 5dad598188edfd1acdedf66cf3c2297ceecef2fb # Parent e0a9b3e18c9d087621f04db46a8be27320aa5713# Parent e8cd57c146430fb6fd2bcdea96586384281e0c6c merge of '6447eb03b5b0d21ec2d313005e95d66b4376eeae' and 'e4372ae7e8d466825e2baad0ab63a4293bc258de' diff -r e0a9b3e18c9d -r 5dad598188ed libpurple/connection.c --- a/libpurple/connection.c Wed Sep 23 10:00:56 2009 +0000 +++ b/libpurple/connection.c Wed Sep 23 10:02:08 2009 +0000 @@ -52,10 +52,7 @@ send_keepalive(gpointer data) { PurpleConnection *gc = data; - PurplePluginProtocolInfo *prpl_info = NULL; - - if (gc == NULL) - return TRUE; + PurplePluginProtocolInfo *prpl_info; /* Only send keep-alives if we haven't heard from the * server in a while. @@ -63,12 +60,8 @@ if ((time(NULL) - gc->last_received) < KEEPALIVE_INTERVAL) return TRUE; - if (gc->prpl == NULL) - return TRUE; - prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); - - if (prpl_info && prpl_info->keepalive) + if (prpl_info->keepalive) prpl_info->keepalive(gc); return TRUE; diff -r e0a9b3e18c9d -r 5dad598188ed libpurple/dbus-server.c --- a/libpurple/dbus-server.c Wed Sep 23 10:00:56 2009 +0000 +++ b/libpurple/dbus-server.c Wed Sep 23 10:02:08 2009 +0000 @@ -126,8 +126,10 @@ gint id = GPOINTER_TO_INT(g_hash_table_lookup(map_node_id, node)); if ((id == 0) && (node != NULL)) { - purple_debug_warning("dbus", - "Need to register an object with the dbus subsystem. (If you are not a developer, please ignore this message.)\n"); + if (purple_debug_is_verbose()) + purple_debug_warning("dbus", + "Need to register an object with the dbus subsystem." + " (If you are not a developer, please ignore this message.)\n"); return 0; } return id; @@ -795,7 +797,11 @@ dbus_message_iter_init_append(signal, &iter); if (purple_dbus_message_append_purple_values(&iter, num_values, values, vargs)) - purple_debug_warning("dbus", "The signal \"%s\" caused some dbus error. (If you are not a developer, please ignore this message.)\n", name); + if (purple_debug_is_verbose()) + purple_debug_warning("dbus", + "The signal \"%s\" caused some dbus error." + " (If you are not a developer, please ignore this message.)\n", + name); dbus_connection_send(purple_dbus_connection, signal, NULL); diff -r e0a9b3e18c9d -r 5dad598188ed libpurple/server.c --- a/libpurple/server.c Wed Sep 23 10:00:56 2009 +0000 +++ b/libpurple/server.c Wed Sep 23 10:02:08 2009 +0000 @@ -44,17 +44,16 @@ unsigned int serv_send_typing(PurpleConnection *gc, const char *name, PurpleTypingState state) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->send_typing) - return prpl_info->send_typing(gc, name, state); + if (prpl_info->send_typing) + return prpl_info->send_typing(gc, name, state); + } return 0; } @@ -142,7 +141,7 @@ conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, account); - if(prpl_info && prpl_info->send_im) + if (prpl_info->send_im) val = prpl_info->send_im(gc, name, message, flags); /* @@ -167,43 +166,40 @@ void serv_get_info(PurpleConnection *gc, const char *name) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(gc && prpl_info && prpl_info->get_info) - prpl_info->get_info(gc, name); + if (prpl_info->get_info) + prpl_info->get_info(gc, name); + } } void serv_set_info(PurpleConnection *gc, const char *info) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; - PurpleAccount *account = NULL;; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; + PurpleAccount *account; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->set_info) { - - account = purple_connection_get_account(gc); + if (prpl_info->set_info) { + account = purple_connection_get_account(gc); - if(purple_signal_emit_return_1(purple_accounts_get_handle(), - "account-setting-info", account, info)) - return; + if (purple_signal_emit_return_1(purple_accounts_get_handle(), + "account-setting-info", account, info)) + return; - prpl_info->set_info(gc, info); + prpl_info->set_info(gc, info); - purple_signal_emit(purple_accounts_get_handle(), - "account-set-info", account, info); + purple_signal_emit(purple_accounts_get_handle(), + "account-set-info", account, info); + } } } @@ -212,25 +208,27 @@ */ void serv_alias_buddy(PurpleBuddy *b) { - PurpleAccount *account = NULL; - PurpleConnection *gc = NULL; - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurpleAccount *account; + PurpleConnection *gc; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(b) + if (b) { account = purple_buddy_get_account(b); - if(account) - gc = purple_account_get_connection(account); + if (account) { + gc = purple_account_get_connection(account); - if(gc) - prpl = purple_connection_get_prpl(gc); + if (gc) { + prpl = purple_connection_get_prpl(gc); + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl) - prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - - if(b && prpl_info && prpl_info->alias_buddy) { - prpl_info->alias_buddy(gc, purple_buddy_get_name(b), purple_buddy_get_local_buddy_alias(b)); + if (prpl_info->alias_buddy) + prpl_info->alias_buddy(gc, + purple_buddy_get_name(b), + purple_buddy_get_local_buddy_alias(b)); + } + } } } @@ -349,10 +347,10 @@ */ void serv_move_buddy(PurpleBuddy *b, PurpleGroup *og, PurpleGroup *ng) { - PurpleAccount *account = NULL; - PurpleConnection *gc = NULL; - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurpleAccount *account; + PurpleConnection *gc; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; g_return_if_fail(b != NULL); g_return_if_fail(og != NULL); @@ -361,131 +359,120 @@ account = purple_buddy_get_account(b); gc = purple_account_get_connection(account); - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(gc && og && ng) { - if (prpl_info && prpl_info->group_buddy) { + if (prpl_info->group_buddy) prpl_info->group_buddy(gc, purple_buddy_get_name(b), - purple_group_get_name(og), - purple_group_get_name(ng)); - } + purple_group_get_name(og), + purple_group_get_name(ng)); } } void serv_add_permit(PurpleConnection *gc, const char *name) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->add_permit) - prpl_info->add_permit(gc, name); + if (prpl_info->add_permit) + prpl_info->add_permit(gc, name); + } } void serv_add_deny(PurpleConnection *gc, const char *name) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->add_deny) - prpl_info->add_deny(gc, name); + if (prpl_info->add_deny) + prpl_info->add_deny(gc, name); + } } void serv_rem_permit(PurpleConnection *gc, const char *name) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->rem_permit) - prpl_info->rem_permit(gc, name); + if (prpl_info->rem_permit) + prpl_info->rem_permit(gc, name); + } } void serv_rem_deny(PurpleConnection *gc, const char *name) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->rem_deny) - prpl_info->rem_deny(gc, name); + if (prpl_info->rem_deny) + prpl_info->rem_deny(gc, name); + } } void serv_set_permit_deny(PurpleConnection *gc) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - /* - * this is called when either you import a buddy list, and make lots - * of changes that way, or when the user toggles the permit/deny mode - * in the prefs. In either case you should probably be resetting and - * resending the permit/deny info when you get this. - */ - if(prpl_info && prpl_info->set_permit_deny) - prpl_info->set_permit_deny(gc); + /* + * this is called when either you import a buddy list, and make lots + * of changes that way, or when the user toggles the permit/deny mode + * in the prefs. In either case you should probably be resetting and + * resending the permit/deny info when you get this. + */ + if (prpl_info->set_permit_deny) + prpl_info->set_permit_deny(gc); + } } void serv_join_chat(PurpleConnection *gc, GHashTable *data) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->join_chat) - prpl_info->join_chat(gc, data); + if (prpl_info->join_chat) + prpl_info->join_chat(gc, data); + } } void serv_reject_chat(PurpleConnection *gc, GHashTable *data) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->reject_chat) - prpl_info->reject_chat(gc, data); + if (prpl_info->reject_chat) + prpl_info->reject_chat(gc, data); + } } void serv_chat_invite(PurpleConnection *gc, int id, const char *message, const char *name) @@ -523,51 +510,44 @@ * Then again, something might want to use this, from outside prpl-land * to leave a chat without destroying the conversation. */ - void serv_chat_leave(PurpleConnection *gc, int id) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; prpl = purple_connection_get_prpl(gc); + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl) - prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - - if(prpl_info && prpl_info->chat_leave) + if (prpl_info->chat_leave) prpl_info->chat_leave(gc, id); } void serv_chat_whisper(PurpleConnection *gc, int id, const char *who, const char *message) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->chat_whisper) - prpl_info->chat_whisper(gc, id, who, message); + if (prpl_info->chat_whisper) + prpl_info->chat_whisper(gc, id, who, message); + } } int serv_chat_send(PurpleConnection *gc, int id, const char *message, PurpleMessageFlags flags) { - int val = -EINVAL; - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; prpl = purple_connection_get_prpl(gc); - - if(prpl) - prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->chat_send) - val = prpl_info->chat_send(gc, id, message, flags); + if (prpl_info->chat_send) + return prpl_info->chat_send(gc, id, message, flags); - return val; + return -EINVAL; } /* @@ -980,18 +960,16 @@ void serv_send_file(PurpleConnection *gc, const char *who, const char *file) { - PurplePlugin *prpl = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurplePlugin *prpl; + PurplePluginProtocolInfo *prpl_info; - if(gc) + if (gc) { prpl = purple_connection_get_prpl(gc); - - if(prpl) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if (prpl_info && prpl_info->send_file) { - if (!prpl_info->can_receive_file || prpl_info->can_receive_file(gc, who)) { + if (prpl_info->send_file && + (!prpl_info->can_receive_file + || prpl_info->can_receive_file(gc, who))) prpl_info->send_file(gc, who, file); - } } } diff -r e0a9b3e18c9d -r 5dad598188ed libpurple/util.c --- a/libpurple/util.c Wed Sep 23 10:00:56 2009 +0000 +++ b/libpurple/util.c Wed Sep 23 10:02:08 2009 +0000 @@ -3140,7 +3140,7 @@ { PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); - if(prpl_info && prpl_info->normalize) + if (prpl_info->normalize) ret = prpl_info->normalize(account, str); } } diff -r e0a9b3e18c9d -r 5dad598188ed pidgin/plugins/win32/winprefs/winprefs.c --- a/pidgin/plugins/win32/winprefs/winprefs.c Wed Sep 23 10:00:56 2009 +0000 +++ b/pidgin/plugins/win32/winprefs/winprefs.c Wed Sep 23 10:02:08 2009 +0000 @@ -101,10 +101,7 @@ blist_set_ontop(TRUE); } else { purple_debug_info(WINPREFS_PLUGIN_ID, "Blist Undocking...\n"); - if(purple_prefs_get_int(PREF_BLIST_ON_TOP) == BLIST_TOP_ALWAYS) - blist_set_ontop(TRUE); - else - blist_set_ontop(FALSE); + blist_set_ontop(purple_prefs_get_int(PREF_BLIST_ON_TOP) == BLIST_TOP_ALWAYS); } } @@ -120,10 +117,7 @@ blist_ab = NULL; } - if(purple_prefs_get_int(PREF_BLIST_ON_TOP) == BLIST_TOP_ALWAYS) - blist_set_ontop(TRUE); - else - blist_set_ontop(FALSE); + blist_set_ontop(purple_prefs_get_int(PREF_BLIST_ON_TOP) == BLIST_TOP_ALWAYS); } } @@ -210,6 +204,12 @@ } static void +winprefs_set_multiple_instances(GtkWidget *w) { + wpurple_write_reg_string(HKEY_CURRENT_USER, "Environment", "PIDGIN_MULTI_INST", + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)) ? "1" : NULL); +} + +static void winprefs_set_blist_dockable(const char *pref, PurplePrefType type, gconstpointer value, gpointer user_data) { @@ -270,34 +270,18 @@ GtkWidget *ret; GtkWidget *vbox; GtkWidget *button; - char *gtk_version = NULL; char *run_key_val; char *tmp; ret = gtk_vbox_new(FALSE, 18); gtk_container_set_border_width(GTK_CONTAINER(ret), 12); - gtk_version = g_strdup_printf("GTK+\t%u.%u.%u\nGlib\t%u.%u.%u", - gtk_major_version, gtk_minor_version, gtk_micro_version, - glib_major_version, glib_minor_version, glib_micro_version); - - /* Display Installed GTK+ Runtime Version */ - if(gtk_version) { - GtkWidget *label; - vbox = pidgin_make_frame(ret, _("GTK+ Runtime Version")); - label = gtk_label_new(gtk_version); - gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); - gtk_widget_show(label); - g_free(gtk_version); - } - /* Autostart */ vbox = pidgin_make_frame(ret, _("Startup")); tmp = g_strdup_printf(_("_Start %s on Windows startup"), PIDGIN_NAME); button = gtk_check_button_new_with_mnemonic(tmp); g_free(tmp); gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); - if ((run_key_val = wpurple_read_reg_string(HKEY_CURRENT_USER, RUNKEY, "Pidgin")) || (run_key_val = wpurple_read_reg_string(HKEY_LOCAL_MACHINE, RUNKEY, "Pidgin"))) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); @@ -306,6 +290,15 @@ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(winprefs_set_autostart), NULL); gtk_widget_show(button); + button = gtk_check_button_new_with_mnemonic(_("Allow multiple instances")); + gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); + if ((run_key_val = wpurple_read_reg_string(HKEY_CURRENT_USER, "Environment", "PIDGIN_MULTI_INST"))) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); + g_free(run_key_val); + } + g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(winprefs_set_multiple_instances), NULL); + gtk_widget_show(button); + /* Buddy List */ vbox = pidgin_make_frame(ret, _("Buddy List")); pidgin_prefs_checkbox(_("_Dockable Buddy List"), diff -r e0a9b3e18c9d -r 5dad598188ed pidgin/win32/nsis/pidgin-installer.nsi --- a/pidgin/win32/nsis/pidgin-installer.nsi Wed Sep 23 10:00:56 2009 +0000 +++ b/pidgin/win32/nsis/pidgin-installer.nsi Wed Sep 23 10:02:08 2009 +0000 @@ -1345,13 +1345,14 @@ StrCpy $LANGUAGE_SET "0" ClearErrors ${GetOptions} "$R3" "/L=" $R1 - IfErrors +3 + IfErrors +4 StrCpy $LANGUAGE $R1 StrCpy $LANGUAGE_SET "1" Goto skip_lang ; Select Language ; Display Language selection dialog + !define MUI_LANGDLL_ALWAYSSHOW !insertmacro MUI_LANGDLL_DISPLAY skip_lang: