diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-08-11 17:46:36 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-08-11 17:46:36 +0200 |
commit | 89c17c02cac7594c6bb85900d73b1dc70aa78306 (patch) | |
tree | b7b54b41ac6b533b08741738b8b1408c308fdc3c /src/normal.c | |
parent | 2288afed428d29ce2e464964df4c5a757281e70e (diff) | |
download | vim-git-89c17c02cac7594c6bb85900d73b1dc70aa78306.tar.gz |
patch 7.4.818v7.4.818
Problem: 'linebreak' breaks c% if the last Visual selection was block.
(Chris Morganiser, Issue 389)
Solution: Handle Visual block mode differently. (Christian Brabandt)
Diffstat (limited to 'src/normal.c')
-rw-r--r-- | src/normal.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/normal.c b/src/normal.c index 309b895a9..a46cc9d64 100644 --- a/src/normal.c +++ b/src/normal.c @@ -9583,20 +9583,21 @@ nv_cursorhold(cap) #endif /* - * calculate start/end virtual columns for operating in block mode + * Calculate start/end virtual columns for operating in block mode. */ static void get_op_vcol(oap, redo_VIsual_vcol, initial) oparg_T *oap; colnr_T redo_VIsual_vcol; - int initial; /* when true: adjust position for 'selectmode' */ + int initial; /* when TRUE adjust position for 'selectmode' */ { colnr_T start, end; - if (VIsual_mode != Ctrl_V) + if (VIsual_mode != Ctrl_V + || (!initial && oap->end.col < W_WIDTH(curwin))) return; - oap->block_mode = TRUE; + oap->block_mode = VIsual_active; #ifdef FEAT_MBYTE /* prevent from moving onto a trail byte */ |