aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog179
-rw-r--r--Completion/Base/_brace_parameter2
-rw-r--r--Completion/Base/_vars19
-rw-r--r--Completion/Builtins/_jobs2
-rw-r--r--Completion/Builtins/_kill3
-rw-r--r--Completion/Builtins/_limits2
-rw-r--r--Completion/Builtins/_wait2
-rw-r--r--Completion/Builtins/_zftp13
-rw-r--r--Completion/Core/_normal2
-rw-r--r--Completion/Core/_path_files4
-rw-r--r--Completion/Core/compdump2
-rw-r--r--Completion/Core/compinit4
-rw-r--r--Completion/Makefile.in16
-rw-r--r--Config/defs.mk.in1
-rw-r--r--Config/version.mk4
-rw-r--r--Doc/Makefile.in6
-rw-r--r--Doc/Zsh/arith.yo53
-rw-r--r--Doc/Zsh/builtins.yo13
-rw-r--r--Doc/Zsh/compctl.yo110
-rw-r--r--Doc/Zsh/compsys.yo49
-rw-r--r--Doc/Zsh/compwid.yo45
-rw-r--r--Doc/Zsh/expn.yo25
-rw-r--r--Doc/Zsh/files.yo2
-rw-r--r--Doc/Zsh/func.yo3
-rw-r--r--Doc/Zsh/grammar.yo5
-rw-r--r--Doc/Zsh/guide.yo4
-rw-r--r--Doc/Zsh/jobs.yo2
-rw-r--r--Doc/Zsh/metafaq.yo2
-rw-r--r--Doc/Zsh/mod_compctl.yo2
-rw-r--r--Doc/Zsh/mod_mapfile.yo8
-rw-r--r--Doc/Zsh/mod_zftp.yo16
-rw-r--r--Doc/Zsh/params.yo18
-rw-r--r--Doc/Zsh/redirect.yo20
-rw-r--r--Doc/Zsh/zftpsys.yo104
-rw-r--r--Doc/Zsh/zle.yo6
-rw-r--r--Doc/zman.yo10
-rw-r--r--Doc/zsh.yo2
-rw-r--r--Doc/ztexi.yo10
-rw-r--r--Etc/MACHINES10
-rw-r--r--Functions/Makefile.in16
-rw-r--r--Functions/Zftp/.distfiles2
-rw-r--r--Functions/Zftp/zfgoto0
-rw-r--r--Functions/Zftp/zfinit14
-rw-r--r--Functions/Zftp/zfmark0
-rw-r--r--Functions/Zftp/zftp_chpwd1
-rw-r--r--INSTALL24
-rw-r--r--Src/Builtins/rlimits.c17
-rw-r--r--Src/Makefile.in8
-rw-r--r--Src/Modules/zftp.c11
-rw-r--r--Src/Zle/zle_misc.c5
-rw-r--r--Src/Zle/zle_tricky.c91
-rw-r--r--Src/builtin.c63
-rw-r--r--Src/cond.c91
-rw-r--r--Src/exec.c396
-rw-r--r--Src/glob.c24
-rw-r--r--Src/hashtable.c4
-rw-r--r--Src/hist.c110
-rw-r--r--Src/init.c31
-rw-r--r--Src/jobs.c35
-rw-r--r--Src/lex.c76
-rw-r--r--Src/linklist.c4
-rw-r--r--Src/loop.c64
-rw-r--r--Src/math.c14
-rw-r--r--Src/mem.c55
-rw-r--r--Src/params.c21
-rw-r--r--Src/parse.c56
-rw-r--r--Src/signals.c2
-rw-r--r--Src/subst.c4
-rw-r--r--Src/text.c36
-rw-r--r--Src/utils.c641
-rw-r--r--Src/zsh.export3
-rw-r--r--Src/zsh.h14
-rw-r--r--Src/zsh.mdd11
-rw-r--r--Util/zsh-development-guide18
-rw-r--r--acconfig.h5
-rw-r--r--aczsh.m424
-rw-r--r--configure.in118
77 files changed, 1652 insertions, 1237 deletions
diff --git a/ChangeLog b/ChangeLog
index 48818fe3d..8daf08449 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,182 @@
+1999-06-15 Peter Stephenson <pws@ibmth.difi.unipi.it>
+
+ * Oliver: 6636: Completion/Builtins/_limits: wasn't working
+
+ * Bart: 6617 + minor changes: Src/utils.c: Be more careful keeping
+ $COLUMNS and $LINES correct, particularly if exported.
+
+ * Sven: zsh-users/2388: Src/jobs.c: while loops etc. in shells
+ running without MONITOR were hard to kill.
+
+ * Bart: 6628: Src/params.c: setting slices of unset array
+ caused a crash.
+
+1999-06-14 Peter Stephenson <pws@ibmth.difi.unipi.it>
+
+ * pws: 6626: Src/mem.c: in zsh's malloc, try to make sure when
+ sbrk'ing that it's sufficiently well aligned.
+
+ * Oliver: 6624: Completion/Builtins/_kill,
+ Completion/Builtins/_wait: more widely functioning process
+ handling
+
+ * pws: 6623: Completion/Makefile.in, Config/defs.mk.in,
+ Functions/Makefile.in, INSTALL, Src/init.c, Src/zsh.mdd,
+ configure.in: --enable-function-subdirs allows installation
+ into subdirectories of the function directory and sets the
+ initial $fpath appropriately.
+
+ * Oliver: 6620: Completion/Builtins/_jobs: handle disown, too.
+
+ * pws: 6618: Doc/Zsh/func.yo, Doc/Zsh/grammar.yo, Src/lex.c:
+ with SH_GLOB set, function definition parentheses after the
+ first word on the line allow spaces inside.
+
+ * Sven: 6614: Src/Zle/zle_tricky.c, Completion/Brace/_brace_parameter:
+ completion after quotes in parameters
+
+ * pws: 6610: Src/glob.c: globbing flags shouldn't be active
+ without extendedglob.
+
+ * Bart: 6608: Doc/Zsh files compctl.yo, compsys.yo, compwid.yo,
+ expn.yo, files.yo, mod_mapfile.yo, mod_zftp.yo, params.yo,
+ zftpsys.yo, zle.yo: spelling corrections
+
+1999-06-12 Peter Stephenson <pws@ibmth.difi.unipi.it>
+
+ * pws: 6601: Src/Makefile.in: don't remake Makemod just
+ to clean up files
+
+ * pws: 6600: Doc/Zsh/arith.yo, Doc/Zsh/compctl.yo,
+ Doc/Zsh/compsys.yo, Doc/Zsh/compwid.yo, Doc/Zsh/expn.yo,
+ Doc/Zsh/guide.yo, Doc/Zsh/jobs.yo, Doc/Zsh/metafaq.yo,
+ Doc/Zsh/mod_compctl.yo, Doc/Zsh/mod_zftp.yo, Doc/Zsh/params.yo,
+ Doc/Zsh/redirect.yo, Doc/Zsh/zftpsys.yo, Doc/Zsh/zle.yo,
+ Doc/zman.yo, Doc/ztexi.yo, Util/zsh-development-guide:
+ Formatting of unfilled text now handled by three distinct
+ macros example(), indent(), nofill(); compctl description node
+ is now called `Programmable Completion Using compctl' to
+ distinguish it from widget completion; don't put chapters on
+ separate pages because many are too short.
+
+ * Wayne: 6599: Src/Zle/zle_tricky.c: unitialised variable warnings
+ from gcc
+
+1999-06-11 Peter Stephenson <pws@ibmth.difi.unipi.it>
+
+ * pws: 6598: Doc/Zsh/zftpsys.yo, Functions/Zftp/zfinit,
+ Functions/Zftp/zfgoto, Functions/Zftp/zfmark,
+ Functions/Zftp/zftp_chpwd, Completion/Builtins/_zftp:
+ add zfmark and zfgoto implementing bookmarks (including use
+ ncftp bookmarks) for zftp function suite; autoload functions
+ from zfinit; patcomps -> _patcomps.
+
+ * pws: 6596: Doc/Zsh/arith.yo: update on size of integers and
+ increase in clarity of presentation
+
+ * Sven: 6589: Completion/Core/_path_files: use :h and :t instead
+ of pattern matching
+
+ * Sven: 6587, 6588: Src/Zle/zle_misc.c, Doc/Zsh/options.yo: < and
+ > shouldn't remove a suffix, but | does
+
+ * Sven: 6586: Src/exec.c, Src/lex.c, Src/loop.c: don't modify
+ struct cmd to insert cmd args and flags, always pass those
+ separately
+
+1999-06-10 Peter Stephenson <pws@ibmth.difi.unipi.it>
+
+ * Andrej: 6581: Doc/Makefile: dependencies for manuals
+
+ * Sven: 6579: Src/exec.c: old hack of storing shell function
+ args in struct cmd doesn't work any more
+
+ * Sven: 6577: Src/exec.c, Src/text.c, Src/utils.c: expunge
+ simplifyright(), which appears no longer to have an effect
+
+ * pws: 6575: Doc/Zsh/mod_mapfile.yo: avoid mapping long files
+
+ * pws: 6571: Src/Builtins/rlimits.c: use appropriate printf()
+ routine in printulimit() instead of just casting to long
+
+ * pws: 6570: configure.in, INSTALL: some systems have
+ sizeof(off_t) or sizeof(ino_t) == 8 and sizeof(long) == 4 even
+ without explicit enabling, so check and if so use the
+ --enable-lfs code.
+
+ * pws/Sven: 6567, 6568: Completion/Base/_vars: complete assoc
+ array keys
+
+ * pws: 6566: Src/params.c: junk testhash assoc array
+
+ * pws: 6563: sporadic: minor changes affecting casts, sizes
+ of integers, unused variables; add index for subscripts in
+ manual
+
+ * Bart: email: Src/zsh.h: alternative definition for zulong
+
+ * Bart: 6558: Src/builtins.c: printing functions with the
+ UNALIASED flag
+
+ * Sven: 6557: Doc/zsh/compsys.yo: a few typos
+
+1999-06-09 Peter Stephenson <pws@ibmth.difi.unipi.it>
+
+ * Andrej: 6556: aczsh.m4: don't disable setting variables
+ for --enable-lfs just because some other variables were set
+
+ * Sven: 6554: Src/Zle/zle_tricky.c: display bugs with compadd -X:
+ newline missing and display unnecessarily altered
+
+ * pws: 6552: configure.in, aczsh.m4, acconfig.h, Src/zsh.h:
+ define separate unsigned 64-bit integer; try __int64_t and
+ __uint64_t.
+
+ * Sven: 6548: Src/Zle/zle_tricky.c: fix `compctl -l'
+
+ * Andrej: 6544: configure displays info on function installation
+
+ * Sven: 6542: Src/builtin.c, Src/exec.c, Src/hist.c, Src/init.c,
+ Src/lex.c: when not using interactive history, don't allocate
+ history at all
+
+ * Andrej: 6541: configure.in: add missing `test'
+
+ * Sven: 6535: Completion/core/_normal: an eval was unnecessary
+
+ * Bart: 6534: Completion/Core/compdump, Completion/Core/compinit,
+ Doc/Zsh/builtins.yo, Src/builtin.c, Src/exec.c, Src/zsh.h:
+ autoload -U defines functions which don't use expand aliases
+ during loading; used in new completion code to protect
+ functions.
+
+ * Sven: 6527: Src/builtin.c, Src/cond.c, Src/exec.c, Src/glob.c,
+ Src/hashtable.c, Src/init.c, Src/jobs.c, Src/lex.c,
+ Src/linklist.c, Src/loop.c, Src/math.c, Src/mem.c, Src/params.c,
+ Src/parse.c, Src/signals.c, Src/text.c, Src/utils.c, Src/zsh.h:
+ various sets of patches:
+ - make zhalloc() use a pointer to the first free heap
+ - make zsh-mem allocators keep some memory back when freeing
+ - reduce the amount of allocation work done in the exec.c
+ execution hierarchy
+ - don't duplicate execution trees any more than necessary, e.g.
+ execute functions from stored tree
+
+ * pws: Etc/MACHINES: Danek Duvall reports --enable-dynamic OK
+ on Solaris 2.7, despite previous reports; Sven says on Digital
+ UNIX 4.0, you need special DLLD and LDFLAGS.
+
1999-06-08 Peter Stephenson <pws@ibmth.difi.unipi.it>
+ * pws: 6525: Src/lex.c (gettokstr): allow parentheses after
+ first character in command word
+
+ * Tanaka Akira: 6522: configure.in: help string for --enable-fndir
+ had wrong default directory
+
+ * pws: 6520: configure.in: --enable-fndir might be yes,
+ so turn it into ${datadir}/zsh/functions
+
* 3.1.5-pws-21 made available
* Sven: 6515: Src/Zle/zle_tricky.c: fix memory problems with 6492
@@ -38,7 +215,7 @@
`compctl -h' takes a command line from inside a quoted string;
the compctl tests q[s], q[d], q[b] are true if we are in single,
double, back quotes; compset -q tests quotes and splits the word,
- affecting $PREFIX, $SUFFX and setting $IQPREFIX, $IQSUFFIX for
+ affecting $PREFIX, $SUFFIX and setting $IQPREFIX, $IQSUFFIX for
the bits which will now be ignored.
* pws: 6490: Completion/Core/compinit: nounset workaround
diff --git a/Completion/Base/_brace_parameter b/Completion/Base/_brace_parameter
index f688e175a..5993aecba 100644
--- a/Completion/Base/_brace_parameter
+++ b/Completion/Base/_brace_parameter
@@ -16,4 +16,6 @@ ls="$RBUFFER[${#SUFFIX}+1,-1]"
n=${(M)#ls##\"#}
q=${(M)lp%%\"#}
+[[ n -gt 0 ]] && suf=''
+
_parameters -s "${q[1,-n-1]}" -S "$suf" -r '-:?#%+=[/'
diff --git a/Completion/Base/_vars b/Completion/Base/_vars
index f06562694..a40df7699 100644
--- a/Completion/Base/_vars
+++ b/Completion/Base/_vars
@@ -1,3 +1,20 @@
#compdef getopts read unset vared
-compgen -v
+# This will handle completion of keys of associative arrays, e.g. at
+# `vared compconfig[<TAB>'. However, in this version the [ must be
+# added by hand.
+
+if [[ $PREFIX = *\[* ]]; then
+ local var=${PREFIX%%\[*}
+ local elt="${PREFIX#*\]}${SUFFIX%\]}"
+ local addclose
+ compset -p $(( ${#var} + 1 ))
+ if ! compset -S \]; then
+ addclose=(-S ']')
+ fi
+ if [[ ${(tP)var} = assoc* ]]; then
+ compadd $addclose - ${(kP)var}
+ fi
+else
+ compgen -v
+fi
diff --git a/Completion/Builtins/_jobs b/Completion/Builtins/_jobs
index bce005b4e..9e2da24c6 100644
--- a/Completion/Builtins/_jobs
+++ b/Completion/Builtins/_jobs
@@ -1,3 +1,3 @@
-#compdef fg jobs
+#compdef disown fg jobs
compgen -j -P '%'
diff --git a/Completion/Builtins/_kill b/Completion/Builtins/_kill
index 979c87804..4f8c1db6d 100644
--- a/Completion/Builtins/_kill
+++ b/Completion/Builtins/_kill
@@ -9,7 +9,8 @@ else
compgen -P '%' -j && ret=0
list=("$(ps 2>/dev/null)")
- compgen -y '$list' -s '`ps 2>/dev/null | tail +2 | cut -c1-5`' && ret=0
+ compgen -y '$list' -s '${${${(f)"$(ps 2>/dev/null)"}[2,-1]## #}%% *}' &&
+ ret=0
return ret
fi
diff --git a/Completion/Builtins/_limits b/Completion/Builtins/_limits
index be5c35593..6835a6244 100644
--- a/Completion/Builtins/_limits
+++ b/Completion/Builtins/_limits
@@ -1,3 +1,3 @@
#compdef limit unlimit
-compgen -k "(${(j: :)${(f)$(limit)}%% *})"
+compgen -s '${${(f)"$(limit)"}%% *}'
diff --git a/Completion/Builtins/_wait b/Completion/Builtins/_wait
index 0fadc087b..41d09c9b2 100644
--- a/Completion/Builtins/_wait
+++ b/Completion/Builtins/_wait
@@ -4,6 +4,6 @@ local list ret=1
compgen -P '%' -j && ret=0
list=("$(ps 2>/dev/null)")
-compgen -y '$list' -s '`ps 2>/dev/null | tail +2 | cut -c1-5`' && ret=0
+compgen -y '$list' -s '${${${(f)"$(ps 2>/dev/null)"}[2,-1]## #}%% *}' && ret=0
return ret
diff --git a/Completion/Builtins/_zftp b/Completion/Builtins/_zftp
index 71404fb2b..8792e21a7 100644
--- a/Completion/Builtins/_zftp
+++ b/Completion/Builtins/_zftp
@@ -43,6 +43,19 @@ case $subcom in
compgen -k hosts
;;
+ *(goto|mark))
+ # complete bookmarks. First decide if ncftp mode is go.
+ if [[ $words[2] = -*n* ]]; then
+ if [[ -f ~/.ncftp/bookmarks ]]; then
+ compadd - $(awk -F, 'NR > 2 { print $1 }' ~/.ncftp/bookmarks)
+ fi
+ else
+ if [[ -f ${ZFTP_BMFILE:=${ZDOTDIR:-$HOME}/.zfbkmarks} ]]; then
+ compadd - $(awk '{print $1}' $ZFTP_BMFILE)
+ fi
+ fi
+ ;;
+
*)
# dunno... try ordinary completion after all.
unset _compskip
diff --git a/Completion/Core/_normal b/Completion/Core/_normal
index ed7243bb1..ba7f2123f 100644
--- a/Completion/Core/_normal
+++ b/Completion/Core/_normal
@@ -20,7 +20,7 @@ elif [[ "$command" == */* ]]; then
cmd2="${command:t}"
else
cmd1="$command"
- eval cmd2=$(whence -p $command)
+ cmd2=$(whence -p $command)
fi
# See if there are any matching pattern completions.
diff --git a/Completion/Core/_path_files b/Completion/Core/_path_files
index 332aba017..d0d1c6a0a 100644
--- a/Completion/Core/_path_files
+++ b/Completion/Core/_path_files
@@ -231,7 +231,7 @@ for prepath in "$prepaths[@]"; do
# See which of them match what's on the line.
tmp2=("$tmp1[@]")
- compadd -D tmp1 "$ignore[@]" - "${(@)tmp1##*/}"
+ compadd -D tmp1 "$ignore[@]" - "${(@)tmp1:t}"
# If no file matches, save the expanded path and continue with
# the outer loop.
@@ -240,7 +240,7 @@ for prepath in "$prepaths[@]"; do
if [[ "$tmp2[1]" = */* ]]; then
tmp2=( "${(@)tmp2#${prepath}${realpath}}" )
if [[ "$tmp2[1]" = */* ]]; then
- exppaths=( "$exppaths[@]" ${^tmp2%/*}/${tpre}${tsuf} )
+ exppaths=( "$exppaths[@]" ${^tmp2:h}/${tpre}${tsuf} )
else
exppaths=( "$exppaths[@]" ${tpre}${tsuf} )
fi
diff --git a/Completion/Core/compdump b/Completion/Core/compdump
index 8288ccdd4..5ee04e028 100644
--- a/Completion/Core/compdump
+++ b/Completion/Core/compdump
@@ -74,7 +74,7 @@ done))
# print them out: about five to a line looks neat
while (( $#_d_als )); do
- print -n autoload
+ print -n autoload -U
for (( _i = 0; _i < 5; _i++ )); do
if (( $#_d_als )); then
print -n " $_d_als[1]"
diff --git a/Completion/Core/compinit b/Completion/Core/compinit
index af2467bec..23bc94cf9 100644
--- a/Completion/Core/compinit
+++ b/Completion/Core/compinit
@@ -194,7 +194,7 @@ compdef() {
# and probably do autoloading.
func="$1"
- [[ -n "$autol" ]] && autoload "$func"
+ [[ -n "$autol" ]] && autoload -U "$func"
shift
case "$type" in
@@ -363,7 +363,7 @@ if [[ -z "$_i_done" ]]; then
fi
;;
(\#autoload)
- autoload ${_i_file:t}
+ autoload -U ${_i_file:t}
;;
esac
done
diff --git a/Completion/Makefile.in b/Completion/Makefile.in
index 8b7776a7f..0ac4de304 100644
--- a/Completion/Makefile.in
+++ b/Completion/Makefile.in
@@ -55,7 +55,14 @@ install.fns:
$(sdir_top)/mkinstalldirs $(fndir) || exit 1; \
for file in $(FUNCTIONS_INSTALL); do \
if test -f $$file; then \
- $(INSTALL_DATA) $$file $(fndir) || exit 1; \
+ if test x$(FUNCTIONS_SUBDIRS) != x -a \
+ x$(FUNCTIONS_SUBDIRS) != xno; then \
+ subdir="`echo $$file | sed -e 's%/.*%%'`"; \
+ $(sdir_top)/mkinstalldirs $(fndir)/$$subdir || exit 1; \
+ $(INSTALL_DATA) $$file $(fndir)/$$subdir || exit 1; \
+ else \
+ $(INSTALL_DATA) $$file $(fndir) || exit 1; \
+ fi; \
fi; \
done; \
fi; \
@@ -65,7 +72,12 @@ uninstall.fns:
if test x$(fndir) != x && test x$(fndir) != xno; then \
for file in $(FUNCTIONS_INSTALL); do \
if test -f $$file; then \
- rm -f "$(fndir)/`echo $$file | sed -e 's%^.*/%%'`"; \
+ if test x$(FUNCTIONS_SUBDIRS) != x -a \
+ x$(FUNCTIONS_SUBDIRS) != xno; then \
+ rm -f $(fndir)/$$file; \
+ else \
+ rm -f "$(fndir)/`echo $$file | sed -e 's%^.*/%%'`"; \
+ fi; \
fi; \
done; \
fi; \
diff --git a/Config/defs.mk.in b/Config/defs.mk.in
index 27c9aea99..bbc42b236 100644
--- a/Config/defs.mk.in
+++ b/Config/defs.mk.in
@@ -68,6 +68,7 @@ INSTALL_DATA = @INSTALL_DATA@
# variables used in determining what to install
FUNCTIONS_INSTALL = @FUNCTIONS_INSTALL@
+FUNCTIONS_SUBDIRS = @FUNCTIONS_SUBDIRS@
# flags passed to recursive makes in subdirectories
MAKEDEFS = \
diff --git a/Config/version.mk b/Config/version.mk
index 3e6726141..21d3d6e24 100644
--- a/Config/version.mk
+++ b/Config/version.mk
@@ -27,5 +27,5 @@
# This must also serve as a shell script, so do not add spaces around the
# `=' signs.
-VERSION=3.1.5-pws-21
-VERSION_DATE='June 6, 1999'
+VERSION=3.1.5-pws-22
+VERSION_DATE='June 13, 1999'
diff --git a/Doc/Makefile.in b/Doc/Makefile.in
index c0ae8d80d..83bba17f8 100644
--- a/Doc/Makefile.in
+++ b/Doc/Makefile.in
@@ -57,7 +57,7 @@ Zsh/filelist.yo Zsh/files.yo Zsh/func.yo Zsh/grammar.yo Zsh/guide.yo \
Zsh/index.yo Zsh/intro.yo Zsh/invoke.yo Zsh/jobs.yo Zsh/metafaq.yo \
Zsh/modules.yo Zsh/mod_cap.yo Zsh/compwid.yo Zsh/compsys.yo \
Zsh/mod_clone.yo Zsh/mod_comp1.yo Zsh/mod_compctl.yo Zsh/mod_deltochar.yo \
-Zsh/mod_example.yo Zsh/mod_files.yo Zsh/mod_stat.yo \
+Zsh/mod_example.yo Zsh/mod_files.yo Zsh/mod_mapfile.yo Zsh/mod_stat.yo \
Zsh/mod_zle.yo Zsh/options.yo \
Zsh/params.yo Zsh/prompt.yo Zsh/redirect.yo Zsh/restricted.yo \
Zsh/seealso.yo Zsh/zftpsys.yo Zsh/zle.yo
@@ -132,8 +132,8 @@ zshmisc.1: Zsh/grammar.yo Zsh/redirect.yo Zsh/exec.yo Zsh/func.yo \
zshmodules.1: Zsh/modules.yo Zsh/mod_cap.yo Zsh/mod_clone.yo \
Zsh/mod_comp1.yo Zsh/mod_compctl.yo Zsh/mod_deltochar.yo \
- Zsh/mod_example.yo Zsh/mod_files.yo Zsh/mod_sched.yo \
- Zsh/mod_stat.yo Zsh/mod_zftp.yo Zsh/mod_zle.yo
+ Zsh/mod_example.yo Zsh/mod_files.yo Zsh/mod_mapfile.yo \
+ Zsh/mod_sched.yo Zsh/mod_stat.yo Zsh/mod_zftp.yo Zsh/mod_zle.yo
zshoptions.1: Zsh/options.yo
diff --git a/Doc/Zsh/arith.yo b/Doc/Zsh/arith.yo
index f08deb372..f22b35794 100644
--- a/Doc/Zsh/arith.yo
+++ b/Doc/Zsh/arith.yo
@@ -5,16 +5,42 @@ sect(Arithmetic Evaluation)
)\
cindex(arithmetic evaluation)
cindex(evaluation, arithmetic)
-An ability to perform integer arithmetic is provided with the builtin tt(let).
findex(let, use of)
-Evaluations are performed using em(long) arithmetic.
+The shell can perform integer arithmetic, either using the builtin tt(let),
+or via a substitution of the form tt($((...))). Usually arithmetic is
+performed with em(long) integers; however, on certain systems where a
+em(long) has 4-byte precision, zsh may be compiled to use 8-byte precision
+instead. This can be tested, for example, by giving the command
+`tt(print - $(( 12345678901 )))'; if the number appears unchanged, the
+precision is at least 8 bytes.
+
+The tt(let) builtin command takes arithmetic expressions as arguments; each
+is evaluated separately. Since many of the arithmetic operators, as well
+as spaces, require quoting, an alternative form is provided: for any
+command which begins with a `tt(LPAR()LPAR())', all the characters until a
+matching `tt(RPAR()RPAR())' are treated as a quoted expression and
+arithmetic expansion performed as for an argument of tt(let). More
+precisely, `tt(LPAR()LPAR())var(...)tt(RPAR()RPAR())' is equivalent to
+`tt(let ")var(...)tt(")'. For example, the following statement
+
+example((( val = 2 + 1 )))
+
+is equivalent to
+
+example(let "val = 2 + 1")
+
+both assigning the value 3 to the shell variable tt(foo) and returning a
+zero status.
+
+cindex(bases, in