Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Updated patched version of zsh 3.1.5

For those wanting to be in the white heat of the technological
revolution, I have updated the unofficial, not to say speculative,
patched version of 3.1.5 at

This includes the associative array story up to date.  This is
definitely work in progress, but at the moment it looks as if it's
usable as far as it goes, and if you don't use it it's not going to
wreck your shell.  The syntax is not fixed in stone, but will
presumably stay ksh93-compatible.

I repeat what I said before:  some patch clashes have been resolved by
hand, so there's no mechanical way of reproducing this version from
the archive.

The following is the list of additions since the first version.  Some
are corrections which should have been in that version.

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
% 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

Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56100 Pisa, Italy

Messages sorted by: Reverse Date, Date, Thread, Author