diff options
author | dana <dana@dana.is> | 2025-04-13 18:00:54 -0500 |
---|---|---|
committer | dana <dana@dana.is> | 2025-04-19 18:48:31 -0500 |
commit | 8c3c45732131433645686cdb6bbbb8974230c5a9 (patch) | |
tree | ccaa627886d33bf6d8ae2c84b08e511880870eef /Test | |
parent | 494fcd1799d4d2d236d3183de12b0c99ceb83b1c (diff) | |
download | zsh-8c3c45732131433645686cdb6bbbb8974230c5a9.tar.gz zsh-8c3c45732131433645686cdb6bbbb8974230c5a9.zip |
53483: zparseopts -G: accept only '--' as parsing terminator
Diffstat (limited to 'Test')
-rw-r--r-- | Test/V12zparseopts.ztst | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Test/V12zparseopts.ztst b/Test/V12zparseopts.ztst index e465d0e0c..e6139ea5e 100644 --- a/Test/V12zparseopts.ztst +++ b/Test/V12zparseopts.ztst @@ -341,3 +341,28 @@ >ret: 1, gopt: -G, optv: , argv: -foobar 1 2 3 >ret: 0, gopt: -G, optv: -foo=bar, argv: 1 2 3 >ret: 0, gopt: -G, optv: -foo=, argv: bar 1 2 3 + + for term in - --; do + # With -D -E -G + () { + local -a optv + zparseopts -a optv -D -E -F -G - -foo -bar + print -r - ret: $?, term: $term, optv: $optv, argv: $argv + } --foo x --bar $term --baz + for gopt in '' -G; do + # With -D + with/without -G + () { + local -a optv + zparseopts -a optv -D -F $gopt - -foo -bar + print -r - ret: $?, term: $term, gopt: $gopt, optv: $optv, argv: $argv + } --foo $term --bar + done + done +0:only -- acts as explicit parsing terminator with -G +?(anon):zparseopts:2: bad option: --baz +>ret: 1, term: -, optv: , argv: --foo x --bar - --baz +>ret: 0, term: -, gopt: , optv: --foo, argv: --bar +>ret: 0, term: -, gopt: -G, optv: --foo, argv: - --bar +>ret: 0, term: --, optv: --foo --bar, argv: x -- --baz +>ret: 0, term: --, gopt: , optv: --foo, argv: --bar +>ret: 0, term: --, gopt: -G, optv: --foo, argv: --bar |