1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-11 13:01:28 +02:00
Commit graph

4052 commits

Author SHA1 Message Date
Stephane Chazelas
24a82b9dad 47352 (+ extra test cases): fix %<n>K prompt expansion
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.
2020-09-10 07:34:56 +01:00
Daniel Shahaf
c6a8516361 github #64: Fix a build-time error when building against ncurses that hadn't 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.
2020-08-28 02:54:51 +00:00
Daniel Shahaf
a2a0293d4f 47296 (+ unposted additional tests and comments): 'repeat' loops: Let the repeat count use $?.
It's an arithmetic expression.
2020-08-08 06:11:00 +00:00
Daniel Shahaf
d4da2c73f0 47300: Document the EC_NODUP, EC_DUP, EC_DUPTOK triplet.
All uses reviewed; no functional change.
2020-08-08 06:01:32 +00:00
Roman Perepelitsa
a8e31c07a7 unposted: comments explaining how hashtable must be created
See zsh-workers 46277, 46278, 46279.
2020-07-29 08:53:47 +02:00
Roman Perepelitsa
6f6363de94 46275: eliminate undefined behavior caused by redefinition of hashtable
struct hashtable has different set of data members in different
translation units. This is undefined behavior.
2020-07-29 08:27:15 +02:00
Roman Perepelitsa
41e318727e 46268: suppress a useless compiler warning around nice()
From nice(2):

    To detect an error, set errno to 0 before the call, and check
    whether it is nonzero after nice() returns -1.
2020-07-28 11:46:14 +02:00
Cedric Ware
4d7aa71d8e 46152: zsh/system: Re-allow '0' timeout in zsystem flock 2020-07-11 00:14:58 -05:00
Daniel Shahaf
cf134c15a0 46175/0003: Fix the RM_STAR_SILENT bug from the parent commit. 2020-07-05 11:11:59 +00:00
Matthew Martin
4e471c3f89 46168: Update $PWD and call chpwd hook after normalizing path 2020-07-03 21:17:58 -05:00
Peter Stephenson
4e0058afc5 users/24971: ${(-)var} sorts on signed integers 2020-07-03 21:05:46 +01:00
Daniel Shahaf
6f479b7685 unposted (after 46068): Fix a compiler warning.
The warning was:
.
    warning: passing 'const char *' to parameter of type 'void *'
    discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
2020-06-27 03:35:30 +00:00
Daniel Shahaf
0cffb0a6b3 46072 + 46136: Add the 'zle $widget -f nolast' syntax, to improve add-zle-hook-widget support for multiple hook functions.
See workers/46004 for the use-case.
2020-06-27 03:09:31 +00:00
Peter Stephenson
7865486994 46100: Fix =subst before =(subst)
This occurs with SH file expansion ordering.

Add test.
2020-06-26 17:32:02 +01:00
Daniel Shahaf
dd6e702ee4 46068 (tweaked) (was: github #57): region_highlight: Add memo= support.
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.)
2020-06-25 11:50:33 +00:00
Peter Stephenson
af1c009c3e 46079: Ignore double quotes in math expressions.
Treat as white space.

This is required for compatibility and previously had no use in zsh
as it generated an error.
2020-06-23 12:17:32 +01:00
Peter Stephenson
baf4fa3621 46060: Fix spurious actions on exit status 130 or 131.
Ensure process has taken a signal before looking for SIGINT or SIGQUIT.
2020-06-18 09:27:05 +01:00
Peter Stephenson
3df604a4be 46026: Add CLOBBER_EMPTY option. 2020-06-09 18:07:01 +01:00
Peter Stephenson
d7e90f1c7c users/24909: Don't clean up special file list too early.
When running a function, remove special files used for substitution
after the function has run rather than before.
2020-06-08 20:52:53 +01:00
Mikael Magnusson
ed23768f77 typeset: Fix leaving corrupted entries in paramtab 2020-06-05 15:42:31 +02:00
Bart Schaefer
94e38548e3 45915: fix handling of hyphens in spckword() 2020-05-30 14:31:10 -07:00
Daniel Shahaf
fb1aa3fe1e 45923 (with memory leak fixed, cf. 45924): zprof: Don't tally all anonymous 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]
2020-05-28 19:40:40 +00:00
Peter Stephenson
40723b3991 45900: Fix issues with escaped newline in $-substitution. 2020-05-23 18:01:26 +01:00
Mikael Magnusson
817d461932 Support ${name:offset:length} with an empty offset 2020-05-12 10:13:02 +02:00
Peter Stephenson
c486040220 45772: Restore locale on parameter scope end.
Check if relevant parameters changes and if so restore system settings.
2020-05-05 20:28:31 +01:00
Jun-ichi Takimoto
b87b7f367c unposted: add a comment about how to add a new resource 2020-05-03 18:38:36 +09:00
Daniel Shahaf
deca7c9285 45730: _arguments: Add the -0 flag, which makes $opt_args be populated sanely.
Also, write/extend docstrings for sepjoin() and zjoin().
2020-05-03 01:27:36 +00:00
Daniel Shahaf
4d2bcf2fe7 45729: internal: Add a second parameter to zlinklist2array(), analogously to hlinklist2array().
Will be used in the next commit.
2020-05-03 01:27:36 +00:00
Daniel Shahaf
34d69acbef 45737 (+ docs, and update the test from 45722): zstyle: When determining the weight (specificity) of a pattern, consider the number of components before anything else, as documented. 2020-05-02 01:12:07 +00:00
Cedric Ware
25c9b61a66 45708: zsh/system: Enable sub-second timeout in zsystem flock 2020-04-20 12:10:01 -05:00
Peter Stephenson
66ee4918a1 45660: Fix crash setting vi or emacs mode on command line.
Delay setting the option until the module system is set up.
2020-04-09 21:46:20 +01:00
Mikael Magnusson
8923d2a618 Add SHORT_REPEAT option 2020-04-02 07:42:16 +02:00
Peter Stephenson
2a9674862e 45616: Remove token from count argument to repeat 2020-03-26 20:54:37 +00:00
Daniel Shahaf
fc286a7c11 45583/0008: Extend tests to prove that what remains of xsymlinks() handles symlink loops gracefully. 2020-03-25 23:49:02 +00:00
Daniel Shahaf
dabfd1f1fb 45583/0007: Remove code that is now unreachable. 2020-03-25 23:49:02 +00:00
Daniel Shahaf
12347c26ce 45583/0006: Don't use xsymlinks() in 'whence -s'. 2020-03-25 23:49:02 +00:00
Daniel Shahaf
47fc5fe01f 45583/0004: Fix segfault on resolving symlink loops 2020-03-25 23:49:02 +00:00
Daniel Shahaf
12414d8052 45583/0003: chrealpath: Let caller decide how the return value should be allocated. 2020-03-25 23:49:01 +00:00
Daniel Shahaf
38b0e1ff7e 45583/0002: chrealpath: Make symlink resolution optional. 2020-03-25 23:49:01 +00:00
Peter Stephenson
2b1e5a3d22 45563: %z can be used for zlong in warnings and errors 2020-03-22 18:45:02 +00:00
Daniel Shahaf
aed0cb4408 45583/0009: Add end-of-options guard support to 'function -T'. 2020-03-22 02:23:53 +00:00
Daniel Shahaf
386d9ac8ff 45583/0008: Add the 'function -T' syntax.
Config/version.mk was bumped in the previous commit.
2020-03-22 02:23:53 +00:00
Daniel Shahaf
a3c6c5513d 45583/0007: WC_FUNCDEF: Add a placeholder element. 2020-03-22 02:23:53 +00:00
Daniel Shahaf
fd1ef7d770 45583/0006: internal: Add some comments for orientation. No functional change. 2020-03-22 02:23:53 +00:00
Daniel Shahaf
e37df255c1 45583/0005: internal: Document the WC_FUNCDEF data layout for anonymous functions with arguments (follow-up to 29492) 2020-03-22 02:23:52 +00:00
Daniel Shahaf
338a4a299a 45583/0004: internal: Add some comments around wordcodes. No functional change. 2020-03-22 02:23:52 +00:00
Daniel Shahaf
4960699de2 45583/0003: internal: Add some comments around Eccstr. No functional change. 2020-03-22 02:23:52 +00:00
Daniel Shahaf
be73026b07 45583/0002: internal: Reduce some variables' visibility. No functional change. 2020-03-22 02:23:52 +00:00
Daniel Shahaf
e94e828efd 45583/0001: internal: Remove a redundant assignment.
The value is overwritten five lines below, without being read in the interim.
2020-03-22 02:23:52 +00:00
Daniel Shahaf
fb3ef09f2d unposted: Deconfuse $EDITOR's balanced braces mode. No functional change. 2020-03-20 18:05:24 +00:00
Jun-ichi Takimoto
0bc1edef5a 45536: fix handling of 8bit character under C-locale
correctly escape unprintable 8bit character by using \M-
2020-03-17 15:11:04 +09:00
Daniel Shahaf
6fc8e8628f Merge remote-tracking branch 'origin/master' into 5.9
* Test/D02glob.ztst:
  On the "unreadable directories can be globbed (users/24619, users/24626)"
  test, resolve conflicts by removing the Cygwin-only skip that has been added
  in master, since the test is passing on this branch.  This effectively reverts
  workers/45492.  See discussion starting in workers/45504.

