From aac9718fd60e5a85579ffc3d63c302615c403b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robin=20Smidsr=C3=B8d?= Date: Wed, 28 Mar 2012 11:52:55 +0100 Subject: [PATCH] [readline] Accept Ctrl-U for "delete to start of line" Signed-off-by: Michael Brown --- src/hci/editstring.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/hci/editstring.c b/src/hci/editstring.c index 996528ff..35a5b2c1 100644 --- a/src/hci/editstring.c +++ b/src/hci/editstring.c @@ -36,6 +36,7 @@ static void insert_character ( struct edit_string *string, unsigned int character ) __nonnull; static void delete_character ( struct edit_string *string ) __nonnull; static void backspace ( struct edit_string *string ) __nonnull; +static void kill_sol ( struct edit_string *string ) __nonnull; static void kill_eol ( struct edit_string *string ) __nonnull; /** @@ -108,6 +109,17 @@ static void backspace ( struct edit_string *string ) { } } +/** + * Delete to start of line + * + * @v string Editable string + */ +static void kill_sol ( struct edit_string *string ) { + size_t old_cursor = string->cursor; + string->cursor = 0; + insert_delete ( string, old_cursor, NULL ); +} + /** * Delete to end of line * @@ -168,6 +180,10 @@ int edit_string ( struct edit_string *string, int key ) { /* Delete character */ delete_character ( string ); break; + case CTRL_U: + /* Delete to start of line */ + kill_sol ( string ); + break; case CTRL_K: /* Delete to end of line */ kill_eol ( string );