vim-patch:8.1.2053: SafeStateAgain not triggered if callback uses feedkeys()

Problem:    SafeStateAgain not triggered if callback uses feedkeys().
Solution:   Check for safe state in the input loop.  Make log messages easier
            to find. Add 'S' flag to state().

d103ee7843

Include misc1.c change from patch 8.1.2062.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq
2023-08-21 12:16:33 +08:00
parent a0b912c6ec
commit 7ce2acd59b
7 changed files with 41 additions and 18 deletions

View File

@@ -10471,13 +10471,16 @@ M.funcs = {
added. E.g, this checks if the screen has scrolled: >vim
if state('s') != ''
These characters indicate the state:
These characters indicate the state, generally indicating that
something is busy:
m halfway a mapping, :normal command, feedkeys() or
stuffed command
o operator pending or waiting for a command argument
a Insert mode autocomplete active
x executing an autocommand
c callback invoked (repeats for recursiveness up to "ccc")
S not triggering SafeState
c callback invoked, including timer (repeats for
recursiveness up to "ccc")
s screen has scrolled for messages
]=],
name = 'state',