X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=interactive.c;h=191e6330f3989995ab93c42252f8a7f1d78ad2dd;hb=bc400e8b68da0cc02ce7e0262faf28e967a76151;hp=295be371b384cd102534914f4c4a0903a89ddab2;hpb=e6b9f49fcde364aeff6c0d38e66694eeac0573b4;p=adu.git diff --git a/interactive.c b/interactive.c index 295be37..191e633 100644 --- a/interactive.c +++ b/interactive.c @@ -1,4 +1,6 @@ #include "adu.h" +#include "format.h" +#include "select.h" #include "string.h" #include "error.h" #include "cmdline.h" @@ -10,6 +12,7 @@ struct interactive_command { }; static struct uid_range *admissible_uids; +static struct format_info *fi; #define INTERACTIVE_COMMANDS \ INTERACTIVE_COMMAND(dump, "dump the current configuration") \ @@ -47,7 +50,7 @@ static int read_input_line(char *line, size_t size) static int icom_run(__a_unused char *line) { - return run_select_query(admissible_uids); + return run_select_query(admissible_uids, fi); } static int icom_help(__a_unused char *line) @@ -59,6 +62,11 @@ static int icom_help(__a_unused char *line) return 1; } +void print_interactive_help(void) +{ + icom_help(NULL); +} + static int icom_reset(__a_unused char *line) { select_cmdline_parser_init(&select_conf); @@ -74,12 +82,11 @@ static int icom_set(char *line) .check_ambiguity = 0, .print_errors = 1 }; - return parse_select_options(line, ¶ms, &admissible_uids); + return parse_select_options(line, ¶ms, &admissible_uids, &fi); } static int icom_dump(__a_unused char *line) { - ERROR_LOG("dump: %s\n", select_conf.format_arg); select_cmdline_parser_dump(stdout, &select_conf); return 1; } @@ -92,8 +99,12 @@ static int exec_interactive_command(char *line) char *p = cmd + strcspn(cmd, delim); int ret = -E_SYNTAX; - *p = '\0'; - p++; + if (*p == '\0') + p = NULL; + else { + *p = '\0'; + p++; + } for (i = 0; icmds[i].name; i++) { ERROR_LOG("name: %s, cmd: %s.\n", icmds[i].name, cmd); if (strcmp(icmds[i].name, cmd))