summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2014-10-09 13:24:43 +0200
committerBram Moolenaar <bram@vim.org>2014-10-09 13:24:43 +0200
commit6494b50f257a4fef8348481ee4bd9cfe2a25125a (patch)
treeb1137caec89cd474454c4482fa9bd21394062c53
parent13c0a7fc6432200cdfd5e7b76ee109d2e464a596 (diff)
downloadvim-6494b50f257a4fef8348481ee4bd9cfe2a25125a.tar.gz
updated for version 7.4.467v7.4.467v7-4-467
-rw-r--r--src/normal.c9
-rw-r--r--src/screen.c10
-rw-r--r--src/testdir/test_listlbr.in10
-rw-r--r--src/testdir/test_listlbr.ok4
-rw-r--r--src/version.c2
5 files changed, 33 insertions, 2 deletions
diff --git a/src/normal.c b/src/normal.c
index a8d74117..8384d6ff 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1380,6 +1380,12 @@ do_pending_operator(cap, old_col, gui_yank)
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_yank)
oap->block_mode = FALSE;
clearop(oap);
}
+#ifdef FEAT_LINEBREAK
+ curwin->w_p_lbr = lbr_saved;
+#endif
}
/*
diff --git a/src/screen.c b/src/screen.c
index 7a9311a4..fae2703f 100644
--- 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;
diff --git a/src/testdir/test_listlbr.in b/src/testdir/test_listlbr.in
index f155f85a..f6618c5a 100644
--- a/src/testdir/test_listlbr.in
+++ b/src/testdir/test_listlbr.in
@@ -2,7 +2,7 @@ Test for linebreak and list option (non-utf8)
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
diff --git a/src/testdir/test_listlbr.ok b/src/testdir/test_listlbr.ok
index 9b8037f4..ee746676 100644
--- a/src/testdir/test_listlbr.ok
+++ b/src/testdir/test_listlbr.ok
@@ -32,3 +32,7 @@ Sabbbbbb bla
~
~
~
+this not
+aaaaaaaaaaaaa
+REMOVE:
+REMOVE:
diff --git a/src/version.c b/src/version.c
index 6417a491..5979660f 100644
--- 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,