Karsten Hopp 5b9590
To: vim_dev@googlegroups.com
Karsten Hopp 5b9590
Subject: Patch 7.4.028
Karsten Hopp 5b9590
Fcc: outbox
Karsten Hopp 5b9590
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 5b9590
Mime-Version: 1.0
Karsten Hopp 5b9590
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 5b9590
Content-Transfer-Encoding: 8bit
Karsten Hopp 5b9590
------------
Karsten Hopp 5b9590
Karsten Hopp 5b9590
Patch 7.4.028
Karsten Hopp 5b9590
Problem:    Equivalence classes are not working for multi-byte characters.
Karsten Hopp 5b9590
Solution:   Copy the rules from the old to the new regexp engine. Add a test
Karsten Hopp 5b9590
	    to check both engines.
Karsten Hopp 5b9590
Files:	    src/regexp_nfa.c, src/testdir/test44.in, src/testdir/test99.in,
Karsten Hopp 5b9590
	    src/testdir/test99.ok, src/testdir/Make_amiga.mak,
Karsten Hopp 5b9590
	    src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
Karsten Hopp 5b9590
	    src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
Karsten Hopp 5b9590
	    src/testdir/Makefile
Karsten Hopp 5b9590
Karsten Hopp 5b9590
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/regexp_nfa.c	2013-09-05 21:15:38.000000000 +0200
Karsten Hopp 5b9590
--- src/regexp_nfa.c	2013-09-19 16:40:08.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 742,748 ****
Karsten Hopp 5b9590
  nfa_emit_equi_class(c)
Karsten Hopp 5b9590
      int	    c;
