summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Functions/Misc/zcalc17
1 files changed, 4 insertions, 13 deletions
diff --git a/Functions/Misc/zcalc b/Functions/Misc/zcalc
index 37e06557c..d416ade92 100644
--- a/Functions/Misc/zcalc
+++ b/Functions/Misc/zcalc
@@ -86,22 +86,13 @@
emulate -L zsh
setopt extendedglob
-# can't be local since required in EXIT trap
-zcalc_orighist=$HISTFILE
-local temphist=${TMPPREFIX}zcalc_hist.$$ SAVEHIST=$HISTSIZE
-HISTFILE=$temphist
-fc -W
-
-local HISTSIZE=0
-HISTSIZE=$SAVEHIST
-HISTFILE=~/.zcalc_history
-[[ -f $HISTFILE ]] && fc -R
+# push to our own history file
+fc -p ~/.zcalc_history
zcalc_restore() {
unfunction zcalc_restore
- fc -W
- HISTFILE=$zcalc_orighist
- fc -R
+ # pop back to original history
+ fc -P
}
trap zcalc_restore HUP INT QUIT EXIT