summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ply-window.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ply-window.c b/src/ply-window.c
index 747fa3e..a3dc889 100644
--- a/src/ply-window.c
+++ b/src/ply-window.c
@@ -44,6 +44,8 @@
#include "ply-utils.h"
#define KEY_CTRL_T ('\100' ^'T')
+#define KEY_CTRL_U ('\100' ^'U')
+#define KEY_CTRL_W ('\100' ^'W')
#define KEY_CTRL_V ('\100' ^'V')
#define KEY_ESCAPE ('\100' ^'[')
#define KEY_RETURN '\r'
@@ -119,6 +121,15 @@ process_backspace (ply_window_t *window)
}
static void
+process_line_erase (ply_window_t *window)
+{
+ size_t size;
+
+ while ((size = ply_buffer_get_size (window->line_buffer)) > 0)
+ process_backspace (window);
+}
+
+static void
process_keyboard_input (ply_window_t *window,
const char *keyboard_input,
size_t character_size)
@@ -136,6 +147,12 @@ process_keyboard_input (ply_window_t *window,
ply_trace ("text mode toggled!");
return;
+ case KEY_CTRL_U:
+ case KEY_CTRL_W:
+ ply_trace ("erase line!");
+ process_line_erase (window);
+ return;
+
case KEY_CTRL_V:
ply_trace ("toggle verbose mode!");
ply_toggle_tracing ();