X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Fconf.c;h=6be614318782bfc3c2e3525a8ebc5ad94d775f70;hb=2d2c41c2a3de84a2820bcb10988b4e66d654e227;hp=ceafacb0e98dc6103a94265583a63562922d97dc;hpb=d3bea25f5238e5abfe6d061c1e6840e354d27bf8;p=carl9170fw.git diff --git a/config/conf.c b/config/conf.c index ceafacb..6be6143 100644 --- a/config/conf.c +++ b/config/conf.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -39,7 +40,7 @@ static int indent = 1; static int tty_stdio; static int valid_stdin = 1; static int conf_cnt; -static char line[128]; +static char line[PATH_MAX]; static struct menu *rootEntry; static void print_help(struct menu *menu) @@ -106,7 +107,7 @@ static int conf_askvalue(struct symbol *sym, const char *def) /* fall through */ case oldaskconfig: fflush(stdout); - xfgets(line, 128, stdin); + xfgets(line, sizeof(line), stdin); if (!tty_stdio) printf("\n"); return 1; @@ -307,7 +308,7 @@ static int conf_choice(struct menu *menu) /* fall through */ case oldaskconfig: fflush(stdout); - xfgets(line, 128, stdin); + xfgets(line, sizeof(line), stdin); strip(line); if (line[0] == '?') { print_help(menu); @@ -459,7 +460,7 @@ static struct option long_opts[] = { static void conf_usage(const char *progname) { - printf("Usage: %s [option] \n", progname); + printf("Usage: %s [-s] [option] \n", progname); printf("[option] is _one_ of the following:\n"); printf(" --listnewconfig List new options\n"); printf(" --askconfig Start a new configuration using a line-oriented program\n"); @@ -488,7 +489,11 @@ int main(int ac, char **av) tty_stdio = isatty(0) && isatty(1) && isatty(2); - while ((opt = getopt_long(ac, av, "", long_opts, NULL)) != -1) { + while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) { + if (opt == 's') { + conf_set_message_callback(NULL); + continue; + } input_mode = (enum input_mode)opt; switch (opt) { case defconfig: