1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-01-01 05:16:05 +01:00
Commit graph

11172 commits

Author SHA1 Message Date
Daniel Shahaf
b13e8d16cf unposted: Specify tabs for Makefiles. 2020-03-18 18:18:26 +00:00
Daniel Shahaf
a30da73187 45572: _sshfs: Complete some more options 2020-03-17 14:03:50 +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
e5765bfdc8 45541: internal: vcs_info git: Add a test case repository for rebase-apply situations 2020-03-15 00:18:31 +00:00
Daniel Shahaf
4ce4483daf 45539: vcs_info git: In non-interactive rebases, obtain applied patches' names. 2020-03-15 00:18:30 +00:00
Daniel Shahaf
e1946bacf8 45540: vcs_info git: In non-interactive rebases, compute patch names for unapplied patches. 2020-03-15 00:18:28 +00:00
Daniel Shahaf
5a1f5cf8ab 45543: vcs_info quilt: Allow quiltcommand to be a function.
Before this commit, it could only be an external command.
2020-03-15 00:18:27 +00:00
Daniel Shahaf
8e128afb2c 45547: vcs_info git: In interactive rebases, process gen-unapplied-string arguments like gen-applied-string arguments are processed.
I consider this a bugfix, since it's unexpected for -applied and
-unapplied to differ about this.
2020-03-15 00:18:25 +00:00
Daniel Shahaf
c756545014 45546: vcs_info git: In interactive rebases, properly support the full form of the "exec" verb.
The code before this commit happened to have done the right thing:
"exec" lines were handled by the catchall forward compatibility case,
which happened to have had virtually the same effect as the correct
case.  However, that was merely an accidental result.  This patch makes
the code do the right thing deliberately, rather than by accident.
2020-03-15 00:18:23 +00:00
Daniel Shahaf
af57462beb 45545: vcs_info git: In interactive rebases, ignore comment lines. 2020-03-15 00:18:21 +00:00
dana
754658aff3 unposted: _git: Fix copy/paste error in earlier commit that broke git stash drop
This was broken by workers/44923 (8aa84bd5fc)
2020-03-13 09:46:14 -05:00
dana
cb7aadfd2a 45535: _lz4: Order compression levels numerically 2020-03-13 09:38:25 -05:00
dana
c2e46ee43b 45534: _hdiutil: Update image-file extensions, image/disk formats, &c. 2020-03-13 09:38:23 -05:00
dana
3f7b81e24e 45531: _sh: Complete options more accurately
Committing without handling of +x option variants (line 10) pending resolution
of workers/45422
2020-03-13 09:37:37 -05:00
dana
778f391a3b 45537 (tweaked): E02xtrace: Fix inconsistent function-name encoding in preserves-xtrace test
Tweaked per workers/45550, needs workers/45536 to be effective
2020-03-13 08:49:57 -05:00
Daniel Shahaf
fd627a504f unposted: .editorconfig: Specify spaces rather than tabs for zsh scripts.
Also specify indent level for vcs_info.
2020-03-12 17:44:27 +00:00
dana
80ddc46e54 45470: C02cond: Simplify '-N cond' test
This fixes an (intermittent?) issue with the test on macOS+APFS, and hopefully
makes it simpler and faster in general
2020-03-11 21:17:12 -05:00
dana
359e0dae2b 45424: completion: Add **/sbin to PATH when completing commands like sudo
* Update _command_names to add **/sbin to PATH when not otherwise overridden
  and _comp_priv_prefix is set. This ensures that, on systems where
  unprivileged users don't have **/sbin in their PATHs, we can still complete
  those commands when they try to run them with e.g. sudo

* Update functions for privilege-gaining commands to use the aforementioned
  mechanism

* Fix some other minor issues in _pfexec and _doas

Changes from the posted diff:

* Fix a minor redundancy in _doas

* Add _c_p_p=( '' ) hack to _su
2020-03-11 16:26:41 -05:00
Romain Porte
0d7f888945 45524: Add completion for dscverify(1) from Debian's devscripts. 2020-03-10 15:31:24 +00:00
Daniel Shahaf
1602016d53 45518 + unposted tweak (change single quotes to double quotes): Fix V01zmotload.ztst test failures when zsh/parameter is dynamically linked (which is the default). 2020-03-09 01:56:26 +00:00
Daniel Shahaf
b5f05b29ba Merge remote-tracking branch 'origin/5.9'
* origin/5.9:
  unposted: Move a new incompatibility notice.
  unposted: Fix trailing whitespace in test expectations.
  45342: Add tests for interaction between autoloadable parameters and module loading.
  45313: _git: Support completion from outside of a worktree when --git-dir/--work-tree are specified on the command line
  45304: Do execute the always block even when the try/always block itself is the last command.
  45292: D02glob: Add regression test for macOS stat(2) misbehaviour
  45291: A glob with a trailing slash will now match unreadable/unexecutable directories.
  45288: _git: Complete bisect/new as well as bisect/bad.
  45246: Make --disable-multibyte warn, since the test suite fails in that configuration.
  45213: Make --enable-gdbm default to false, rather than default to true with an unavoidable warning.
  unposted (follow-up to 45131): Extra testing by Mikael
  45137: zformat: Allow the specifying minimum width and a dot with an empty maximum width.
  45138: Add zformat unit tests.
  45131: Make a function that redefines itself preserve its tracedness.
