Mercurial > vim
changeset 6914:94b179585851 v7.4.776
patch 7.4.776
Problem: Equivalence class for 'd' does not work correctly.
Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 10 Jul 2015 19:16:34 +0200 |
parents | 5f9aae6928bc |
children | 74632b6e5eb5 |
files | src/regexp.c src/regexp_nfa.c src/version.c |
diffstat | 3 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/regexp.c +++ b/src/regexp.c @@ -1011,10 +1011,10 @@ reg_equi_class(c) REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b) REGMBC(0x10d) return; - case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b) - CASEMBC(0x1e11) + case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1e0b) + CASEMBC(0x1e0f) CASEMBC(0x1e11) regmbc('d'); REGMBC(0x10f) REGMBC(0x111) - REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11) + REGMBC(0x1e0b) REGMBC(0x1e0f) REGMBC(0x1e11) return; case 'e': case 0xe8: case 0xe9: case 0xea: case 0xeb: CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
--- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -542,7 +542,6 @@ nfa_get_match_text(start) ret = alloc(len); if (ret != NULL) { - len = 0; p = start->out->out; /* skip first char, it goes into regstart */ s = ret; while (p->c > 0) @@ -946,10 +945,10 @@ nfa_emit_equi_class(c) EMITMBC(0x10b) EMITMBC(0x10d) return OK; - case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b) - CASEMBC(0x1e11) - EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b) - EMITMBC(0x01e0f) EMITMBC(0x1e11) + 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: