From a500c51bcf6c7448b0e47001fa5bcd69eb30e516 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Fri, 27 Mar 2009 10:09:29 +0100 Subject: [PATCH] support the ^W shortcut in wreadline input --- src/wreadln.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/wreadln.c b/src/wreadln.c index 441e1ce..ad1047f 100644 --- a/src/wreadln.c +++ b/src/wreadln.c @@ -1,7 +1,7 @@ /* ncmpc (Ncurses MPD Client) * (c) 2004-2009 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 @@ -42,6 +42,7 @@ #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 @@ -525,6 +526,20 @@ _wreadln(WINDOW *w, 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 */ -- 2.30.2