branch: elpa/flycheck
commit 8c2ad7e0d9162b065c865dd5cb34fe8313c8fb0a
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>
Preserve match data in idle trigger timer handler
Wrap `flycheck--handle-idle-trigger` in `save-match-data` to prevent
the idle timer from clobbering Emacs's match data, which can interfere
with other code. This follows the same pattern already used in
`flycheck-handle-change`.
Fixes #1805
---
flycheck.el | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/flycheck.el b/flycheck.el
index e5af971958..56ad03bdd5 100644
--- a/flycheck.el
+++ b/flycheck.el
@@ -3492,17 +3492,18 @@ The syntax check is deferred if FORCE-DEFERRED is
non-nil, or if
(defun flycheck--handle-idle-trigger (buffer)
"Run a syntax check in BUFFER if appropriate.
This function is called by `flycheck--idle-trigger-timer'."
- (let ((current-buffer (current-buffer)))
- (when (buffer-live-p buffer)
- (with-current-buffer buffer
- (unless (or flycheck-buffer-switch-check-intermediate-buffers
- (eq buffer current-buffer))
- (setq flycheck--idle-trigger-conditions
- (delq 'idle-buffer-switch
- flycheck--idle-trigger-conditions)))
- (when flycheck--idle-trigger-conditions
- (flycheck-buffer-automatically flycheck--idle-trigger-conditions)
- (setq flycheck--idle-trigger-conditions nil))))))
+ (save-match-data
+ (let ((current-buffer (current-buffer)))
+ (when (buffer-live-p buffer)
+ (with-current-buffer buffer
+ (unless (or flycheck-buffer-switch-check-intermediate-buffers
+ (eq buffer current-buffer))
+ (setq flycheck--idle-trigger-conditions
+ (delq 'idle-buffer-switch
+ flycheck--idle-trigger-conditions)))
+ (when flycheck--idle-trigger-conditions
+ (flycheck-buffer-automatically flycheck--idle-trigger-conditions)
+ (setq flycheck--idle-trigger-conditions nil)))))))
(defun flycheck-handle-change (beg end _len)
"Handle a buffer change between BEG and END.