UI/cleanup: Remove most redraw_later_clear() calls

Vim :! may "mess up the screen" because of e.g. switching between cooked
mode, but Nvim just uses pipes. So maybe we can avoid these
redraw_later_clear() CYA calls.
This commit is contained in:
Justin M. Keyes 2018-09-10 09:47:04 +02:00
parent 931e15471c
commit 31c3d54668
4 changed files with 2 additions and 19 deletions

View File

@ -1176,16 +1176,6 @@ static void do_filter(
cmd_buf = make_filter_cmd(cmd, itmp, otmp); cmd_buf = make_filter_cmd(cmd, itmp, otmp);
ui_cursor_goto((int)Rows - 1, 0); ui_cursor_goto((int)Rows - 1, 0);
/*
* When not redirecting the output the command can write anything to the
* screen. If 'shellredir' is equal to ">", screen may be messed up by
* stderr output of external command. Clear the screen later.
* If do_in is FALSE, this could be something like ":r !cat", which may
* also mess up the screen, clear it later.
*/
if (!do_out || STRCMP(p_srr, ">") == 0 || !do_in)
redraw_later_clear();
if (do_out) { if (do_out) {
if (u_save((linenr_T)(line2), (linenr_T)(line2 + 1)) == FAIL) { if (u_save((linenr_T)(line2), (linenr_T)(line2 + 1)) == FAIL) {
xfree(cmd_buf); xfree(cmd_buf);

View File

@ -6342,9 +6342,7 @@ static void ex_hide(exarg_T *eap)
} }
} }
/* /// ":stop" and ":suspend": Suspend Vim.
* ":stop" and ":suspend": Suspend Vim.
*/
static void ex_stop(exarg_T *eap) static void ex_stop(exarg_T *eap)
{ {
// Disallow suspending in restricted mode (-Z) // Disallow suspending in restricted mode (-Z)
@ -6363,7 +6361,6 @@ static void ex_stop(exarg_T *eap)
ui_flush(); ui_flush();
maketitle(); maketitle();
resettitle(); // force updating the title resettitle(); // force updating the title
redraw_later_clear();
ui_refresh(); // may have resized window ui_refresh(); // may have resized window
apply_autocmds(EVENT_VIMRESUME, NULL, NULL, false, NULL); apply_autocmds(EVENT_VIMRESUME, NULL, NULL, false, NULL);
} }

View File

@ -419,7 +419,6 @@ int mch_expand_wildcards(int num_pat, char_u **pat, int *num_file,
xfree(tempname); xfree(tempname);
// With interactive completion, the error message is not printed. // With interactive completion, the error message is not printed.
if (!(flags & EW_SILENT)) { if (!(flags & EW_SILENT)) {
redraw_later_clear(); // probably messed up screen
msg_putchar('\n'); // clear bottom line quickly msg_putchar('\n'); // clear bottom line quickly
#if SIZEOF_LONG > SIZEOF_INT #if SIZEOF_LONG > SIZEOF_INT
assert(Rows <= (long)INT_MAX + 1); assert(Rows <= (long)INT_MAX + 1);

View File

@ -158,10 +158,7 @@ void redraw_win_later(win_T *wp, int type)
} }
} }
/* /// Forces a complete redraw later. Also resets the highlighting.
* Force a complete redraw later. Also resets the highlighting. To be used
* after executing a shell command that messes up the screen.
*/
void redraw_later_clear(void) void redraw_later_clear(void)
{ {
redraw_all_later(CLEAR); redraw_all_later(CLEAR);