X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fscreen_keydef.c;h=31c3582e4d61de964eb242669df8c9f357a286dd;hb=386ea7f72f2e08d037111bdb6272d91e7bba6ef3;hp=b947dd8f0ebf022634efedfa9781bb4fa5bfe94f;hpb=842b903eecc94b0cdf4a68241450116e2fe31f8e;p=ncmpc.git diff --git a/src/screen_keydef.c b/src/screen_keydef.c index b947dd8..31c3582 100644 --- a/src/screen_keydef.c +++ b/src/screen_keydef.c @@ -1,5 +1,5 @@ /* ncmpc (Ncurses MPD Client) - * (c) 2004-2010 The Music Player Daemon Project + * (c) 2004-2017 The Music Player Daemon Project * Project homepage: http://musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -25,6 +25,7 @@ #include "conf.h" #include "screen.h" #include "screen_utils.h" +#include "options.h" #include "Compiler.h" #include @@ -145,19 +146,24 @@ apply_keys(void) static int save_keys(void) { - if (!check_user_conf_dir()) { - screen_status_printf(_("Error: Unable to create directory ~/.ncmpc - %s"), - strerror(errno)); - screen_bell(); - return -1; + char *allocated = NULL; + const char *filename = options.key_file; + if (filename == NULL) { + if (!check_user_conf_dir()) { + screen_status_printf(_("Error: Unable to create directory ~/.ncmpc - %s"), + strerror(errno)); + screen_bell(); + return -1; + } + + filename = allocated = build_user_key_binding_filename(); } - char *filename = build_user_key_binding_filename(); FILE *f = fopen(filename, "w"); if (f == NULL) { screen_status_printf(_("Error: %s - %s"), filename, strerror(errno)); screen_bell(); - g_free(filename); + g_free(allocated); return -1; } @@ -166,7 +172,7 @@ save_keys(void) else screen_status_printf(_("Error: %s - %s"), filename, strerror(errno)); - g_free(filename); + g_free(allocated); return fclose(f); }