]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.1154 v7.3.1154
authorBram Moolenaar <Bram@vim.org>
Sun, 9 Jun 2013 15:25:34 +0000 (17:25 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 9 Jun 2013 15:25:34 +0000 (17:25 +0200)
Problem:    New regexp_nfa engine: Uneccessary code.
Solution:   Remove uneccessary code.

src/regexp_nfa.c
src/version.c

index c5386ce801f782e369c7cd814ee9d0643e2b3608..7e9b04ca78ee23e4c9a108d5646e68368f2d8f09 100644 (file)
@@ -3795,14 +3795,8 @@ addstate(l, state, subs, pim, off)
     int                        did_print = FALSE;
 #endif
 
-    if (l == NULL || state == NULL)
-       return;
-
     switch (state->c)
     {
-       case NFA_SPLIT:
-       case NFA_NOPEN:
-       case NFA_SKIP_CHAR:
        case NFA_NCLOSE:
        case NFA_MCLOSE:
        case NFA_MCLOSE1:
@@ -3827,6 +3821,9 @@ addstate(l, state, subs, pim, off)
        case NFA_ZCLOSE9:
 #endif
        case NFA_ZEND:
+       case NFA_SPLIT:
+       case NFA_NOPEN:
+       case NFA_SKIP_CHAR:
            /* These nodes are not added themselves but their "out" and/or
             * "out1" may be added below.  */
            break;
@@ -3889,12 +3886,14 @@ skip_add:
                    return;
                }
 
+               /* Do not add the state again when it exists with the same
+                * positions. */
                if (has_state_with_pos(l, state, subs))
                    goto skip_add;
            }
 
-           /* when there are backreferences or look-behind matches the number
-            * of states may be (a lot) bigger */
+           /* When there are backreferences the number of states may be (a
+            * lot) bigger than anticipated. */
            if (nfa_has_backref && l->n == l->len)
            {
                int newlen = l->len * 3 / 2 + 50;
@@ -3985,8 +3984,8 @@ skip_add:
                sub = &subs->norm;
            }
 
-           /* Set the position (with "off") in the subexpression.  Save and
-            * restore it when it was in use.  Otherwise fill any gap. */
+           /* Set the position (with "off" added) in the subexpression.  Save
+            * and restore it when it was in use.  Otherwise fill any gap. */
            save_ptr = NULL;
            if (REG_MULTI)
            {
index 1f9eda61b5fd60e1fb1acb82d94aad73ce509735..4b2b2f6babc67f10c630e0091a5b5b570523b16e 100644 (file)
@@ -728,6 +728,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1154,
 /**/
     1153,
 /**/