diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-07-13 16:44:29 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-07-18 11:33:44 +1000 |
commit | 2992a5502706f44b840dd8ef886647dd2f06efe4 (patch) | |
tree | 03f5d84198e8dcae83a27604de0b34c268fcae53 /jim-interactive.c | |
parent | 9c0d53835cae3b23e55ac008ce0bad626af3145a (diff) | |
download | jimtcl-2992a5502706f44b840dd8ef886647dd2f06efe4.zip jimtcl-2992a5502706f44b840dd8ef886647dd2f06efe4.tar.gz jimtcl-2992a5502706f44b840dd8ef886647dd2f06efe4.tar.bz2 |
Don't load and save history if not on a tty
If jimsh is run in interactive mode but without a tty,
don't bother to load and save line editing history.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-interactive.c')
-rw-r--r-- | jim-interactive.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/jim-interactive.c b/jim-interactive.c index 90976ce..658e8d8 100644 --- a/jim-interactive.c +++ b/jim-interactive.c @@ -4,6 +4,7 @@ #include "jimautoconf.h" #ifdef USE_LINENOISE +#include <unistd.h> #include "linenoise.h" #else @@ -32,7 +33,7 @@ int Jim_InteractivePrompt(Jim_Interp *interp) const char *home; home = getenv("HOME"); - if (home) { + if (home && isatty(STDIN_FILENO)) { int history_len = strlen(home) + sizeof("/.jim_history"); history_file = Jim_Alloc(history_len); snprintf(history_file, history_len, "%s/.jim_history", home); @@ -109,7 +110,9 @@ int Jim_InteractivePrompt(Jim_Interp *interp) } linenoiseHistoryAdd(Jim_String(scriptObjPtr)); - linenoiseHistorySave(history_file); + if (history_file) { + linenoiseHistorySave(history_file); + } #endif retcode = Jim_EvalObj(interp, scriptObjPtr); Jim_DecrRefCount(interp, scriptObjPtr); |