2020-03-07 21:50:46 +00:00
Daniel Shahaf
4ce0cff5e9 unposted: Move a new incompatibility notice.
The change in question was (deliberately) not merged to master before the 5.8
release.  Therefore, it is a "post 5.8" change, even though it was written
when 5.7.1 was the latest release.
2020-03-07 21:50:26 +00: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
Daniel Shahaf
0d3d07c56f unposted: Fix trailing whitespace in test expectations. 2020-03-07 21:32:57 +00:00
Daniel Shahaf
dd50f125b5 unposted: Remove 'sgi', as that OpenBSD port has been discontinued.
See https://www.openbsd.org/sgi.html and discussion on github PR #49.
2020-03-06 14:00:34 +00:00
Jun-ichi Takimoto
dd85abe825 45509: fix typos in B01cd.ztst 2020-03-06 20:14:21 +09: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
Bryan Irvine
2f419b332d github #49: Fix typo: longson should be loongson 2020-03-05 15:44:12 +00: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
Jun-ichi Takimoto
fe516fccb4 45492: skip test added by users/24633 on Cygwin 2020-02-27 16:08:13 +09:00
Marc
f7c6a0008b 45488: COMP_WORDS for bash need "$@"-style quoting 2020-02-25 09:55:28 +00:00
Peter Stephenson
a6a1b28b98 45487: Missing mod_export declarations for AIX 2020-02-24 10:55:48 +00:00
Daniel Shahaf
50df0e0bb9 45447: Complete vcs_info_hookadd and vcs_info_hookdel. Expose _vcs_info_hooks as a top-level helper function. 2020-02-19 10:18:30 +00:00
Chris Down
69c247de2f 45463: test: kill: Document why we use SIGURG
See discussion in workers/45460.
2020-02-18 19:35:18 +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
Chris Down
59258252b5 45452: builtins: kill: Add kill '' regression test with explicit sigspec
The version without a sigspec can't be added yet because it would still
kill the test runner even in expected-to-fail mode; see workers/45449
for discussion. For the same reason, we use a signal which is non-fatal
by default and unlikely to be sent by someone else, SIGURG, to do the
expected-to-fail case prior to the fix.
2020-02-18 12:59:52 +00:00
Chris Down
cb5d8bfe86 45451: builtins: kill: Add basic test suite
This is not totally comprehensive, but at least it's a start for the
core functionality. In the next commits, we'll also use this base to add
some regression tests.
2020-02-18 12:59:51 +00:00
brian m. carlson
5126096370 github #48/0002: vcs_info git: properly detect bare repositories
We currently detect Git repositories by finding the top level of the
working tree, and if we fail to detect it, assume that we're not in a
repository.  However, there's a case we don't consider: a bare
repository.

Let's detect if the user is in a bare repository by checking if gitdir
is set, and if so, using that if there is no working tree.  We now
detect bare Git repositories with vcs_info, as expected.
2020-02-17 10:03:08 +00:00
brian m. carlson
bacad96523 github #48/0001: vcs_info git: avoid warnings in bare repositories
Git 2.25 introduced a change to how git rev-parse --show-toplevel
behaves.  Traditionally, it succeeded with no output if the user was
in a bare repository.  Now it dies, printing an error to standard error.
Consequently, when the user is in a bare repository with a newer Git,
vcs_info prints noisily to standard error.

While this is functionally harmless, it is annoying for the shell to
print messages from Git every time the prompt is printed, so let's
silence the error message.
2020-02-17 10:02:27 +00:00
dana
459e2be810 unposted: Post-release version bump 2020-02-14 16:11:03 -06:00
dana
77d203f3fb unposted: Release 5.8 2020-02-14 16:08:55 -06:00
dana
4bec892059 CVE-2019-20044: Update change log for preceding commits 2020-02-14 16:08:29 -06:00
dana
048f40b68b Update NEWS/README 2020-02-14 16:06:58 -06:00
dana
b15bd4aa59 Add unsetopt/PRIVILEGED tests 2020-02-14 16:06:58 -06: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
dana
e89060a377 unposted: V01zmodload: Fix failing test from workers/45385 2020-02-14 15:55:52 -06:00
dana
dd523255cc 45423: _su: Improve arg handling, shell look-ups
Differences from ML post:

* Properly fix escaping issue with $usr (needs unescaped first)

* Make $shell emptiness check easier to read (per feedback)
2020-02-14 09:42:12 -06:00