david/ipxe
Archived
1
0

[readline] Accept Ctrl-U for "delete to start of line"

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Robin Smidsrød 2012-03-28 11:52:55 +01:00 committed by Michael Brown
parent b9720e4ebf
commit aac9718fd6

View File

@ -36,6 +36,7 @@ static void insert_character ( struct edit_string *string,
unsigned int character ) __nonnull; unsigned int character ) __nonnull;
static void delete_character ( struct edit_string *string ) __nonnull; static void delete_character ( struct edit_string *string ) __nonnull;
static void backspace ( 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; 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 * Delete to end of line
* *
@ -168,6 +180,10 @@ int edit_string ( struct edit_string *string, int key ) {
/* Delete character */ /* Delete character */
delete_character ( string ); delete_character ( string );
break; break;
case CTRL_U:
/* Delete to start of line */
kill_sol ( string );
break;
case CTRL_K: case CTRL_K:
/* Delete to end of line */ /* Delete to end of line */
kill_eol ( string ); kill_eol ( string );