From 8cfe80e979ddbc3ada0794020f313d59e23320aa Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 14 Sep 2014 16:23:25 +0100 Subject: Added setting of unique form list values --- src/command/commands.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/command') diff --git a/src/command/commands.c b/src/command/commands.c index fc3e5298..5dd5eb11 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -1979,21 +1979,33 @@ cmd_room(gchar **args, struct cmd_help_t help) } else { form_field_type_t field_type = form_get_field_type(current->form, tag); gboolean valid = FALSE; + gboolean added = FALSE; switch (field_type) { case FIELD_LIST_MULTI: valid = form_field_contains_option(current->form, tag, value); - if (valid == TRUE) { - form_add_value(current->form, tag, value); - ui_current_print_line("Added %s to %s", value, tag); + if (valid) { + added = form_add_unique_value(current->form, tag, value); + if (added) { + ui_current_print_line("Added %s to %s", value, tag); + } else { + ui_current_print_line("Value %s already selected for %s", value, tag); + } } else { ui_current_print_line("Value %s not a valid option for field: %s", value, tag); } break; case FIELD_TEXT_MULTI: - case FIELD_JID_MULTI: form_add_value(current->form, tag, value); ui_current_print_line("Added %s to %s", value, tag); break; + case FIELD_JID_MULTI: + added = form_add_unique_value(current->form, tag, value); + if (added) { + ui_current_print_line("Added %s to %s", value, tag); + } else { + ui_current_print_line("JID %s already exists in %s", value, tag); + } + break; default: ui_current_print_line("Add command not valid for field: %s", tag); break; -- cgit 1.4.1-2-gfad0