diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-05-13 20:26:53 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-05-13 20:26:53 +0200 |
commit | 29607acff640183682cd4ecb6c65985a7897bd51 (patch) | |
tree | f23ed95bc5466532350316ee41c132e5d0927764 | |
parent | bd80f35bc59442894a4ec56aefb0137cb0a350fa (diff) | |
download | vim-29607acff640183682cd4ecb6c65985a7897bd51.zip |
updated for version 7.3.944
Problem: External program receives the termrespone.
Solution: Insert a delay and discard input. (Hayaki Saito)
-rw-r--r-- | src/term.c | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/term.c b/src/term.c index 87e2e8b01..97bf62ac4 100644 --- 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(); diff --git a/src/version.c b/src/version.c index 63476f7bc..264d369e1 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 944, +/**/ 943, /**/ 942, |