Karsten Hopp 5b9590
  {
Karsten Hopp 5b9590
! #define EMIT2(c)   EMIT(c); EMIT(NFA_CONCAT);
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  #ifdef FEAT_MBYTE
Karsten Hopp 5b9590
      if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
Karsten Hopp 5b9590
--- 742,753 ----
Karsten Hopp 5b9590
  nfa_emit_equi_class(c)
Karsten Hopp 5b9590
      int	    c;
Karsten Hopp 5b9590
  {
Karsten Hopp 5b9590
! #define EMIT2(c)    EMIT(c); EMIT(NFA_CONCAT);
Karsten Hopp 5b9590
! #ifdef FEAT_MBYTE
Karsten Hopp 5b9590
! # define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT);
Karsten Hopp 5b9590
! #else
Karsten Hopp 5b9590
! # define EMITMBC(c)
Karsten Hopp 5b9590
! #endif
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  #ifdef FEAT_MBYTE
Karsten Hopp 5b9590
      if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 753,844 ****
Karsten Hopp 5b9590
  	{
Karsten Hopp 5b9590
  	    case 'A': case 0300: case 0301: case 0302:
Karsten Hopp 5b9590
  	    case 0303: case 0304: case 0305:
Karsten Hopp 5b9590
! 		    EMIT2('A');	    EMIT2(0300);    EMIT2(0301);
Karsten Hopp 5b9590
! 		    EMIT2(0302);    EMIT2(0303);    EMIT2(0304);
Karsten Hopp 5b9590
! 		    EMIT2(0305);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'C': case 0307:
Karsten Hopp 5b9590
! 		    EMIT2('C');	    EMIT2(0307);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'E': case 0310: case 0311: case 0312: case 0313:
Karsten Hopp 5b9590
! 		    EMIT2('E');	    EMIT2(0310);    EMIT2(0311);
Karsten Hopp 5b9590
! 		    EMIT2(0312);    EMIT2(0313);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'I': case 0314: case 0315: case 0316: case 0317:
Karsten Hopp 5b9590
! 		    EMIT2('I');	    EMIT2(0314);    EMIT2(0315);
Karsten Hopp 5b9590
! 		    EMIT2(0316);    EMIT2(0317);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'N': case 0321:
Karsten Hopp 5b9590
! 		    EMIT2('N');	    EMIT2(0321);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'O': case 0322: case 0323: case 0324: case 0325:
Karsten Hopp 5b9590
! 	    case 0326:
Karsten Hopp 5b9590
! 		    EMIT2('O');	    EMIT2(0322);    EMIT2(0323);
Karsten Hopp 5b9590
! 		    EMIT2(0324);    EMIT2(0325);    EMIT2(0326);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'U': case 0331: case 0332: case 0333: case 0334:
Karsten Hopp 5b9590
! 		    EMIT2('U');	    EMIT2(0331);    EMIT2(0332);
Karsten Hopp 5b9590
! 		    EMIT2(0333);    EMIT2(0334);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'Y': case 0335:
Karsten Hopp 5b9590
! 		    EMIT2('Y');	    EMIT2(0335);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'a': case 0340: case 0341: case 0342:
Karsten Hopp 5b9590
  	    case 0343: case 0344: case 0345:
Karsten Hopp 5b9590
! 		    EMIT2('a');	    EMIT2(0340);    EMIT2(0341);
Karsten Hopp 5b9590
! 		    EMIT2(0342);    EMIT2(0343);    EMIT2(0344);
Karsten Hopp 5b9590
! 		    EMIT2(0345);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'c': case 0347:
Karsten Hopp 5b9590
! 		    EMIT2('c');	    EMIT2(0347);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'e': case 0350: case 0351: case 0352: case 0353:
Karsten Hopp 5b9590
! 		    EMIT2('e');	    EMIT2(0350);    EMIT2(0351);
Karsten Hopp 5b9590
! 		    EMIT2(0352);    EMIT2(0353);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'i': case 0354: case 0355: case 0356: case 0357:
Karsten Hopp 5b9590
! 		    EMIT2('i');	    EMIT2(0354);    EMIT2(0355);
Karsten Hopp 5b9590
! 		    EMIT2(0356);    EMIT2(0357);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'n': case 0361:
Karsten Hopp 5b9590
! 		    EMIT2('n');	    EMIT2(0361);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'o': case 0362: case 0363: case 0364: case 0365:
Karsten Hopp 5b9590
! 	    case 0366:
Karsten Hopp 5b9590
! 		    EMIT2('o');	    EMIT2(0362);    EMIT2(0363);
Karsten Hopp 5b9590
! 		    EMIT2(0364);    EMIT2(0365);    EMIT2(0366);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'u': case 0371: case 0372: case 0373: case 0374:
Karsten Hopp 5b9590
! 		    EMIT2('u');	    EMIT2(0371);    EMIT2(0372);
Karsten Hopp 5b9590
! 		    EMIT2(0373);    EMIT2(0374);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'y': case 0375: case 0377:
Karsten Hopp 5b9590
! 		    EMIT2('y');	    EMIT2(0375);    EMIT2(0377);
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
! 	    default:
Karsten Hopp 5b9590
! 		    return FAIL;
Karsten Hopp 5b9590
  	}
Karsten Hopp 5b9590
      }
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
!     EMIT(c);
Karsten Hopp 5b9590
      return OK;
Karsten Hopp 5b9590
  #undef EMIT2
Karsten Hopp 5b9590
  }
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  /*
Karsten Hopp 5b9590
--- 758,1095 ----
Karsten Hopp 5b9590
  	{
Karsten Hopp 5b9590
  	    case 'A': case 0300: case 0301: case 0302:
Karsten Hopp 5b9590
  	    case 0303: case 0304: case 0305:
Karsten Hopp 5b9590
! 	    CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
Karsten Hopp 5b9590
! 		    EMIT2('A');	EMIT2(0300); EMIT2(0301); EMIT2(0302);
Karsten Hopp 5b9590
! 		    EMIT2(0303); EMIT2(0304); EMIT2(0305);
Karsten Hopp 5b9590
! 		    EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ea2)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
Karsten Hopp 5b9590
! 		    EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'C': case 0307:
Karsten Hopp 5b9590
! 	    CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
Karsten Hopp 5b9590
! 		    EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108)
Karsten Hopp 5b9590
! 		    EMITMBC(0x10a) EMITMBC(0x10c)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e0e) CASEMBC(0x1e10)
Karsten Hopp 5b9590
! 		    EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e0e) EMITMBC(0x1e10)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'E': case 0310: case 0311: case 0312: case 0313:
Karsten Hopp 5b9590
! 	    CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
Karsten Hopp 5b9590
! 	    CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
Karsten Hopp 5b9590
! 		    EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312);
Karsten Hopp 5b9590
! 		    EMIT2(0313);
Karsten Hopp 5b9590
! 		    EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116)
Karsten Hopp 5b9590
! 		    EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ebc)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'F': CASEMBC(0x1e1e)
Karsten Hopp 5b9590
! 		    EMIT2('F'); EMITMBC(0x1e1e)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
Karsten Hopp 5b9590
! 	    CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e20)
Karsten Hopp 5b9590
! 		    EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120)
Karsten Hopp 5b9590
! 		    EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1f4) EMITMBC(0x1e20)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e26) CASEMBC(0x1e28)
Karsten Hopp 5b9590
! 		    EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e26) EMITMBC(0x1e28)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'I': case 0314: case 0315: case 0316: case 0317:
Karsten Hopp 5b9590
! 	    CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
Karsten Hopp 5b9590
! 	    CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
Karsten Hopp 5b9590
! 		    EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316);
Karsten Hopp 5b9590
! 		    EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a)
Karsten Hopp 5b9590
! 		    EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1cf) EMITMBC(0x1ec8)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'J': CASEMBC(0x134)
Karsten Hopp 5b9590
! 		    EMIT2('J'); EMITMBC(0x134)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e34)
Karsten Hopp 5b9590
! 		    EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e34)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
Karsten Hopp 5b9590
! 	    CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
Karsten Hopp 5b9590
! 		    EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d)
Karsten Hopp 5b9590
! 		    EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
Karsten Hopp 5b9590
! 		    EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'N': case 0321:
Karsten Hopp 5b9590
! 	    CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e48)
Karsten Hopp 5b9590
! 		    EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145)
Karsten Hopp 5b9590
! 		    EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'O': case 0322: case 0323: case 0324: case 0325:
Karsten Hopp 5b9590
! 	    case 0326: case 0330:
Karsten Hopp 5b9590
! 	    CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
Karsten Hopp 5b9590
! 		    EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324);
Karsten Hopp 5b9590
! 		    EMIT2(0325); EMIT2(0326); EMIT2(0330);
Karsten Hopp 5b9590
! 		    EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ec) EMITMBC(0x1ece)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'P': case 0x1e54: case 0x1e56:
Karsten Hopp 5b9590
! 		    EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e58) CASEMBC(0x1e5e)
Karsten Hopp 5b9590
! 		    EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e58) EMITMBC(0x1e5e)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
Karsten Hopp 5b9590
! 	    CASEMBC(0x160) CASEMBC(0x1e60)
Karsten Hopp 5b9590
! 		    EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e)
Karsten Hopp 5b9590
! 		    EMITMBC(0x160) EMITMBC(0x1e60)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e6a) CASEMBC(0x1e6e)
Karsten Hopp 5b9590
! 		    EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e6a) EMITMBC(0x1e6e)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'U': case 0331: case 0332: case 0333: case 0334:
Karsten Hopp 5b9590
! 	    CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
Karsten Hopp 5b9590
! 	    CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1ee6)
Karsten Hopp 5b9590
! 		    EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333);
Karsten Hopp 5b9590
! 		    EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a)
Karsten Hopp 5b9590
! 		    EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170)
Karsten Hopp 5b9590
! 		    EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ee6)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'V': CASEMBC(0x1e7c)
Karsten Hopp 5b9590
! 		    EMIT2('V'); EMITMBC(0x1e7c)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e84) CASEMBC(0x1e86)
Karsten Hopp 5b9590
! 		    EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e84) EMITMBC(0x1e86)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
Karsten Hopp 5b9590
! 		    EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'Y': case 0335:
Karsten Hopp 5b9590
! 	    CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1ef6) CASEMBC(0x1ef8)
Karsten Hopp 5b9590
! 		    EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ef8)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
Karsten Hopp 5b9590
! 		    EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'a': case 0340: case 0341: case 0342:
Karsten Hopp 5b9590
  	    case 0343: case 0344: case 0345:
Karsten Hopp 5b9590
! 	    CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
Karsten Hopp 5b9590
! 		    EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342);
Karsten Hopp 5b9590
! 		    EMIT2(0343); EMIT2(0344); EMIT2(0345);
Karsten Hopp 5b9590
! 		    EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ea3)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
Karsten Hopp 5b9590
! 		    EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'c': case 0347:
Karsten Hopp 5b9590
! 	    CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
Karsten Hopp 5b9590
! 		    EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109)
Karsten Hopp 5b9590
! 		    EMITMBC(0x10b) EMITMBC(0x10d)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e11)
Karsten Hopp 5b9590
! 		    EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b)
Karsten Hopp 5b9590
! 		    EMITMBC(0x01e0f) EMITMBC(0x1e11)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'e': case 0350: case 0351: case 0352: case 0353:
Karsten Hopp 5b9590
! 	    CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
Karsten Hopp 5b9590
! 	    CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
Karsten Hopp 5b9590
! 		    EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352);
Karsten Hopp 5b9590
! 		    EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115)
Karsten Hopp 5b9590
! 		    EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ebb) EMITMBC(0x1ebd)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'f': CASEMBC(0x1e1f)
Karsten Hopp 5b9590
! 		    EMIT2('f'); EMITMBC(0x1e1f)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
Karsten Hopp 5b9590
! 	    CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e21)
Karsten Hopp 5b9590
! 		    EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121)
Karsten Hopp 5b9590
! 		    EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1f5) EMITMBC(0x1e21)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
Karsten Hopp 5b9590
! 		    EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'i': case 0354: case 0355: case 0356: case 0357:
Karsten Hopp 5b9590
! 	    CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1d0) CASEMBC(0x1ec9)
Karsten Hopp 5b9590
! 		    EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356);
Karsten Hopp 5b9590
! 		    EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b)
Karsten Hopp 5b9590
! 		    EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ec9)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
Karsten Hopp 5b9590
! 		    EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e35)
Karsten Hopp 5b9590
! 		    EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e35)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
Karsten Hopp 5b9590
! 	    CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
Karsten Hopp 5b9590
! 		    EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e)
Karsten Hopp 5b9590
! 		    EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
Karsten Hopp 5b9590
! 		    EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'n': case 0361:
Karsten Hopp 5b9590
! 	    CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e45) CASEMBC(0x1e49)
Karsten Hopp 5b9590
! 		    EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146)
Karsten Hopp 5b9590
! 		    EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e49)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'o': case 0362: case 0363: case 0364: case 0365:
Karsten Hopp 5b9590
! 	    case 0366: case 0370:
Karsten Hopp 5b9590
! 	    CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
Karsten Hopp 5b9590
! 		    EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364);
Karsten Hopp 5b9590
! 		    EMIT2(0365); EMIT2(0366); EMIT2(0370);
Karsten Hopp 5b9590
! 		    EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ed) EMITMBC(0x1ecf)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
Karsten Hopp 5b9590
! 		    EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e59) CASEMBC(0x1e5f)
Karsten Hopp 5b9590
! 		    EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e59) EMITMBC(0x1e5f)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
Karsten Hopp 5b9590
! 	    CASEMBC(0x161) CASEMBC(0x1e61)
Karsten Hopp 5b9590
! 		    EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f)
Karsten Hopp 5b9590
! 		    EMITMBC(0x161) EMITMBC(0x1e61)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
Karsten Hopp 5b9590
! 		    EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'u': case 0371: case 0372: case 0373: case 0374:
Karsten Hopp 5b9590
! 	    CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
Karsten Hopp 5b9590
! 	    CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1ee7)
Karsten Hopp 5b9590
! 		    EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373);
Karsten Hopp 5b9590
! 		    EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b)
Karsten Hopp 5b9590
! 		    EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171)
Karsten Hopp 5b9590
! 		    EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ee7)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'v': CASEMBC(0x1e7d)
Karsten Hopp 5b9590
! 		    EMIT2('v'); EMITMBC(0x1e7d)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
Karsten Hopp 5b9590
! 		    EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
Karsten Hopp 5b9590
! 		    EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  	    case 'y': case 0375: case 0377:
Karsten Hopp 5b9590
! 	    CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
Karsten Hopp 5b9590
! 		    EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1ef7) EMITMBC(0x1ef9)
Karsten Hopp 5b9590
! 		    return OK;
Karsten Hopp 5b9590
! 
Karsten Hopp 5b9590
! 	    case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
Karsten Hopp 5b9590
! 	    CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
Karsten Hopp 5b9590
! 		    EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e)
Karsten Hopp 5b9590
! 		    EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95)
Karsten Hopp 5b9590
  		    return OK;
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
! 	    /* default: character itself */
Karsten Hopp 5b9590
  	}
