hush: optional support for history saving

function                                             old     new   delta
hush_main                                            945     995     +50

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
This commit is contained in:
Denys Vlasenko 2010-09-12 17:34:13 +02:00
parent 5a0d899ee4
commit 99862cbfad
2 changed files with 22 additions and 2 deletions

View File

@ -78,9 +78,9 @@ config FEATURE_EDITING_HISTORY
config FEATURE_EDITING_SAVEHISTORY
bool "History saving"
default y
depends on ASH && FEATURE_EDITING
depends on FEATURE_EDITING
help
Enable history saving in ash shell.
Enable history saving in shells.
config FEATURE_TAB_COMPLETION
bool "Tab completion"

View File

@ -146,6 +146,13 @@
//config: from stdin just like a shell script from a file.
//config: No prompt, no PS1/PS2 magic shell variables.
//config:
//config:config HUSH_SAVEHISTORY
//config: bool "Save command history to .hush_history"
//config: default y
//config: depends on HUSH_INTERACTIVE && FEATURE_EDITING_SAVEHISTORY
//config: help
//config: Enable history saving in hush.
//config:
//config:config HUSH_JOB
//config: bool "Job control"
//config: default y
@ -7415,7 +7422,20 @@ int hush_main(int argc, char **argv)
#if ENABLE_FEATURE_EDITING
G.line_input_state = new_line_input_t(FOR_SHELL);
# if defined MAX_HISTORY && MAX_HISTORY > 0 && ENABLE_HUSH_SAVEHISTORY
{
const char *hp = get_local_var_value("HISTFILE");
if (!hp) {
hp = get_local_var_value("HOME");
if (hp) {
G.line_input_state->hist_file = concat_path_file(hp, ".hush_history");
//set_local_var(xasprintf("HISTFILE=%s", ...));
}
}
}
# endif
#endif
G.global_argc = argc;
G.global_argv = argv;
/* Initialize some more globals to non-zero values */