# HG changeset patch # User pidgin@keithmoyer.com # Date 1302463287 0 # Node ID ba00769a1493dccb86ac6316ec848c5ad68fc6ed # Parent c62dc6d258021a5af5c98a0c3d4204f78d922613 jabber: Remember the last-used user directory. Closes #12451 Patch from Keith Moyer. committer: Paul Aurich diff -r c62dc6d25802 -r ba00769a1493 ChangeLog --- a/ChangeLog Sun Apr 10 02:35:17 2011 +0000 +++ b/ChangeLog Sun Apr 10 19:21:27 2011 +0000 @@ -54,6 +54,10 @@ IRC: * Add "authserv" service command. (tomos) (#13337) + XMPP: + * Remember the previously entered user directory when searching. + (Keith Moyer) (#12451) + Plugins: * The Voice/Video Settings plugin now includes the ability to test microphone settings. (Jakub Adam) (#13182) diff -r c62dc6d25802 -r ba00769a1493 libpurple/protocols/jabber/buddy.c --- a/libpurple/protocols/jabber/buddy.c Sun Apr 10 02:35:17 2011 +0000 +++ b/libpurple/protocols/jabber/buddy.c Sun Apr 10 19:21:27 2011 +0000 @@ -2229,6 +2229,16 @@ return; } + /* If the value provided isn't the disco#info default, persist it. Otherwise, + make sure we aren't persisting an old value */ + if(js->user_directories && js->user_directories->data && + !strcmp(directory, js->user_directories->data)) { + purple_account_set_string(js->gc->account, "user_directory", ""); + } + else { + purple_account_set_string(js->gc->account, "user_directory", directory); + } + iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:search"); xmlnode_set_attrib(iq->node, "to", directory); @@ -2241,10 +2251,13 @@ { PurpleConnection *gc = (PurpleConnection *) action->context; JabberStream *js = purple_connection_get_protocol_data(gc); + const char *def_val = purple_account_get_string(js->gc->account, "user_directory", ""); + if(!*def_val && js->user_directories) + def_val = js->user_directories->data; purple_request_input(gc, _("Enter a User Directory"), _("Enter a User Directory"), _("Select a user directory to search"), - js->user_directories ? js->user_directories->data : NULL, + def_val, FALSE, FALSE, NULL, _("Search Directory"), PURPLE_CALLBACK(jabber_user_search), _("Cancel"), NULL,