diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 68 |
1 files changed, 58 insertions, 10 deletions
@@ -5,10 +5,11 @@ THE Z SHELL (ZSH) Version ------- -This is version 5.3.1 of the shell. This is a stable release. There are -a few visible improvements since 5.2 as well as many bugfixes. Note -in particular the changs highlighted under "Incompatibilites -between 5.2 and 5.3.1" below. See NEWS for more information. +This is version 5.4,1 of the shell. This is a stable release. There +are a few visible improvements since 5.3.1, the last widely released +version, as well as many bugfixes. Note in particular the changs +highlighted under "Incompatibilites since 5.3.1" below. See NEWS for +more information. Installing Zsh -------------- @@ -29,8 +30,59 @@ Zsh is a shell with lots of features. For a list of some of these, see the file FEATURES, and for the latest changes see NEWS. For more details, see the documentation. -Incompatibilities between 5.2 and 5.3.1 ---------------------------------------- +Incompatibilities since 5.3.1 +----------------------------- + +1) The default behaviour of code like the following has changed: + + alias foo='noglob foo' + foo() { print function body; } + +When this is encountered in a start-up file, or other place where input +was read line by line, "foo" is in command position and is expanded as +an alias before the function definition takes place. In previous +versions of the shell, this caused two functions "noglob" and "foo" to +be defined. Any expansion of an alias in a function definition is +nearly always an unintended effect, as well as hard to detect, so has +been made an error. (The option setting NO_MULTI_FUNC_DEF turned this +case into an error, but did not help with other cases and is off by +default.) The alternative, of not expanding the alias, was rejected as +it was more difficult to achieve in the parser and also would silently +change the shell's behaviur between versions. A new option, +ALIAS_FUNC_DEF, has been added, which can be set to make the shell +behave as in previous versions. It is in any case recommended to use +the "function" keyword, as aliases are not expanded afterwards. + +2) It was an undocumented, and largely useless, feature that a function +autoloaded with an absolute path was searched for along the normal fpath +(as if the leading / was missing) and, if found, loaded under the full +name including the leading slash. This has been replaced with the more +useful feature that the function is searched for only at the given +absolute path; the name of the function is the base name of the file. +Note that functions including a non-leading / behave as before, +e.g. if `dir/name' is found anywhere under a directory in $fpath it is +loaded as a function named `dir/name'. + +3) vcs_info: When neither a set-patch-format nor a gen-applied-string +(resp. gen-unapplied-string) hook is set, vcs_info now '%'-escapes the +applied-string (resp. unapplied-string) before interpolating it into the +patch-format string, to prevent literal `%' signs in the interpolated +value from being interpreted as prompt escape sequences. If you use +${vcs_info_msg_0_} in a context other than the shell prompt, you may need +to undo the escaping with: + + print -v vcs_info_msg_0_ -Pr -- "${vcs_info_msg_0_}" + +This is also needed if $vcs_info_msg_0_ is used to set $psvar. + +4) functions executed by ZLE widgets no longer have their standard input +closed, but redirected from /dev/null instead. That still guards +against user defined widgets inadvertently reading from the tty device, +and addresses the antisocial behaviour of running a command with its +stdin closed. + +Incompatibilities between 5.0.8 and 5.3 +---------------------------------------- 1) In character classes delimited by "[" and "]" within patterns, whether used for filename generation (globbing) or other forms of pattern @@ -159,10 +211,6 @@ following example illustrates how this differs from past versions. 4 4 => 1 | 4 4 => 0 ** 4 5 => 1 | 4 5 => 1 - -Incompatibilities between 5.0.8 and 5.2 ---------------------------------------- - The behaviour of the parameter flag (P) has changed when it appears in a nested parameter group, in order to make it more useful in such cases. A (P) in the outermost parameter group behaves as |