head 1.2; access; symbols pkgsrc-2026Q1:1.2.0.32 pkgsrc-2026Q1-base:1.2 pkgsrc-2025Q4:1.2.0.30 pkgsrc-2025Q4-base:1.2 pkgsrc-2025Q3:1.2.0.28 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.26 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.24 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.22 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.20 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.2.0.18 pkgsrc-2024Q2-base:1.2 pkgsrc-2024Q1:1.2.0.16 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.14 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.2.0.12 pkgsrc-2023Q3-base:1.2 pkgsrc-2023Q2:1.2.0.10 pkgsrc-2023Q2-base:1.2 pkgsrc-2023Q1:1.2.0.8 pkgsrc-2023Q1-base:1.2 pkgsrc-2022Q4:1.2.0.6 pkgsrc-2022Q4-base:1.2 pkgsrc-2022Q3:1.2.0.4 pkgsrc-2022Q3-base:1.2 pkgsrc-2022Q2:1.2.0.2 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.1.0.4 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.2 pkgsrc-2021Q4-base:1.1; locks; strict; comment @# @; 1.2 date 2022.05.16.14.58.30; author ryoon; state Exp; branches; next 1.1; commitid ZCA69EAn4hh18iED; 1.1 date 2021.11.23.19.42.43; author pho; state Exp; branches; next ; commitid 66wdWGkmTXIjiXhD; desc @@ 1.2 log @zsh: Update to 5.9 Changelog: 5.9: Changes since 5.8.1 ------------------- 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: https://linuxnews.de/2022/02/sven-guckes-verstorben/ https://groups.google.com/g/vim_announce/c/MJBKVd-xrEE/m/joVNaDgAAgAJ When unsetting a hash element, the string enclosed in square brackets is interpreted literally after any normal command-line-argument expansions. Thus unset "hash[$key]" first expands $key as usual for a double-quoted string, and then interprets that result as the exact hash element to unset. This differs from previous versions of the shell, which would also remove a leading backslash for an unusual subset of characters in the expansion of $key. Note this also means, for example, that now unset 'hash[ab]cd]' unsets the element with key "ab]cd" rather than silently doing nothing. The function command learnt a -T option to declare a function and enable tracing for it simultaneously. The option SHORT_REPEAT was added to enable the short syntax of SHORT_LOOPS for the repeat command only. It is disabled by default. The _arguments function now supports NUL-delimiting optargs in the opt_args array via the -0 option. Developers of completion functions should find this easier to handle reliably than the default colon-delimiting behaviour. The zsh/system module's `zsystem flock` command learnt an -i option to set the wait interval used with -t. Additionally, -t now supports fractional seconds. The option CLOBBER_EMPTY was added to enable the overwrite behaviour of CLOBBER for empty files only. It is disabled by default. A (-) expansion flag was added. It works like (n) but correctly sorts negative numbers. The (*) expansion flag enables EXTENDED_GLOB for pattern matching. For example, ${(*)sample/(#b)*(pat)*/${match[1]}} uses backreferences even if EXTENDED_GLOB is not otherwise set. However, this does not descend into nested exapansions, and doubling as (**) does not disable EXTENDED_GLOB. The compinit function learnt a -w option to explain why compdump runs. When run without the -i or -u options and compaudit discovers security issues, answering "y" to the "Ignore insecure ..." prompt removes the insecure elements (like the -i option) where previously it ignored the result (thus formerly like the -u option). Further, removing those elements includes dropping directories from the $fpath array. The zsh/datetime module's strftime builtin learnt an -n option to omit the trailing newline when printing a formatted time. The XTRACE option is now disabled while running user-defined completion widgets. This corresponds to long-standing behavior of other user ZLE widgets. Use the _complete_debug widget to capture XTRACE output, or use "functions -T" to enable tracing of specific completion functions. The fc builtin learnt an -s option which is a POSIX equivalent to the `fc -e-` method of re-executing a command without invoking an editor. The option CASE_PATHS was added to control how NO_CASE_GLOB behaves. NO_CASE_GLOB + NO_CASE_PATHS is equivalent to the current NO_CASE_GLOB behaviour. NO_CASE_GLOB + CASE_PATHS treats only path components that contain globbing characters as case-insensitive; this behaviour may yield more predictable results on case-sensitive file systems. NO_CASE_PATHS is the default. With the new TYPESET_TO_UNSET option set, "typeset foo" leaves foo unset, in contrast to the default behavior which assigns foo="". Any parameter attributes such as numeric type, sorting, and padding are retained until the parameter is explicitly unset or a conflicting value is assigned. This is similar to default behavior of bash and ksh. This option is disabled by default. The compadd builtin's -D option can now be specified more than once. The zsh/zutil module's zformat builtin learnt an -F option which behaves like -f except that ternary expressions check for existence instead of doing math evaluation. The conventional syntax used to indicate units, ranges, and default values in completion descriptions (e.g. `timeout (seconds) (0-60) [20]`) is now recognised by the completion system itself. These components are parsed out of the description and can be individually styled. A _numbers helper function has been added to help function authors offer rich completion for these values. The log builtin, WATCH parameter, et al., have been broken out into a separate module, zsh/watch. The module is enabled by default. The zsh/watch module's WATCHFMT parameter now supports colours via the %F and %K escapes. The STTY parameter can now be set to an empty string before running a command to automatically restore terminal settings after the command finishes. The "jobs" command and "$jobstates" and related parameters can report on parent shell jobs even in subshells. This is a snapshot of the parent state, frozen at the point the subshell started. However, if a subshell starts its own background jobs, the parent state is discarded in order to report on those new jobs. @ text @$NetBSD: patch-Completion_Unix_Command___gpg,v 1.1 2021/11/23 19:42:43 pho Exp $ Fix an issue in _gpg. Simply typing "gpg2 [TAB]" fails with an error: _gpg:176: \[]*} not found [pho@@] I couldn't figure out what was really going on. These nested parameter expansions don't look wrong, yet zsh-5.8 somehow fails to process them. Maybe it's misinterpreted as an indexed array assignment? Creating arrays with unquoted values is a bad idea anyway, because they can easily cause shell expansions in a totally unexpected way. --- Completion/Unix/Command/_gpg.orig 2022-05-08 06:18:22.000000000 +0000 +++ Completion/Unix/Command/_gpg @@@@ -173,8 +173,8 @@@@ fi '--dump-options[show all options]' ) -extra=( ${${${args#\([^\)]#\)}#\*}%%[=:\[]*} ) -extra=( ${allopts:|extra} ) +extra=( "${(@@)${(@@)${(@@)args#\([^\)]#\)}#\*}%%[:=\[]*}" ) +extra=( "${(@@)allopts:|extra}" ) _arguments -C -s -S -A "-*" $args $extra '*:args:->args' && ret=0 if [[ $state = args ]]; then @ 1.1 log @Fix an issue in _gpg (see comments) @ text @d1 1 a1 1 $NetBSD$ d14 1 a14 1 --- Completion/Unix/Command/_gpg.orig 2018-12-16 01:39:51.000000000 +0000 d20 1 a20 1 -extra=( ${${${args#\([^\)]#\)}#\*}%%[:=\[]*} ) @