Mercurial > vim
diff src/main.c @ 18106:b456bba1276a v8.1.2048
patch 8.1.2048: not clear why SafeState and SafeStateAgain are not triggered
Commit: https://github.com/vim/vim/commit/37d1807a801d5296f00b3ac85a38b26cfe6de55c
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Sep 17 20:28:38 2019 +0200
patch 8.1.2048: not clear why SafeState and SafeStateAgain are not triggered
Problem: Not clear why SafeState and SafeStateAgain are not triggered.
Solution: Add log statements.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 17 Sep 2019 20:30:04 +0200 |
parents | e59ff7b5d7a7 |
children | 76126690dd92 |
line wrap: on
line diff
--- a/src/main.c +++ b/src/main.c @@ -1061,6 +1061,11 @@ may_trigger_safestate(int safe) && scriptin[curscript] == NULL && !global_busy; + if (was_safe != is_safe) + // Only log when the state changes, otherwise it happens at nearly + // every key stroke. + ch_log(NULL, is_safe ? "Start triggering SafeState" + : "Stop triggering SafeState"); if (is_safe) apply_autocmds(EVENT_SAFESTATE, NULL, NULL, FALSE, curbuf); was_safe = is_safe; @@ -1074,6 +1079,8 @@ may_trigger_safestate(int safe) void state_no_longer_safe(void) { + if (was_safe) + ch_log(NULL, "safe state reset"); was_safe = FALSE; } @@ -1082,10 +1089,15 @@ state_no_longer_safe(void) * SafeStateAgain, if it was safe when starting to wait for a character. */ void -leave_unsafe_state(void) +may_trigger_safestateagain(void) { if (was_safe) + { + ch_log(NULL, "Leaving unsafe area, triggering SafeStateAgain"); apply_autocmds(EVENT_SAFESTATEAGAIN, NULL, NULL, FALSE, curbuf); + } + else + ch_log(NULL, "Leaving unsafe area, not triggering SafeStateAgain"); }