X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=interactive.c;h=288e9f3031f2890f73282a67ebd04be5bdffe142;hb=0643775c40e8726d75b2a556fd8459964169f04a;hp=a35a82b3867b75bff62ec44fb6da5592954b02cf;hpb=99eaf79ebdb45f935eb9d8b60cc0889e09d5b6df;p=adu.git diff --git a/interactive.c b/interactive.c index a35a82b..288e9f3 100644 --- a/interactive.c +++ b/interactive.c @@ -65,11 +65,17 @@ static int icom_help(__a_unused char *line) void print_interactive_help(void) { - icom_help(NULL); + struct interactive_command *c; + FOR_EACH_COMMAND(c) + fprintf(stdout, "\t%s\t%s\n", c->name, c->desc); } static int icom_reset(__a_unused char *line) { + free_format_info(fi); + fi = NULL; + free(admissible_uids); + admissible_uids = NULL; select_cmdline_parser_init(&select_conf); return 1; } @@ -88,6 +94,10 @@ static int icom_set(char *line) return 1; } + free_format_info(fi); + fi = NULL; + free(admissible_uids); + admissible_uids = NULL; return parse_select_options(line, ¶ms, &admissible_uids, &fi); } @@ -113,6 +123,8 @@ static int exec_interactive_command(char *line) if (!*line) return 1; /* OK, we have a non-empty line */ + if (*line == '#') + return 1; cmd = adu_strdup(line); args = cmd + strcspn(cmd, delim); if (!*args) @@ -143,6 +155,7 @@ int com_interactive(void) int ret = 1; select_cmdline_parser_init(&select_conf); + ret = parse_select_options(NULL, NULL, &admissible_uids, &fi); while (read_input_line(line, sizeof(line)) >= 0) { ret = exec_interactive_command(line); if (ret < 0)