To: vim_dev@googlegroups.com Subject: Patch 8.0.0710 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.0710 Problem: A job that writes to a buffer clears command line completion. (Ramel Eshed) Solution: Do not redraw while showing the completion menu. Files: src/screen.c *** ../vim-8.0.0709/src/screen.c 2017-06-28 20:45:22.289088662 +0200 --- src/screen.c 2017-07-12 20:22:52.495348211 +0200 *************** *** 275,280 **** --- 275,284 ---- { win_T *wp; + if (wild_menu_showing != 0) + /* Don't redraw while the command line completion is displayed, it + * would disappear. */ + return; FOR_ALL_WINDOWS(wp) { if (wp->w_buffer == buf) *************** *** 444,465 **** ; /* do nothing */ else if (State & CMDLINE) { ! /* Redrawing only works when the screen didn't scroll. */ ! if (msg_scrolled == 0) ! { update_screen(0); ! compute_cmdrow(); ! } ! else ! { ! /* Redraw in the same position, so that the user can continue ! * editing the command. */ ! compute_cmdrow(); ! if (cmdline_row > msg_scrolled) ! cmdline_row -= msg_scrolled; ! else ! cmdline_row = 0; ! } redrawcmdline_ex(FALSE); } else if (State & (NORMAL | INSERT)) --- 448,459 ---- ; /* do nothing */ else if (State & CMDLINE) { ! /* Redrawing only works when the screen didn't scroll. Don't clear ! * wildmenu entries. */ ! if (msg_scrolled == 0 && wild_menu_showing == 0) update_screen(0); ! /* Redraw in the same position, so that the user can continue ! * editing the command. */ redrawcmdline_ex(FALSE); } else if (State & (NORMAL | INSERT)) *************** *** 9417,9425 **** /* ! * insert 'line_count' lines at 'row' in window 'wp' ! * if 'invalid' is TRUE the wp->w_lines[].wl_lnum is invalidated. ! * if 'mayclear' is TRUE the screen will be cleared if it is faster than * scrolling. * Returns FAIL if the lines are not inserted, OK for success. */ --- 9411,9419 ---- /* ! * Insert 'line_count' lines at 'row' in window 'wp'. ! * If 'invalid' is TRUE the wp->w_lines[].wl_lnum is invalidated. ! * If 'mayclear' is TRUE the screen will be cleared if it is faster than * scrolling. * Returns FAIL if the lines are not inserted, OK for success. */ *************** *** 9502,9508 **** } /* ! * delete "line_count" window lines at "row" in window "wp" * If "invalid" is TRUE curwin->w_lines[] is invalidated. * If "mayclear" is TRUE the screen will be cleared if it is faster than * scrolling --- 9496,9502 ---- } /* ! * Delete "line_count" window lines at "row" in window "wp". * If "invalid" is TRUE curwin->w_lines[] is invalidated. * If "mayclear" is TRUE the screen will be cleared if it is faster than * scrolling *** ../vim-8.0.0709/src/version.c 2017-07-11 22:34:47.527932090 +0200 --- src/version.c 2017-07-12 20:22:01.119745701 +0200 *************** *** 766,767 **** --- 766,769 ---- { /* Add new patch number below this line */ + /**/ + 710, /**/ -- hundred-and-one symptoms of being an internet addict: 143. You dream in pallettes of 216 websafe colors. /// 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 ///