]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.1104 v7.3.1104
authorBram Moolenaar <Bram@vim.org>
Sun, 2 Jun 2013 20:08:03 +0000 (22:08 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 2 Jun 2013 20:08:03 +0000 (22:08 +0200)
Problem:    New regexp engine does not handle "~".
Solution:   Add support for "~".

src/regexp_nfa.c
src/testdir/test24.in
src/testdir/test24.ok
src/version.c

index f9b18886145cad516b7b7d5432e40528494b608c..6b6d369777745c8ea0cca2abddc87a345844e727 100644 (file)
@@ -829,9 +829,26 @@ nfa_regatom()
            EMSGN(_(e_misplaced), no_Magic(c));
            return FAIL;
 
-       case Magic('~'):                /* previous substitute pattern */
-           /* TODO: Not supported yet */
-           return FAIL;
+       case Magic('~'):
+           {
+               char_u      *lp;
+
+               /* Previous substitute pattern.
+                * Generated as "\%(pattern\)". */
+               if (reg_prev_sub == NULL)
+               {
+                   EMSG(_(e_nopresub));
+                   return FAIL;
+               }
+               for (lp = reg_prev_sub; *lp != NUL; mb_cptr_adv(lp))
+               {
+                   EMIT(PTR2CHAR(lp));
+                   if (lp != reg_prev_sub)
+                       EMIT(NFA_CONCAT);
+               }
+               EMIT(NFA_NOPEN);
+               break;
+           }
 
        case Magic('1'):
        case Magic('2'):
index 80eb90bf699ba694167818d364d2e72c06880a45..7dfc1afdc6999616e5171f76f4ff34d92f7d9a2a 100644 (file)
Binary files a/src/testdir/test24.in and b/src/testdir/test24.in differ
index ed25dd4364cc0a5936ccb69bf7469ee5d0191430..cd61210968658bde716d42ec94eba780e7d65255 100644 (file)
@@ -27,3 +27,6 @@ xx foobar xA xx
 xx an A xx
 XX 9;
 YY 77;
+ xyz 
+ bcd
+ BB
index 2ec2881430bce79f46d21bea6cd2c0814b9b656f..57320724c7b098048f5bc8e3c1d37787976c78a5 100644 (file)
@@ -728,6 +728,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1104,
 /**/
     1103,
 /**/