This version of zsh is based on 3.1.5 and includes the following patches. (The version number built into the shell has not been changed.) Old stuff: Zoli's AIX dynamic loading patch from 3933, slightly updated, without some hunks which weren't needed on AIX 3.x so I don't know how to update them properly My completion widgets patch Patches which have appeared since 3.1.5 (it's already a week, after all...): Bart's addon collection 4473 (excluding the bit from 4105), 4475, 4476 My patch in 4477 to rename three functions to avoid clashes when dynamic loading (particularly necessary on IRIX and AIX), including the effect of Sven's additional fix in 4488 Sven's magna opera patch-or 4510 and patch-match 4509 to add control of alternative matches and arbitrary mapping between characters in the command line and the matched string, plus all known related fixes 4526, 4527, 4534, 4555, 4557 My patch 4513 for case-insensitive globbing via flags, plus fixlet 4552 My ~PWD patch 4533 My suggestion for fixing the suffix on a yank in 4564 Bart's deltochar patch including new flags to allow commands not to interrupt cumulative effects in 4570 (new flag merged with compctl widgets flags). Bart's doc fix 4574 A fixsuffix() added by hand in delcharorlist() which I've somehow missed along the way. The fixsuffix() horror is probably not yet resolved; 4576 has side effects and hasn't been applied. My latest version of lete2ctl, not posted but available at http://www.ifh.de/~pws/computing/lete2ctl . Bart's chpwd() fix 4589 Second edition Added line in zle_tricky.c missed when patching by hand, spotted by Bart. (Whitespace is still non-canonical in the completion code where I have merged patches by hand.) Fixed up my compctl widgets patch for use with Sven's rewrite, which I hadn't done properly before. Bart's function fixes, 4471 Bart's doc fixes, 4472 Bart's PWD and OLDPWD reshuffle, 4589 My test-line-length patch for prompts, 4591 (`%(40l.yes.no)' outputs `yes' if at least 40 characters have already appeared on the line, `no' otherwise.) Configure patch from Wilfredo Sanchez in 4594, with some extra tabbification and without the setterm() hunk, since I've already renamed that to zsetterm(), avoiding the conflict My globbing fix for a bug which shows up in `case' constructs, 4595 Alternative version of the ~PWD patch (allow users to hash PWD explicitly if that's what turns them on), 4596 Bart's experimental associative array patch, 4598, plus various additions, 4599, 4602, 4608, 4641, 4653, 4654. No documentation yet; if you want to play with this, so far: % typeset -A hash # create associative array $hash % hash[one]=eins hash[two]=zwei # assign elements % hash=(one eins two zwei) # same, assign whole array (*) % print $hash[one] # retrieve elements eins % print $hash # whole array looks like normal array eins zwei % print ${(k)hash} # flag to get keys one two % print ${(kv)hash} # flag to get keys and values (**) one eins two zwei Comparison of (*) and (**) will reveal how to copy an associative array, `hash2=(${(kv}hash})', but you always need to `typeset -A hash2' first or an ordinary array will appear. There is a predefined special associative array $testhash, for testing purposes only, which will eventually disappear. My rewrite of prompt truncation, 4601 --- note this introduces a slight incompatibility in that the string to be truncated now runs by default to the end of the string, instead of only covering individual %-substitutions. If necessary, stick in an extra '%>>' to turn truncation off at the point you want. Bart's params error message fix, 4606 My input fix for 8 bit characters, 4612 Bart's version of the *** fix, 4624 Bart's parameter substitution flag delimiter fix, 4644 My special parameter unset fix, 4662 Third edition I've taken the plunge and changed $ZSH_VERSION, the current one is now 3.1.5.pws-1 . It seemed rational to have something incremental at the end for testing, so I abandoned using the date. 4482 (cdmatch2)and 4641 (${assoc[0]}) now applied; 4641 was supposed to be there before. nroff manual pages deleted, you now need yodl. deleted modules-bltin by hand, which `make distclean' somehow missed. Caused problems when building a statically linked shell. Bart's scanmatchtable fix, 4674 Commented out vifirstnonblank() in vioperswapcase(), pending any better patch for it. Bart's viforwardword fix, 4678 My case-independent globbing fix, 4693 Sven's zle_tricky.c, 4697 Sven's patch to ignore completions if the cursor is not in a part to be completed, 4698, plus addition, 4707 I have not added Sven's zerr() patch, 4699, in case it has side effects, but I haven't heard anything on the subject and I haven't looked at it. Sven's pennockite heap memory patch, 4700 Sven's condition module patch, 4716, and addition, 4732, and the function wrapper patch, 4734, and additions, 4742, 4769: the module.c bits of these have been moved around a little to avoid clashes with the AIXDYNAMIC stuff. The wrapper stuff is still not finished, but doesn't currently impinge on use of the shell. Phil Pennock's patch to use associative arrays in stat, 4727 Unposted fix for use of printcompctlptr in completion widgets: printcompctl() had acquired another argument. My bash-like ${foo/orig/new} patch, 4736, and the version to do shortest matching together with optimizations of all pattern matching in variable strings, 4754. Phil's patch for typeset -a docs, 4737 Nobody wanted my fix for `FOO=x eval external', so it's not there. zftp, 4761 Bart's fix for conddef without dynamical modules, 4762 Bart's associative array patches for implentation of subscripting flags, 4763, plus fix 4766; typeset output 4764 Sven's completion listing fix, 4767