1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-05-08 16:46:22 +02:00
Commit Graph

166 Commits

Author SHA1 Message Date
dana c23a0d84b0 48614: getopts: Calculate OPTIND according to POSIX_BUILTINS 2021-05-03 18:11:38 -05:00
Daniel Shahaf 9dc195120c 48522: README: Clarify _alternative change 2021-04-13 16:54:03 -05:00
brian m. carlson f7a417388c 47794: exec: run final pipeline command in a subshell in sh mode
zsh typically runs the final command in a pipeline in the main shell
instead of a subshell.  However, POSIX specifies that all commands in a
pipeline run in a subshell, but permits zsh's behavior as an extension.
The default /bin/sh implementations on various Linux distros and the
BSDs always use a subshell for all components of a pipeline.

Since zsh may be used as /bin/sh in some cases (such as macOS Catalina),
it makes sense to have the common sh behavior when emulating sh, so do
that by checking for being the final item of a multi-item pipeline and
creating a subshell in that case.

From the comment above execpline(), we know the following:

 last1 is a flag that this command is the last command in a shell that
 is about to exit, so we can exec instead of forking.  It gets passed
 all the way down to execcmd() which actually makes the decision.  A 0
 is always passed if the command is not the last in the pipeline. […]
 If last1 is zero but the command is at the end of a pipeline, we pass
 2 down to execcmd().

So there are three cases to consider in this code:

• last1 is 0, which means we are not at the end of a pipeline, in which
 case we should not change behavior.
• last1 is 1, which means we are effectively running in a subshell,
 because nothing that happens due to the exec is going to affect the
 actual shell, since it will have been replaced.  So there is nothing
 to do here.
• last1 is 2, which means our command is at the end of the pipeline, so
 in sh mode we should create a subshell by forking.

input is nonzero if the input to this process is a pipe that we've
opened.  At the end of a multi-stage pipeline, it will necessarily be
nonzero.

Note that several of the tests may appear bizarre, since most developers
do not place useless variable assignments directly at the end of a
pipeline.  However, as the function tests demonstrate, there are cases
where assignments may occur when a shell function is used at the end of
a command.  The remaining assignment tests simply test additional cases,
such as the use of local, that would otherwise be untested.
2021-04-10 17:56:39 -05:00
dana 1bec15a010 unposted: README: Document incompatibility caused by workers/43928 2021-04-10 16:16:26 -05:00
Lawrence Velázquez 83cc7c6bf0 47830: Fix some documentation typos 2021-02-16 00:59:14 +00:00
Bart Schaefer 2cf6032a30 47997: Disable XTRACE around user-defined completion widgets. 2021-02-11 19:13:47 -08: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
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
Daniel Shahaf af619f41bc unposted: README: Give the 'zsystem flock' limit in pretty-printed form as well. 2020-04-21 09:01:38 +00:00
dana 3241a13573 unposted: NEWS, README: Document zsh/system changes from workers/45708 2020-04-20 12:12:55 -05: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 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 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
dana 048f40b68b Update NEWS/README 2020-02-14 16:06:58 -06:00
Daniel Shahaf 2dac9c5d20 45213: Make --enable-gdbm default to false, rather than default to true with an unavoidable warning. 2020-01-06 02:29:30 +00:00
dana 5ed3dde0d2 unposted: Test release: 5.7.1-test-1 2019-12-14 12:50:58 -06:00
Martijn Dekker d81238ee95 45003: Fix more documentation typos 2019-12-11 02:37:39 +00:00
Daniel Shahaf 98f8a8a980 44958: vcs_info quilt: Avoid forks 2019-11-29 20:57:01 +00:00
Peter Stephenson b8dc5a7f6d 44435: Handling digita arguments for :h and :t.
Pick number of leading or trailing path components to substitute.
Active in history, brace parameters, glob qualifiers.

Add tests for all three environments.
2019-06-20 11:13:05 +01:00
dana 8b89d0d577 unposted: Release 5.7.1 2019-02-03 13:27:45 -06:00
dana 9799d0f9a2 unposted: Release 5.7 2019-01-24 12:42:52 -06:00
Martijn Dekker 4215fcb107 43944: apply NO_UNSET consistently to arithmeitc 2018-12-30 18:03:02 +00:00
Peter Stephenson 9dbde9e9c7 unposted: updates for 5.6.2-test-2 2018-12-19 19:33:36 +00:00
Daniel Shahaf e38f15f8ff 43620 (tweaked): vcs_info git: Reverse the order patches are passed to gen-unapplied-string in.
This is an incompatible change; see README for details.

