ANNOUNCE: zsh 2.3.1

ANNOUNCE: zsh 2.3.1

Post by Andrew Bro » Thu, 11 Feb 1993 01:18:07

I've just uploaded version 2.3.1 of the z-shell, adapted for a clean compile
under Linux to tsx-11 and sunsite. No doubt the archive maintainers will move
the files to their correct locations in due course. For those running zsh2.2,
here is a list of the new features present in 2.3.1

[extract from README (quite long)]

o fewer compilation warnings
o parsing error in function definition fixed
o problems with '.' in vi-mode fixed
o parsing bug with ! and coproc fixed
o strange while loop behavior fixed
o "TRAPx TRAPy {}; unfunction TRAPy" fixed
o array-size checking for integers was off by one (fixed)

o improved portability
o fewer compilation warnings
o texinfo documentation
o several memory leaks fixed, and a few references to freed memory eliminated
o several parsing bugs fixed, and now less illegal syntax is accepted
o improved (i.e. repaired) signal handling
o RFS support
o rc files reorganized (see INVOCATION in the man page)
o ksh compatibility mode when zsh is invoked as "ksh"
o nested variables (e.g. echo ${${var#?}%?})
o stringized array variables ("$a" where a is an array)
o can now set array slices and array elements by subscript
o 4 new glob identifiers:
    -  a[[-|+]n]   files accessed within last n days (-), files accessed
                   more than n days ago (+), or files accessed n days ago.
    -  m[[-|+]n]   as above for modified files.
    -  c[[-|+]n]   as above for the modification of an inode of a file.
    -  L[[-|+]n]   files less than n bytes (-), more than n bytes (+),
                   or exactly n bytes in length.
o new prompt escapes and new syntax for numeric arguments to prompt escapes
   (e.g. %C3 -> %3C)
o %R and %r now only recognized in spell-checking prompts
o watch notme (like watch all, except for the user's own activity)
o hash table listings (from set, alias, compctl...) are now sorted
o New arguments to fc builtin:
    -f  print full time stamp (including date)
    -E  print date in European format (
    -I  incremental history update (with -A or -W)
o new EXTENDEDHISTORY option for saving timestamps to history file
o new {up,down}-line-or-search keybindings
o cd processing (chpwd, etc.) no longer occurs if new directory is the
  same as the previous one
o filename completion works on named directories
o named directories now have to be strings
o username lookup more efficient, new username lookup routine for NIS
o sample run-help function to make use of the help directory
o sample zed function (use the zle line editor to edit a file)
o If compctl is just -h for a command, hostname completion will now be

o zsh no longer forks /bin/sh for any shell commands (e.g. STTY)
o old AUTOREMOVESLASH option documented and repaired.
o lexically significant quotes and backslashes are now retained by builtins
o backslashes now end variable names and suffice in a here document
  terminator to inhibit interpretation of the here document
o answering 'n' to 'remove all files in <arg>?' just removes the individual
  argument from the rm command line, as long as other arguments remain
o ALLEXPORT now exports existing variables when they are modified
o whitespace now handled properly by read builtin

o colon modifers now work with array variables
  (except :x and :q, which only pretend to work)
o ${...=...} handling fixed
o cd xx/.. no longer takes you to first directory of $cdpath
o return in a loop in a function now exits the function
o return from a function in a loop no longer exits the loop
o several fixes to 'fc' builtin
o 'noglob rm *' no longer prompts for confirmation
o changes to cdpath, manpath, etc. are now reflected in the environment
o vibackwardkillword fixed to use vi style words
o not found message no longer printed if 'whence -a foo' doesn't find anything
o current dir is removed from directory stack if PUSHD_IGNORE_DUPS is set
o cd now complains of invalid directory stack arguments
o extra files are no longer left open on nullexec
o exit status is set correctly for shells started '-c'
o consistent handling of -i and -m options
o null arguments are now included in array expansion
o job text corrected for coprocesses
o a quoted command substitution that returns no text is no longer discarded
  (e.g. set a "`echo`" b ; echo $#)
o IFS allows null fields
o read of more variables than available in the input no longer blocks shell
o dups of nonexistent file handles fixed
o confusion regarding controlling terminal fixed
o canonical directory naming fixed
o zsh no longer hangs on backquote expansion (e.g. echo `pwd`)
o echo foo >>(cat) now redirects stdin before closing the pipe
o problems with zsh not exiting fixed
o bad patterns now work when NOBADPATTERN is set
o exporting of special shell variables fixed
o history references now work only in interactive shells
o history file no longer saved if history is not established
o killing a command in a loop now kills the loop
o compctl -k now essentially ignores non-array arguments
o transpose-chars now works on one character lines and on the second
  character of a line
o neg-argument now works for multiple digits
o statusline no longer trashed when searching in vi mode
o print -P can now be invoked from a signal handler without confusing zle
o prototype files automatically generated during compilation
o GLOBALZSHENV now defined by default as "/etc/zshenv"
o off-by-one error in compiling signal list fixed