[vim] - patchlevel 792

Karsten Hopp karsten at fedoraproject.org
Thu Jan 31 11:12:47 UTC 2013


commit 41c58d657d3103bcf64323875518a9c6d2a92bd2
Author: Karsten Hopp <karsten at redhat.com>
Date:   Thu Jan 31 12:11:59 2013 +0100

    - patchlevel 792

 7.3.792 |  131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 131 insertions(+), 0 deletions(-)
---
diff --git a/7.3.792 b/7.3.792
new file mode 100644
index 0000000..cddcc62
--- /dev/null
+++ b/7.3.792
@@ -0,0 +1,131 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.792
+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.3.792
+Problem:    ":substitute" works differently without confirmation.
+Solution:   Do not change the text when asking for confirmation, only display
+	    it.
+Files:	    src/ex_cmds.c
+
+
+*** ../vim-7.3.791/src/ex_cmds.c	2013-01-17 18:33:58.000000000 +0100
+--- src/ex_cmds.c	2013-01-30 16:01:58.000000000 +0100
+***************
+*** 4727,4732 ****
+--- 4727,4734 ----
+  			}
+  			else
+  			{
++ 			    char_u *orig_line = NULL;
++ 			    int    len_change = 0;
+  #ifdef FEAT_FOLDING
+  			    int save_p_fen = curwin->w_p_fen;
+  
+***************
+*** 4737,4745 ****
+  			    temp = RedrawingDisabled;
+  			    RedrawingDisabled = 0;
+  
+  			    search_match_lines = regmatch.endpos[0].lnum
+  						  - regmatch.startpos[0].lnum;
+! 			    search_match_endcol = regmatch.endpos[0].col;
+  			    highlight_match = TRUE;
+  
+  			    update_topline();
+--- 4739,4781 ----
+  			    temp = RedrawingDisabled;
+  			    RedrawingDisabled = 0;
+  
++ 			    if (new_start != NULL)
++ 			    {
++ 				/* There already was a substitution, we would
++ 				 * like to show this to the user.  We cannot
++ 				 * really update the line, it would change
++ 				 * what matches.  Temporarily replace the line
++ 				 * and change it back afterwards. */
++ 				orig_line = vim_strsave(ml_get(lnum));
++ 				if (orig_line != NULL)
++ 				{
++ 				    char_u *new_line = concat_str(new_start,
++ 						     sub_firstline + copycol);
++ 
++ 				    if (new_line == NULL)
++ 				    {
++ 					vim_free(orig_line);
++ 					orig_line = NULL;
++ 				    }
++ 				    else
++ 				    {
++ 					/* Position the cursor relative to the
++ 					 * end of the line, the previous
++ 					 * substitute may have inserted or
++ 					 * deleted characters before the
++ 					 * cursor. */
++ 					len_change = STRLEN(new_line)
++ 							  - STRLEN(orig_line);
++ 					curwin->w_cursor.col += len_change;
++ 					ml_replace(lnum, new_line, FALSE);
++ 				    }
++ 				}
++ 			    }
++ 
+  			    search_match_lines = regmatch.endpos[0].lnum
+  						  - regmatch.startpos[0].lnum;
+! 			    search_match_endcol = regmatch.endpos[0].col
+! 								 + len_change;
+  			    highlight_match = TRUE;
+  
+  			    update_topline();
+***************
+*** 4781,4786 ****
+--- 4817,4826 ----
+  			    msg_didout = FALSE;	/* don't scroll up */
+  			    msg_col = 0;
+  			    gotocmdline(TRUE);
++ 
++ 			    /* restore the line */
++ 			    if (orig_line != NULL)
++ 				ml_replace(lnum, orig_line, FALSE);
+  			}
+  
+  			need_wait_return = FALSE; /* no hit-return prompt */
+***************
+*** 5045,5058 ****
+  		 * The check for nmatch_tl is needed for when multi-line
+  		 * matching must replace the lines before trying to do another
+  		 * match, otherwise "\@<=" won't work.
+- 		 * When asking the user we like to show the already replaced
+- 		 * text, but don't do it when "\<@=" or "\<@!" is used, it
+- 		 * changes what matches.
+  		 * When the match starts below where we start searching also
+  		 * need to replace the line first (using \zs after \n).
+  		 */
+  		if (lastone
+- 			|| (do_ask && !re_lookbehind(regmatch.regprog))
+  			|| nmatch_tl > 0
+  			|| (nmatch = vim_regexec_multi(&regmatch, curwin,
+  							curbuf, sub_firstlnum,
+--- 5085,5094 ----
+*** ../vim-7.3.791/src/version.c	2013-01-30 14:55:35.000000000 +0100
+--- src/version.c	2013-01-30 16:25:36.000000000 +0100
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     792,
+  /**/
+
+-- 
+Trees moving back and forth is what makes the wind blow.
+
+ /// 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