* origin/master:
  unposted: Remove 'sgi', as that OpenBSD port has been discontinued.
  45509: fix typos in B01cd.ztst
  45490 (+45495 and a test): refactor rlimits.c
  github #49: Fix typo: longson should be loongson
  users/24710: Fix job control problem with sudo.
  45492: skip test added by users/24633 on Cygwin
  45488: COMP_WORDS for bash need "$@"-style quoting
  45487: Missing mod_export declarations for AIX
  45447: Complete vcs_info_hookadd and vcs_info_hookdel. Expose _vcs_info_hooks as a top-level helper function.
  45463: test: kill: Document why we use SIGURG
  45453: builtins: kill: Do not signal current process group when pid is empty
  45452: builtins: kill: Add `kill ''` regression test with explicit sigspec
  45451: builtins: kill: Add basic test suite
  github #48/0002: vcs_info git: properly detect bare repositories
  github #48/0001: vcs_info git: avoid warnings in bare repositories
  unposted: Post-release version bump
  unposted: Release 5.8
  CVE-2019-20044: Update change log for preceding commits
  Update NEWS/README
  Add unsetopt/PRIVILEGED tests
  Clean up error-message white space
  Improve PRIVILEGED fixes (again)
  Improve PRIVILEGED fixes
  Drop privileges securely
  unposted: V01zmodload: Fix failing test from workers/45385
  45423: _su: Improve arg handling, shell look-ups
  unposted: _zip: Recognise '--'
  45385: Add a test for 'zmodload -Fa' preemptively disabling ("blacklisting"?) features.
  unposted: Test release: 5.7.1-test-3
  zsh/system: Fix infinite loop in sysread
  _diff_options: Restore -w completion lost in workers/43351
  unposted: Fix ChangeLog typo.
  45368: Add tests for workers/45367's issue about double slashes in 'cd -P' and /home/daniel/in/zsh.
  45373: Fix ERR_EXIT bug in else branch of if.
  45372: Record a symlink loop bug involving :P
  45365: _git: Fix __git_recent_branches for the case when a commit has an empty message
  45343: Queue signals around arithmetic evaluations
  45344: Document where third-party completion functions should be installed.
  45345: internal: ztst.vim: Fix highlighting of zsh comments in test payload
  unposted: internal: Add some comments and fix indentation.  No functional change.
  45340: internal: Document the difference between paramtab and realparamtab.
  45332: _git: add completion for git-version
  _brace_parameter: add missing \

