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)