summaryrefslogtreecommitdiff
path: root/Src
diff options
context:
space:
mode:
authordana <dana@dana.is>2025-04-13 17:15:53 -0500
committerdana <dana@dana.is>2025-04-19 18:47:00 -0500
commit494fcd1799d4d2d236d3183de12b0c99ceb83b1c (patch)
tree447370bbd20acc6c1fe36be3d7a9ccdead3c63ff /Src
parentbacc78ec3f9d75ff242d0592b2f44484e1198801 (diff)
downloadzsh-494fcd1799d4d2d236d3183de12b0c99ceb83b1c.tar.gz
zsh-494fcd1799d4d2d236d3183de12b0c99ceb83b1c.zip
53482: zparseopts -G: always add options with optional args to array with =
Diffstat (limited to 'Src')
-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 9b2721a09..ef99303d2 100644
--- a/Src/Modules/zutil.c
+++ b/Src/Modules/zutil.c
@@ -1662,15 +1662,15 @@ add_opt_val(Zoptdesc d, char *arg)
v->str = NULL;
if (d->arr)
d->arr->num += (arg ? 2 : 1);
- } else if (arg) {
+ } else if (arg || d->flags & ZOF_GNUL) {
/* 3 here is '-' + '=' + NUL */
- char *s = (char *) zhalloc(strlen(d->name) + strlen(arg) + 3);
+ char *s = (char *) zhalloc(strlen(d->name) + strlen(arg ? arg : "") + 3);
*s = '-';
strcpy(s + 1, d->name);
if (d->flags & ZOF_GNUL)
strcat(s, "=");
- strcat(s, arg);
+ strcat(s, arg ? arg : "");
v->str = s;
if (d->arr)
d->arr->num += 1;