diff --git a/7.3.181 b/7.3.181 new file mode 100644 index 0000000..3151d44 --- /dev/null +++ b/7.3.181 @@ -0,0 +1,171 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.181 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.181 +Problem: When repeating the insert of CTRL-V or a digraph the display may + not be updated correctly. +Solution: Only call edit_unputchar() after edit_putchar(). (Lech Lorens) +Files: src/edit.c + + +*** ../vim-7.3.180/src/edit.c 2010-11-10 17:11:29.000000000 +0100 +--- src/edit.c 2011-05-10 14:16:41.000000000 +0200 +*************** +*** 1553,1564 **** +--- 1553,1568 ---- + ins_ctrl_v() + { + int c; ++ int did_putchar = FALSE; + + /* may need to redraw when no more chars available now */ + ins_redraw(FALSE); + + if (redrawing() && !char_avail()) ++ { + edit_putchar('^', TRUE); ++ did_putchar = TRUE; ++ } + AppendToRedobuff((char_u *)CTRL_V_STR); /* CTRL-V */ + + #ifdef FEAT_CMDL_INFO +*************** +*** 1566,1573 **** + #endif + + c = get_literal(); +! edit_unputchar(); /* when line fits in 'columns' the '^' is at the start +! of the next line and will not be redrawn */ + #ifdef FEAT_CMDL_INFO + clear_showcmd(); + #endif +--- 1570,1579 ---- + #endif + + c = get_literal(); +! if (did_putchar) +! /* when the line fits in 'columns' the '^' is at the start of the next +! * line and will not removed by the redraw */ +! edit_unputchar(); + #ifdef FEAT_CMDL_INFO + clear_showcmd(); + #endif +*************** +*** 9637,9642 **** +--- 9643,9649 ---- + { + int c; + int cc; ++ int did_putchar = FALSE; + + pc_status = PC_STATUS_UNSET; + if (redrawing() && !char_avail()) +*************** +*** 9645,9650 **** +--- 9652,9658 ---- + ins_redraw(FALSE); + + edit_putchar('?', TRUE); ++ did_putchar = TRUE; + #ifdef FEAT_CMDL_INFO + add_to_showcmd_c(Ctrl_K); + #endif +*************** +*** 9661,9668 **** + c = plain_vgetc(); + --no_mapping; + --allow_keys; +! edit_unputchar(); /* when line fits in 'columns' the '?' is at the start +! of the next line and will not be redrawn */ + + if (IS_SPECIAL(c) || mod_mask) /* special key */ + { +--- 9669,9678 ---- + c = plain_vgetc(); + --no_mapping; + --allow_keys; +! if (did_putchar) +! /* when the line fits in 'columns' the '?' is at the start of the next +! * line and will not be removed by the redraw */ +! edit_unputchar(); + + if (IS_SPECIAL(c) || mod_mask) /* special key */ + { +*************** +*** 9674,9679 **** +--- 9684,9690 ---- + } + if (c != ESC) + { ++ did_putchar = FALSE; + if (redrawing() && !char_avail()) + { + /* may need to redraw when no more chars available now */ +*************** +*** 9681,9691 **** + + if (char2cells(c) == 1) + { +- /* first remove the '?', otherwise it's restored when typing +- * an ESC next */ +- edit_unputchar(); + ins_redraw(FALSE); + edit_putchar(c, TRUE); + } + #ifdef FEAT_CMDL_INFO + add_to_showcmd_c(c); +--- 9692,9700 ---- + + if (char2cells(c) == 1) + { + ins_redraw(FALSE); + edit_putchar(c, TRUE); ++ did_putchar = TRUE; + } + #ifdef FEAT_CMDL_INFO + add_to_showcmd_c(c); +*************** +*** 9696,9703 **** + cc = plain_vgetc(); + --no_mapping; + --allow_keys; +! edit_unputchar(); /* when line fits in 'columns' the '?' is at the +! start of the next line and will not be redrawn */ + if (cc != ESC) + { + AppendToRedobuff((char_u *)CTRL_V_STR); +--- 9705,9714 ---- + cc = plain_vgetc(); + --no_mapping; + --allow_keys; +! if (did_putchar) +! /* when the line fits in 'columns' the '?' is at the start of the +! * next line and will not be removed by a redraw */ +! edit_unputchar(); + if (cc != ESC) + { + AppendToRedobuff((char_u *)CTRL_V_STR); +*** ../vim-7.3.180/src/version.c 2011-05-10 13:38:23.000000000 +0200 +--- src/version.c 2011-05-10 14:20:40.000000000 +0200 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 181, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +74. Your most erotic dreams are about cybersex + + /// 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 ///