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 <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2012-12-05 15:51:01 +01:00
parent a9cbf27536
commit db8886a34c

View File

@ -547,11 +547,15 @@ void keys_popup_info(enum key key)
void keys_save_bindings(FILE * fd) void keys_save_bindings(FILE * fd)
{ {
int i; int i;
char *action;
EXIT_IF(fd == NULL, _("FATAL ERROR: null file pointer.")); EXIT_IF(fd == NULL, _("FATAL ERROR: null file pointer."));
dump_intro(fd); dump_intro(fd);
for (i = 0; i < NBKEYS; i++) for (i = 0; i < NBKEYS; i++) {
fprintf(fd, "%s %s\n", keydef[i].label, keys_action_allkeys(i)); action = keys_action_allkeys(i);
if (action)
fprintf(fd, "%s %s\n", keydef[i].label, action);
}
} }
int keys_check_missing_bindings(void) int keys_check_missing_bindings(void)