Conflicts:
	ChangeLog
	Test/D02glob.ztst
	Test/V01zmodload.ztst
2020-03-07 21:36:46 +00:00
Jun-ichi Takimoto
273da6cc5f 45490 (+45495 and a test): refactor rlimits.c
Use a table of known resouces instead of generating rlimits.h by
rlimits.awk.
2020-03-06 20:12:06 +09:00
Peter Stephenson
14ea665a90 users/24710: Fix job control problem with sudo.
If we use kill to test for continued existence of a process group,
we should check on failure that the error is ESRCH, as EPERM
indicates the group still has memebers but running privileged
so should be left alone.
2020-02-27 20:42:16 +00:00
Peter Stephenson
a6a1b28b98 45487: Missing mod_export declarations for AIX 2020-02-24 10:55:48 +00:00
Chris Down
5c55b3fb50 45453: builtins: kill: Do not signal current process group when pid is empty
The following case was encountered in the wild:

    % zsh; echo "$?"
    % trap 'exit 5' TERM
    % kill ''
    5

This behaviour seems more likely to be the result of bugs in programs
(e.g. `kill -9 "$unsetvar") rather than being desirable
behaviour to me.  It also seems unintentional judging by the code and
documentation, since it comes about as a result of the fact that:

- `isanum` returns true for empty strings (since an empty string
  technically only consists of digits and minuses...);
- `atoi`, when passed a pointer to an invalid number, returns 0;
- `kill(0, signal)` sends the signal in question to all processes in the
  current process group.

There are (at least) two ways to solve this issue:

1. Add special handling to `kill` to avoid this case. See this patch[0]
   for a version that does that.
2. Change how isanum behaves. Since the only two call sites that use it
   both seem like they should handle the case where the input char array
   is empty, that seems like a reasonable overall change to me.[1]

After this patch:

    % trap 'exit 5' TERM
    % kill ''
    kill: illegal pid:

The regression test for `kill` without a sigspec is also included in
this commit, as previously it's not possible to test it trivially as it
would still kill the test runner in expected-to-fail mode; see
discussion in workers/45449.

0: workers/45426: https://www.zsh.org/mla/workers/2020/msg00251.html
1: The other call site using isanum() is the fg builtin, but in that
   case we just fail later since we can't find any job named '', so no
   big deal either way. It's the kill case which is more concerning.
2020-02-18 12:59:53 +00:00
dana
4ce66857b7 Clean up error-message white space 2020-02-14 16:06:57 -06:00
dana
26d02efa7a Improve PRIVILEGED fixes (again)
* Pass RGID instead of passwd GID to initgroups()

* Clean up #ifdefs, avoid unnecessary checks

* Flatten conditions
2020-02-14 16:06:57 -06:00
Daniel Shahaf
8250c5c168 Improve PRIVILEGED fixes
- Fix retval handling in bin_setopt()

- Don't skip_setuid / skip_setgid.  It's not our place to optimize away noops
  (that might not even _be_ noops; they might change the saved uid…).

- Remove HAVE_* guard checks around functions that are used unguarded elsewhere.

- Use bsd-setres_id.c from OpenSSH to provide setresuid() / setresgid()
  everywhere, and thus simplify the ifdef soup.  Fix some preëxisting
  bugs in the macro definitions of setuid() (do we still need that one?).

- Fix zwarning() format codes for variadic arguments type safety

- Restored a comment from HEAD

- Fix failure modes around initgroups()

- Compared privilege restoration code with OpenSSH's permanently_drop_uid() and
  updated as needed

- Add E01 PRIVILEGED sanity checks
2020-02-14 16:06:57 -06:00
Sam Foxman
24e993db62 Drop privileges securely 2020-02-14 16:06:57 -06:00
Roman Perepelitsa
754fdc6580 zsh/system: Fix infinite loop in sysread 2020-02-06 13:42:32 -06:00
Peter Stephenson
e01223a26c 45373: Fix ERR_EXIT bug in else branch of if.
The flags need resetting for this branch otherwise e.g. command
substitution with non-zero status doesn't cause exit.
2020-02-02 18:05:47 +00:00
Daniel Shahaf
581585dfc6 45343: Queue signals around arithmetic evaluations
The queueing added in execarith() in 45083 is reverted since the callee
does this now.
2020-01-29 09:02:49 +00:00
Daniel Shahaf
3511169731 unposted: internal: Add some comments and fix indentation. No functional change. 2020-01-26 03:46:00 +00:00
Daniel Shahaf
5e843a3721 45340: internal: Document the difference between paramtab and realparamtab. 2020-01-23 03:21:36 +00:00
Daniel Shahaf
7ca2b06501 45304: Do execute the always block even when the try/always block itself is the last command.
Fixes the test added in the previous commit (workers/45305).
2020-01-16 18:29:13 +00:00
Daniel Shahaf
edc04bd946 45291: A glob with a trailing slash will now match unreadable/unexecutable directories. 2020-01-15 19:20:33 -06:00
Daniel Shahaf
e899c21863 Merge remote-tracking branch 'origin/master' into 5.9
Right now, as we're preparing to tag the 5.8 release, the 5.9 branch is
maintained as a topic branch off master.

* origin/master:
  45287: zshexpn: Describe parameter elision and add some introductory prose
  45302: bin_umask(): Queue signals around umask().
  users/24656: docs: Add an example of setting and querying zstyles
  users/24659: Cross-ref doc for matchers.
  45296: D02glob: Clean up after test from users/24633
  45290: New helper script for listing XFail tests.
  users/24633: Add an xfail test for users/24619.
  unposted: additional typo fix
  45280: _git: add -local variants
  users/24628 (fixed): More doc for selectw-word-style widgets.
  45266: Fix losetup completion, broken in da085b7a20 (41720).
  unposted: Fix punctuation.
  use /dev/fd on Cygwin for process substitution
  unposted: Two additional typo fixes.
  Fix typos reported by codespell in shell code
  Fix typos reported by codespell in Src/
  45269: Fix misspellings in completions and elsewhere.
  45261: _gcc: Detect clang-as-gcc
  unposted: internal: Remove Vim modeline that interferes with ztst.vim.
  unposted: internal: ztst.vim: Use :syn-sync to work around (#x) and "`\\\\\\\\`" confusing the highlighting.
  unposted: internal: zyodl.vim: Support glob qualifiers in example()'s
  unposted: internal: zyodl.vim: Support yodl comments.
  github #44: Allow completion for picocom to list symlinks to character devices
  45245: _gcc: add some clang specific warnings
  45231: _rsync: When completing remote modules, ignore more of the motd.
  unposted: _tac: Eliminate superfluous variable
  45226: _man: Improve completion of file paths
  45184: Clarify documentation of %-sequences understood by compadd -[Xx]
  45239: Remove 'appendhistory' from zsh-newuser-install
  45218: add more options to swaks completion
  45196: fix completion after make -C, allowing for -C being used multiple times
  unposted (after 45183): Fix yodl error: "contrib.yo:4457: No macro: back(...)".
  45181: Fix workers/45164: ${(S)%%} will now consider the empty string as a potential match.
  45183: Improve documentation examples
  unposted: Add some tests for ${(S)}, including a regression test for workers/45164.
  45169/0002 (tweaked for trailing newlines): Add an expected-to-fail test for workers/44007.
  45169/0001: In the test suite, allow test cases to be marked as expected to fail.
  users/24582 + users/24583: Add regression tests for the previous commit.
  24581: Fix array assignments in shell word splitting and completion.
  45160: zshexpn: Expand documentation of (S)
  45150 + 45152: zshexpn: Use a more minimal example in the documentation of (#b).
  unposted: internal: Vim ztst support: Add an ftplugin in addition to the syntax highlighter.
  45130: _multi_parts: Always pass -f to compadd if given by caller
  unposted: zerrmsg(): Fix macro guard missed in previous commit
  unposted: ChangeLog for last commit
  internal: Allow %L in zerrmsg() in non-debug builds, too.
2020-01-15 22:49:09 +00:00
Daniel Shahaf
faa476a4ed 45302: bin_umask(): Queue signals around umask().
Otherwise, a signal handler might create files while the temporary umask
is in effect.
2020-01-15 19:49:45 +00:00
Mikael Magnusson
e6fa0b3b65 Fix typos reported by codespell in Src/ 2020-01-09 14:49:55 +01:00
Jens Schleusener
11dbe4c286 45269: Fix misspellings in completions and elsewhere. 2020-01-09 13:42:02 +00:00
Daniel Shahaf
b591d43113 45181: Fix workers/45164: ${(S)%%} will now consider the empty string as a potential match. 2020-01-02 16:00:11 +00:00
Peter Stephenson
c557cee1a6 24581: Fix array assignments in shell word splitting and completion.
Assignments after the first were not recognised as such as without
the full parser the state didn't return to command position.
Fix this in bufferwords() and the completion miniparser.
2019-12-31 18:35:06 +00:00
dana
ed21a7b700 unposted: zerrmsg(): Fix macro guard missed in previous commit 2019-12-26 14:57:07 -06:00
Daniel Shahaf
81185f4c61 internal: Allow %L in zerrmsg() in non-debug builds, too.
This will let error messages include long integers.
2019-12-26 11:49:45 +00:00
Daniel Shahaf
525faae549 45137: zformat: Allow the specifying minimum width and a dot with an empty maximum width.
Before this commit, format specs such as '%5.s' would be printed
literally.  Now, they are treated as equivalent to '%5s'.

The '.' character is not allowed to be used in specs, so there is no
incompatibility.
2019-12-26 04:21:47 +00:00
Daniel Shahaf
8e0253af02 45138: Add zformat unit tests. 2019-12-26 04:20:24 +00:00
Daniel Shahaf
ca6f4466e6 45131: Make a function that redefines itself preserve its tracedness.
This makes it easy to apply local tracing ('functions -T') to autoloadable
functions that redefines themselves when first loaded.
2019-12-26 04:20:10 +00:00
Peter Stephenson
fd068221b7 45083: Add signal protection to execarith().
Otherwise we could get re-entrancy in memory functions when
setting variables.
2019-12-18 10:51:59 +00:00
Daniel Shahaf
a90e93f454 45076: internal: Simplify handling of try_tryflag. No functional change.
try_tryflag isn't assigned anywhere, other than at initialization and by these
lines, so we don't need to save and restore the value.
2019-12-18 06:01:55 +00:00
Daniel Shahaf
ae7e291873 45066: internal: Document forklevel, locallevel, and exit_pending. 2019-12-18 06:01:50 +00:00
Daniel Shahaf
a370f24137 45065: Make 'make -s' print nothing when it does nothing. 2019-12-18 06:01:49 +00:00
Daniel Shahaf
3c4b3c8798 45064: Fix the mktemp() warning, in debug builds only.
On Linux, linking to mktemp() generates the following warning:
.
    utils.o: In function `gettempname':
    ./Src/utils.c:2229: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'

The warning cannot be disabled.

Work around that by using mkstemp() instead, and massage its output so
it behaves like mktemp().  See the new comment for further details.
2019-12-18 06:01:47 +00:00
Daniel Shahaf
8bc4400762 45058: internal: Add symbolic names to possible values of zexit()'s "from_where" parameter. No functional change. 2019-12-17 05:12:36 +00:00
Daniel Shahaf
06c2a625b3 unposted: Update comment to reflect variable rename in 41012 (= zsh-5.3.1-182-gd7110d8f0). 2019-12-17 02:46:32 +00:00
Peter Stephenson
1baf0d1f55 45025: fix re-entrancy problem with memory management in readoutput().
This could cause a signal received during $(...) to corrupt memory.
2019-12-15 19:04:04 +00:00
Peter Stephenson
cb4dc95643 45009: POSIX_CD needs to suppress some forms of option.
Otherwise forms of argument allowed by POSIX are interpreted as
options instead.
2019-12-12 10:47:00 +00:00
Peter Stephenson
273d669a56 45001: Fix zero-length matches with ${...%...}
As the shortest match is preferred, zero-length matches beat any other.
2019-12-12 10:23:47 +00:00
Martijn Dekker
c578f0a08b 45004: Fix typos in comments 2019-12-11 02:37:39 +00:00
Peter Stephenson
ae58388619 44997: GLOB_COMPLETE fix for compctl file completion.
Dashes could cause problems in directory prefixes.
2019-12-10 10:32:48 +00:00
Oliver Kiddle
06e27e940a 44976: fixup describe-key-briefly for visual mode 2019-12-04 22:55:52 +01:00
Daniel Shahaf
2acbae3bad unposted: zstyle: Add a unit test and some comments. 2019-12-01 04:00:17 +00:00
Daniel Shahaf
87db974a84 users/24451: zgetcwd: Add a guard against returning an empty string. 2019-11-19 19:20:38 +00:00
Peter Stephenson
88d14451b0 users/24445: Add :P modifier to history code.
This was in the glob qualifier and variable code but got missed out
of the separate history modifier function.
2019-11-18 15:26:17 +00:00
Peter Stephenson
8c25d92e11 44864: Avoid inifinite loop in tty init.
If we can't grab the terminal in interactive mode, give
up after 100 goes.  This is a completely arbitrary choice;
we simply don't know what in the system could change the
result of looping further.
2019-10-28 11:56:19 +00:00
romkatv
6c6200520a unposted: fix indentation (whitespace-only change)
Indentatin in moveto was broken by 3eea35d0 (my bad), making it
difficult to read. This commit reverts it to what it used ot be.
While at it, fix indentation in a few other places in the same
file.
2019-10-28 12:00:55 +01:00
_RuRo_ (Андрей Стоцкий)
59901e61cb 44841: Better checking of errors from "nice" 2019-10-16 17:41:41 +01:00
Daniel Shahaf
72c6dbe1be unposted: functions -c: Fix typo 2019-10-10 03:45:02 +00:00
romkatv
243e46998e bug fix: infinite loop when tty disappears
When TTY disappears and there is at least one fd watcher, raw_getbyte() can
enter an infinite loop where it keeps calling poll() over and over again.

To reproduce, open a terminal, start zsh and type this:

  rm -f /tmp/fifo
  mkfifo /tmp/fifo
  exec 3<>/tmp/fifo
  do-nothing() {}
  zle -F 3 do-nothing

Then make TTY disappear. For example, kill the parent with `kill -9 $PPID`
and close the terminal window if it's still there. Observe that zsh is
consiming 100% CPU. Note that do-nothing() never gets called.

This patch makes the poll() loop in raw_getbyte() terminate when TTY is
signalling POLLHUP. This makes the behavior consistent with the case where
TTY disappears while no fd watchers are installed.
2019-10-04 14:18:18 +02:00
Jun-ichi Takimoto
a98e13ed1f 44714: Take account of CDABLE_VARS while checking spelling 2019-08-29 18:21:50 +09:00