summaryrefslogtreecommitdiff
path: root/Src/Modules
diff options
context:
space:
mode:
authordana <dana@dana.is>2025-04-13 18:00:54 -0500
committerdana <dana@dana.is>2025-04-19 18:48:31 -0500
commit8c3c45732131433645686cdb6bbbb8974230c5a9 (patch)
treeccaa627886d33bf6d8ae2c84b08e511880870eef /Src/Modules
parent494fcd1799d4d2d236d3183de12b0c99ceb83b1c (diff)
downloadzsh-8c3c45732131433645686cdb6bbbb8974230c5a9.tar.gz
zsh-8c3c45732131433645686cdb6bbbb8974230c5a9.zip
53483: zparseopts -G: accept only '--' as parsing terminator
Diffstat (limited to 'Src/Modules')
-rw-r--r--Src/Modules/zutil.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c
index ef99303d2..676fe1872 100644
--- a/Src/Modules/zutil.c
+++ b/Src/Modules/zutil.c
@@ -1955,8 +1955,8 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
params = getaparam((paramsname = paramsname ? paramsname : "argv"));
np = cp = pp = ((extract && del) ? arrdup(params) : params);
for (; (o = *pp); pp++) {
- /* Not an option */
- if (*o != '-') {
+ /* Not an option. With GNU style, this includes '-' */
+ if (*o != '-' || (gnu && !o[1])) {
if (extract) {
if (del)
*cp++ = o;
@@ -1964,7 +1964,7 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
} else
break;
}
- /* '-' or '--', end parsing */
+ /* '--' or (with non-GNU style, see above) '-', end parsing */
if (!o[1] || (o[1] == '-' && !o[2])) {
if (del && extract)
*cp++ = o;