]> git.eshelyaron.com Git - emacs.git/commitdiff
Re-introduce variable for world clock timer
authorStefan Kangas <stefan@marxist.se>
Sat, 24 Oct 2020 13:47:26 +0000 (15:47 +0200)
committerStefan Kangas <stefan@marxist.se>
Sat, 24 Oct 2020 13:49:20 +0000 (15:49 +0200)
* lisp/time.el (world-clock--timer): New variable.
(world-clock): Save timer to above variable when it is started.
(world-clock-cancel-timer): Delete timer saved in variable instead of
searching for the function name.

lisp/time.el

index 63773d420486d32f041fd65e8acd6dfad3385900..519c96242ddb6168ac87a5afb08c816670e109e7 100644 (file)
@@ -531,6 +531,9 @@ See `world-clock'."
   (setq-local revert-buffer-function #'world-clock-update)
   (setq show-trailing-whitespace nil))
 
+(defvar world-clock--timer nil
+  "The current world clock timer.")
+
 (defun world-clock-display (alist)
   "Replace current buffer text with times in various zones, based on ALIST."
   (let ((inhibit-read-only t)
@@ -571,7 +574,8 @@ To turn off the world time display, go to the window and type `\\[quit-window]'.
       (pop-to-buffer buffer)
     (pop-to-buffer world-clock-buffer-name)
     (when world-clock-timer-enable
-      (run-at-time t world-clock-timer-second #'world-clock-update)
+      (setq world-clock--timer
+            (run-at-time t world-clock-timer-second #'world-clock-update))
       (add-hook 'kill-buffer-hook #'world-clock-cancel-timer nil t)))
   (world-clock-display (time--display-world-list))
   (world-clock-mode)
@@ -579,12 +583,9 @@ To turn off the world time display, go to the window and type `\\[quit-window]'.
 
 (defun world-clock-cancel-timer ()
   "Cancel the world clock timer."
-  (let ((list timer-list))
-    (while list
-      (let ((elt (pop list)))
-        (when (equal (symbol-name (timer--function elt))
-                     "world-clock-update")
-          (cancel-timer elt))))))
+  (when world-clock--timer
+    (cancel-timer world-clock--timer)
+    (setq world-clock--timer nil))))
 
 (defun world-clock-update (&optional _arg _noconfirm)
   "Update the `world-clock' buffer."