Hi all, I just updated the website for 4.3.11. Please report any mistakes you find. Regards, Simon --- News/index.html | 9 +++ index.html | 2 +- releases.html | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 178 insertions(+), 1 deletions(-) diff --git a/News/index.html b/News/index.html index d6331a2..94d366f 100644 --- a/News/index.html +++ b/News/index.html @@ -25,6 +25,15 @@ <hr size=1 noshade> <dl> +<dt><font size="+1"><font color="red">2010-12-20</font> : <b>Release 4.3.11</b></font></dt> +<dd>Improved parameter expansion (${NAME:OFFSET} and ${NAME:OFFSET:LENGTH} for +substrings and subarrays, (D) abbreviated directories, (Z) enhanced (z), +{3..9..2} step in brace expansion, (P) adds word before each match), +additional styles for zle_highlight ('suffix' for trailing /, 'special' for +invalid multibyte chars), new option HIST_LEX_WORDS to perform "correct" +splitting of history lines (not only on whitespace), multiple new POSIX_ +options to improve POSIX compliance and an improved SUN_KEYBOARD_HACK which is +now called KEYBOARD_HACK.</dd> <dt><font size="+1"><font color="red">2009-06-01</font> : <b>Release 4.3.10</b></font></dt> <dd>Bug fixes and some minor improvements.</dd> diff --git a/index.html b/index.html index b04616c..2faf02d 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,7 @@ <td> <ul> <font size="+1" color="#600000"><b>Information</b></font> - <li><a href="News/">News</a> <font color=red><i>2009-06-01</i></font> + <li><a href="News/">News</a> <font color=red><i>2010-12-20</i></font> <li><a href="about.html">About these pages</a> <li><a href="releases.html">Release Notes</a> <li><a href="links.html">Useful links</a> diff --git a/releases.html b/releases.html index 8adbc94..1867fe7 100644 --- a/releases.html +++ b/releases.html @@ -27,6 +27,174 @@ </table> <hr size=1 noshade> +<h2>Changes between versions 4.3.10 and 4.3.11</h2> + +<p> +Note also the list of incompatibilities in the README file. +</p> + +<p> +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. +</p> + +<h3>Parameters, globbing, etc.</h3> + +<p> +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. +</p> + +<p> +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. +</p> + +<p> +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. +</p> + +<p> +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). +</p> + +<p> +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 ...'. +</p> + +<p> +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. +</p> + +<h3>Line editor and completion</h3> + +<p> +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. +</p> + +<p> +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 <XX> 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. <XXXX>, <XXXXXXXX>. +</p> + +<p> +zle_highlight also controls highlighting of a removable completion +suffix, e.g. the "/" automatically appended to directories. This uses +the keyword "suffix". +</p> + +<p> +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 <RET>'. +</p> + +<p> +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. +</p> + +<h3>Miscellaneous options</h3> + +<p> +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. +</p> + +<p> +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. +</p> + +<p> +The new shell option POSIX_CD, active in emulations of POSIX-based shells, +makes the cd builtin POSIX-compatible. +</p> + +<p> +The POSIX_JOBS option already referred to has various other +compatibility enchancements. +</p> + +<p> +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. +</p> + +<p> +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. +</p> + +<p> +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. +</p> + +<p> +The shell option SUN_KEYBOARD_HACK has been supplemented by a more general +mechanism: the KEYBOARD_HACK variable defines the character to be ignored. +</p> + +<h3>Add-on modules and function</h3> + +<p> +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. +</p> + +<p> +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. +</p> <h2>Changes between versions 4.3.9 and 4.3.10</h2> -- 1.7.3.4 -- + privacy is necessary + using gnupg http://gnupg.org + public key id: 0x92FEFDB7E44C32F9
Attachment:
pgpZPnmueQCS5.pgp
Description: PGP signature