# HG changeset patch # User Paul Aurich # Date 1240037554 0 # Node ID 5149ecc8f456cf141103d6bb628fda358f70656b # Parent 892ffe359b5152b103d5f605de076a1158f7cca5 Use defaults provided by the server where applicable and when available diff -r 892ffe359b51 -r 5149ecc8f456 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Sat Apr 18 06:51:59 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sat Apr 18 06:52:34 2009 +0000 @@ -1015,7 +1015,7 @@ PurpleRequestFields *fields; PurpleRequestFieldGroup *group; PurpleRequestField *field; - xmlnode *x, *y; + xmlnode *x, *y, *node; char *instructions; JabberRegisterCBData *cbdata; gboolean registered = FALSE; @@ -1076,40 +1076,50 @@ group = purple_request_field_group_new(NULL); purple_request_fields_add_group(fields, group); - if(xmlnode_get_child(query, "username")) { + if((node = xmlnode_get_child(query, "username"))) { + char *data = xmlnode_get_data(node); if(js->registration) - field = purple_request_field_string_new("username", _("Username"), js->user->node, FALSE); + field = purple_request_field_string_new("username", _("Username"), data ? data : js->user->node, FALSE); else - field = purple_request_field_string_new("username", _("Username"), NULL, FALSE); + field = purple_request_field_string_new("username", _("Username"), data, FALSE); purple_request_field_group_add_field(group, field); + g_free(data); } - if(xmlnode_get_child(query, "password")) { + if((node = xmlnode_get_child(query, "password"))) { if(js->registration) field = purple_request_field_string_new("password", _("Password"), purple_connection_get_password(js->gc), FALSE); - else - field = purple_request_field_string_new("password", _("Password"), NULL, FALSE); + else { + char *data = xmlnode_get_data(node); + field = purple_request_field_string_new("password", _("Password"), data, FALSE); + g_free(data); + } purple_request_field_string_set_masked(field, TRUE); purple_request_field_group_add_field(group, field); } - if(xmlnode_get_child(query, "name")) { + if((node = xmlnode_get_child(query, "name"))) { if(js->registration) field = purple_request_field_string_new("name", _("Name"), purple_account_get_alias(js->gc->account), FALSE); - else - field = purple_request_field_string_new("name", _("Name"), NULL, FALSE); + else { + char *data = xmlnode_get_data(node); + field = purple_request_field_string_new("name", _("Name"), data, FALSE); + g_free(data); + } purple_request_field_group_add_field(group, field); } for (i = 0; registration_fields[i].name != NULL; ++i) { - if (xmlnode_get_child(query, registration_fields[i].name)) { + if ((node = xmlnode_get_child(query, registration_fields[i].name))) { + char *data = xmlnode_get_data(node); field = purple_request_field_string_new(registration_fields[i].name, _(registration_fields[i].label), - NULL, FALSE); + data, FALSE); purple_request_field_group_add_field(group, field); + g_free(data); } }