From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6585 invoked by alias); 20 Dec 2010 17:02:46 -0000 Mailing-List: contact zsh-announce-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Announcement List List-Post: (Postings are Moderated) List-Help: X-Seq: 119 Received: (qmail 22152 invoked from network); 20 Dec 2010 16:59:00 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS autolearn=ham version=3.3.1 Received-SPF: none (ns1.primenet.com.au: domain at csr.com does not designate permitted sender hosts) X-Authentication-Warning: pwslap01u.europe.root.pri: pws owned process doing -bs To: zsh-announce@zsh.org Subject: zsh 4.3.11 released X-Mailer: MH-E 8.2; nmh 1.3; GNU Emacs 23.2.1 Date: Mon, 20 Dec 2010 16:56:14 +0000 Message-ID: <21986.1292864174@csr.com> From: Peter Stephenson X-OriginalArrivalTime: 20 Dec 2010 16:56:17.0440 (UTC) FILETIME=[D1A2B200:01CBA066] Content-Type: text/plain MIME-Version: 1.0 X-Scanned-By: MailControl A_10_80_00 (www.mailcontrol.com) on 10.71.0.121 I've released 4.3.11 of the shell. It's at the usual zsh web site (at the time of writing the main files are correct but the symbolic links haven't quite caught up; that'll just be a matter of minutes), and it's also at Sourceforge: you'll probably get better bandwidth by waiting for it to percolate to a mirror. The Sourceforge links (which were working faster for me, but note involve a redirection, so use e.g. curl -L) are http://sourceforge.net/projects/zsh/files/zsh-dev/4.3.11/zsh-4.3.11.tar.bz2/download http://sourceforge.net/projects/zsh/files/zsh-dev/4.3.11/zsh-4.3.11.tar.gz/download http://sourceforge.net/projects/zsh/files/zsh-doc-dev/4.3.11/zsh-4.3.11-doc.tar.bz2/download http://sourceforge.net/projects/zsh/files/zsh-doc-dev/4.3.11/zsh-4.3.11-doc.tar.gz/download Thanks to everyone who has helped. The notes are fairly short: 4.3.11 contains many bug fixes and numerous minor additions; see the NEWS file in the distribution. Although this is on the development branch, it is believed to be fairly stable, and is likely to become the stable release shortly. The more interesting stuff is in the NEWS file. Here's the top of it. ------------------------------------- CHANGES FROM PREVIOUS VERSIONS OF ZSH ------------------------------------- Note also the list of incompatibilities in the README file. Changes between versions 4.3.10 and 4.3.11 ------------------------------------------ When the shell is invoked with the base name of a script, for example as `zsh scriptname', previous versions of zsh have used the name directly, whereas other shells use the value of $PATH to find the script. The option PATH_SCRIPT has been added to provide the alternative behaviour. This is turned on where appropriate in compatibility modes. Parameters, globbing, etc. -+-+-+-+-+-+-+-+-+-+-+-+-+ Parameter expansion has been enhanced to provide the ${NAME:OFFSET} and ${NAME:OFFSET:LENGTH} syntax for substrings and subarrays present in several other shells. OFFSET always uses zero-based indexing. The only clash with existing zsh syntax occurs if OFFSET begins with an alphabetic character or `&', which is not likely. The (D) flag in parameter expansion abbreviates directories in the substituted value. The (q-) flag does minimal shell quotation of arguments for maximum human readability of the result. The (Z) flag in parameter expansion is an enhanced version of the (z) flag that takes an argument indicating how the string to be split is treated. (Z:c:) parses comments as strings; (Z:C:) parses comments and strips them; (Z:n:) treats newlines as ordinary whitespace: (z) has always treated unquoted newlines as shell delimiters and turned them into semicolons, though this was not previously documented. Numeric expansion with braces has been extended so that a step may be given, as in {3..9..2}. The step may be negative as may the start and end of the range (this is also new). The glob qualifier P can be used to add a separate word before each match. For example, *(P:-f:) produces the command line `-f file1 -f file2 ...'. Regular expression matches now use the same variables for storing matched components as shell pattern matching. The function system now provides the function regexp-replace for replacing text using regular expressions. The zle widget functions replace-string, replace-string-again, if defined with regex in the name (e.g. "zle -N replace-regexp replace-string"), perform regular expression matches. In replacement text \& and \1 have the standard meaning. Line editor and completion -+-+-+-+-+-+-+-+-+-+-+-+-+ The completion system now has a style path-completion. Setting this to false inhibits completion of paths before the current path component, e.g. /u/b/z no longer completes to /usr/bin/zsh. This is useful on systems where this form of completion is pathologically slow due to network performance. With the MULTIBYTE option, the line editor now highlights bytes in the input that are not part of a valid character in the current locale in hex as for hex digits X; highlighting is controlled by the "special" keyword in the zle_highlight array. These can be distinguished from unprintable Unicode characters which also use "special" highlighting as the latter are always two or four bytes long, e.g. , . zle_highlight also controls highlighting of a removable completion suffix, e.g. the "/" automatically appended to directories. This uses the keyword "suffix". The line editor now sets the variable ZLE_LINE_ABORTED if there is an error when editing the line. The following code can be used to create a bindable editor widget to restore the aborted line: recover-line() { LBUFFER=$ZLE_LINE_ABORTED RBUFFER=; } zle -N recover-line and then either bind recover-line to a key sequence or use `M-x recover-line '. The parameter ZLE_STATE, available in user-defined line editor widgets, gives information on the state of the line editor. Currently this is whether the line editor is in insert or overwrite mode. Miscellaneous options -+-+-+-+-+-+-+-+-+-+- The new shell option HIST_LEX_WORDS causes history lines read in from a file to be split in the same way as normal shell lines, instead of simply on whitespace. It's an option as although the result is more accurate it can take a long time when the history size is large. The shell option MONITOR can be set in non-interactive shells, and also in subshells (as created by surrounding commands with parentheses), turning on job control for that subshell. The initial behaviour of a subshell is still to turn job control off, however if the new POSIX_JOBS option is set MONITOR remains active in subshells. The new shell option POSIX_CD, active in emulations of POSIX-based shells, makes the cd builtin POSIX-compatible. The POSIX_JOBS option already referred to has various other compatibility enchancements. The new shell option POSIX_STRINGS makes a null character in $'...' expansion terminate the string, as is already the case in bash. This is not particularly useful behaviour but may become a POSIX requirement. The new shell option POSIX_TRAPS causes the EXIT trap to behave in the same way as in other shells, i.e. it is only run when the shell exits. The new shell option SOURCE_TRACE causes the shell to report files containing shell code that the shell executes directly, i.e. startup files or files run with the `source' or `.' builtins. The shell option SUN_KEYBOARD_HACK has been supplemented by a more general mechanism: the KEYBOARD_HACK variable defines the character to be ignored. Add-on modules and function -+-+-+-+-+-+-+-+-+-+-+-+-+- The module zsh/system has a new "zsystem" builtin whose subcommands perform system level tasks. Currently "zsystem flock" performs advisory file locking (for aficionados, this uses the fcntl() system call so works over the network on Linux). This is a particularly convenient way of locking files for the length of a subshell. "zsystem supports flock" provides a test for this feature. There is now a function system for recording and restoring recently entered directories in a persistent fashion, with support in completion and (if explicitly installed) dynamic directory expansion. See the entry for cdr in the zshcontrib manual page. -- Peter Stephenson Software Engineer Tel: +44 (0)1223 692070 Cambridge Silicon Radio Limited Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, UK Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom