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) pws-7 Me: patch for zls, 5054 (appeared in pws-6 but not in corresponding patchlist). Bart: finally added missing hunk from 4965 which allowed unsetting an assoc array when it was assigned to as a scalar which should have been there all along Bart: vared to edit associative arrays and array elements, 5129 Matt Armstrong: makepro.awk can spit out preprocessor lines, 5132 (+ move init.pro inclusion, 5151) Matt: cygwin needs to use native getcwd(), 5133 Sven: partial word completion fix, 5144 Sven: compadd -m, -F, -r, 5145, 5204 Bart: unset can unset assoc array elements, 5174 Sven: fix for command completion and pattern completions, 5178 Sven: ${(P)...} 5183, 5199, 5200 Me: compctl documentation tidy-up, 5185, 5198 Sven: zle commands which use the minibuffer erase completion listings, 5201 Sven: glob qualifiers o -> f, O -> o, new O = ^o, 5203 Sven: completion in arrays, 5206 Sven: new completion in conditions, 5207 Sven: ${foo:q}, 5208, preliminary Sven: use ${foo:q} for quoting prefix and suffix in new completion, 5120 Me: bashautolist option, 5229; Sven's addition, 5234, and doc 5235; 5269 Me: .zlogout doc, 5233 Me: added note on Linux Alpha with egcs to Etc/MACHINES, not posted Me: typeset -T fix, 5247 Bart: parameter scoping docs, 5258 Bart: new mailing lists in Meta-FAQ, 5260 Sven: GLOB_COMPLETE docs, 5261, 5268 Sven: compctl -M and REC_EXACT fixes, 5262 Sven: rewrite of $foo:q, 5265, +doc, 5284 Sven: get matcher number in new completion function, 5266 Me: interrupts in getquery() weren't gracefully handled, 5281 pws-8 Geoff: no ld -g for NetBSD, 5295 Bart: alter local variables and $argv documentation, 5297 Bart: PWD and OLDPWD export confusion (fixing, not creating), 5299 Bart: trashzle() crashed shell with dynamical loading and zle builtin, 5305 Matt: CHAR(+) -> CHAR(43) in zmacros, 5311 Sven: compctl matcher to use reference counts, 5316 Sven: keys available in zle widget functions, 5320 Me: compctl -LM, 5321 Me: revamped signames.c generation, 5326, 5329, plus Matt fix, 5330 Sweth, Bart, Me: Functions/allopt, basically as in 2121 with the odd emulate and local. Me: emulate -L, 5332 Sven: printing of zle condition codes, 5335 Sven: Modularisation of new completion shell code, 5341 Sven: ignoring ignored prefix in new conditions, 5342; related fixes, 5343 Me: patch for completion init and __normal, 5344; Sven fix, 5351 Me: "$foo[@]" didn't remove the argument if $foo wasn't set, 5349; Bart's fix so this works on OSes other than AIX, 5361 Sven: change fignore handling, 5352 Sven: redisplay of completion lists; remove display when completion failed, 5354 Sven: compadd -R function for suffix removal, 5355 Me: #key-* completions now allow 0 or more key bindings, 5362 Me: Moved Misc/Completion to Functions/Completion; added some of my own new-style completions: not posted Me: 5281 now works, 5364 Me: make dependencies for main.o, Makemod, zshpaths.h, 5365