diff --git a/src/wreadln.c b/src/wreadln.c
index 441e1ce589bb573d51e7551c26cc422ded187cf1..c6dbda7a195b74d62772865b800401de095199e6 100644 (file)
--- a/src/wreadln.c
+++ b/src/wreadln.c
/* ncmpc (Ncurses MPD Client)
- * (c) 2004-2009 The Music Player Daemon Project
+ * (c) 2004-2010 The Music Player Daemon Project
* Project homepage: http://musicpd.org
-
+
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
#define KEY_CTRL_N 14
#define KEY_CTRL_P 16
#define KEY_CTRL_U 21
+#define KEY_CTRL_W 23
#define KEY_CTRL_Z 26
#define KEY_BCKSPC 8
#define TAB 9
dup = g_strdup(data);
dup[x] = 0;
- p = locale_to_utf8(dup);
- g_free(dup);
+ p = replace_locale_to_utf8(dup);
width = utf8_width(p);
g_free(p);
wr.line[i] = '\0';
wr.cursor = 0;
break;
+ case KEY_CTRL_W:
+ /* Firstly remove trailing spaces. */
+ for (i = wr.cursor; i > 0 && wr.line[i-1] == ' '; i--)
+ {
+ cursor_move_left(&wr);
+ wreadln_delete_char(&wr, wr.cursor);
+ }
+ /* Then remove word until next space. */
+ for (; i > 0 && wr.line[i-1] != ' '; i--)
+ {
+ cursor_move_left(&wr);
+ wreadln_delete_char(&wr, wr.cursor);
+ }
+ break;
case 127:
case KEY_BCKSPC: /* handle backspace: copy all */
case KEY_BACKSPACE: /* chars starting from curpos */