# HG changeset patch # User Bram Moolenaar # Date 1404927154 -7200 # Node ID 761687c6808f4c9c80d33a919a6bb506dfe9f674 # Parent 988aae9b13b389bfd8799a1fac3375f3c7cbd728 updated for version 7.4.360 Problem: In a regexp pattern a "$" followed by \v or \V is not seen as the end-of-line. Solution: Handle the situation. (Ozaki Kiichi) diff --git a/src/regexp.c b/src/regexp.c --- a/src/regexp.c +++ b/src/regexp.c @@ -3109,15 +3109,25 @@ peekchr() if (reg_magic >= MAGIC_OFF) { char_u *p = regparse + 1; - - /* ignore \c \C \m and \M after '$' */ + int is_magic_all = (reg_magic == MAGIC_ALL); + + /* ignore \c \C \m \M \v \V and \Z after '$' */ while (p[0] == '\\' && (p[1] == 'c' || p[1] == 'C' - || p[1] == 'm' || p[1] == 'M' || p[1] == 'Z')) + || p[1] == 'm' || p[1] == 'M' + || p[1] == 'v' || p[1] == 'V' || p[1] == 'Z')) + { + if (p[1] == 'v') + is_magic_all = TRUE; + else if (p[1] == 'm' || p[1] == 'M' || p[1] == 'V') + is_magic_all = FALSE; p += 2; + } if (p[0] == NUL || (p[0] == '\\' && (p[1] == '|' || p[1] == '&' || p[1] == ')' || p[1] == 'n')) + || (is_magic_all + && (p[0] == '|' || p[0] == '&' || p[0] == ')')) || reg_magic == MAGIC_ALL) curchr = Magic('$'); } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 360, +/**/ 359, /**/ 358,