| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.576 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.4.576 |
| Problem: Redrawing problem with 'relativenumber' and 'linebreak'. |
| Solution: Temporarily reset 'linebreak' and restore it in more places. |
| (Christian Brabandt) |
| Files: src/normal.c |
| |
| |
| |
| |
| |
| *** 1393,1402 **** |
| 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 |
| --- 1393,1398 ---- |
| |
| *** 1420,1425 **** |
| --- 1416,1425 ---- |
| */ |
| 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,1825 **** |
| --- 1819,1831 ---- |
| || 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,1869 **** |
| --- 1869,1880 ---- |
| || 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,1953 **** |
| --- 1958,1969 ---- |
| } |
| } |
| else |
| + { |
| + #ifdef FEAT_LINEBREAK |
| + curwin->w_p_lbr = lbr_saved; |
| + #endif |
| (void)op_yank(oap, FALSE, !gui_yank); |
| + } |
| check_cursor_col(); |
| break; |
| |
| |
| *** 1969,1974 **** |
| --- 1985,1995 ---- |
| 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,2071 **** |
| * Visual mode. But do this only once. */ |
| restart_edit_save = restart_edit; |
| restart_edit = 0; |
| ! |
| op_insert(oap, cap->count1); |
| |
| /* TODO: when inserting in several lines, should format all |
| * the lines. */ |
| --- 2085,2100 ---- |
| * 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,2096 **** |
| --- 2119,2132 ---- |
| } |
| #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,2140 **** |
| --- 2170,2181 ---- |
| 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 |
| { |
| |
| |
| |
| *** 743,744 **** |
| --- 743,746 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 576, |
| /**/ |
| |
| -- |
| From "know your smileys": |
| :-H Is missing teeth |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |