[vim] - patchlevel 532

Karsten Hopp karsten at fedoraproject.org
Thu Nov 27 16:55:49 UTC 2014


commit 4abf56c9c744c7a7ef5d61f4730c6bacb2ae1d9b
Author: Karsten Hopp <karsten at redhat.com>
Date:   Thu Nov 27 18:00:12 2014 +0100

    - patchlevel 532

 7.4.532 |  141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 0 deletions(-)
---
diff --git a/7.4.532 b/7.4.532
new file mode 100644
index 0000000..88b12b9
--- /dev/null
+++ b/7.4.532
@@ -0,0 +1,141 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.4.532
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.532
+Problem:    When using 'incsearch' "2/pattern/e" highlights the first match.
+Solution:   Move the code to set extra_col inside the loop for count.  (Ozaki
+	    Kiichi)
+Files:	    src/search.c
+
+
+*** ../vim-7.4.531/src/search.c	2014-06-17 13:50:06.148087184 +0200
+--- src/search.c	2014-11-27 17:21:49.579489220 +0100
+***************
+*** 552,557 ****
+--- 552,558 ----
+      int		match_ok;
+      long	nmatched;
+      int		submatch = 0;
++     int		first_match = TRUE;
+      int		save_called_emsg = called_emsg;
+  #ifdef FEAT_SEARCH_EXTRA
+      int		break_loop = FALSE;
+***************
+*** 565,597 ****
+  	return FAIL;
+      }
+  
+-     /* When not accepting a match at the start position set "extra_col" to a
+-      * non-zero value.  Don't do that when starting at MAXCOL, since MAXCOL +
+-      * 1 is zero. */
+-     if ((options & SEARCH_START) || pos->col == MAXCOL)
+- 	extra_col = 0;
+- #ifdef FEAT_MBYTE
+-     /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
+-     else if (dir != BACKWARD && has_mbyte
+- 		    && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count
+- 						     && pos->col < MAXCOL - 2)
+-     {
+- 	ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col;
+- 	if (*ptr == NUL)
+- 	    extra_col = 1;
+- 	else
+- 	    extra_col = (*mb_ptr2len)(ptr);
+-     }
+- #endif
+-     else
+- 	extra_col = 1;
+- 
+      /*
+       * find the string
+       */
+      called_emsg = FALSE;
+      do	/* loop for count */
+      {
+  	start_pos = *pos;	/* remember start pos for detecting no match */
+  	found = 0;		/* default: not found */
+  	at_first_line = TRUE;	/* default: start in first line */
+--- 566,598 ----
+  	return FAIL;
+      }
+  
+      /*
+       * find the string
+       */
+      called_emsg = FALSE;
+      do	/* loop for count */
+      {
++ 	/* When not accepting a match at the start position set "extra_col" to
++ 	 * a non-zero value.  Don't do that when starting at MAXCOL, since
++ 	 * MAXCOL + 1 is zero. */
++ 	if ((options & SEARCH_START) || pos->col == MAXCOL)
++ 	    extra_col = 0;
++ #ifdef FEAT_MBYTE
++ 	/* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
++ 	else if (dir != BACKWARD && has_mbyte
++ 		     && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count
++ 						     && pos->col < MAXCOL - 2)
++ 	{
++ 	    ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col;
++ 	    if (*ptr == NUL)
++ 		extra_col = 1;
++ 	    else
++ 		extra_col = (*mb_ptr2len)(ptr);
++ 	}
++ #endif
++ 	else
++ 	    extra_col = 1;
++ 
+  	start_pos = *pos;	/* remember start pos for detecting no match */
+  	found = 0;		/* default: not found */
+  	at_first_line = TRUE;	/* default: start in first line */
+***************
+*** 677,683 ****
+  			 * otherwise "/$" will get stuck on end of line.
+  			 */
+  			while (matchpos.lnum == 0
+! 				&& ((options & SEARCH_END)
+  				    ?  (nmatched == 1
+  					&& (int)endpos.col - 1
+  					     < (int)start_pos.col + extra_col)
+--- 678,684 ----
+  			 * otherwise "/$" will get stuck on end of line.
+  			 */
+  			while (matchpos.lnum == 0
+! 				&& ((options & SEARCH_END) && first_match
+  				    ?  (nmatched == 1
+  					&& (int)endpos.col - 1
+  					     < (int)start_pos.col + extra_col)
+***************
+*** 908,913 ****
+--- 909,915 ----
+  		    pos->coladd = 0;
+  #endif
+  		    found = 1;
++ 		    first_match = FALSE;
+  
+  		    /* Set variables used for 'incsearch' highlighting. */
+  		    search_match_lines = endpos.lnum - matchpos.lnum;
+*** ../vim-7.4.531/src/version.c	2014-11-27 16:38:07.652261234 +0100
+--- src/version.c	2014-11-27 17:29:13.762616760 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     532,
+  /**/
+
+-- 
+The most powerful force in the universe is gossip.
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


More information about the scm-commits mailing list