home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / 7.3 / 7.3.259 < prev    next >
Encoding:
Internet Message Format  |  2012-11-20  |  21.3 KB

  1. To: vim_dev@googlegroups.com
  2. Subject: Patch 7.3.259
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. Mime-Version: 1.0
  6. Content-Type: text/plain; charset=UTF-8
  7. Content-Transfer-Encoding: 8bit
  8. ------------
  9.  
  10. Patch 7.3.259
  11. Problem:    Equivalence classes only work for latin characters.
  12. Solution:   Add the Unicode equivalence characters. (Dominique Pelle)
  13. Files:        runtime/doc/pattern.txt, src/regexp.c, src/testdir/test44.in,
  14.         src/testdir/test44.ok
  15.  
  16.  
  17. *** ../vim-7.3.258/runtime/doc/pattern.txt    2010-08-15 21:57:14.000000000 +0200
  18. --- runtime/doc/pattern.txt    2011-07-20 17:44:03.000000000 +0200
  19. ***************
  20. *** 1027,1037 ****
  21.         These items only work for 8-bit characters.
  22.                               */[[=* *[==]*
  23.       - An equivalence class.  This means that characters are matched that
  24. !       have almost the same meaning, e.g., when ignoring accents.  The form
  25. !       is:
  26.           [=a=]
  27. -       Currently this is only implemented for latin1.  Also works for the
  28. -       latin1 characters in utf-8 and latin9.
  29.                               */[[.* *[..]*
  30.       - A collation element.  This currently simply accepts a single
  31.         character in the form:
  32. --- 1036,1044 ----
  33.         These items only work for 8-bit characters.
  34.                               */[[=* *[==]*
  35.       - An equivalence class.  This means that characters are matched that
  36. !       have almost the same meaning, e.g., when ignoring accents.  This
  37. !       only works for Unicode, latin1 and latin9.  The form is:
  38.           [=a=]
  39.                               */[[.* *[..]*
  40.       - A collation element.  This currently simply accepts a single
  41.         character in the form:
  42. *** ../vim-7.3.258/src/regexp.c    2011-06-19 04:31:54.000000000 +0200
  43. --- src/regexp.c    2011-07-20 17:56:52.000000000 +0200
  44. ***************
  45. *** 666,673 ****
  46. --- 666,677 ----
  47.   static void    regc __ARGS((int b));
  48.   #ifdef FEAT_MBYTE
  49.   static void    regmbc __ARGS((int c));
  50. + # define REGMBC(x) regmbc(x);
  51. + # define CASEMBC(x) case x:
  52.   #else
  53.   # define regmbc(c) regc(c)
  54. + # define REGMBC(x)
  55. + # define CASEMBC(x)
  56.   #endif
  57.   static void    reginsert __ARGS((int, char_u *));
  58.   static void    reginsert_limits __ARGS((int, long, long, char_u *));
  59. ***************
  60. *** 787,854 ****
  61.       switch (c)
  62.       {
  63.           case 'A': case '\300': case '\301': case '\302':
  64.           case '\303': case '\304': case '\305':
  65.                 regmbc('A'); regmbc('\300'); regmbc('\301');
  66.                 regmbc('\302'); regmbc('\303'); regmbc('\304');
  67.                 regmbc('\305');
  68.                 return;
  69.           case 'C': case '\307':
  70.                 regmbc('C'); regmbc('\307');
  71.                 return;
  72.           case 'E': case '\310': case '\311': case '\312': case '\313':
  73.                 regmbc('E'); regmbc('\310'); regmbc('\311');
  74.                 regmbc('\312'); regmbc('\313');
  75.                 return;
  76.           case 'I': case '\314': case '\315': case '\316': case '\317':
  77.                 regmbc('I'); regmbc('\314'); regmbc('\315');
  78.                 regmbc('\316'); regmbc('\317');
  79.                 return;
  80.           case 'N': case '\321':
  81.                 regmbc('N'); regmbc('\321');
  82.                 return;
  83.           case 'O': case '\322': case '\323': case '\324': case '\325':
  84. !         case '\326':
  85.                 regmbc('O'); regmbc('\322'); regmbc('\323');
  86.                 regmbc('\324'); regmbc('\325'); regmbc('\326');
  87.                 return;
  88.           case 'U': case '\331': case '\332': case '\333': case '\334':
  89.                 regmbc('U'); regmbc('\331'); regmbc('\332');
  90.                 regmbc('\333'); regmbc('\334');
  91.                 return;
  92.           case 'Y': case '\335':
  93.                 regmbc('Y'); regmbc('\335');
  94.                 return;
  95.           case 'a': case '\340': case '\341': case '\342':
  96.           case '\343': case '\344': case '\345':
  97.                 regmbc('a'); regmbc('\340'); regmbc('\341');
  98.                 regmbc('\342'); regmbc('\343'); regmbc('\344');
  99.                 regmbc('\345');
  100.                 return;
  101.           case 'c': case '\347':
  102.                 regmbc('c'); regmbc('\347');
  103.                 return;
  104.           case 'e': case '\350': case '\351': case '\352': case '\353':
  105.                 regmbc('e'); regmbc('\350'); regmbc('\351');
  106.                 regmbc('\352'); regmbc('\353');
  107.                 return;
  108.           case 'i': case '\354': case '\355': case '\356': case '\357':
  109.                 regmbc('i'); regmbc('\354'); regmbc('\355');
  110.                 regmbc('\356'); regmbc('\357');
  111.                 return;
  112.           case 'n': case '\361':
  113.                 regmbc('n'); regmbc('\361');
  114.                 return;
  115.           case 'o': case '\362': case '\363': case '\364': case '\365':
  116. !         case '\366':
  117.                 regmbc('o'); regmbc('\362'); regmbc('\363');
  118.                 regmbc('\364'); regmbc('\365'); regmbc('\366');
  119.                 return;
  120.           case 'u': case '\371': case '\372': case '\373': case '\374':
  121.                 regmbc('u'); regmbc('\371'); regmbc('\372');
  122.                 regmbc('\373'); regmbc('\374');
  123.                 return;
  124.           case 'y': case '\375': case '\377':
  125.                 regmbc('y'); regmbc('\375'); regmbc('\377');
  126.                 return;
  127.       }
  128.   #endif
  129. --- 791,1085 ----
  130.       switch (c)
  131.       {
  132.           case 'A': case '\300': case '\301': case '\302':
  133. +         CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
  134. +         CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
  135.           case '\303': case '\304': case '\305':
  136.                 regmbc('A'); regmbc('\300'); regmbc('\301');
  137.                 regmbc('\302'); regmbc('\303'); regmbc('\304');
  138.                 regmbc('\305');
  139. +               REGMBC(0x100) REGMBC(0x102) REGMBC(0x104)
  140. +               REGMBC(0x1cd) REGMBC(0x1de) REGMBC(0x1e0)
  141. +               REGMBC(0x1ea2)
  142. +               return;
  143. +         case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
  144. +               regmbc('B'); REGMBC(0x1e02) REGMBC(0x1e06)
  145.                 return;
  146.           case 'C': case '\307':
  147. +         CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
  148.                 regmbc('C'); regmbc('\307');
  149. +               REGMBC(0x106) REGMBC(0x108) REGMBC(0x10a)
  150. +               REGMBC(0x10c)
  151. +               return;
  152. +         case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
  153. +         CASEMBC(0x1e0e) CASEMBC(0x1e10)
  154. +               regmbc('D'); REGMBC(0x10e) REGMBC(0x110)
  155. +               REGMBC(0x1e0a) REGMBC(0x1e0e) REGMBC(0x1e10)
  156.                 return;
  157.           case 'E': case '\310': case '\311': case '\312': case '\313':
  158. +         CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
  159. +         CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
  160.                 regmbc('E'); regmbc('\310'); regmbc('\311');
  161.                 regmbc('\312'); regmbc('\313');
  162. +               REGMBC(0x112) REGMBC(0x114) REGMBC(0x116)
  163. +               REGMBC(0x118) REGMBC(0x11a) REGMBC(0x1eba)
  164. +               REGMBC(0x1ebc)
  165. +               return;
  166. +         case 'F': CASEMBC(0x1e1e)
  167. +               regmbc('F'); REGMBC(0x1e1e)
  168. +               return;
  169. +         case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
  170. +         CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
  171. +         CASEMBC(0x1e20)
  172. +               regmbc('G'); REGMBC(0x11c) REGMBC(0x11e)
  173. +               REGMBC(0x120) REGMBC(0x122) REGMBC(0x1e4)
  174. +               REGMBC(0x1e6) REGMBC(0x1f4) REGMBC(0x1e20)
  175. +               return;
  176. +         case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
  177. +         CASEMBC(0x1e26) CASEMBC(0x1e28)
  178. +               regmbc('H'); REGMBC(0x124) REGMBC(0x126)
  179. +               REGMBC(0x1e22) REGMBC(0x1e26) REGMBC(0x1e28)
  180.                 return;
  181.           case 'I': case '\314': case '\315': case '\316': case '\317':
  182. +         CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
  183. +         CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
  184.                 regmbc('I'); regmbc('\314'); regmbc('\315');
  185.                 regmbc('\316'); regmbc('\317');
  186. +               REGMBC(0x128) REGMBC(0x12a) REGMBC(0x12c)
  187. +               REGMBC(0x12e) REGMBC(0x130) REGMBC(0x1cf)
  188. +               REGMBC(0x1ec8)
  189. +               return;
  190. +         case 'J': CASEMBC(0x134)
  191. +               regmbc('J'); REGMBC(0x134)
  192. +               return;
  193. +         case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
  194. +         CASEMBC(0x1e34)
  195. +               regmbc('K'); REGMBC(0x136) REGMBC(0x1e8)
  196. +               REGMBC(0x1e30) REGMBC(0x1e34)
  197. +               return;
  198. +         case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
  199. +         CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
  200. +               regmbc('L'); REGMBC(0x139) REGMBC(0x13b)
  201. +               REGMBC(0x13d) REGMBC(0x13f) REGMBC(0x141)
  202. +               REGMBC(0x1e3a)
  203. +               return;
  204. +         case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
  205. +               regmbc('M'); REGMBC(0x1e3e) REGMBC(0x1e40)
  206.                 return;
  207.           case 'N': case '\321':
  208. +         CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
  209. +         CASEMBC(0x1e48)
  210.                 regmbc('N'); regmbc('\321');
  211. +               REGMBC(0x143) REGMBC(0x145) REGMBC(0x147)
  212. +               REGMBC(0x1e44) REGMBC(0x1e48)
  213.                 return;
  214.           case 'O': case '\322': case '\323': case '\324': case '\325':
  215. !         case '\326': case '\330':
  216. !         CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
  217. !         CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
  218.                 regmbc('O'); regmbc('\322'); regmbc('\323');
  219.                 regmbc('\324'); regmbc('\325'); regmbc('\326');
  220. +               regmbc('\330');
  221. +               REGMBC(0x14c) REGMBC(0x14e) REGMBC(0x150)
  222. +               REGMBC(0x1a0) REGMBC(0x1d1) REGMBC(0x1ea)
  223. +               REGMBC(0x1ec) REGMBC(0x1ece)
  224. +               return;
  225. +         case 'P': case 0x1e54: case 0x1e56:
  226. +               regmbc('P'); REGMBC(0x1e54) REGMBC(0x1e56)
  227. +               return;
  228. +         case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
  229. +         CASEMBC(0x1e58) CASEMBC(0x1e5e)
  230. +               regmbc('R'); REGMBC(0x154) REGMBC(0x156) REGMBC(0x158)
  231. +               REGMBC(0x1e58) REGMBC(0x1e5e)
  232. +               return;
  233. +         case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
  234. +         CASEMBC(0x160) CASEMBC(0x1e60)
  235. +               regmbc('S'); REGMBC(0x15a) REGMBC(0x15c)
  236. +               REGMBC(0x15e) REGMBC(0x160) REGMBC(0x1e60)
  237. +               return;
  238. +         case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
  239. +         CASEMBC(0x1e6a) CASEMBC(0x1e6e)
  240. +               regmbc('T'); REGMBC(0x162) REGMBC(0x164)
  241. +               REGMBC(0x166) REGMBC(0x1e6a) REGMBC(0x1e6e)
  242.                 return;
  243.           case 'U': case '\331': case '\332': case '\333': case '\334':
  244. +         CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
  245. +         CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
  246. +         CASEMBC(0x1ee6)
  247.                 regmbc('U'); regmbc('\331'); regmbc('\332');
  248.                 regmbc('\333'); regmbc('\334');
  249. +               REGMBC(0x168) REGMBC(0x16a) REGMBC(0x16c)
  250. +               REGMBC(0x16e) REGMBC(0x170) REGMBC(0x172)
  251. +               REGMBC(0x1af) REGMBC(0x1d3) REGMBC(0x1ee6)
  252. +               return;
  253. +         case 'V': CASEMBC(0x1e7c)
  254. +               regmbc('V'); REGMBC(0x1e7c)
  255. +               return;
  256. +         case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
  257. +         CASEMBC(0x1e84) CASEMBC(0x1e86)
  258. +               regmbc('W'); REGMBC(0x174) REGMBC(0x1e80)
  259. +               REGMBC(0x1e82) REGMBC(0x1e84) REGMBC(0x1e86)
  260. +               return;
  261. +         case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
  262. +               regmbc('X'); REGMBC(0x1e8a) REGMBC(0x1e8c)
  263.                 return;
  264.           case 'Y': case '\335':
  265. +         CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
  266. +         CASEMBC(0x1ef6) CASEMBC(0x1ef8)
  267.                 regmbc('Y'); regmbc('\335');
  268. +               REGMBC(0x176) REGMBC(0x178) REGMBC(0x1e8e)
  269. +               REGMBC(0x1ef2) REGMBC(0x1ef6) REGMBC(0x1ef8)
  270. +               return;
  271. +         case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
  272. +         CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
  273. +               regmbc('Z'); REGMBC(0x179) REGMBC(0x17b)
  274. +               REGMBC(0x17d) REGMBC(0x1b5) REGMBC(0x1e90)
  275. +               REGMBC(0x1e94)
  276.                 return;
  277.           case 'a': case '\340': case '\341': case '\342':
  278.           case '\343': case '\344': case '\345':
  279. +         CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
  280. +         CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
  281.                 regmbc('a'); regmbc('\340'); regmbc('\341');
  282.                 regmbc('\342'); regmbc('\343'); regmbc('\344');
  283.                 regmbc('\345');
  284. +               REGMBC(0x101) REGMBC(0x103) REGMBC(0x105)
  285. +               REGMBC(0x1ce) REGMBC(0x1df) REGMBC(0x1e1)
  286. +               REGMBC(0x1ea3)
  287. +               return;
  288. +         case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
  289. +               regmbc('b'); REGMBC(0x1e03) REGMBC(0x1e07)
  290.                 return;
  291.           case 'c': case '\347':
  292. +         CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
  293.                 regmbc('c'); regmbc('\347');
  294. +               REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b)
  295. +               REGMBC(0x10d)
  296. +               return;
  297. +         case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
  298. +         CASEMBC(0x1e11)
  299. +               regmbc('d'); REGMBC(0x10f) REGMBC(0x111)
  300. +               REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11)
  301.                 return;
  302.           case 'e': case '\350': case '\351': case '\352': case '\353':
  303. +         CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
  304. +         CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
  305.                 regmbc('e'); regmbc('\350'); regmbc('\351');
  306.                 regmbc('\352'); regmbc('\353');
  307. +               REGMBC(0x113) REGMBC(0x115) REGMBC(0x117)
  308. +               REGMBC(0x119) REGMBC(0x11b) REGMBC(0x1ebb)
  309. +               REGMBC(0x1ebd)
  310. +               return;
  311. +         case 'f': CASEMBC(0x1e1f)
  312. +               regmbc('f'); REGMBC(0x1e1f)
  313. +               return;
  314. +         case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
  315. +         CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
  316. +         CASEMBC(0x1e21)
  317. +               regmbc('g'); REGMBC(0x11d) REGMBC(0x11f)
  318. +               REGMBC(0x121) REGMBC(0x123) REGMBC(0x1e5)
  319. +               REGMBC(0x1e7) REGMBC(0x1f5) REGMBC(0x1e21)
  320. +               return;
  321. +         case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
  322. +         CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
  323. +               regmbc('h'); REGMBC(0x125) REGMBC(0x127)
  324. +               REGMBC(0x1e23) REGMBC(0x1e27) REGMBC(0x1e29)
  325. +               REGMBC(0x1e96)
  326.                 return;
  327.           case 'i': case '\354': case '\355': case '\356': case '\357':
  328. +         CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
  329. +         CASEMBC(0x1d0) CASEMBC(0x1ec9)
  330.                 regmbc('i'); regmbc('\354'); regmbc('\355');
  331.                 regmbc('\356'); regmbc('\357');
  332. +               REGMBC(0x129) REGMBC(0x12b) REGMBC(0x12d)
  333. +               REGMBC(0x12f) REGMBC(0x1d0) REGMBC(0x1ec9)
  334. +               return;
  335. +         case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
  336. +               regmbc('j'); REGMBC(0x135) REGMBC(0x1f0)
  337. +               return;
  338. +         case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
  339. +         CASEMBC(0x1e35)
  340. +               regmbc('k'); REGMBC(0x137) REGMBC(0x1e9)
  341. +               REGMBC(0x1e31) REGMBC(0x1e35)
  342. +               return;
  343. +         case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
  344. +         CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
  345. +               regmbc('l'); REGMBC(0x13a) REGMBC(0x13c)
  346. +               REGMBC(0x13e) REGMBC(0x140) REGMBC(0x142)
  347. +               REGMBC(0x1e3b)
  348. +               return;
  349. +         case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
  350. +               regmbc('m'); REGMBC(0x1e3f) REGMBC(0x1e41)
  351.                 return;
  352.           case 'n': case '\361':
  353. +         CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
  354. +         CASEMBC(0x1e45) CASEMBC(0x1e49)
  355.                 regmbc('n'); regmbc('\361');
  356. +               REGMBC(0x144) REGMBC(0x146) REGMBC(0x148)
  357. +               REGMBC(0x149) REGMBC(0x1e45) REGMBC(0x1e49)
  358.                 return;
  359.           case 'o': case '\362': case '\363': case '\364': case '\365':
  360. !         case '\366': case '\370':
  361. !         CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
  362. !         CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
  363.                 regmbc('o'); regmbc('\362'); regmbc('\363');
  364.                 regmbc('\364'); regmbc('\365'); regmbc('\366');
  365. +               regmbc('\370');
  366. +               REGMBC(0x14d) REGMBC(0x14f) REGMBC(0x151)
  367. +               REGMBC(0x1a1) REGMBC(0x1d2) REGMBC(0x1eb)
  368. +               REGMBC(0x1ed) REGMBC(0x1ecf)
  369. +               return;
  370. +         case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
  371. +               regmbc('p'); REGMBC(0x1e55) REGMBC(0x1e57)
  372. +               return;
  373. +         case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
  374. +         CASEMBC(0x1e59) CASEMBC(0x1e5f)
  375. +               regmbc('r'); REGMBC(0x155) REGMBC(0x157) REGMBC(0x159)
  376. +               REGMBC(0x1e59) REGMBC(0x1e5f)
  377. +               return;
  378. +         case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
  379. +         CASEMBC(0x161) CASEMBC(0x1e61)
  380. +               regmbc('s'); REGMBC(0x15b) REGMBC(0x15d)
  381. +               REGMBC(0x15f) REGMBC(0x161) REGMBC(0x1e61)
  382. +               return;
  383. +         case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
  384. +         CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
  385. +               regmbc('t'); REGMBC(0x163) REGMBC(0x165) REGMBC(0x167)
  386. +               REGMBC(0x1e6b) REGMBC(0x1e6f) REGMBC(0x1e97)
  387.                 return;
  388.           case 'u': case '\371': case '\372': case '\373': case '\374':
  389. +         CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
  390. +         CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
  391. +         CASEMBC(0x1ee7)
  392.                 regmbc('u'); regmbc('\371'); regmbc('\372');
  393.                 regmbc('\373'); regmbc('\374');
  394. +               REGMBC(0x169) REGMBC(0x16b) REGMBC(0x16d)
  395. +               REGMBC(0x16f) REGMBC(0x171) REGMBC(0x173)
  396. +               REGMBC(0x1b0) REGMBC(0x1d4) REGMBC(0x1ee7)
  397. +               return;
  398. +         case 'v': CASEMBC(0x1e7d)
  399. +               regmbc('v'); REGMBC(0x1e7d)
  400. +               return;
  401. +         case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
  402. +         CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
  403. +               regmbc('w'); REGMBC(0x175) REGMBC(0x1e81)
  404. +               REGMBC(0x1e83) REGMBC(0x1e85) REGMBC(0x1e87)
  405. +               REGMBC(0x1e98)
  406. +               return;
  407. +         case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
  408. +               regmbc('x'); REGMBC(0x1e8b) REGMBC(0x1e8d)
  409.                 return;
  410.           case 'y': case '\375': case '\377':
  411. +         CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
  412. +         CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
  413.                 regmbc('y'); regmbc('\375'); regmbc('\377');
  414. +               REGMBC(0x177) REGMBC(0x1e8f) REGMBC(0x1e99)
  415. +               REGMBC(0x1ef3) REGMBC(0x1ef7) REGMBC(0x1ef9)
  416. +               return;
  417. +         case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
  418. +         CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
  419. +               regmbc('z'); REGMBC(0x17a) REGMBC(0x17c)
  420. +               REGMBC(0x17e) REGMBC(0x1b6) REGMBC(0x1e91)
  421. +               REGMBC(0x1e95)
  422.                 return;
  423.       }
  424.   #endif
  425. ***************
  426. *** 2468,2473 ****
  427. --- 2699,2706 ----
  428.   regmbc(c)
  429.       int        c;
  430.   {
  431. +     if (!has_mbyte && c > 0xff)
  432. +     return;
  433.       if (regcode == JUST_CALC_SIZE)
  434.       regsize += (*mb_char2len)(c);
  435.       else
  436. ***************
  437. *** 2588,2594 ****
  438.       else
  439.       offset = (int)(val - scan);
  440.       /* When the offset uses more than 16 bits it can no longer fit in the two
  441. !      * bytes avaliable.  Use a global flag to avoid having to check return
  442.        * values in too many places. */
  443.       if (offset > 0xffff)
  444.       reg_toolong = TRUE;
  445. --- 2821,2827 ----
  446.       else
  447.       offset = (int)(val - scan);
  448.       /* When the offset uses more than 16 bits it can no longer fit in the two
  449. !      * bytes available.  Use a global flag to avoid having to check return
  450.        * values in too many places. */
  451.       if (offset > 0xffff)
  452.       reg_toolong = TRUE;
  453. *** ../vim-7.3.258/src/testdir/test44.in    2010-08-15 21:57:29.000000000 +0200
  454. --- src/testdir/test44.in    2011-07-20 17:36:49.000000000 +0200
  455. ***************
  456. *** 27,32 ****
  457. --- 27,34 ----
  458.   x/\%U12345678
  459.   x/[\U1234abcd\u1234\uabcd]
  460.   x/\%d21879b
  461. + 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
  462. + 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
  463.   x:?^1?,$w! test.out
  464.   :e! test.out
  465.   G:put =matchstr(\"╫É╫æ╫Æ╫ô\", \".\", 0, 2) " ╫æ
  466. ***************
  467. *** 53,55 ****
  468. --- 55,59 ----
  469.   e ⁿÆìàÖ╕y
  470.   f ⁿÆìè»ìz
  471.   g aσò╖bb
  472. + 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┼╣┼╗┼╜╞╡ß║Éß║ö
  473. + i 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┼║┼╝┼╛╞╢ß║æß║ò
  474. *** ../vim-7.3.258/src/testdir/test44.ok    2010-08-15 21:57:29.000000000 +0200
  475. --- src/testdir/test44.ok    2011-07-20 17:36:49.000000000 +0200
  476. ***************
  477. *** 14,19 ****
  478. --- 14,21 ----
  479.   e y
  480.   f z
  481.   g abb
  482. + 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┼╣┼╗┼╜╞╡ß║É
  483. + i 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┼║┼╝┼╛╞╢ß║æ
  484.   ╫æ
  485.   ╫æ╫Æ
  486.   ╫É
  487. *** ../vim-7.3.258/src/version.c    2011-07-20 17:27:17.000000000 +0200
  488. --- src/version.c    2011-07-20 17:38:32.000000000 +0200
  489. ***************
  490. *** 711,712 ****
  491. --- 711,714 ----
  492.   {   /* Add new patch number below this line */
  493. + /**/
  494. +     259,
  495.   /**/
  496.  
  497. -- 
  498. Not too long ago, compress was something you did to garbage...
  499.  
  500.  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
  501. ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
  502. \\\  an exciting new programming language -- http://www.Zimbu.org        ///
  503.  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
  504.