Mercurial > vim
diff runtime/doc/eval.txt @ 11639:71d7b5ed08a0 v8.0.0702
patch 8.0.0702: an error in a timer can make Vim unusable
commit https://github.com/vim/vim/commit/c577d813b7978345dec4310b2d8f5d5624a681f6
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jul 8 22:37:34 2017 +0200
patch 8.0.0702: an error in a timer can make Vim unusable
Problem: An error in a timer can make Vim unusable.
Solution: Don't set the error flag or exception from a timer. Stop a timer
if it causes an error 3 out of 3 times. Discard an exception
caused inside a timer.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 08 Jul 2017 22:45:03 +0200 |
parents | 6f11697fb92c |
children | 49c12c93abf3 |
line wrap: on
line diff
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 8.0. Last change: 2017 Jun 25 +*eval.txt* For Vim version 8.0. Last change: 2017 Jul 08 VIM REFERENCE MANUAL by Bram Moolenaar @@ -4189,14 +4189,14 @@ getchar([expr]) *getchar()* not consumed. Return zero if no character available. Without [expr] and when [expr] is 0 a whole character or - special key is returned. If it is an 8-bit character, the + special key is returned. If it is a single character, the result is a number. Use nr2char() to convert it to a String. Otherwise a String is returned with the encoded character. - For a special key it's a sequence of bytes starting with 0x80 - (decimal: 128). This is the same value as the string - "\<Key>", e.g., "\<Left>". The returned value is also a - String when a modifier (shift, control, alt) was used that is - not included in the character. + For a special key it's a String with a sequence of bytes + starting with 0x80 (decimal: 128). This is the same value as + the String "\<Key>", e.g., "\<Left>". The returned value is + also a String when a modifier (shift, control, alt) was used + that is not included in the character. When [expr] is 0 and Esc is typed, there will be a short delay while Vim waits to see if this is the start of an escape @@ -8017,6 +8017,10 @@ timer_start({time}, {callback} [, {optio "repeat" Number of times to repeat calling the callback. -1 means forever. When not present the callback will be called once. + If the timer causes an error three times in a + row the repeat is cancelled. This avoids that + Vim becomes unusable because of all the error + messages. Example: > func MyHandler(timer)