diff options
Diffstat (limited to 'package/config/conf.c')
-rw-r--r-- | package/config/conf.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/package/config/conf.c b/package/config/conf.c index bd2ca4bb6..b025d2d66 100644 --- a/package/config/conf.c +++ b/package/config/conf.c @@ -37,6 +37,14 @@ static struct menu *rootEntry; static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n"); +static const char *get_help(struct menu *menu) +{ + if (menu_has_help(menu)) + return menu_get_help(menu); + else + return nohelp_text; +} + static void strip(char *str) { char *p = str; @@ -172,7 +180,7 @@ static int conf_askvalue(struct symbol *sym, const char *def) int conf_string(struct menu *menu) { struct symbol *sym = menu->sym; - const char *def, *help; + const char *def; while (1) { printf("%*s%s ", indent - 1, "", menu->prompt->text); @@ -188,10 +196,7 @@ int conf_string(struct menu *menu) case '?': /* print help */ if (line[1] == '\n') { - help = nohelp_text; - if (menu->sym->help) - help = menu->sym->help; - printf("\n%s\n", menu->sym->help); + printf("\n%s\n", get_help(menu)); def = NULL; break; } @@ -209,7 +214,6 @@ static int conf_sym(struct menu *menu) struct symbol *sym = menu->sym; int type; tristate oldval, newval; - const char *help; while (1) { printf("%*s%s ", indent - 1, "", menu->prompt->text); @@ -235,7 +239,7 @@ static int conf_sym(struct menu *menu) printf("/m"); if (oldval != yes && sym_tristate_within_range(sym, yes)) printf("/y"); - if (sym->help) + if (menu_has_help(menu)) printf("/?"); printf("] "); if (!conf_askvalue(sym, sym_get_string_value(sym))) @@ -272,10 +276,7 @@ static int conf_sym(struct menu *menu) if (sym_set_tristate_value(sym, newval)) return 0; help: - help = nohelp_text; - if (sym->help) - help = sym->help; - printf("\n%s\n", help); + printf("\n%s\n", get_help(menu)); } } @@ -345,7 +346,7 @@ static int conf_choice(struct menu *menu) goto conf_childs; } printf("[1-%d", cnt); - if (sym->help) + if (menu_has_help(menu)) printf("?"); printf("]: "); switch (input_mode) { @@ -362,8 +363,7 @@ static int conf_choice(struct menu *menu) fgets(line, 128, stdin); strip(line); if (line[0] == '?') { - printf("\n%s\n", menu->sym->help ? - menu->sym->help : nohelp_text); + printf("\n%s\n", get_help(menu)); continue; } if (!line[0]) @@ -394,8 +394,7 @@ static int conf_choice(struct menu *menu) if (!child) continue; if (line[strlen(line) - 1] == '?') { - printf("\n%s\n", child->sym->help ? - child->sym->help : nohelp_text); + printf("\n%s\n", get_help(child)); continue; } sym_set_choice_value(sym, child->sym); |