]> git.tuebingen.mpg.de Git - adu.git/blobdiff - interactive.c
make clean: Remove more derived files.
[adu.git] / interactive.c
index a35a82b3867b75bff62ec44fb6da5592954b02cf..288e9f3031f2890f73282a67ebd04be5bdffe142 100644 (file)
@@ -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, &params, &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)