|
@@ -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;
|
|
@@ -171,7 +179,7 @@ static void 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);
|
|
@@ -186,10 +194,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;
|
|
|
}
|
|
@@ -207,7 +212,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);
|
|
@@ -233,7 +237,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("] ");
|
|
|
conf_askvalue(sym, sym_get_string_value(sym));
|
|
@@ -269,10 +273,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));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -342,7 +343,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) {
|
|
@@ -359,8 +360,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])
|
|
@@ -391,8 +391,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);
|