From db8886a34cfc026b7a95ab0256317e5ec7ce728a Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Wed, 5 Dec 2012 15:51:01 +0100 Subject: keys_save_bindings(): Skip unset key bindings Saving unset key bindings currently results in a segmentation fault or invalid key specifiers being stored. Skip these entries to avoid this. Signed-off-by: Lukas Fleischer --- src/keys.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/keys.c b/src/keys.c index a908bd0..0d54701 100644 --- a/src/keys.c +++ b/src/keys.c @@ -547,11 +547,15 @@ void keys_popup_info(enum key key) void keys_save_bindings(FILE * fd) { int i; + char *action; EXIT_IF(fd == NULL, _("FATAL ERROR: null file pointer.")); dump_intro(fd); - for (i = 0; i < NBKEYS; i++) - fprintf(fd, "%s %s\n", keydef[i].label, keys_action_allkeys(i)); + for (i = 0; i < NBKEYS; i++) { + action = keys_action_allkeys(i); + if (action) + fprintf(fd, "%s %s\n", keydef[i].label, action); + } } int keys_check_missing_bindings(void) -- cgit v1.2.3