On Tue, Aug 27, 2013 at 11:01 PM, Dominique Pellé <[email protected]> wrote: > glts wrote: > >> Hi, >> >> The new regexp engine seems unable to deal with combining characters. >> This is on Vim 7.4.9. Steps to reproduce: >> >> :put =\"ca\u0300t\" >> :echo getline('.') =~ '\%#=0a' >> :echo getline('.') =~ '\%#=1a' >> >> Only the old regexp engine finds the match. >> >> Best, > > > It might be related to the TODO comments in regexp_nfa.c > at lines 1135 and 3161: > > 1117 case 'U': /* %U1234abcd hex 8 */ > 1118 { > 1119 int nr; > 1120 > 1121 switch (c) > 1122 { > 1123 case 'd': nr = getdecchrs(); break; > 1124 case 'o': nr = getoctchrs(); break; > 1125 case 'x': nr = gethexchrs(2); break; > 1126 case 'u': nr = gethexchrs(4); break; > 1127 case 'U': nr = gethexchrs(8); break; > 1128 default: nr = -1; break; > 1129 } > 1130 > 1131 if (nr < 0) > 1132 EMSG2_RET_FAIL( > 1133 _("E678: Invalid character after > %s%%[dxouU]"), > 1134 reg_magic == MAGIC_ALL); > !1135 /* TODO: what if a composing character follows? > */ > 1136 EMIT(nr); > 1137 } > > ... > 3158 #ifdef FEAT_MBYTE > 3159 case NFA_COMPOSING: /* char with composing char */ > 3160 #if 0 > !3161 /* TODO */ > 3162 if (regflags & RF_ICOMBINE) > 3163 { > 3164 /* use the base character only */ > 3165 } > 3166 #endif > ....
Yes, I saw that, and now I'm worried the new engine might be unfinished after all ... :( -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
