From 7ce2acd59be89e5e6d2ac778ad074a9ae42951cd Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 21 Aug 2023 12:16:33 +0800 Subject: 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(). https://github.com/vim/vim/commit/d103ee78432f9036d243b18dd5aac1263d3b7dc9 Include misc1.c change from patch 8.1.2062. Co-authored-by: Bram Moolenaar --- src/nvim/eval.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/nvim/eval.lua') diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index f244d26375..64b875c981 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -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', -- cgit