updated for version 7.3.785
Problem: Crash with specific use of search pattern.
Solution: Initialize reg_buf to curbuf.
diff --git a/src/regexp.c b/src/regexp.c
index bb63c94..e62aae5 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -3413,7 +3413,7 @@
* 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 @@
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 @@
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 @@
#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 @@
reg_match = rmp;
reg_mmatch = NULL;
reg_maxline = 0;
+ reg_buf = curbuf;
return vim_regsub_both(source, dest, copy, magic, backslash);
}
#endif
diff --git a/src/version.c b/src/version.c
index 9a94c54..0f77ad2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -726,6 +726,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 785,
+/**/
784,
/**/
783,