Tweaks (relative to posted version): tweaked README, removed scalpel (debug print).
2018-10-08 13:44:40 +00:00
Daniel Shahaf 92bef88545 43457: Release 5.6.2 2018-09-14 12:52:40 +00:00
Daniel Shahaf b3239c5e40 unposted: Patch release: 5.6.1 2018-09-08 17:41:13 +00:00
Anthony Sottile 1c4c7b6a4d
CVE-2018-0502, CVE-2018-13259: Fix two security issues in shebang line parsing.
See NEWS for more information.

Patch by Anthony Sottile and Buck Evan.
2018-09-03 15:07:47 +00:00
Daniel Shahaf ef61918398 Test release: 5.5.1-test-2. 2018-08-25 22:37:23 +00:00
Daniel Shahaf 17c0439936 unposted: Test release: 5.5.1-test-1. 2018-08-25 17:56:38 +00:00
Peter Stephenson d4022e76c1 23519: Use tag remote-files for remote files 2018-06-29 09:48:44 +01:00
Peter Stephenson fd4056f4ed unposted: Update for release 5.5.1. 2018-04-16 19:21:52 +01:00
Peter Stephenson 3b7d6a558f 42505 (corrected): prepare for 5.5 release 2018-03-25 17:49:48 +01:00
Daniel Shahaf 77a39b57bf 42031 + 42048: Make [[ -o invalidoption ]] a normal(ish) false value, rather than a syntax error. 2017-11-24 22:10:27 +00:00
Peter Stephenson 174e560a23 41787 (plus minor tweaks): use $FUNCSTACK for function nesting depth.
Initialised from existing configuration value.
2017-10-02 09:44:26 +01:00
Peter Stephenson 85b0dd7133 Updates for ksh array element syntax.
Move detection of key/value pairs down into prefork().

Detect normal array assignment and [key]=val array assignemnt
separately.  Mark key / value pairs with Marker and pass up flag.  Deal
with marked triads specially later on.
2017-09-24 17:33:07 +01:00
Peter Stephenson 0e7186f443 41599: info updates for 5.4.2 2017-08-25 19:35:05 +01:00
Peter Stephenson 97d4bdbc7e 41590 modified as 41595: make ERR_RETURN more logical.
It now operates separately at each function depth.

To keep ERR_EXIT global, make the noerrexit variable usd bit flags.

Extend tests.
2017-08-24 19:46:20 +01:00
Peter Stephenson 0f8cf76ece unposted: fix README typo 2017-08-09 20:31:52 +01:00
Peter Stephenson dc475bfa0e unposted: update to 5.4.1 2017-08-08 19:09:15 +01:00
Peter Stephenson 32ca9222af unposted: update distribution docs for 5.4 release. 2017-07-29 23:03:16 +01:00
Stephane Chazelas 4d007e269d 41275: Leave stdin open when executing widgets 2017-06-13 21:34:55 -04:00
Daniel Shahaf e007cd9f88 40510: vcs_info: Update the $psvar episode with '%'-unescaping. (Follow-up to 40492.) 2017-02-09 15:24:05 +00:00
Daniel Shahaf ecd88284f3 40492: vcs_info: Escape '%' signs in payloads.
Test case: a patch whose subject is '%Sfoo%sbar'.  ('S' and 's' are
expandos both in prompts and in the 'formats' style.)
2017-02-09 15:24:04 +00:00
Peter Stephenson f26d1ba6b0 Add features associated with autoloading a function using an absolute
path.

-d defaults to normal fpath

-r remembers the path without actually loading.  May be combined with -d.

-R does the same but it's an error if not found

-X can now take a directory path: this is used to output not yet loaded
functions that have an associated path.
2017-01-11 11:26:13 +00:00
Peter Stephenson bb218704d2 40306 with doc tweaks: Change behaviour expanding alias in () function definition.
Now an error unless the () is part of the same error as the name.
Add ALIAS_FUNC_DEF option to allow it again.
2017-01-10 19:14:26 +00:00
Peter Stephenson 06b1b7a37a unposted: Release 5.3.1 2016-12-21 18:40:13 +00:00
Peter Stephenson 88752e6cee 40066: updates for 5.3 release 2016-12-02 19:53:13 +00:00
Barton E. Schaefer a9fe87e18c 40032: consistency in handling of subscript slices outside the bounds of an array parameter
unposted: README: example describing 40032
2016-11-29 12:31:33 -08:00