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:
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    776,
+/**/
     775,
 /**/
     774,