diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-05-21 07:47:34 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-05-21 07:47:34 +0000 |
commit | 654c4ab4ffa5f5109d8f167c7908d3d4d5b7aead (patch) | |
tree | cea849b79099fb08085a432ecf23c03bcfa39075 /Src/Zle | |
parent | ba168b43dab3102891839a997ef6a2878c2738e5 (diff) | |
download | zsh-654c4ab4ffa5f5109d8f167c7908d3d4d5b7aead.tar.gz zsh-654c4ab4ffa5f5109d8f167c7908d3d4d5b7aead.tar.xz zsh-654c4ab4ffa5f5109d8f167c7908d3d4d5b7aead.zip |
fix for completion in nested quotes where the sub-word ends in a backslash (17192)
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/compcore.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c index f618bfd31..851ef0ef5 100644 --- a/Src/Zle/compcore.c +++ b/Src/Zle/compcore.c @@ -1428,8 +1428,8 @@ set_comp_sep(void) for (p = ns, i = swb; *p; p++, i++) { if (INULL(*p)) { if (i < scs) { - if (*p == Bnull && p[1]) { - if (remq) + if (*p == Bnull) { + if (p[1] && remq) swb -= 2; if (odq) { swb--; @@ -1526,6 +1526,10 @@ set_comp_sep(void) untokenize(ss); compsuffix = ztrdup(ss); } + if ((i = strlen(compprefix)) && + compprefix[i - 1] == '\\' && compprefix[i - 2] != '\\') + compprefix[i - 1] = '\0'; + tmp = tricat(compqiprefix, compiprefix, multiquote(qp, 1)); zsfree(compqiprefix); compqiprefix = tmp; |