From f1e0d9a1793502dffc492bbe1888a1f35a9475a4 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 31 Jul 2024 04:52:08 -0400 Subject: [PATCH] (vhdl-run-when-idle): Don't use `timer--triggered` * lisp/progmodes/vhdl-mode.el (vhdl-run-when-idle): Avoid relying needlessly on internal accessor and fix last change to make sure we always create a timer. (cherry picked from commit 44c9c2c8456117625ec8a54d4a6908404e483f83) --- lisp/progmodes/vhdl-mode.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 2c4b83bed23..bf309500a38 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -2338,11 +2338,13 @@ Ignore byte-compiler warnings you might see." (defun vhdl-run-when-idle (secs repeat function) "Wait until idle, then run FUNCTION." - (if (fboundp 'start-itimer) + (if (fboundp 'start-itimer) ;;XEmacs (start-itimer "vhdl-mode" function secs repeat t) ;; explicitly activate timer (necessary when Emacs is already idle) - (when (featurep 'xemacs) - (aset (run-with-idle-timer secs repeat function) 0 nil)))) + (let ((timer (run-with-idle-timer secs repeat function))) + ;; `run-with-idle-timer' already sets the `triggered' flag to nil, + ;; at least since Emacs-24. + (if (< emacs-major-version 24) (aset timer 0 nil))))) (defun vhdl-warning-when-idle (&rest args) "Wait until idle, then print out warning STRING and beep." -- 2.39.5