Karsten Hopp 5b9590
      }
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
!     EMIT2(c);
Karsten Hopp 5b9590
      return OK;
Karsten Hopp 5b9590
  #undef EMIT2
Karsten Hopp 5b9590
+ #undef EMITMBC
Karsten Hopp 5b9590
  }
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  /*
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/test44.in	2013-05-26 14:16:31.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/test44.in	2013-09-19 16:49:14.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 1,9 ****
Karsten Hopp 5b9590
--- 1,11 ----
Karsten Hopp 5b9590
  Tests for regexp with multi-byte encoding and various magic settings.
Karsten Hopp 5b9590
  Test matchstr() with a count and multi-byte chars.
Karsten Hopp 5b9590
+ See test99 for exactly the same test with re=2.
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  STARTTEST
Karsten Hopp 5b9590
  :so mbyte.vim
Karsten Hopp 5b9590
  :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
Karsten Hopp 5b9590
+ :set re=1
Karsten Hopp 5b9590
  /^1
Karsten Hopp 5b9590
  /a*b\{2}c\+/e
Karsten Hopp 5b9590
  x/\Md\*e\{2}f\+/e
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/test99.in	2013-09-19 16:59:30.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/test99.in	2013-09-19 16:50:00.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 0 ****
Karsten Hopp 5b9590
--- 1,68 ----
Karsten Hopp 5b9590
+ Tests for regexp with multi-byte encoding and various magic settings.
Karsten Hopp 5b9590
+ Test matchstr() with a count and multi-byte chars.
Karsten Hopp 5b9590
+ See test44 for exactly the same test with re=1.
Karsten Hopp 5b9590
+ 
Karsten Hopp 5b9590
+ STARTTEST
Karsten Hopp 5b9590
+ :so mbyte.vim
Karsten Hopp 5b9590
+ :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
Karsten Hopp 5b9590
+ :set re=2
Karsten Hopp 5b9590
+ /^1
Karsten Hopp 5b9590
+ /a*b\{2}c\+/e
Karsten Hopp 5b9590
+ x/\Md\*e\{2}f\+/e
Karsten Hopp 5b9590
+ x:set nomagic
Karsten Hopp 5b9590
+ /g\*h\{2}i\+/e
Karsten Hopp 5b9590
+ x/\mj*k\{2}l\+/e
Karsten Hopp 5b9590
+ x/\vm*n{2}o+/e
Karsten Hopp 5b9590
+ x/\V^aa$
Karsten Hopp 5b9590
+ x:set magic
Karsten Hopp 5b9590
+ /\v(a)(b)\2\1\1/e
Karsten Hopp 5b9590
+ x/\V[ab]\(\[xy]\)\1
Karsten Hopp 5b9590
+ x:" Now search for multi-byte without composing char
Karsten Hopp 5b9590
+ /ม
Karsten Hopp 5b9590
+ x:" Now search for multi-byte with composing char
Karsten Hopp 5b9590
+ /ม่
Karsten Hopp 5b9590
+ x:" find word by change of word class
Karsten Hopp 5b9590
+ /ち\<カヨ\>は
Karsten Hopp 5b9590
+ x:" Test \%u, [\u] and friends
Karsten Hopp 5b9590
+ /\%u20ac
Karsten Hopp 5b9590
+ x/[\u4f7f\u5929]\+
Karsten Hopp 5b9590
+ x/\%U12345678
Karsten Hopp 5b9590
+ x/[\U1234abcd\u1234\uabcd]
Karsten Hopp 5b9590
+ x/\%d21879b
Karsten Hopp 5b9590
+ x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
Karsten Hopp 5b9590
+ x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
Karsten Hopp 5b9590
+ x:" Test backwards search from a multi-byte char
Karsten Hopp 5b9590
+ /x
Karsten Hopp 5b9590
+ x?.
Karsten Hopp 5b9590
+ x:let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g'
Karsten Hopp 5b9590
+ :@w
Karsten Hopp 5b9590
+ :?^1?,$w! test.out
Karsten Hopp 5b9590
+ :e! test.out
Karsten Hopp 5b9590
+ G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב
Karsten Hopp 5b9590
+ :put =matchstr(\"אבגד\", \"..\", 0, 2) " בג
Karsten Hopp 5b9590
+ :put =matchstr(\"אבגד\", \".\", 0, 0) " א
Karsten Hopp 5b9590
+ :put =matchstr(\"אבגד\", \".\", 4, -1) " ג
Karsten Hopp 5b9590
+ :w!
Karsten Hopp 5b9590
+ :qa!
Karsten Hopp 5b9590
+ ENDTEST
Karsten Hopp 5b9590
+ 
Karsten Hopp 5b9590
+ 1 a aa abb abbccc
Karsten Hopp 5b9590
+ 2 d dd dee deefff
Karsten Hopp 5b9590
+ 3 g gg ghh ghhiii
Karsten Hopp 5b9590
+ 4 j jj jkk jkklll
Karsten Hopp 5b9590
+ 5 m mm mnn mnnooo
Karsten Hopp 5b9590
+ 6 x ^aa$ x
Karsten Hopp 5b9590
+ 7 (a)(b) abbaa
Karsten Hopp 5b9590
+ 8 axx [ab]xx
Karsten Hopp 5b9590
+ 9 หม่x อมx
Karsten Hopp 5b9590
+ a อมx หม่x
Karsten Hopp 5b9590
+ b ちカヨは
Karsten Hopp 5b9590
+ c x ¬€x
Karsten Hopp 5b9590
+ d 天使x
Karsten Hopp 5b9590
+ e ü’…™¸y
Karsten Hopp 5b9590
+ f ü’Š¯z
Karsten Hopp 5b9590
+ g a啷bb
Karsten Hopp 5b9590
+ h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÌÍÎÏĨĪĬĮİǏỈ JĴ KĶǨḰḴ LĹĻĽĿŁḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎŐƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ VṼ WŴẀẂẄẆ XẊẌ YÝŶŸẎỲỶỸ ZŹŻŽƵẐẔ
Karsten Hopp 5b9590
+ i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑẕ
Karsten Hopp 5b9590
+ j 0123❤x
Karsten Hopp 5b9590
+ k combinations
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/test99.ok	2013-09-19 16:59:30.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/test99.ok	2013-09-19 16:50:16.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 0 ****
Karsten Hopp 5b9590
--- 1,24 ----
Karsten Hopp 5b9590
+ 1 a aa abb abbcc
Karsten Hopp 5b9590
+ 2 d dd dee deeff
Karsten Hopp 5b9590
+ 3 g gg ghh ghhii
Karsten Hopp 5b9590
+ 4 j jj jkk jkkll
Karsten Hopp 5b9590
+ 5 m mm mnn mnnoo
Karsten Hopp 5b9590
+ 6 x aa$ x
Karsten Hopp 5b9590
+ 7 (a)(b) abba
Karsten Hopp 5b9590
+ 8 axx ab]xx
Karsten Hopp 5b9590
+ 9 หม่x อx
Karsten Hopp 5b9590
+ a อมx หx
Karsten Hopp 5b9590
+ b カヨは
Karsten Hopp 5b9590
+ c x ¬x
Karsten Hopp 5b9590
+ d 使x
Karsten Hopp 5b9590
+ e y
Karsten Hopp 5b9590
+ f z
Karsten Hopp 5b9590
+ g abb
Karsten Hopp 5b9590
+ h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÌÍÎÏĨĪĬĮİǏỈ JĴ KĶǨḰḴ LĹĻĽĿŁḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎŐƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ VṼ WŴẀẂẄẆ XẊẌ YÝŶŸẎỲỶỸ ZŹŻŽƵẐ
Karsten Hopp 5b9590
+ i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑ
Karsten Hopp 5b9590
+ j 012❤
Karsten Hopp 5b9590
+ k œ̄ṣ́m̥̄ᾱ̆́
Karsten Hopp 5b9590
+ ב
Karsten Hopp 5b9590
+ בג
Karsten Hopp 5b9590
+ א
Karsten Hopp 5b9590
+ ג
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/Make_amiga.mak	2013-07-09 13:40:02.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/Make_amiga.mak	2013-09-19 16:51:48.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 33,39 ****
Karsten Hopp 5b9590
  		test76.out test77.out test78.out test79.out test80.out \
Karsten Hopp 5b9590
  		test81.out test82.out test83.out test84.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test97.out test98.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  .SUFFIXES: .in .out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
--- 33,40 ----
Karsten Hopp 5b9590
  		test76.out test77.out test78.out test79.out test80.out \
Karsten Hopp 5b9590
  		test81.out test82.out test83.out test84.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test97.out test98.out \
Karsten Hopp 5b9590
! 		test99.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  .SUFFIXES: .in .out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 148,150 ****
Karsten Hopp 5b9590
--- 149,152 ----
Karsten Hopp 5b9590
  test96.out: test96.in
Karsten Hopp 5b9590
  test97.out: test97.in
Karsten Hopp 5b9590
  test98.out: test98.in
Karsten Hopp 5b9590
+ test99.out: test99.in
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/Make_dos.mak	2013-07-09 13:40:30.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/Make_dos.mak	2013-09-19 16:51:56.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 32,38 ****
Karsten Hopp 5b9590
  		test79.out test80.out test81.out test82.out test83.out \
Karsten Hopp 5b9590
  		test84.out test85.out test86.out test87.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test98.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  SCRIPTS32 =	test50.out test70.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
--- 32,38 ----
Karsten Hopp 5b9590
  		test79.out test80.out test81.out test82.out test83.out \
Karsten Hopp 5b9590
  		test84.out test85.out test86.out test87.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test98.out test99.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  SCRIPTS32 =	test50.out test70.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/Make_ming.mak	2013-07-09 13:40:38.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/Make_ming.mak	2013-09-19 16:52:01.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 52,58 ****
Karsten Hopp 5b9590
  		test79.out test80.out test81.out test82.out test83.out \
Karsten Hopp 5b9590
  		test84.out test85.out test86.out test87.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test98.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  SCRIPTS32 =	test50.out test70.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
--- 52,58 ----
Karsten Hopp 5b9590
  		test79.out test80.out test81.out test82.out test83.out \
Karsten Hopp 5b9590
  		test84.out test85.out test86.out test87.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test98.out test99.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  SCRIPTS32 =	test50.out test70.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/Make_os2.mak	2013-07-09 13:40:43.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/Make_os2.mak	2013-09-19 16:52:07.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 34,40 ****
Karsten Hopp 5b9590
  		test76.out test77.out test78.out test79.out test80.out \
Karsten Hopp 5b9590
  		test81.out test82.out test83.out test84.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test98.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  .SUFFIXES: .in .out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
--- 34,40 ----
Karsten Hopp 5b9590
  		test76.out test77.out test78.out test79.out test80.out \
Karsten Hopp 5b9590
  		test81.out test82.out test83.out test84.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test98.out test99.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  .SUFFIXES: .in .out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/Make_vms.mms	2013-07-09 13:40:47.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/Make_vms.mms	2013-09-19 16:52:13.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 4,10 ****
Karsten Hopp 5b9590
  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
Karsten Hopp 5b9590
  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
Karsten Hopp 5b9590
  #
Karsten Hopp 5b9590
! # Last change:  2013 Jul 09
Karsten Hopp 5b9590
  #
Karsten Hopp 5b9590
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
Karsten Hopp 5b9590
  # Edit the lines in the Configuration section below to select.
Karsten Hopp 5b9590
--- 4,10 ----
Karsten Hopp 5b9590
  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
Karsten Hopp 5b9590
  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
Karsten Hopp 5b9590
  #
Karsten Hopp 5b9590
! # Last change:  2013 Sep 19
Karsten Hopp 5b9590
  #
Karsten Hopp 5b9590
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
Karsten Hopp 5b9590
  # Edit the lines in the Configuration section below to select.
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 78,84 ****
Karsten Hopp 5b9590
  	 test77.out test78.out test79.out test80.out test81.out \
Karsten Hopp 5b9590
  	 test82.out test83.out test84.out test88.out test89.out \
Karsten Hopp 5b9590
  	 test90.out test91.out test92.out test93.out test94.out \
Karsten Hopp 5b9590
! 	 test95.out test96.out test97.out test98.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  # Known problems:
Karsten Hopp 5b9590
  # Test 30: a problem around mac format - unknown reason
Karsten Hopp 5b9590
--- 78,84 ----
Karsten Hopp 5b9590
  	 test77.out test78.out test79.out test80.out test81.out \
Karsten Hopp 5b9590
  	 test82.out test83.out test84.out test88.out test89.out \
Karsten Hopp 5b9590
  	 test90.out test91.out test92.out test93.out test94.out \
Karsten Hopp 5b9590
! 	 test95.out test96.out test97.out test98.out test99.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  # Known problems:
Karsten Hopp 5b9590
  # Test 30: a problem around mac format - unknown reason
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/testdir/Makefile	2013-08-10 14:20:20.000000000 +0200
Karsten Hopp 5b9590
--- src/testdir/Makefile	2013-09-19 16:52:22.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 29,35 ****
Karsten Hopp 5b9590
  		test79.out test80.out test81.out test82.out test83.out \
Karsten Hopp 5b9590
  		test84.out test85.out test86.out test87.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test97.out test98.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  SCRIPTS_GUI = test16.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
--- 29,36 ----
Karsten Hopp 5b9590
  		test79.out test80.out test81.out test82.out test83.out \
Karsten Hopp 5b9590
  		test84.out test85.out test86.out test87.out test88.out \
Karsten Hopp 5b9590
  		test89.out test90.out test91.out test92.out test93.out \
Karsten Hopp 5b9590
! 		test94.out test95.out test96.out test97.out test98.out \
Karsten Hopp 5b9590
! 		test99.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
  SCRIPTS_GUI = test16.out
Karsten Hopp 5b9590
  
Karsten Hopp 5b9590
*** ../vim-7.4.027/src/version.c	2013-09-08 20:00:45.000000000 +0200
Karsten Hopp 5b9590
--- src/version.c	2013-09-19 13:54:35.000000000 +0200
Karsten Hopp 5b9590
***************
Karsten Hopp 5b9590
*** 740,741 ****
Karsten Hopp 5b9590
--- 740,743 ----
Karsten Hopp 5b9590
  {   /* Add new patch number below this line */
Karsten Hopp 5b9590
+ /**/
Karsten Hopp 5b9590
+     28,
Karsten Hopp 5b9590
  /**/
Karsten Hopp 5b9590
Karsten Hopp 5b9590
-- 
Karsten Hopp 5b9590
hundred-and-one symptoms of being an internet addict:
Karsten Hopp 5b9590
232. You start conversations with, "Have you gotten an ISDN line?"
Karsten Hopp 5b9590
Karsten Hopp 5b9590
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 5b9590
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 5b9590
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp 5b9590
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///