# HG changeset patch # User vimboss # Date 1157482677 0 # Node ID e905716f6a3aaba3c0ba1d18093d4f4f09550524 # Parent 7644c80ca87b75a7dd85a7b4089e74bf5c503f3c updated for version 7.0-090 diff --git a/src/misc1.c b/src/misc1.c --- a/src/misc1.c +++ b/src/misc1.c @@ -3016,6 +3016,7 @@ get_keystroke() int len = 0; int n; int save_mapped_ctrl_c = mapped_ctrl_c; + int waited = 0; mapped_ctrl_c = FALSE; /* mappings are not used here */ for (;;) @@ -3034,11 +3035,16 @@ get_keystroke() /* Replace zero and CSI by a special key code. */ n = fix_input_buffer(buf + len, n, FALSE); len += n; - } - - /* incomplete termcode: get more characters */ - if ((n = check_termcode(1, buf, len)) < 0) + waited = 0; + } + else if (len > 0) + ++waited; /* keep track of the waiting time */ + + /* Incomplete termcode and not timed out yet: get more characters */ + if ((n = check_termcode(1, buf, len)) < 0 + && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm))) continue; + /* found a termcode: adjust length */ if (n > 0) len = n; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 90, +/**/ 89, /**/ 88,