david/ipxe
Archived
1
0

[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 <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2011-03-30 19:44:15 +01:00
parent 5a064dd2c4
commit de2d983ab8

View File

@ -21,6 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <getopt.h>
#include <readline/readline.h>
#include <ipxe/command.h>
@ -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;
}