| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Take account of the trailing file type character even when '-d disp'
is given to compadd.
|
|
|
|
|
| |
Now it returns NULL if called with GETKEY_SINGLE_CHAR and next character
is not found. Caller must check the return value.
|
| |
|
|
|
|
|
|
| |
The inconsistency caused test failures where TERM is e.g. rxvt-unicode.
This also makes a couple of bits available in zattr by removing flags
indicating whether to use termcap which is not an attribute as such.
|
| |
|
|
|
|
|
| |
wcsitype(c, IIDENT) should return false for non-ASCII characters
when the POSIX_IDENTIFIERS option is on, not the other way round.
|
|
|
|
|
| |
fc with the -L option should ignore remote entires, rather than
reading them and treating them as an error.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change modifies the zsh binary safety check surrounding execve() so
it can run shell scripts having concatenated binary content. We're using
the same safety check as FreeBSD /bin/sh [1]. POSIX was recently revised
to require this behavior:
"The input file may be of any type, but the initial portion of the
file intended to be parsed according to the shell grammar (XREF to
XSH 2.10.2 Shell Grammar Rules) shall consist of characters and
shall not contain the NUL character. The shell shall not enforce
any line length limits."
"Earlier versions of this standard required that input files to the
shell be text files except that line lengths were unlimited.
However, that was overly restrictive in relation to the fact that
shells can parse a script without a trailing newline, and in
relation to a common practice of concatenating a shell script
ending with an 'exit' or 'exec $command' with a binary data payload
to form a single-file self-extracting archive." [2] [3]
One example use case of such scripts, is the Cosmopolitan C Library [4]
which configuse the GNU Linker to output a polyglot shell+binary format
that runs on Linux / Mac / Windows / FreeBSD / OpenBSD.
[1] https://github.com/freebsd/freebsd-src/commit/9a1cd363318b7e9e70ef6af27d1675b371c16b1a
[2] http://austingroupbugs.net/view.php?id=1250
[3] http://austingroupbugs.net/view.php?id=1226#c4394
[4] https://justine.lol/cosmopolitan/index.html
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
If ~/foo does not exist and `zf_mkdir -p zf_mkdir -p` is executed
concurrently in multiple shells, it was possible prior to this patch
for the command to fail with EEXIST.
|
| |
|
|
|
|
| |
Mikael Magnusson: 47382: Completion for 47364
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed a regression introduced by workers/30496 (5.0.3) whereby %2K would
no longer be the equivalent of %K{2} (%K{green}) in prompt expansion.
That was one missing case where the is_fg flag was not passed along to
match_colour() after code factorisation.
Add tests for the different syntax variants, using echoti
as a reference.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
been built with --enable-wgetch-events.
The --enable-wgetch-events codepath is experimental (according to
ncurses-6.2/INSTALL) and off by default (according to
ncurses-6.2/configure.in). With that codepath disabled, the macro
KEY_EVENT is not provided, which (before this commit) manifested as a
build-time error:
[ 245s] gcc -c -I. -I../../Src -I../../Src -I../../Src/Zle -I. -DHAVE_CONFIG_H -DMODULE -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -fPIE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -I/usr/include/ncursesw -fPIC -o curses..o curses.c
[ 246s] In file included from curses.c:210:
[ 246s] curses_keys.h:93:15: error: 'KEY_EVENT' undeclared here (not in a function); did you mean 'KEY_RESET'?
[ 246s] 93 | {"EVENT", KEY_EVENT},
[ 246s] | ^~~~~~~~~
[ 246s] | KEY_RESET
curses_keys.h is only used for setting the "kevent" output parameter of
'zcurses input' (and the associated $zcurses_keycodes special variable),
so there's no harm in just leaving KEY_EVENT out of it. (That codepath
deals gracefully with numeric values that don't correspond to any of the
known compile-time values, as that can happen whenever the build- and
run-time versions of ncurses don't provide the same set of KEY_* macros,
with or without relation to that configure flag.)
Reported by Martin Liska.
|
|
|
|
|
|
| |
repeat count use $?.
It's an arithmetic expression.
|
|
|
|
| |
All uses reviewed; no functional change.
|
|
|
|
| |
See zsh-workers 46277, 46278, 46279.
|
|
|
|
|
| |
struct hashtable has different set of data members in different
translation units. This is undefined behavior.
|
|
|
|
|
|
|
| |
From nice(2):
To detect an error, set errno to 0 before the call, and check
whether it is nonzero after nice() returns -1.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The warning was:
.
warning: passing 'const char *' to parameter of type 'void *'
discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
|
|
|
|
|
|
| |
add-zle-hook-widget support for multiple hook functions.
See workers/46004 for the use-case.
|
|
|
|
|
|
| |
This occurs with SH file expansion ordering.
Add test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is useful when multiple plugins add region_highlight entries and
subsequently want to remove only their own entries. Without this
functionality, recognizing one's region_highlight entries is not trivial
because the 'start' and 'end' offsets are modified by editing of $BUFFER
and the highlight specification may not be unique or distinctive.
The tweaks are as follows:
- Change zfree() to zsfree() per workers/46070.
- Remove the mem.c hunk, as it changed the signature of only one out of
two alternative definitions of zsfree(). (The definition that hunk
touched is the one that's not used by default.)
|
|
|
|
|
|
|
| |
Treat as white space.
This is required for compatibility and previously had no use in zsh
as it generated an error.
|
|
|
|
| |
Ensure process has taken a signal before looking for SIGINT or SIGQUIT.
|
| |
|
|
|
|
|
| |
When running a function, remove special files used for substitution
after the function has run rather than before.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
functions as though they were a single function named "(anon)".
Before:
% zmodload zsh/zprof
% () :
% () :
% zprof
num calls time self name
-----------------------------------------------------------------------------------
1) 2 0.08 0.04 100.00% 0.08 0.04 100.00% (anon)
After:
% zmodload zsh/zprof
% () :
% () :
% zprof
num calls time self name
-----------------------------------------------------------------------------------
1) 1 0.04 0.04 50.45% 0.04 0.04 50.45% (anon) [:3]
2) 1 0.04 0.04 49.55% 0.04 0.04 49.55% (anon) [:2]
|
| |
|
| |
|
|
|
|
| |
Check if relevant parameters changes and if so restore system settings.
|
| |
|
|
|
|
| |
Also, write/extend docstrings for sepjoin() and zjoin().
|
|
|
|
|
|
| |
hlinklist2array().
Will be used in the next commit.
|
|
|
|
| |
weight (specificity) of a pattern, consider the number of components before anything else, as documented.
|