diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-01-14 17:52:30 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-01-14 17:52:30 +0100 |
commit | ba3f58e29660d4f7501cb0e46162a399c20020c6 (patch) | |
tree | d3aadc6dda3223cf1c87af60f3661089b2dc385e /src | |
parent | ea67672534ae00cfd560c056340ed4da001e95f9 (diff) | |
download | vim-git-ba3f58e29660d4f7501cb0e46162a399c20020c6.tar.gz |
updated for version 7.4.576v7.4.576
Problem: Redrawing problem with 'relativenumber' and 'linebreak'.
Solution: Temporarily reset 'linebreak' and restore it in more places.
(Christian Brabandt)
Diffstat (limited to 'src')
-rw-r--r-- | src/normal.c | 51 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 48 insertions, 5 deletions
diff --git a/src/normal.c b/src/normal.c index bd5bacd59..cb1a7d154 100644 --- a/src/normal.c +++ b/src/normal.c @@ -1393,10 +1393,6 @@ do_pending_operator(cap, old_col, gui_yank) int include_line_break = FALSE; #endif -#ifdef FEAT_LINEBREAK - curwin->w_p_lbr = FALSE; /* Avoid a problem with unwanted linebreaks in - * block mode. */ -#endif #if defined(FEAT_CLIPBOARD) /* * Yank the visual area into the GUI selection register before we operate @@ -1420,6 +1416,10 @@ do_pending_operator(cap, old_col, gui_yank) */ if ((finish_op || VIsual_active) && oap->op_type != OP_NOP) { +#ifdef FEAT_LINEBREAK + /* Avoid a problem with unwanted linebreaks in block mode. */ + curwin->w_p_lbr = FALSE; +#endif oap->is_VIsual = VIsual_active; if (oap->motion_force == 'V') oap->motion_type = MLINE; @@ -1819,7 +1819,13 @@ do_pending_operator(cap, old_col, gui_yank) || oap->op_type == OP_FUNCTION || oap->op_type == OP_FILTER) && oap->motion_force == NUL) + { +#ifdef FEAT_LINEBREAK + /* make sure redrawing is correct */ + curwin->w_p_lbr = lbr_saved; +#endif redraw_curbuf_later(INVERTED); + } } } @@ -1863,7 +1869,12 @@ do_pending_operator(cap, old_col, gui_yank) || oap->op_type == OP_FOLD #endif )) + { +#ifdef FEAT_LINEBREAK + curwin->w_p_lbr = lbr_saved; +#endif redraw_curbuf_later(INVERTED); + } /* * If the end of an operator is in column one while oap->motion_type @@ -1947,7 +1958,12 @@ do_pending_operator(cap, old_col, gui_yank) } } else + { +#ifdef FEAT_LINEBREAK + curwin->w_p_lbr = lbr_saved; +#endif (void)op_yank(oap, FALSE, !gui_yank); + } check_cursor_col(); break; @@ -1969,6 +1985,11 @@ do_pending_operator(cap, old_col, gui_yank) else restart_edit_save = 0; restart_edit = 0; +#ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ + curwin->w_p_lbr = lbr_saved; +#endif /* Reset finish_op now, don't want it set inside edit(). */ finish_op = FALSE; if (op_change(oap)) /* will call edit() */ @@ -2064,8 +2085,16 @@ do_pending_operator(cap, old_col, gui_yank) * Visual mode. But do this only once. */ restart_edit_save = restart_edit; restart_edit = 0; - +#ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ + curwin->w_p_lbr = lbr_saved; +#endif op_insert(oap, cap->count1); +#ifdef FEAT_LINEBREAK + /* Reset linebreak, so that formatting works correctly. */ + curwin->w_p_lbr = FALSE; +#endif /* TODO: when inserting in several lines, should format all * the lines. */ @@ -2090,7 +2119,14 @@ do_pending_operator(cap, old_col, gui_yank) } #ifdef FEAT_VISUALEXTRA else + { +#ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ + curwin->w_p_lbr = lbr_saved; +#endif op_replace(oap, cap->nchar); + } #endif break; @@ -2134,7 +2170,12 @@ do_pending_operator(cap, old_col, gui_yank) if (!p_sol && oap->motion_type == MLINE && !oap->end_adjusted && (oap->op_type == OP_LSHIFT || oap->op_type == OP_RSHIFT || oap->op_type == OP_DELETE)) + { +#ifdef FEAT_LINEBREAK + curwin->w_p_lbr = FALSE; +#endif coladvance(curwin->w_curswant = old_col); + } } else { diff --git a/src/version.c b/src/version.c index 687052815..4f310058d 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 */ /**/ + 576, +/**/ 575, /**/ 574, |