Mercurial > vim
changeset 4391:71fa86c8fd4a v7.3.944
updated for version 7.3.944
Problem: External program receives the termrespone.
Solution: Insert a delay and discard input. (Hayaki Saito)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Mon, 13 May 2013 20:26:53 +0200 |
parents | 738f2bad1c46 |
children | 430672fe7d54 |
files | src/term.c src/version.c |
diffstat | 2 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/term.c +++ b/src/term.c @@ -3253,9 +3253,19 @@ stoptermcap() if (!gui.in_use && !gui.starting) # endif { - /* May need to check for T_CRV response. */ + /* May need to discard T_CRV or T_U7 response. */ if (crv_status == CRV_SENT || u7_status == U7_SENT) - (void)vpeekc_nomap(); + { +# ifdef UNIX + /* Give the terminal a chance to respond. */ + mch_delay(100L, FALSE); +# endif +# ifdef TCIFLUSH + /* Discard data received but not read. */ + if (exiting) + tcflush(fileno(stdin), TCIFLUSH); +# endif + } /* Check for termcodes first, otherwise an external program may * get them. */ check_for_codes_from_term();