Patch provided by Geoff C. Wing in PR 24918
ok'd by uebayasi@
New features between zsh versions 4.0 and 4.2
Configuration:
* upgraded to use autoconf post-2.50
* improved compatibility with other shells through shell options, builtin
arguments and improved builtin option parsing
Syntax and builtins:
* new printf builtin
* `+=' to append to parameters which works for scalars, arrays and (with
pairs) associative arrays.
* enhanced multiple parameter `for' loops: for key value in key1 value1 key2
value2 ... maintaining full compatibility with POSIX syntax.
* Suffix aliases allow the shell to run a command on a file by suffix, e.g
`alias -s ps=gv' makes `foo.ps' execute `gv foo.ps'. Supplied function
zsh-mime-setup uses existing mailcap and mime.types files to set up suitable
aliases. Supplied function pick-web-browser is suitable for finding a browser
to show .html etc. files by suffix alias.
* new option `no_case_glob' for case-insensitive globbing.
Add-on modules and functions:
* zsh/datetime modules makes date formatting and seconds since EPOCH available
inside the shell.
* zsh/net/tcp module provides builtin interface to TCP through ztcp builtin.
Function suite for interactive and script use with expect-style pattern
matching.
* zsh/net/socket module provides zsocket builtin.
* zcalc calculator function with full line editing.
* builtin interface to pcre library
* zsh/zselect module provides zselect builtin as interface to select system call
Completion system:
* general improvements to command and context support, low-level functions,
display code.
* in verbose mode, matches with the same description are grouped
* highly configurable completions for values of specific parameters, specific
redirections for specific commands
* support for bash completion functions (typically zsh native functions are more
powerful where available)
* New completions provided for (some of these may be in later 4.0 releases):
valgrind, tidy, texinfo, infocmp, Java classes, larch, limit, locale
parameters, netcat, mysqldiff, mt, lsof, elinks, ant, debchange (dch), email
addresses, file system types, Perforce, xsltproc. Plus many others.
Line editor:
* special parameters $PREDISPLAY, $POSTDISPLAY available in function widgets
to configure uneditable text (for narrowing)
* recursive editing
* supplied widgets read-from-minibuffer, replace-string use these features
(more intuitive prompting and argument reading than 4.0)
* access to killed text via $CUTBUFFER and $killring
* supplied highly configurable word widgets forward-word-match etc., can set
what constitutes a word interactively or in startup script (implement
bash-style behaviour, replacing previous bash-* word widgets)
* interface to incremental search via $LASTSEARCH
* better handling of keymaps in zle and widgets
* better support for output from user-defined widgets while zle is active
* tetris game which runs entirely in zle
* several other contributed widgets
Local internal improvements:
* disowned jobs are automatically restarted
* \u and \U print escapes for Unicode
* read -d allows a custom line ending.
* read -t .
* line numbers in error messages and $PS4 output are more consistent
* `=prog' expands only paths, no longer aliases for consistency
* job display in prompts; `jobs' command output can be piped
* prompts: new $RPROMPT2, %^, %j, %y, enhanced %{, %}, %_.
* rand48() function in zsh/mathfunc for better randomness in arithmetic
(if the corresponding math library function is present)
* $SECONDS parameter can be made floating point via `typeset -F SECONDS'
for better timing accuracy
* improvements to command line history mechanism
* job table is dynamically sized, preventing overflow (typically seen
previously in complex completions).
* many bugfixes
presence of some strings to decide how to build zsh. This is, of course,
a stupid thing to do, but we must not override config.status to "fix"
this build. This fixes PR 24483.
explicitly calls config.status to generate some Makefiles in certain
directories. This particular package has a need for executing the real
config.status, so we need to avoid overriding it automatically.
Nologinmsg is a slightly more functional replacement for /sbin/nologin.
It adds per-user messages, and group messages (of a form).
From the FreeBSD ports collection.
PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from: FreeBSD ports collection
MFC after:
Changes since 20030621:
* A bug in which could cause memory corruption when a posix
function invoked another one has been fixed.
* A bug in which a file descriptor>2 could be closed before
executing a script has been fixed.
* A parsing error for <() and >() process subsitituions inside
command substitution has been fixed.
* A parsing error for patterns of the form {...}(...) when
used inside ${...} has been fixed.
* An error in which expanding an indexed array inside a compound
variable could cause a core dump has been fixed.
* A bug in which under on rare ocassions a job completion interrupt
could cause to core dump has been fixed.
* A bug in which process substitution embeded within command
substitution would generate a syntax error has been fixed.
This update does also fix the build problems on NetBSD-current reported
by Steven M. Bellovin in PR pkg/22422.
Use INSTALL_TARGET to install info files: this gives a proper
environment for USE_NEW_TEXINFO framework to work.
Fix makeinfo invocation for zsh-current via patch file so that
only _one_ info file is generated as PLIST seems to want it.
Changes since 20030422 (from the release notes):
A source and binary update. There are few small but significant patches
for ksh and nmake. nmake -l/+l library list generation is much improved.
IBM z-series { linux.s390, linux.s390-64 } and i-series { linux.ppc64 }
binary architectures have been added, and the ebcdic { mvs.390 } has
been updated after a long absence.