mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 21:44:11 +01:00
19336: Src/Zle/compmatch.c: Bug with metafied characters in length of
completion prefix
This commit is contained in:
parent
4274eca07f
commit
66329cbe4c
@ -1,3 +1,11 @@
|
|||||||
|
2004-01-05 Peter Stephenson <pws@csr.com>
|
||||||
|
|
||||||
|
* 19336: Src/Zle/compmatch.c: Matches were compared in length
|
||||||
|
treating Meta characters as ordinary characters. This could
|
||||||
|
result in a common prefix being truncated immediately after
|
||||||
|
the Meta. This generated an invalid metafied string which
|
||||||
|
could cause the shell to crash.
|
||||||
|
|
||||||
2004-01-05 Wayne Davison <wayned@users.sourceforge.net>
|
2004-01-05 Wayne Davison <wayned@users.sourceforge.net>
|
||||||
|
|
||||||
* zsh-users/6969: Src/builtin.c: made an eval of an empty string
|
* zsh-users/6969: Src/builtin.c: made an eval of an empty string
|
||||||
|
@ -1584,8 +1584,15 @@ sub_match(Cmdata md, char *str, int len, int sfx)
|
|||||||
if (check_cmdata(md, sfx))
|
if (check_cmdata(md, sfx))
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Look for a common prefix. Be careful not to include
|
||||||
|
* a widowed Meta in the prefix. If we do include metafied
|
||||||
|
* characters, at this stage we still need the overall length
|
||||||
|
* including Meta's as separate characters.
|
||||||
|
*/
|
||||||
for (l = 0, p = str, q = md->str;
|
for (l = 0, p = str, q = md->str;
|
||||||
l < len && l < md->len && p[ind] == q[ind];
|
l < len && l < md->len && p[ind] == q[ind]
|
||||||
|
&& (p[ind] != Meta || p[ind+1] == q[ind+1]);
|
||||||
l++, p += add, q += add);
|
l++, p += add, q += add);
|
||||||
|
|
||||||
if (l) {
|
if (l) {
|
||||||
|
Loading…
Reference in New Issue
Block a user