diff --git a/src/screen_keydef.c b/src/screen_keydef.c
index ad78c383d48b235ec6a12bc9f1ab8659c8821819..9a76c1bf1baf4c2a5a6d8e18eef802a4b1d6248e 100644 (file)
--- a/src/screen_keydef.c
+++ b/src/screen_keydef.c
/* 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
#include "conf.h"
#include "screen.h"
#include "screen_utils.h"
+#include "options.h"
#include "Compiler.h"
#include <assert.h>
static int
save_keys(void)
{
- FILE *f;
- char *filename;
+ 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;
+ }
- 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();
}
- filename = build_user_key_binding_filename();
-
- if ((f = fopen(filename,"w")) == NULL) {
+ 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;
}
if (write_key_bindings(f, KEYDEF_WRITE_HEADER))
- screen_status_printf(_("Error: %s - %s"), filename, strerror(errno));
- else
screen_status_printf(_("Wrote %s"), filename);
+ else
+ screen_status_printf(_("Error: %s - %s"), filename, strerror(errno));
- g_free(filename);
+ g_free(allocated);
return fclose(f);
}
static void
keydef_paint(void);
-static void
-keydef_repaint(void)
-{
- keydef_paint();
- wrefresh(lw->w);
-}
-
/** lw->start the last time switch_to_subcmd_mode() was called */
static unsigned saved_start = 0;
list_window_reset(lw);
check_subcmd_length();
- keydef_repaint();
+ keydef_paint();
}
static void
lw->start = saved_start;
- keydef_repaint();
+ keydef_paint();
}
/**
screen_status_printf(_("Deleted"));
/* repaint */
- keydef_repaint();
+ keydef_paint();
/* update key conflict flags */
check_key_bindings(cmds, NULL, 0);
static void
overwrite_key(int cmd_index, int key_index)
{
- int key;
- char *buf;
- command_t cmd;
-
assert(key_index < MAX_COMMAND_KEYS);
- buf = g_strdup_printf(_("Enter new key for %s: "), cmds[cmd_index].name);
- key = screen_getch(buf);
+ char *buf = g_strdup_printf(_("Enter new key for %s: "),
+ cmds[cmd_index].name);
+ const int key = screen_getch(buf);
g_free(buf);
if (key == ERR) {
return;
}
- cmd = find_key_command(key, cmds);
+ const command_t cmd = find_key_command(key, cmds);
if (cmd != CMD_NONE) {
screen_status_printf(_("Error: key %s is already used for %s"),
key2str(key), get_key_command_name(cmd));
check_subcmd_length();
/* repaint */
- keydef_repaint();
+ keydef_paint();
/* update key conflict flags */
check_key_bindings(cmds, NULL, 0);
}
static void
-keydef_init(WINDOW *w, int cols, int rows)
+keydef_init(WINDOW *w, unsigned cols, unsigned rows)
{
lw = list_window_init(w, cols, rows);
}
static void
-keydef_resize(int cols, int rows)
+keydef_resize(unsigned cols, unsigned rows)
{
list_window_resize(lw, cols, rows);
}
{
if (cmds == NULL) {
command_definition_t *current_cmds = get_command_definitions();
- size_t cmds_size;
-
command_n_commands = 0;
while (current_cmds[command_n_commands].name)
command_n_commands++;
/* +1 for the terminator element */
- cmds_size = (command_n_commands + 1) * sizeof(command_definition_t);
+ size_t cmds_size = (command_n_commands + 1)
+ * sizeof(command_definition_t);
cmds = g_malloc0(cmds_size);
memcpy(cmds, current_cmds, cmds_size);
}
return false;
if (list_window_cmd(lw, cmd)) {
- keydef_repaint();
+ keydef_paint();
return true;
}
case CMD_LIST_FIND_NEXT:
case CMD_LIST_RFIND_NEXT:
screen_find(lw, cmd, list_callback, NULL);
- keydef_repaint();
+ keydef_paint();
return true;
default: