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");
 }