# HG changeset patch # User Bram Moolenaar # Date 1379602820 -7200 # Node ID 923738744a60e5e0bd2d9990758a2169106807ca # Parent a83960ec9e6db913af1530ebe19d0126d99a7b96 updated for version 7.4.028 Problem: Equivalence classes are not working for multi-byte characters. Solution: Copy the rules from the old to the new regexp engine. Add a test to check both engines. diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -742,7 +742,12 @@ nfa_recognize_char_class(start, end, ext nfa_emit_equi_class(c) int c; { -#define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT); +#define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT); +#ifdef FEAT_MBYTE +# define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT); +#else +# define EMITMBC(c) +#endif #ifdef FEAT_MBYTE if (enc_utf8 || STRCMP(p_enc, "latin1") == 0 @@ -753,92 +758,338 @@ nfa_emit_equi_class(c) { case 'A': case 0300: case 0301: case 0302: case 0303: case 0304: case 0305: - EMIT2('A'); EMIT2(0300); EMIT2(0301); - EMIT2(0302); EMIT2(0303); EMIT2(0304); - EMIT2(0305); + CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd) + CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2) + EMIT2('A'); EMIT2(0300); EMIT2(0301); EMIT2(0302); + EMIT2(0303); EMIT2(0304); EMIT2(0305); + EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104) + EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0) + EMITMBC(0x1ea2) + return OK; + + case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06) + EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06) return OK; case 'C': case 0307: - EMIT2('C'); EMIT2(0307); + CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c) + EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108) + EMITMBC(0x10a) EMITMBC(0x10c) + return OK; + + case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a) + CASEMBC(0x1e0e) CASEMBC(0x1e10) + EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a) + EMITMBC(0x1e0e) EMITMBC(0x1e10) return OK; case 'E': case 0310: case 0311: case 0312: case 0313: - EMIT2('E'); EMIT2(0310); EMIT2(0311); - EMIT2(0312); EMIT2(0313); + CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118) + CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc) + EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312); + EMIT2(0313); + EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116) + EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba) + EMITMBC(0x1ebc) + return OK; + + case 'F': CASEMBC(0x1e1e) + EMIT2('F'); EMITMBC(0x1e1e) + return OK; + + case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120) + CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4) + CASEMBC(0x1e20) + EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120) + EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6) + EMITMBC(0x1f4) EMITMBC(0x1e20) + return OK; + + case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22) + CASEMBC(0x1e26) CASEMBC(0x1e28) + EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22) + EMITMBC(0x1e26) EMITMBC(0x1e28) return OK; case 'I': case 0314: case 0315: case 0316: case 0317: - EMIT2('I'); EMIT2(0314); EMIT2(0315); - EMIT2(0316); EMIT2(0317); + CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e) + CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8) + EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316); + EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a) + EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130) + EMITMBC(0x1cf) EMITMBC(0x1ec8) + return OK; + + case 'J': CASEMBC(0x134) + EMIT2('J'); EMITMBC(0x134) + return OK; + + case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30) + CASEMBC(0x1e34) + EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30) + EMITMBC(0x1e34) + return OK; + + case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d) + CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a) + EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d) + EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a) + return OK; + + case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40) + EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40) return OK; case 'N': case 0321: - EMIT2('N'); EMIT2(0321); + CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44) + CASEMBC(0x1e48) + EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145) + EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48) return OK; case 'O': case 0322: case 0323: case 0324: case 0325: - case 0326: - EMIT2('O'); EMIT2(0322); EMIT2(0323); - EMIT2(0324); EMIT2(0325); EMIT2(0326); + case 0326: case 0330: + CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0) + CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece) + EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324); + EMIT2(0325); EMIT2(0326); EMIT2(0330); + EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150) + EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea) + EMITMBC(0x1ec) EMITMBC(0x1ece) + return OK; + + case 'P': case 0x1e54: case 0x1e56: + EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56) + return OK; + + case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158) + CASEMBC(0x1e58) CASEMBC(0x1e5e) + EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158) + EMITMBC(0x1e58) EMITMBC(0x1e5e) + return OK; + + case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e) + CASEMBC(0x160) CASEMBC(0x1e60) + EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e) + EMITMBC(0x160) EMITMBC(0x1e60) + return OK; + + case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166) + CASEMBC(0x1e6a) CASEMBC(0x1e6e) + EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166) + EMITMBC(0x1e6a) EMITMBC(0x1e6e) return OK; case 'U': case 0331: case 0332: case 0333: case 0334: - EMIT2('U'); EMIT2(0331); EMIT2(0332); - EMIT2(0333); EMIT2(0334); + CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e) + CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3) + CASEMBC(0x1ee6) + EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333); + EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a) + EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170) + EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3) + EMITMBC(0x1ee6) + return OK; + + case 'V': CASEMBC(0x1e7c) + EMIT2('V'); EMITMBC(0x1e7c) + return OK; + + case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82) + CASEMBC(0x1e84) CASEMBC(0x1e86) + EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82) + EMITMBC(0x1e84) EMITMBC(0x1e86) + return OK; + + case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c) + EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c) return OK; case 'Y': case 0335: - EMIT2('Y'); EMIT2(0335); + CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2) + CASEMBC(0x1ef6) CASEMBC(0x1ef8) + EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178) + EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6) + EMITMBC(0x1ef8) + return OK; + + case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d) + CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94) + EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d) + EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94) return OK; case 'a': case 0340: case 0341: case 0342: case 0343: case 0344: case 0345: - EMIT2('a'); EMIT2(0340); EMIT2(0341); - EMIT2(0342); EMIT2(0343); EMIT2(0344); - EMIT2(0345); + CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce) + CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3) + EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342); + EMIT2(0343); EMIT2(0344); EMIT2(0345); + EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105) + EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1) + EMITMBC(0x1ea3) + return OK; + + case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07) + EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07) return OK; case 'c': case 0347: - EMIT2('c'); EMIT2(0347); + CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d) + EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109) + EMITMBC(0x10b) EMITMBC(0x10d) + return OK; + + case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b) + CASEMBC(0x1e11) + EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b) + EMITMBC(0x01e0f) EMITMBC(0x1e11) return OK; case 'e': case 0350: case 0351: case 0352: case 0353: - EMIT2('e'); EMIT2(0350); EMIT2(0351); - EMIT2(0352); EMIT2(0353); + CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119) + CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd) + EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352); + EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115) + EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b) + EMITMBC(0x1ebb) EMITMBC(0x1ebd) + return OK; + + case 'f': CASEMBC(0x1e1f) + EMIT2('f'); EMITMBC(0x1e1f) + return OK; + + case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121) + CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5) + CASEMBC(0x1e21) + EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121) + EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7) + EMITMBC(0x1f5) EMITMBC(0x1e21) + return OK; + + case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23) + CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96) + EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23) + EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96) return OK; case 'i': case 0354: case 0355: case 0356: case 0357: - EMIT2('i'); EMIT2(0354); EMIT2(0355); - EMIT2(0356); EMIT2(0357); + CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f) + CASEMBC(0x1d0) CASEMBC(0x1ec9) + EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356); + EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b) + EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0) + EMITMBC(0x1ec9) + return OK; + + case 'j': CASEMBC(0x135) CASEMBC(0x1f0) + EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0) + return OK; + + case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31) + CASEMBC(0x1e35) + EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31) + EMITMBC(0x1e35) + return OK; + + case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e) + CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b) + EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e) + EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b) + return OK; + + case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41) + EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41) return OK; case 'n': case 0361: - EMIT2('n'); EMIT2(0361); + CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149) + CASEMBC(0x1e45) CASEMBC(0x1e49) + EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146) + EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45) + EMITMBC(0x1e49) return OK; case 'o': case 0362: case 0363: case 0364: case 0365: - case 0366: - EMIT2('o'); EMIT2(0362); EMIT2(0363); - EMIT2(0364); EMIT2(0365); EMIT2(0366); + case 0366: case 0370: + CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1) + CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf) + EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364); + EMIT2(0365); EMIT2(0366); EMIT2(0370); + EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151) + EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb) + EMITMBC(0x1ed) EMITMBC(0x1ecf) + return OK; + + case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57) + EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57) + return OK; + + case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159) + CASEMBC(0x1e59) CASEMBC(0x1e5f) + EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159) + EMITMBC(0x1e59) EMITMBC(0x1e5f) + return OK; + + case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f) + CASEMBC(0x161) CASEMBC(0x1e61) + EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f) + EMITMBC(0x161) EMITMBC(0x1e61) + return OK; + + case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167) + CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97) + EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167) + EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97) return OK; case 'u': case 0371: case 0372: case 0373: case 0374: - EMIT2('u'); EMIT2(0371); EMIT2(0372); - EMIT2(0373); EMIT2(0374); + CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f) + CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4) + CASEMBC(0x1ee7) + EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373); + EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b) + EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171) + EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4) + EMITMBC(0x1ee7) + return OK; + + case 'v': CASEMBC(0x1e7d) + EMIT2('v'); EMITMBC(0x1e7d) + return OK; + + case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83) + CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98) + EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83) + EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98) + return OK; + + case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d) + EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d) return OK; case 'y': case 0375: case 0377: - EMIT2('y'); EMIT2(0375); EMIT2(0377); + CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99) + CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9) + EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177) + EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3) + EMITMBC(0x1ef7) EMITMBC(0x1ef9) return OK; - default: - return FAIL; + case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e) + CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95) + EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e) + EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95) + return OK; + + /* default: character itself */ } } - EMIT(c); + EMIT2(c); return OK; #undef EMIT2 +#undef EMITMBC } /* diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak --- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -33,7 +33,8 @@ SCRIPTS = test1.out test3.out test4.out test76.out test77.out test78.out test79.out test80.out \ test81.out test82.out test83.out test84.out test88.out \ test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out + test94.out test95.out test96.out test97.out test98.out \ + test99.out .SUFFIXES: .in .out @@ -148,3 +149,4 @@ test95.out: test95.in test96.out: test96.in test97.out: test97.in test98.out: test98.in +test99.out: test99.in diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -32,7 +32,7 @@ SCRIPTS = test3.out test4.out test5.out test79.out test80.out test81.out test82.out test83.out \ test84.out test85.out test86.out test87.out test88.out \ test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out + test94.out test95.out test96.out test98.out test99.out SCRIPTS32 = test50.out test70.out diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -52,7 +52,7 @@ SCRIPTS = test3.out test4.out test5.out test79.out test80.out test81.out test82.out test83.out \ test84.out test85.out test86.out test87.out test88.out \ test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out + test94.out test95.out test96.out test98.out test99.out SCRIPTS32 = test50.out test70.out diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -34,7 +34,7 @@ SCRIPTS = test1.out test3.out test4.out test76.out test77.out test78.out test79.out test80.out \ test81.out test82.out test83.out test84.out test88.out \ test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out + test94.out test95.out test96.out test98.out test99.out .SUFFIXES: .in .out diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -4,7 +4,7 @@ # Authors: Zoltan Arpadffy, # Sandor Kopanyi, # -# Last change: 2013 Jul 09 +# Last change: 2013 Sep 19 # # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. # Edit the lines in the Configuration section below to select. @@ -78,7 +78,7 @@ SCRIPT = test1.out test2.out test3.out test77.out test78.out test79.out test80.out test81.out \ test82.out test83.out test84.out test88.out test89.out \ test90.out test91.out test92.out test93.out test94.out \ - test95.out test96.out test97.out test98.out + test95.out test96.out test97.out test98.out test99.out # Known problems: # Test 30: a problem around mac format - unknown reason diff --git a/src/testdir/Makefile b/src/testdir/Makefile --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -29,7 +29,8 @@ SCRIPTS = test1.out test2.out test3.out test79.out test80.out test81.out test82.out test83.out \ test84.out test85.out test86.out test87.out test88.out \ test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out + test94.out test95.out test96.out test97.out test98.out \ + test99.out SCRIPTS_GUI = test16.out diff --git a/src/testdir/test44.in b/src/testdir/test44.in --- a/src/testdir/test44.in +++ b/src/testdir/test44.in @@ -1,9 +1,11 @@ Tests for regexp with multi-byte encoding and various magic settings. Test matchstr() with a count and multi-byte chars. +See test99 for exactly the same test with re=2. STARTTEST :so mbyte.vim :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo +:set re=1 /^1 /a*b\{2}c\+/e x/\Md\*e\{2}f\+/e diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 28, +/**/ 27, /**/ 26,