From de2d983ab85b383d3d35cf0fb0a85f28835b09f6 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 30 Mar 2011 19:44:15 +0100 Subject: [cmdline] Add support for shell history The up and down arrow keys will now function roughly as expected at the iPXE command line. Signed-off-by: Michael Brown --- src/hci/shell.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/hci/shell.c b/src/hci/shell.c index f8b1ec27..e426ba94 100644 --- a/src/hci/shell.c +++ b/src/hci/shell.c @@ -21,6 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include #include +#include #include #include #include @@ -75,17 +76,25 @@ struct command help_command __command = { * */ int shell ( void ) { + struct readline_history history; char *line; int rc = 0; + /* Initialise shell history */ + memset ( &history, 0, sizeof ( history ) ); + + /* Read and execute commands */ do { - line = readline ( shell_prompt ); + line = readline_history ( shell_prompt, &history ); if ( line ) { rc = system ( line ); free ( line ); } } while ( ! shell_stopped ( SHELL_STOP_COMMAND_SEQUENCE ) ); + /* Discard shell history */ + history_free ( &history ); + return rc; } -- cgit v1.2.3-55-g7522