patch 7.4.776
Problem: Equivalence class for 'd' does not work correctly.
Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index bb55a71..609da03 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -542,7 +542,6 @@
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 @@
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: