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

Zsh 4.2.1

I've uploaded zsh 4.2.1 to ftp://ftp.zsh.org/pub/ .  If nobody finds
anything horrible before this afternoon I'll send it to Sourceforge as
well.  However, nothing serious has changed for a while, so I think it's
unlikely there are major problems.

Thanks to everyone who contributed.

I noticed the FAQ is out of date as far as the versions it talks about
are concerned.  I fixed this on the FTP site but not yet in the
distribution or on the zsh web site.

Here's the top of the NEWS file for the new version and the list of
known (minor) incompatbilities since 4.2.0 from the README.

[Hmm, are you allowed to say `more seamlessly'?  Shouldn't it be
something like `more closely resembling an object conceived of
metaphorically as lacking in seams'?]

Changes since zsh version 4.2.0

- The autoload and related builtins take options -k and -z to indicate
  ksh or zsh autoloading style for given functions, making it possible
  to mix and match.

- Assignments to associative arrays can use the i and r index flags.
  For example,
  sets the value for the element whose key matches the pattern `alpha*';
  sets the value for the element whose current value matches the pattern

- The glob qualifier F indicates a non-empty directory.  Hence *(F)
  indicates all subdirectories with entries, *(/^F) means all
  subdirectories with no entries.

- fc -p and fc -P provide push/pop for the status of the shell's
  history (both internal and using the history file).  With automatic
  scoping (fc -ap) it becomes easy to use a temporary history in a
  function.  This has been added to the calculator function zcalc to make
  its internal history work more seamlessly.

- A new `try block' and `always block' syntax has been introduced
  to make it easier to ensure the shell runs important tidy-up code
  in the event of an error.  It also runs after a break, continue, or
  return, including a return forced by the ERR_RETURN option
  (but not an exit, which is immediate).  The syntax is:
    `{'  try-block-list `}' `always' `{' always-block-list `}'
  where no newline or semicolon may appear between `}' and `always'.
  This is compatible with all previous valid zsh syntax as an `always'
  at that point used to be a syntax error.  For example,
    { echo Code run in current shell } always { echo Tidy-up code }

- A new zle widget reset-prompt has been added to re-expand the current
  prompt.  Changes to the variable in use as well as changes in its
  expansions are both taken into account.  The same effect is now forced by
  a job change notification, making the %j prompt escape and %(j..) ternary
  expression more useful.

- The zftp module supports ports following the hostname in the normal suffix
  notation, `host:port'.  This requires IPv6 colon-style addresses to be
  specified in suitably quoted square brackets, for example:

  zftp open '[f000::baaa]'
  zftp open '[f000::baaa]:ftp'

  (the two are equivalent).

- Special traps, those that don't correspond to signals, i.e. ZERR, DEBUG
  and EXIT are no longer executed inside other traps.  This caused
  unnecessary confusion if, for example, both DEBUG and EXIT traps
  were set.  The new behaviour is more compatible with other shells.

- New option TRAPS_ASYNC which if set allows traps to run while the
  shell is waiting for a child process.  In sh/ksh
  compatibility mode the option is turned off by default and the option
  letter -T turns it on, for compatibility with FreeBSD sh.

Possible incompatibilities

Currently the only known incompatibilities between 4.2.0 and later
versions are minor:

IPv6 addresses must be specified in square brackets in the zftp module and
the function system built on top of the zftp module.

Special traps for pseudosignals ZERR, DEBUG and EXIT are no longer executed
inside other traps.  Users may well have assumed this was the case anyway
since the behaviour was not explicity documented.  See the NEWS file for
more detail.

By default, a maximum function depth of 4096 is now compiled into the
shell.  This may be altered during configuration; see `Function depth' in


This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.


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