1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-27 04:40:59 +01:00

* 16310: Functions/Misc/zcalc, Doc/Zsh/contrib.yo: separate zcalc

history, handle errors in expression, document -#base option.
This commit is contained in:
Peter Stephenson 2001-12-07 12:59:08 +00:00
parent 960a7e5347
commit 64b4bfe6fc
3 changed files with 32 additions and 2 deletions

View file

@ -88,6 +88,25 @@
emulate -L zsh
setopt extendedglob
# can't be local since required in EXIT trap
zcalc_orighist=$HISTFILE
local temphist=${TMPPREFIX}hist SAVEHIST=$HISTSIZE
HISTFILE=$temphist
fc -W
local HISTSIZE=0
HISTSIZE=$SAVEHIST
HISTFILE=~/.zcalc_history
[[ -f $HISTFILE ]] && fc -R
zcalc_restore() {
unfunction zcalc_restore
fc -W
HISTFILE=$zcalc_orighist
fc -R
}
trap zcalc_restore HUP INT QUIT EXIT
local line latest base defbase match mbegin mend psvar optlist opt arg
integer num
@ -172,7 +191,10 @@ while vared -cehp "${(%)ZCALCPROMPT}" line; do
#
# Since it's a string, we'd better make sure we know which
# base it's in, so don't change that until we actually print it.
latest=
eval "latest=\$(( $line ))"
# on error $latest is not set; let user re-edit line
[[ -n $latest ]] || continue
argv[num++]=$latest
psvar[1]=$num
if [[ -z $base ]]; then