182 lines
4.6 KiB
Plaintext
182 lines
4.6 KiB
Plaintext
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
|
|
|
|
|
|
*** ../vim-7.4.575/src/normal.c 2014-10-31 13:54:21.843214469 +0100
|
|
--- src/normal.c 2015-01-14 17:49:38.320915425 +0100
|
|
***************
|
|
*** 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
|
|
{
|
|
*** ../vim-7.4.575/src/version.c 2015-01-14 17:40:04.407125696 +0100
|
|
--- src/version.c 2015-01-14 17:47:45.898132017 +0100
|
|
***************
|
|
*** 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 ///
|