X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=blobdiff_plain;f=interactive.c;h=e184dbe4fce70b65a22b54d1cacb58cd74074e43;hp=9460877e344e8f8452b0f0d20f1d6ceef83dd39e;hb=63ef06be534ab9a8f31865ef6c2324f0a951aef9;hpb=3aa0ca7de42df44d7b16a762d2ae823babf3661f diff --git a/interactive.c b/interactive.c index 9460877..e184dbe 100644 --- a/interactive.c +++ b/interactive.c @@ -82,16 +82,18 @@ void print_interactive_help(void) static int icom_reset(__a_unused char *line) { + NOTICE_LOG("resetting configuration to default\n"); free_format_info(fi); fi = NULL; free(admissible_uids); admissible_uids = NULL; select_cmdline_parser_init(&select_conf); - return 1; + return parse_select_options(NULL, NULL, &admissible_uids, &fi); } static int icom_set(char *line) { + int ret; struct select_cmdline_parser_params params = { .override = 1, .initialize = 0, @@ -108,7 +110,10 @@ static int icom_set(char *line) fi = NULL; free(admissible_uids); admissible_uids = NULL; - return parse_select_options(line, ¶ms, &admissible_uids, &fi); + ret = parse_select_options(line, ¶ms, &admissible_uids, &fi); + if (ret >= 0) + return ret; + return icom_reset(NULL); } static int exec_interactive_command(char *line) @@ -166,6 +171,11 @@ int com_interactive(void) select_cmdline_parser_init(&select_conf); ret = parse_select_options(NULL, NULL, &admissible_uids, &fi); + if (ret< 0) + return ret; + ret = read_uid_file(); + if (ret < 0) + return ret; while (read_input_line(line, sizeof(line)) >= 0) { ret = exec_interactive_command(line); if (ret < 0)