commit 2147e161bf7936f5c812266f9922e7d6721e9c71
parent dc079bdf31c2e7e08fab4ed7ea7d1a1b8a887fd5
Author: Benno Schulenberg <bensberg@telfort.nl>
Date: Mon, 6 Aug 2018 21:29:01 +0200
rcfile: when a vital function is not mapped, mention in which menu
Add the reverse of the name-to-menu function to accomplish this.
This fixes https://savannah.gnu.org/bugs/?54449.
Diffstat:
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/global.c b/src/global.c
@@ -1710,6 +1710,18 @@ int strtomenu(const char *input)
return -1;
}
+
+/* Return the name that corresponds to the given menu symbol. */
+char *menu_to_name(int menu)
+{
+ int index = -1;
+
+ while (++index < NUMBER_OF_MENUS)
+ if (menusymbols[index] == menu)
+ return menunames[index];
+
+ return "boooo";
+}
#endif /* ENABLE_NANORC */
diff --git a/src/proto.h b/src/proto.h
@@ -330,6 +330,7 @@ const subnfunc *sctofunc(const sc *s);
const char *flagtostr(int flag);
sc *strtosc(const char *input);
int strtomenu(const char *input);
+char *menu_to_name(int menu);
#ifdef DEBUG
void thanks_for_all_the_fish(void);
#endif
diff --git a/src/rcfile.c b/src/rcfile.c
@@ -882,7 +882,8 @@ static void check_vitals_mapped(void)
const sc *s = first_sc_for(inmenus[v], f->func);
if (!s) {
fprintf(stderr, _("No key is bound to function '%s' in "
- "some menu. Exiting.\n"), f->desc);
+ "menu '%s'. Exiting.\n"), f->desc,
+ menu_to_name(inmenus[v]));
fprintf(stderr, _("If needed, use nano with the -I option "
"to adjust your nanorc settings.\n"));
exit(1);