diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2004-09-17 09:25:38 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2004-09-17 09:25:38 +0000 |
commit | 037485c4a474395064e2b5b1da281ca052796320 (patch) | |
tree | 7033c03726ddf0a3891b99b741e56a04ab93e388 /Src | |
parent | 53383c33b80061c8d651dde7e554d68395b48899 (diff) | |
download | zsh-037485c4a474395064e2b5b1da281ca052796320.tar.gz zsh-037485c4a474395064e2b5b1da281ca052796320.tar.xz zsh-037485c4a474395064e2b5b1da281ca052796320.zip |
20378: Matthias B.: fix bugs joining with metafied chars.
Diffstat (limited to 'Src')
-rw-r--r-- | Src/params.c | 2 | ||||
-rw-r--r-- | Src/utils.c | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/Src/params.c b/Src/params.c index f9e382004..7ba0359b7 100644 --- a/Src/params.c +++ b/Src/params.c @@ -2643,7 +2643,7 @@ tiedarrsetfn(Param pm, char *x) if (imeta(dptr->joinchar)) { sepbuf[0] = Meta; - sepbuf[1] = dptr->joinchar; + sepbuf[1] = dptr->joinchar ^ 32; sepbuf[2] = '\0'; } else diff --git a/Src/utils.c b/Src/utils.c index 143855160..ba31a1315 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -1912,16 +1912,14 @@ zjoin(char **arr, int delim, int heap) ptr = ret = (heap ? (char *) hcalloc(len) : (char *) zshcalloc(len)); for (s = arr; *s; s++) { strucpy(&ptr, *s); - if (delim) { if (imeta(delim)) { *ptr++ = Meta; *ptr++ = delim ^ 32; } else *ptr++ = delim; - } } - ptr[-1] = '\0'; + ptr[-1 - (imeta(delim) ? 1 : 0)] = '\0'; return ret; } |