Code

lyrics/leoslyrics: don't print backtrace on HTTP failure
[ncmpc.git] / src / wreadln.c
index 441e1ce589bb573d51e7551c26cc422ded187cf1..c6dbda7a195b74d62772865b800401de095199e6 100644 (file)
@@ -1,7 +1,7 @@
 /* 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
@@ -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
@@ -92,8 +93,7 @@ byte_to_screen(const gchar *data, size_t x)
 
        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);
@@ -525,6 +525,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 */