Mercurial > vim
diff src/normal.c @ 7001:27f8247d2619 v7.4.818
patch 7.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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 11 Aug 2015 17:46:36 +0200 |
parents | a25618cbc68a |
children | 286fd54c7ae3 |
line wrap: on
line diff
--- 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 */