]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.785 v7.3.785
authorBram Moolenaar <Bram@vim.org>
Fri, 25 Jan 2013 19:11:01 +0000 (20:11 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 25 Jan 2013 19:11:01 +0000 (20:11 +0100)
Problem:    Crash with specific use of search pattern.
Solution:   Initialize reg_buf to curbuf.

src/regexp.c
src/version.c

index bb63c942f0df17d654a6980ab49fdfc3a487e1aa..e62aae557fbd95388253b572407125a643705b73 100644 (file)
@@ -3413,7 +3413,7 @@ static unsigned   reg_tofreelen;
  * reg_startpos                <invalid>               reg_mmatch->startpos
  * reg_endpos          <invalid>               reg_mmatch->endpos
  * reg_win             NULL                    window in which to search
- * reg_buf             <invalid>               buffer in which to search
+ * reg_buf             curbuf                  buffer in which to search
  * reg_firstlnum       <invalid>               first line in which to search
  * reg_maxline         0                       last line nr
  * reg_line_lbr                FALSE or TRUE           FALSE
@@ -3571,6 +3571,7 @@ vim_regexec(rmp, line, col)
     reg_mmatch = NULL;
     reg_maxline = 0;
     reg_line_lbr = FALSE;
+    reg_buf = curbuf;
     reg_win = NULL;
     ireg_ic = rmp->rm_ic;
 #ifdef FEAT_MBYTE
@@ -3595,6 +3596,7 @@ vim_regexec_nl(rmp, line, col)
     reg_mmatch = NULL;
     reg_maxline = 0;
     reg_line_lbr = TRUE;
+    reg_buf = curbuf;
     reg_win = NULL;
     ireg_ic = rmp->rm_ic;
 #ifdef FEAT_MBYTE
@@ -4311,8 +4313,8 @@ regmatch(scan)
 #endif
            else
            {
-               if (!vim_iswordc_buf(c, reg_buf)
-                       || (reginput > regline && vim_iswordc_buf(reginput[-1], reg_buf)))
+               if (!vim_iswordc_buf(c, reg_buf) || (reginput > regline
+                                  && vim_iswordc_buf(reginput[-1], reg_buf)))
                    status = RA_NOMATCH;
            }
            break;
@@ -7135,6 +7137,7 @@ vim_regsub(rmp, source, dest, copy, magic, backslash)
     reg_match = rmp;
     reg_mmatch = NULL;
     reg_maxline = 0;
+    reg_buf = curbuf;
     return vim_regsub_both(source, dest, copy, magic, backslash);
 }
 #endif
index 9a94c54da62e3adf8410662aa7841623e6c82dd2..0f77ad25571029641eb1fdf60f33027378be0ea5 100644 (file)
@@ -725,6 +725,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    785,
 /**/
     784,
 /**/