Mercurial > vim
diff src/regexp.c @ 5504:ec5d11403c19 v7.4.101
updated for version 7.4.101
Problem: Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution: Only advance the match end for the matched characters in the last
line.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 21 Nov 2013 17:13:00 +0100 |
parents | 2d3fbc68b3a8 |
children | 50dbef5e774a |
line wrap: on
line diff
--- a/src/regexp.c +++ b/src/regexp.c @@ -6455,7 +6455,8 @@ re_num_cmp(val, scan) /* * Check whether a backreference matches. * Returns RA_FAIL, RA_NOMATCH or RA_MATCH. - * If "bytelen" is not NULL, it is set to the bytelength of the whole match. + * If "bytelen" is not NULL, it is set to the byte length of the match in the + * last line. */ static int match_with_backref(start_lnum, start_col, end_lnum, end_col, bytelen) @@ -6511,6 +6512,8 @@ match_with_backref(start_lnum, start_col /* Advance to next line. */ reg_nextline(); + if (bytelen != NULL) + *bytelen = 0; ++clnum; ccol = 0; if (got_int)