Mercurial > vim
changeset 964:e905716f6a3a v7.0.090
updated for version 7.0-090
author | vimboss |
---|---|
date | Tue, 05 Sep 2006 18:57:57 +0000 |
parents | 7644c80ca87b |
children | 2bebfa810a66 |
files | src/misc1.c src/version.c |
diffstat | 2 files changed, 12 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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;