Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: completion in quotes - " vs ' - no suffix added
- X-seq: zsh-workers 17163
- From: Sven Wischnowsky <wischnow@xxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Re: completion in quotes - " vs ' - no suffix added
- Date: Wed, 15 May 2002 09:37:48 +0200
- In-reply-to: <15585.11254.373249.131932@xxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <15576.54689.459113.686818@xxxxxxxxxxxxxxxxxx> <6134254DE87BD411908B00A0C99B044F02E89A73@xxxxxxxxxxxxxxxxxxxxxxx> <15577.7296.682622.411849@xxxxxxxxxxxxxxxxxx> <1020508153855.ZM7837@xxxxxxxxxxxxxxxxxxxxxxx> <15583.34740.981994.404489@xxxxxxxxxxxxxxxxxx> <6134254DE87BD411908B00A0C99B044F02E89A8C@xxxxxxxxxxxxxxxxxxxxxxx> <1020513173320.ZM12360@xxxxxxxxxxxxxxxxxxxxxxx> <1021313089.2926.10.camel@xxxxxxxxxxxxxxxxxxxxx> <15584.49227.780505.590251@xxxxxxxxxxxxxxxxxx> <1020514142335.ZM13473@xxxxxxxxxxxxxxxxxxxxxxx> <1020514143155.ZM13540@xxxxxxxxxxxxxxxxxxxxxxx> <15585.11254.373249.131932@xxxxxxxxxxxxxxxxxx>
I wrote:
>
> Bart Schaefer wrote:
>
> > On May 14, 2:23pm, Bart Schaefer wrote:
> > }
> > } -rw-rw-r-- 1 schaefer schaefer 0 May 13 10:29 a\ b
> > } drwxrwxr-x 2 schaefer schaefer 1024 May 13 10:29 a\ d/
> > } schaefer<503> zsh -c "ls a<TAB>
> > } schaefer<503> zsh -c "ls a\\\\\\
> >
> > It's worse than that -- if I type TAB again at this point, the shell
> > crashes.
>
> The number of backslashes is ok.
>
> But the segv not, obviously. A quick check shows that there's another
> bug in the zle_tricky code, [...]
I was wrong there, it was entirely in set_comp_sep(), the function
that splits strings-as-command-lines. We have to treat backslashed
backslashes correctly (there, not every backslash is turned int a
Bnull, for obvious reasons, sorry, should have thought of that).
Bye
Sven
Index: Src/Zle/compcore.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/compcore.c,v
retrieving revision 1.57
diff -u -r1.57 compcore.c
--- Src/Zle/compcore.c 13 May 2002 09:32:00 -0000 1.57
+++ Src/Zle/compcore.c 15 May 2002 07:37:37 -0000
@@ -1268,7 +1268,7 @@
LinkList foo = newlinklist();
LinkNode n;
int owe = we, owb = wb, ocs = cs, swb, swe, scs, soffs, ne = noerrs;
- int tl, got = 0, i = 0, j, cur = -1, oll = ll, sl;
+ int tl, got = 0, i = 0, j, cur = -1, oll = ll, sl, css = 0;
int remq = 0, dq = 0, odq, sq = 0, osq, issq = 0, sqq = 0, lsq = 0, qa = 0;
int ois = instring, oib = inbackt, noffs = lp, ona = noaliases;
char *tmp, *p, *ns, *ol = (char *) line, sav, *qp, *qs, *ts, qc = '\0';
@@ -1312,6 +1312,10 @@
if (*p == '\\' && p[1] == '\\') {
dq++;
chuck(p);
+ if (j > cs) {
+ cs++;
+ css++;
+ }
if (!*p)
break;
}
@@ -1343,9 +1347,13 @@
if (tok == ENDINPUT || tok == LEXERR)
break;
if (tokstr && *tokstr) {
- for (p = tokstr; dq && *p; p++)
- if (*p == Bnull)
+ for (p = tokstr; dq && *p; p++) {
+ if (*p == Bnull) {
dq--;
+ if (p[1] == '\\')
+ dq--;
+ }
+ }
if (issq) {
for (p = tokstr, lsq = 0; *p; p++) {
if (sq && *p == Snull)
@@ -1369,7 +1377,7 @@
swb = wb - 1 - dq - sq;
swe = we - 1 - dq - sq;
sqq = lsq;
- soffs = cs - swb;
+ soffs = cs - swb - css;
chuck(p + soffs);
ns = dupstring(p);
}
@@ -1423,8 +1431,11 @@
if (*p == Bnull && p[1]) {
if (remq)
swb -= 2;
- if (odq)
+ if (odq) {
swb--;
+ if (p[1] == '\\')
+ swb--;
+ }
}
}
if (p[1] || *p != Bnull) {
--
Sven Wischnowsky wischnow@xxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author