changeset 6266:0a4efa3d2019 v7.4.467

updated for version 7.4.467
author Bram Moolenaar <bram@vim.org>
date Thu, 09 Oct 2014 13:24:43 +0200
parents 123a83d5483a
children 0a59371178f7
files src/normal.c src/screen.c src/testdir/test_listlbr.in src/testdir/test_listlbr.ok src/version.c
diffstat 5 files changed, 34 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/normal.c
+++ b/src/normal.c
@@ -1380,6 +1380,12 @@ do_pending_operator(cap, old_col, gui_ya
     pos_T	old_cursor;
     int		empty_region_error;
     int		restart_edit_save;
+#ifdef FEAT_LINEBREAK
+    int		lbr_saved = curwin->w_p_lbr;
+
+    curwin->w_p_lbr = FALSE;	/* avoid a problem with unwanted linebreaks in
+				 * block mode */
+#endif
 
     /* The visual area is remembered for redo */
     static int	    redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
@@ -2136,6 +2142,9 @@ do_pending_operator(cap, old_col, gui_ya
 	oap->block_mode = FALSE;
 	clearop(oap);
     }
+#ifdef FEAT_LINEBREAK
+    curwin->w_p_lbr = lbr_saved;
+#endif
 }
 
 /*
--- a/src/screen.c
+++ b/src/screen.c
@@ -1584,9 +1584,17 @@ win_update(wp)
 	     */
 	    if (VIsual_mode == Ctrl_V)
 	    {
-		colnr_T	fromc, toc;
-
+		colnr_T	    fromc, toc;
+#if defined(FEAT_VIRTUALEDIT) && defined(FEAT_LINEBREAK)
+		int	    save_ve_flags = ve_flags;
+
+		if (curwin->w_p_lbr)
+		    ve_flags = VE_ALL;
+#endif
 		getvcols(wp, &VIsual, &curwin->w_cursor, &fromc, &toc);
+#if defined(FEAT_VIRTUALEDIT) && defined(FEAT_LINEBREAK)
+		ve_flags = save_ve_flags;
+#endif
 		++toc;
 		if (curwin->w_curswant == MAXCOL)
 		    toc = MAXCOL;
--- a/src/testdir/test_listlbr.in
+++ b/src/testdir/test_listlbr.in
@@ -2,7 +2,7 @@ Test for linebreak and list option (non-
 
 STARTTEST
 :so small.vim
-:if !exists("+linebreak") || !exists("+conceal") | e! test.ok | w! test.out | qa! | endif
+:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! | endif
 :10new|:vsp|:vert resize 20
 :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
 :norm! zt
@@ -56,6 +56,14 @@ STARTTEST
 :syn match All /.*/ contains=ConcealVar
 :let line=ScreenChar(winwidth(0))
 :call DoRecordScreen()
+:set cpo&vim linebreak
+:let g:test ="Test 6: set linebreak with visual block mode"
+:let line="REMOVE: this not"
+:$put =line
+:let line="REMOVE: aaaaaaaaaaaaa"
+:$put =line
+:1/^REMOVE:
+0jf x:$put
 :%w! test.out
 :qa!
 ENDTEST
--- a/src/testdir/test_listlbr.ok
+++ b/src/testdir/test_listlbr.ok
@@ -32,3 +32,7 @@ Sabbbbbb bla
 ~                   
 ~                   
 ~                   
+this not
+aaaaaaaaaaaaa
+REMOVE: 
+REMOVE: 
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    467,
+/**/
     466,
 /**/
     465,