forked from aniani/vim
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.
This commit is contained in:
parent
0e57dd859e
commit
37d1807a80
@ -2103,7 +2103,7 @@ parse_queued_messages(void)
|
|||||||
// When not nested we'll go back to waiting for a typed character. If it
|
// When not nested we'll go back to waiting for a typed character. If it
|
||||||
// was safe before then this triggers a SafeStateAgain autocommand event.
|
// was safe before then this triggers a SafeStateAgain autocommand event.
|
||||||
if (entered == 1)
|
if (entered == 1)
|
||||||
leave_unsafe_state();
|
may_trigger_safestateagain();
|
||||||
|
|
||||||
may_garbage_collect = save_may_garbage_collect;
|
may_garbage_collect = save_may_garbage_collect;
|
||||||
|
|
||||||
|
14
src/main.c
14
src/main.c
@ -1061,6 +1061,11 @@ may_trigger_safestate(int safe)
|
|||||||
&& scriptin[curscript] == NULL
|
&& scriptin[curscript] == NULL
|
||||||
&& !global_busy;
|
&& !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)
|
if (is_safe)
|
||||||
apply_autocmds(EVENT_SAFESTATE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_SAFESTATE, NULL, NULL, FALSE, curbuf);
|
||||||
was_safe = is_safe;
|
was_safe = is_safe;
|
||||||
@ -1074,6 +1079,8 @@ may_trigger_safestate(int safe)
|
|||||||
void
|
void
|
||||||
state_no_longer_safe(void)
|
state_no_longer_safe(void)
|
||||||
{
|
{
|
||||||
|
if (was_safe)
|
||||||
|
ch_log(NULL, "safe state reset");
|
||||||
was_safe = FALSE;
|
was_safe = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1082,10 +1089,15 @@ state_no_longer_safe(void)
|
|||||||
* SafeStateAgain, if it was safe when starting to wait for a character.
|
* SafeStateAgain, if it was safe when starting to wait for a character.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
leave_unsafe_state(void)
|
may_trigger_safestateagain(void)
|
||||||
{
|
{
|
||||||
if (was_safe)
|
if (was_safe)
|
||||||
|
{
|
||||||
|
ch_log(NULL, "Leaving unsafe area, triggering SafeStateAgain");
|
||||||
apply_autocmds(EVENT_SAFESTATEAGAIN, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_SAFESTATEAGAIN, NULL, NULL, FALSE, curbuf);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ch_log(NULL, "Leaving unsafe area, not triggering SafeStateAgain");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ int is_not_a_term(void);
|
|||||||
int op_pending(void);
|
int op_pending(void);
|
||||||
void may_trigger_safestate(int safe);
|
void may_trigger_safestate(int safe);
|
||||||
void state_no_longer_safe(void);
|
void state_no_longer_safe(void);
|
||||||
void leave_unsafe_state(void);
|
void may_trigger_safestateagain(void);
|
||||||
void main_loop(int cmdwin, int noexmode);
|
void main_loop(int cmdwin, int noexmode);
|
||||||
void getout_preserve_modified(int exitval);
|
void getout_preserve_modified(int exitval);
|
||||||
void getout(int exitval);
|
void getout(int exitval);
|
||||||
|
@ -757,6 +757,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2048,
|
||||||
/**/
|
/**/
|
||||||
2047,
|
2047,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user