X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Fconf.c;h=06ddb0514f141e1a551dab50c4b8744386de5334;hb=04272dbc3dfed9d035a6359ff85101cddcd26bde;hp=6b6cba52a453455e2be70e3b16cf86cc6e88ca74;hpb=0458372cb34ceb9484fbac057a3c1dabef506fce;p=carl9170fw.git diff --git a/config/conf.c b/config/conf.c index 6b6cba5..06ddb05 100644 --- a/config/conf.c +++ b/config/conf.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -19,7 +20,6 @@ static void conf(struct menu *menu); static void check_conf(struct menu *menu); -static void xfgets(char *str, int size, FILE *in); enum input_mode { oldaskconfig, @@ -33,13 +33,14 @@ enum input_mode { savedefconfig, listnewconfig, oldnoconfig, -} input_mode = oldaskconfig; +}; +static enum input_mode input_mode = oldaskconfig; 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) @@ -79,6 +80,13 @@ static void check_stdin(void) } } +/* Helper function to facilitate fgets() by Jean Sacren. */ +static void xfgets(char *str, int size, FILE *in) +{ + if (!fgets(str, size, in)) + fprintf(stderr, "\nError in reading or end of file.\n"); +} + static int conf_askvalue(struct symbol *sym, const char *def) { enum symbol_type type = sym_get_type(sym); @@ -106,7 +114,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 +315,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); @@ -666,12 +674,3 @@ int main(int ac, char **av) } return 0; } - -/* - * Helper function to facilitate fgets() by Jean Sacren. - */ -void xfgets(char *str, int size, FILE *in) -{ - if (fgets(str, size, in) == NULL) - fprintf(stderr, "\nError in reading or end of file.\n"); -}