1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-10-02 08:51:18 +02:00

Another fix in sub_match() to avoid allowing a partial-meta match

to occur (this time in the backwards scan).
This commit is contained in:
Wayne Davison 2004-02-10 02:30:14 +00:00
parent 40678f6b66
commit ba827bb22b

@ -1593,10 +1593,15 @@ sub_match(Cmdata md, char *str, int len, int sfx)
l < len && l < md->len && p[ind] == q[ind];
l++, p += add, q += add) {}
/* Make sure we don't end with a widowed Meta (which can only
* happen in a forward scan). */
if (l && add == 1 && p[-1] == Meta)
l--;
/* Make sure we don't end in the middle of a Meta sequence. */
if (add == 1) {
if (l && p[-1] == Meta)
l--;
} else {
if (l && ((l < len && p[-1] == Meta)
|| (l < md->len && q[-1] == Meta)))
l--;
}
if (l) {
/* There was a common prefix, use it. */
md->len -= l; len -= l;