# HG changeset patch # User Bram Moolenaar # Date 1359141061 -3600 # Node ID be4baed0c933e1f1543ea175e2e36551ff6caa18 # Parent 141e571dd23360ff5ab4591dd7acdd8d5e140e1e 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 --- a/src/regexp.c +++ b/src/regexp.c @@ -3413,7 +3413,7 @@ static unsigned reg_tofreelen; * reg_startpos reg_mmatch->startpos * reg_endpos reg_mmatch->endpos * reg_win NULL window in which to search - * reg_buf buffer in which to search + * reg_buf curbuf buffer in which to search * reg_firstlnum 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, magi 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 --- a/src/version.c +++ b/src/version.c @@ -726,6 +726,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 785, +/**/ 784, /**/ 783,