about summary refs log tree commit diff
path: root/Src/hist.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2013-10-07 13:01:26 +0100
committerPeter Stephenson <pws@zsh.org>2013-10-07 13:01:26 +0100
commit6f195241f3ee98c11bc93ab089417012767d9cec (patch)
treef70b1059605557945c9e7b6c6c9e649a2bebc5d8 /Src/hist.c
parent9345e57859eda273d2d14346fa48e15b109fbe2d (diff)
downloadzsh-6f195241f3ee98c11bc93ab089417012767d9cec.tar.gz
zsh-6f195241f3ee98c11bc93ab089417012767d9cec.tar.xz
zsh-6f195241f3ee98c11bc93ab089417012767d9cec.zip
31794: further refinement to INCAPPENDHISTORY change.
With SHAREHISTORY we should make sure the code behaves as it always
did, because it takes care about locking a file once for reading
and writing.
Diffstat (limited to 'Src/hist.c')
-rw-r--r--Src/hist.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/Src/hist.c b/Src/hist.c
index c58ce8b34..d1af30a29 100644
--- a/Src/hist.c
+++ b/Src/hist.c
@@ -928,7 +928,15 @@ hbegin(int dohist)
 	histactive = HA_ACTIVE | HA_NOINC;
 
     hf = getsparam("HISTFILE");
-    if (isset(INCAPPENDHISTORY) && !(histactive & HA_NOINC) && !strin)
+    /*
+     * For INCAPPENDHISTORY, when interactive, save the history here
+     * as it gives a better estimate of the times of commands.
+     * If SHAREHISTORY is also set continue to do so in the
+     * standard place, because that's safer about reading and
+     * rewriting history atomically.
+     */
+    if (isset(INCAPPENDHISTORY) && !isset(SHAREHISTORY) &&
+	!(histactive & HA_NOINC) && !strin)
 	savehistfile(hf, 0, HFILE_USE_OPTIONS | HFILE_FAST);
 }