patch 9.1.0231: Filetype may be undetected when SwapExists sets ft in other buf
Problem: Filetype may be undetected when a SwapExists autocommand sets
filetype in another buffer.
Solution: Make filetype detection state buffer-specific. Also fix a
similar problem for 'modified' (zeertzjq).
closes: #14344
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/structs.h b/src/structs.h
index 0d3f60a..2218de7 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -3133,6 +3133,19 @@
int b_marks_read; // Have we read viminfo marks yet?
#endif
+ int b_modified_was_set; // did ":set modified"
+ int b_did_filetype; // FileType event found
+ int b_keep_filetype; // value for did_filetype when starting
+ // to execute autocommands
+
+ // Set by the apply_autocmds_group function if the given event is equal to
+ // EVENT_FILETYPE. Used by the readfile function in order to determine if
+ // EVENT_BUFREADPOST triggered the EVENT_FILETYPE.
+ //
+ // Relying on this value requires one to reset it prior calling
+ // apply_autocmds_group().
+ int b_au_did_filetype;
+
/*
* The following only used in undo.c.
*/