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

@@ -8760,13 +8760,16 @@ function vim.fn.srand(expr) end
--- 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
---
--- @param what? string