summaryrefslogtreecommitdiffstats
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS89
1 files changed, 75 insertions, 14 deletions
diff --git a/NEWS b/NEWS
index 7509eb0df..0b941994e 100644
--- a/NEWS
+++ b/NEWS
@@ -20,25 +20,38 @@ The parameter expansion flag ! was added for the referred-to name of a
named reference.
The parameter ZSH_EXEPATH expands to the full path of the current zsh
-process, reliably on Linux, Mac, {Net,Free,Dragonfly}BSD and falls
-back to argv[0] elsewhere.
+process, reliably on Linux, Mac, {Net,Free,Dragonfly}BSD, Solaris, and
+Cygwin, and falls back to argv[0] elsewhere.
The default keymap is now emacs. Users of the vi keymaps please check
README to see if you are affected.
In region_highlight and zle_highlight, italic and faint can be
specified as font attributes for terminals that support them.
+Additionally, a layer number can be specified using layer= to indicate
+precedence where highlighted regions overlap, and colours can be mixed
+with a previous layer's using opacity=.
-Highlighting groups can be referenced in region_highlight,
-zle_highlight, WATCHFMT and completion explanation strings for
-common attribute combinations and a layer can be specified to
-indicate precedence where highlighted regions overlap.
-Highlighting groups are also supported in the prompt via a new %H
-prompt escape.
+Highlighting groups with arbitrary text attribute combinations can be
+defined via the .zle.hlgroups parameter. These groups can be referenced
+by name in region_highlight and zle_highlight via hl=, and in prompt
+expansion, WATCHFMT, and completion explanation strings via the %H
+escape sequence.
Ellipsis markers shown by the line editor to indicate where the line
doesn't fit in the terminal can be highlighted.
+The shell now keeps track of various terminal settings and capabilities,
+such as support for 24-bit colour, via .term.extensions and related
+parameters. By default the terminal is queried to determine the
+appropriate values when ZLE starts.
+
+The zsh/nearcolor module is automatically loaded when an RGB hex triplet
+is used and the terminal doesn't support 24-bit colour.
+
+The shape and colour of the terminal cursor can be controlled, similarly
+to highlight regions, via the zle_cursorform parameter.
+
The ERR_EXIT and ERR_RETURN options were refined to be more self-
consistent and better aligned with the POSIX-2017 specification of
`set -e`. For details on what exactly changed, see the list of
@@ -54,11 +67,33 @@ NTP, etc. For the most part this is transparent to users. However, as a
side effect, some features like $SECONDS and the time keyword gained
(nominal) nanosecond precision.
-The zsh/zutil module's zparseopts builtin learnt a -v option which can
-be used to specify the array of arguments to parse instead of $@.
+POSIX real-time signals (SIGRTMIN etc) are now supported by the kill
+and trap builtins, TRAP* functions, and the signals parameter, where
+available.
+
+The kill builtin learnt a new option -q to send the signal via
+sigqueue(3) along with an arbitrary integer value, where available.
+
+The kill builtin also learnt a new -L option to print a list of all
+known signal numbers and their names.
+
+The zsh/zutil module's zparseopts builtin learnt the following:
+
+ - a new -G option enables GNU-style argument parsing
+ ('--opt=arg', etc.)
+
+ - a new -n option sets the program name for usage errors
+
+ - a new -v option specifies the array of arguments to parse instead
+ of $@
+
+ - a single empty option spec signifies that no options are recognised
-The zparseopts builtin also learnt a -G option which enables GNU-style
-argument parsing ('--opt=arg', etc.).
+Also, zparseopts now uses standard argument parsing for its own options,
+enabling support for option stacking (-DFG instead of -D -F -G).
+
+A new contrib function zgetopt was added. It wraps `zparseopts -G` to
+provide an interface similar to util-linux's getopt(1).
The module zsh/pcre has been updated to use the pcre2 library.
@@ -68,14 +103,40 @@ and zrand_int() math functions.
The shell keyword time now works on builtins, assignments, and
current-shell actions.
+The new completion helper _as_if can be used to complete one command as
+if it were another command with particular arguments.
+
The new completion helper _shadow can be used to temporarily wrap or
substitute a function. The contrib function mkshadow makes it easier
to use outside of completion contexts.
The zsh/mathfunc module now provides isnan() and isinf() functions.
-Changes since 5.8.1
--------------------
+The getopts builtin learnt a -p option to make it behave like the
+POSIX_BUILTINS option has been temporarily enabled.
+
+The shell now keeps track of the 'current' job inside subshells. This
+enables some job-control features (disown without arguments, the %% job
+spec, etc) to work where they previously didn't.
+
+The disown builtin learnt a new -a option to disown all jobs.
+
+The zsh/zutil module's zformat builtin learnt two new options, -q and
+-Q, to escape '%' characters in format strings and/or specs so further
+processing can be applied to the result. Quoting of each spec can also
+be controlled via the spec prefixes '%' and '%%'.
+
+A 'math' context now appears in $zsh_eval_context within arithmetic
+constructs. This can be used to create dual-purpose math functions.
+
+The shell now preserves COLUMNS and LINES from the environment when run
+non-interactively.
+
+The completion helper _call_program learnt two new options, -q and -Q,
+to quote its arguments before passing them to eval.
+
+Changes from 5.8.1 to 5.9
+-------------------------
zsh 5.9 is dedicated to the memory of Sven Guckes, who was, amongst other
things, a long-time zsh advocate. For more information, see: