./shells/zsh, The Z shell

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 5.9nb4, Package name: zsh-5.9nb4, Maintainer: pkgsrc-users

Zsh is a UNIX command interpreter (shell) which of the standard shells
most resembles the Korn shell (ksh), although it is not completely
compatible. It includes enhancements of many types, notably in the
command-line editor, options for customising its behaviour, filename
globbing, features to make C-shell (csh) users feel more at home and
extra features drawn from tcsh (another `custom' shell).


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 3254.297 KB

Version history: (Expand)


CVS history: (Expand)


   2026-01-18 15:12:41 by Ryo ONODERA | Files touched by this commit (4)
Log message: shells/zsh: Assume diff(1) under NetBSD is GNU-like * NetBSD has GNU or GNU compatible diff command in base. * And complete .heic for display command from ImageMagick * Bump PKGREVISION. 
   2025-10-07 05:34:29 by Ryo ONODERA | Files touched by this commit (4)
Log message: shells/zsh: Fix dynamic module build with GCC 14 * Reflect c11 use as USE_CC_FEATURES. * Bump PKGREVISION. 
   2025-04-21 23:18:08 by Thomas Klausner | Files touched by this commit (3)
Log message: *: remove Interix support 
   2024-04-01 00:08:43 by Jonathan Schleifer | Files touched by this commit (5)
Log message: Fix shells/zsh on QNX 
   2022-11-06 21:58:00 by Thomas Klausner | Files touched by this commit (3)
Log message: zsh: add candidate upstream patch for bg/fg issue with shell functions Bump PKGREVISION. 
   2022-07-02 01:31:49 by Rin Okuyama | Files touched by this commit (4)
Log message: shells/zsh: Stop regen configure, drop dependencies to auto{conf,make}. Our local patch for aczsh.m4, introduced to 5.0.2nb1: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/shells/zsh/Makefile#rev1.63 has been upstreamed. There is no longer a point to regen configure; tiny patch to configure.ac can be directly applied to configure itself. Bump revision. 
   2022-05-16 16:58:30 by Ryo ONODERA | Files touched by this commit (7)
Log message: 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. 
   2022-03-12 07:07:48 by Kimmo Suominen | Files touched by this commit (2) | Package updated
Log message: shells/zsh: Update to 5.8.1 Changes between 5.8 and 5.8.1 Incompatibilities PROMPT_SUBST expansion is no longer performed on arguments to prompt-expansion sequences such as %F. Changes CVE-2021-45444: Some prompt expansion sequences, such as %F, support 'arguments' which are themselves expanded in case they contain colour values, etc. This additional expansion would trigger PROMPT_SUBST evaluation, if enabled. This could be abused to execute code the user didn't expect. e.g., given a certain prompt configuration, an attacker could trick a user into executing arbitrary code by having them check out a Git branch with a specially crafted name. This is fixed in the shell itself by no longer performing PROMPT_SUBST evaluation on these prompt-expansion arguments. Users who are concerned about an exploit but unable to update their binaries may apply the partial work-around described in the file Etc/CVE-2021-45444-VCS_Info-workaround.patch included with the shell source. [ Reported by RyotaK. Additional thanks to Marc Cornellà. ]