To: vim_dev@googlegroups.com Subject: Patch 7.4.1708 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1708 Problem: New regexp engine does not work properly with EBCDIC. Solution: Define equivalence class characters. (Owen Leibman) Files: src/regexp_nfa.c *** ../vim-7.4.1707/src/regexp_nfa.c 2016-02-12 19:08:10.479766970 +0100 --- src/regexp_nfa.c 2016-04-04 20:51:11.126891579 +0200 *************** *** 750,763 **** || STRCMP(p_enc, "iso-8859-15") == 0) #endif { switch (c) { ! case 'A': case 0300: case 0301: case 0302: ! case 0303: case 0304: case 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) --- 750,878 ---- || STRCMP(p_enc, "iso-8859-15") == 0) #endif { + #ifdef EBCDIC + # define A_circumflex 0x62 + # define A_diaeresis 0x63 + # define A_grave 0x64 + # define A_acute 0x65 + # define A_virguilla 0x66 + # define A_ring 0x67 + # define C_cedilla 0x68 + # define E_acute 0x71 + # define E_circumflex 0x72 + # define E_diaeresis 0x73 + # define E_grave 0x74 + # define I_acute 0x75 + # define I_circumflex 0x76 + # define I_diaeresis 0x77 + # define I_grave 0x78 + # define N_virguilla 0x69 + # define O_circumflex 0xeb + # define O_diaeresis 0xec + # define O_grave 0xed + # define O_acute 0xee + # define O_virguilla 0xef + # define O_slash 0x80 + # define U_circumflex 0xfb + # define U_diaeresis 0xfc + # define U_grave 0xfd + # define U_acute 0xfe + # define Y_acute 0xba + # define a_grave 0x42 + # define a_acute 0x43 + # define a_circumflex 0x44 + # define a_virguilla 0x45 + # define a_diaeresis 0x46 + # define a_ring 0x47 + # define c_cedilla 0x48 + # define e_grave 0x51 + # define e_acute 0x52 + # define e_circumflex 0x53 + # define e_diaeresis 0x54 + # define i_grave 0x55 + # define i_acute 0x56 + # define i_circumflex 0x57 + # define i_diaeresis 0x58 + # define n_virguilla 0x49 + # define o_grave 0xcb + # define o_acute 0xcc + # define o_circumflex 0xcd + # define o_virguilla 0xce + # define o_diaeresis 0xcf + # define o_slash 0x70 + # define u_grave 0xdb + # define u_acute 0xdc + # define u_circumflex 0xdd + # define u_diaeresis 0xde + # define y_acute 0x8d + # define y_diaeresis 0xdf + #else + # define A_grave 0xc0 + # define A_acute 0xc1 + # define A_circumflex 0xc2 + # define A_virguilla 0xc3 + # define A_diaeresis 0xc4 + # define A_ring 0xc5 + # define C_cedilla 0xc7 + # define E_grave 0xc8 + # define E_acute 0xc9 + # define E_circumflex 0xca + # define E_diaeresis 0xcb + # define I_grave 0xcc + # define I_acute 0xcd + # define I_circumflex 0xce + # define I_diaeresis 0xcf + # define N_virguilla 0xd1 + # define O_grave 0xd2 + # define O_acute 0xd3 + # define O_circumflex 0xd4 + # define O_virguilla 0xd5 + # define O_diaeresis 0xd6 + # define O_slash 0xd8 + # define U_grave 0xd9 + # define U_acute 0xda + # define U_circumflex 0xdb + # define U_diaeresis 0xdc + # define Y_acute 0xdd + # define a_grave 0xe0 + # define a_acute 0xe1 + # define a_circumflex 0xe2 + # define a_virguilla 0xe3 + # define a_diaeresis 0xe4 + # define a_ring 0xe5 + # define c_cedilla 0xe7 + # define e_grave 0xe8 + # define e_acute 0xe9 + # define e_circumflex 0xea + # define e_diaeresis 0xeb + # define i_grave 0xec + # define i_acute 0xed + # define i_circumflex 0xee + # define i_diaeresis 0xef + # define n_virguilla 0xf1 + # define o_grave 0xf2 + # define o_acute 0xf3 + # define o_circumflex 0xf4 + # define o_virguilla 0xf5 + # define o_diaeresis 0xf6 + # define o_slash 0xf8 + # define u_grave 0xf9 + # define u_acute 0xfa + # define u_circumflex 0xfb + # define u_diaeresis 0xfc + # define y_acute 0xfd + # define y_diaeresis 0xff + #endif switch (c) { ! case 'A': case A_grave: case A_acute: case A_circumflex: ! case A_virguilla: case A_diaeresis: case A_ring: ! CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) ! CASEMBC(0x1cd) CASEMBC(0x1de) CASEMBC(0x1e0) ! CASEMBC(0x1ea2) ! EMIT2('A'); EMIT2(A_grave); EMIT2(A_acute); ! EMIT2(A_circumflex); EMIT2(A_virguilla); ! EMIT2(A_diaeresis); EMIT2(A_ring); EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104) EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0) EMITMBC(0x1ea2) *************** *** 767,789 **** EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06) return OK; ! case 'C': case 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: ! 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) --- 882,906 ---- EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06) return OK; ! case 'C': case C_cedilla: CASEMBC(0x106) CASEMBC(0x108) ! CASEMBC(0x10a) CASEMBC(0x10c) ! EMIT2('C'); EMIT2(C_cedilla); ! 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 E_grave: case E_acute: case E_circumflex: ! case E_diaeresis: CASEMBC(0x112) CASEMBC(0x114) ! CASEMBC(0x116) CASEMBC(0x118) CASEMBC(0x11a) ! CASEMBC(0x1eba) CASEMBC(0x1ebc) ! EMIT2('E'); EMIT2(E_grave); EMIT2(E_acute); ! EMIT2(E_circumflex); EMIT2(E_diaeresis); EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116) EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba) EMITMBC(0x1ebc) *************** *** 794,817 **** 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: ! 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; --- 911,936 ---- 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 I_grave: case I_acute: case I_circumflex: ! case I_diaeresis: CASEMBC(0x128) CASEMBC(0x12a) ! CASEMBC(0x12c) CASEMBC(0x12e) CASEMBC(0x130) ! CASEMBC(0x1cf) CASEMBC(0x1ec8) ! EMIT2('I'); EMIT2(I_grave); EMIT2(I_acute); ! EMIT2(I_circumflex); EMIT2(I_diaeresis); ! EMITMBC(0x128) EMITMBC(0x12a) EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130) EMITMBC(0x1cf) EMITMBC(0x1ec8) return OK; *************** *** 821,833 **** 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; --- 940,952 ---- 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; *************** *** 836,854 **** EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40) return OK; ! case 'N': case 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: 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) --- 955,975 ---- EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40) return OK; ! case 'N': case N_virguilla: CASEMBC(0x143) CASEMBC(0x145) ! CASEMBC(0x147) CASEMBC(0x1e44) CASEMBC(0x1e48) ! EMIT2('N'); EMIT2(N_virguilla); ! EMITMBC(0x143) EMITMBC(0x145) EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48) return OK; ! case 'O': case O_grave: case O_acute: case O_circumflex: ! case O_virguilla: case O_diaeresis: case O_slash: ! CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) ! CASEMBC(0x1a0) CASEMBC(0x1d1) CASEMBC(0x1ea) ! CASEMBC(0x1ec) CASEMBC(0x1ece) ! EMIT2('O'); EMIT2(O_grave); EMIT2(O_acute); ! EMIT2(O_circumflex); EMIT2(O_virguilla); ! EMIT2(O_diaeresis); EMIT2(O_slash); EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150) EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea) EMITMBC(0x1ec) EMITMBC(0x1ece) *************** *** 859,887 **** 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: ! 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) --- 980,1010 ---- 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 U_grave: case U_acute: case U_diaeresis: ! case U_circumflex: CASEMBC(0x168) CASEMBC(0x16a) ! CASEMBC(0x16c) CASEMBC(0x16e) CASEMBC(0x170) ! CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3) ! CASEMBC(0x1ee6) ! EMIT2('U'); EMIT2(U_grave); EMIT2(U_acute); ! EMIT2(U_diaeresis); EMIT2(U_circumflex); ! EMITMBC(0x168) EMITMBC(0x16a) EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170) EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3) EMITMBC(0x1ee6) *************** *** 892,898 **** 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; --- 1015,1021 ---- 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; *************** *** 901,926 **** EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c) return OK; ! case 'Y': case 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: ! 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) --- 1024,1052 ---- EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c) return OK; ! case 'Y': case Y_acute: CASEMBC(0x176) CASEMBC(0x178) ! CASEMBC(0x1e8e) CASEMBC(0x1ef2) CASEMBC(0x1ef6) ! CASEMBC(0x1ef8) ! EMIT2('Y'); EMIT2(Y_acute); ! 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 a_grave: case a_acute: case a_circumflex: ! case a_virguilla: case a_diaeresis: case a_ring: ! CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) ! CASEMBC(0x1ce) CASEMBC(0x1df) CASEMBC(0x1e1) ! CASEMBC(0x1ea3) ! EMIT2('a'); EMIT2(a_grave); EMIT2(a_acute); ! EMIT2(a_circumflex); EMIT2(a_virguilla); ! EMIT2(a_diaeresis); EMIT2(a_ring); EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105) EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1) EMITMBC(0x1ea3) *************** *** 930,952 **** EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07) return OK; ! case 'c': case 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(0x1e0b) ! CASEMBC(0x1e0f) CASEMBC(0x1e11) EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b) EMITMBC(0x1e0f) EMITMBC(0x1e11) return OK; ! case 'e': case 0350: case 0351: case 0352: case 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; --- 1056,1081 ---- EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07) return OK; ! case 'c': case c_cedilla: CASEMBC(0x107) CASEMBC(0x109) ! CASEMBC(0x10b) CASEMBC(0x10d) ! EMIT2('c'); EMIT2(c_cedilla); ! EMITMBC(0x107) EMITMBC(0x109) EMITMBC(0x10b) EMITMBC(0x10d) return OK; case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1e0b) ! CASEMBC(0x1e0f) CASEMBC(0x1e11) EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b) EMITMBC(0x1e0f) EMITMBC(0x1e11) return OK; ! case 'e': case e_grave: case e_acute: case e_circumflex: ! case e_diaeresis: CASEMBC(0x113) CASEMBC(0x115) ! CASEMBC(0x117) CASEMBC(0x119) CASEMBC(0x11b) ! CASEMBC(0x1ebb) CASEMBC(0x1ebd) ! EMIT2('e'); EMIT2(e_grave); EMIT2(e_acute); ! EMIT2(e_circumflex); EMIT2(e_diaeresis); ! EMITMBC(0x113) EMITMBC(0x115) EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b) EMITMBC(0x1ebb) EMITMBC(0x1ebd) return OK; *************** *** 956,979 **** 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: ! 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; --- 1085,1110 ---- 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 i_grave: case i_acute: case i_circumflex: ! case i_diaeresis: CASEMBC(0x129) CASEMBC(0x12b) ! CASEMBC(0x12d) CASEMBC(0x12f) CASEMBC(0x1d0) ! CASEMBC(0x1ec9) ! EMIT2('i'); EMIT2(i_grave); EMIT2(i_acute); ! EMIT2(i_circumflex); EMIT2(i_diaeresis); ! EMITMBC(0x129) EMITMBC(0x12b) EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0) EMITMBC(0x1ec9) return OK; *************** *** 983,995 **** 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; --- 1114,1126 ---- 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; *************** *** 998,1017 **** EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41) return OK; ! case 'n': case 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: 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) --- 1129,1151 ---- EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41) return OK; ! case 'n': case n_virguilla: CASEMBC(0x144) CASEMBC(0x146) ! CASEMBC(0x148) CASEMBC(0x149) CASEMBC(0x1e45) ! CASEMBC(0x1e49) ! EMIT2('n'); EMIT2(n_virguilla); ! EMITMBC(0x144) EMITMBC(0x146) EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45) EMITMBC(0x1e49) return OK; ! case 'o': case o_grave: case o_acute: case o_circumflex: ! case o_virguilla: case o_diaeresis: case o_slash: ! CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) ! CASEMBC(0x1a1) CASEMBC(0x1d2) CASEMBC(0x1eb) ! CASEMBC(0x1ed) CASEMBC(0x1ecf) ! EMIT2('o'); EMIT2(o_grave); EMIT2(o_acute); ! EMIT2(o_circumflex); EMIT2(o_virguilla); ! EMIT2(o_diaeresis); EMIT2(o_slash); EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151) EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb) EMITMBC(0x1ed) EMITMBC(0x1ecf) *************** *** 1022,1050 **** 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: ! 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) --- 1156,1186 ---- 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 u_grave: case u_acute: case u_circumflex: ! case u_diaeresis: CASEMBC(0x169) CASEMBC(0x16b) ! CASEMBC(0x16d) CASEMBC(0x16f) CASEMBC(0x171) ! CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4) ! CASEMBC(0x1ee7) ! EMIT2('u'); EMIT2(u_grave); EMIT2(u_acute); ! EMIT2(u_circumflex); EMIT2(u_diaeresis); ! EMITMBC(0x169) EMITMBC(0x16b) EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171) EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4) EMITMBC(0x1ee7) *************** *** 1055,1061 **** 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; --- 1191,1197 ---- 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; *************** *** 1064,1079 **** EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d) return OK; ! case 'y': case 0375: case 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; 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; --- 1200,1216 ---- EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d) return OK; ! case 'y': case y_acute: case y_diaeresis: CASEMBC(0x177) ! CASEMBC(0x1e8f) CASEMBC(0x1e99) CASEMBC(0x1ef3) ! CASEMBC(0x1ef7) CASEMBC(0x1ef9) ! EMIT2('y'); EMIT2(y_acute); EMIT2(y_diaeresis); ! EMITMBC(0x177) EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3) EMITMBC(0x1ef7) EMITMBC(0x1ef9) return OK; 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; *** ../vim-7.4.1707/src/version.c 2016-04-03 22:44:32.407625679 +0200 --- src/version.c 2016-04-04 20:54:42.880749117 +0200 *************** *** 750,751 **** --- 750,753 ---- { /* Add new patch number below this line */ + /**/ + 1708, /**/ -- From the classified section of a city newspaper: Dog for sale: eats anything and is fond of children. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///