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; }