This version of zsh is based on 3.1.5 and includes the following patches. 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-3 . 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 Fourth edition Compilation fix for static linking, 4779 Phil's patch for wtmp in /var/log on Linux, which someone else sent before... except it needs to be applied to aczsh.m4 and propagated from there, 4783 Phil's removal of now useless j in glob.c, 4784 Bart's collection in 4788: put back some missing patches. Param's patches from Bart in 4789, 4794, 4795: fix sethparam() and move flags; make sure setsparam() and sethparam() are consistent with existing parameters; allow assoc array assignment with ${(AA)=assoc::=key1 value1 key2 value2} Return to not hashing PWD from Bart in 4791 Handle --program-suffix and --program-prefix (but not --target, so I removed the comment) from Bart in 4792 Compilation with no HAVE_GETPWUID, 4801 INADDR_NONE in zftp, 4805 Sven's unloading modules, 4806, 4815, 4820, plus my AIX (and DYNAMIC_NAME_CLASH_OK) fix, 4822, then Sven's 4830 Parameter's documentation changes by Bart, 4817 Network order fix for zftp from Sven, 4821 My patch (with Gene Cohler's suggestions) for dynamical loading under HPUX 10, 4824, plus fixes, 4833, 4843 Bart's random assoc array fixes, 4826, 4836, plus Sven's 4831 Sven's ignored character fix, 4828 More Sven condition patches, 4837, 4842 Final (???) isident() fix from Sven, 4845 pws-5 Name of top level directory is now zsh-3.1.5-pws-5 Missing part of Bart's sethparam() changes, 4851 zftp test subcommand, 4852 Geoff's refresh fix for a line the same length as the terminal width, 4855 Bart's fix for array slices, 4874 Sven's accept-and-menu-complete-fix, 4878 Sven's group completion fix, 4879 Sven's module condition fixes, 4880 Oliver Kiddle's autoconf fix, 4887 My zftp fix (actually due to Andrej Borsenkow) for systems which only allow dup'ing sockets after they are connected, 4888. Bart's fix to making setting associative array elements inside substitutions consistent, 4893 My typeset neatness and -a and -m fix, 4902 My brief Etc/MACHINES addition, 4912 My modification to findcmd() for memory leaks, 4923, plus comment alteration by Bart, 4924 Sven's patch for completion after various reserved words, 4930 My patch for compiler warnings, 4931 My configuration fix for when tgetent() accepts a null argument but then tgetstr() dumps core, 4939 Sven's alteration of `-t' behaviour, 4940. This is slightly incompatible with previous patched versions of 3.1.5 since now you don't need '-tc' with -T. However, you now do need '-tn' in cases where you don't want normal completion tried after a -T matches. Sven's new completion functions, 4850, 4881, 4941, 4942, 4943, 4944, 4946, 4949, 4950, plus my addition of function pointers, 4945. The example file is now in Misc/new-completion-examples. (Effect of) fix from Helmut Jarausch in 4947 partly due to change missed in patch. pws-6 Sven: fix for completion after redirection, 4957 Bart: add-on, 4965 Andrej: configure patch for Reliant UNIX et al., 5021 (as resubmitted) Sven: compctl list with a single string, 4974 Sven: compctl -M matches with *'s, 4975, 5007 Sven: compadd and new-completion-examples, 4976 Sven: funky new glob modifiers: change sort order, select item from list, 4979; make time order work like ls -t, 4987 Sven: fix completion whitespace for copy-previous-word, 4981 Sven: fix for new-style completion after redirection, 4986, 4988 New mirror site ftp://ftp.win.ne.jp/pub/shell/zsh/ in META-FAQ (not posted) Andrej: when installing info files, insert zsh.info into dir, 5016 Sven: ${(t)param} flag, 5022, 5045; no unset behaviour, 5078 Phil: zless, 5032, simplified by Bart, 5037, also added a `setopt localoptions' after spending an hour wondering why nothing worked any more. Me: `make install' does not do `make install.info', 5047 Sven: compcall tries old-style completion from new-style function, compctl -K ' func' handles newstyle completion, 5059; avoid recursion, 5065; my dynamic fix-up, 5085 Sven: inserting completion inside brace expansion, 5060 Sven: extra completion context, 5092 Me: typeset -T MYPATH mypath, 5094, plus fix for MYPATH=(foo), mypath=foo (and also existing PATH=(foo) bug), 5120 Sven: doc fix for glob qualifiers, 5102 Drazen Kacar, modified by me: workaround for terminal bug on Solaris, 5103; modified by Bart, 5113 Sven: zle and widget information via variables in new completion functions, 5104 Me: remove old zle -C, zle -C now does new completion, 5105 Sven: glob qualifier o for modes, 5107 Me: fix for unsetting special zle variables, 5111 Drazen Kacar, modified by me: unlock terminal device on Solaris, 5118 (5117 was wrong)