[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/tmr 4d8c70530c 1/7: tmr-cancel: Fix
From: |
ELPA Syncer |
Subject: |
[elpa] externals/tmr 4d8c70530c 1/7: tmr-cancel: Fix |
Date: |
Wed, 11 May 2022 04:57:55 -0400 (EDT) |
branch: externals/tmr
commit 4d8c70530ce87a3bf76d2d4e383628abdc6d8e99
Author: Damien Cassou <damien@cassou.me>
Commit: Protesilaos Stavrou <info@protesilaos.com>
tmr-cancel: Fix
The code was broken after commit 2fc61f9 which was merged by mistake:
2fc61f95950b564cb3ceefe57f1fec339adc2969
Author: Damien Cassou <damien@cassou.me>
AuthorDate: Sat May 7 22:39:20 2022 +0200
Commit: Protesilaos Stavrou <info@protesilaos.com>
CommitDate: Sun May 8 06:48:45 2022 +0300
WIP: Create tabulated-list view + use a struct for tmr--timers
---
tmr.el | 49 +++++++++++++++++++++++++++----------------------
1 file changed, 27 insertions(+), 22 deletions(-)
diff --git a/tmr.el b/tmr.el
index d7853c163f..929c6aa8fd 100644
--- a/tmr.el
+++ b/tmr.el
@@ -259,29 +259,34 @@ Read: (info \"(elisp) Desktop Notifications\") for
details."
"List of timer objects.
Populated by `tmr' and then operated on by `tmr-cancel'.")
-;; FIXME 2022-05-08: Need to be refactored per commit 2fc61f9.
+(defun tmr--get-timer-by-creation-date (creation-date)
+ "Return the timer which was started at CREATION-DATE."
+ (cl-find creation-date tmr--timers :key #'tmr--timer-creation-date))
+
;;;###autoload
-(defun tmr-cancel ()
- "Cancel timer object set with `tmr' command.
-If there is a single timer, cancel it outright. If there are
-multiple timers, prompt for one with completion."
- (interactive)
- (if-let ((timers tmr--timers))
- (cond
- ((= (length timers) 1)
- (let ((cell (car timers)))
- (cancel-timer (cdr cell))
- (tmr--log-in-buffer (format "CANCELLED <<%s>>" (car cell)))
- (setq tmr--timers nil)))
- ((> (length timers) 1)
- (let* ((selection (completing-read "Cancel timer: " (mapc #'car
timers) nil t))
- (cell (assoc selection timers #'string-match-p))
- (key (car cell))
- (object (cdr cell)))
- (cancel-timer object)
- (tmr--log-in-buffer (format "CANCELLED <<%s>>" key))
- (setq tmr--timers (delete cell tmr--timers)))))
- (user-error "No `tmr' to cancel")))
+(defun tmr-cancel (timer)
+ "Cancel TIMER object set with `tmr' command.
+Interactively, let the user choose which timer to cancel with
+completion."
+ (interactive (list (tmr--read-timer)))
+ (if (not timer)
+ (user-error "No `tmr' to cancel")
+ (cancel-timer (tmr--timer-timer-object timer))
+ (tmr--log-in-buffer (format "CANCELLED <<%s>>" (tmr--long-description
timer)))
+ (setq tmr--timers (cl-delete timer tmr--timers))))
+
+(defun tmr--read-timer ()
+ "Let the user choose a timer among all timers. Return the selected timer.
+If there is a single timer, use that. If there are multiple
+timers, prompt for one with completion. If there are no timers,
+return nil."
+ (cond
+ ((= (length tmr--timers) 1)
+ (car timers))
+ ((> (length tmr--timers) 1)
+ (let* ((timer-descriptions (mapcar #'tmr--long-description tmr--timers))
+ (selection (completing-read "Timer: " timer-descriptions nil t)))
+ (cl-find selection tmr--timers :test #'string= :key
#'tmr--long-description)))))
(defun tmr--echo-area (time &optional description)
"Produce `message' for current `tmr' TIME.
- [elpa] externals/tmr updated (4bf30baacb -> d8071f7476), ELPA Syncer, 2022/05/11
- [elpa] externals/tmr 41c44c2154 3/7: tmr-tabulated: Bind "k" to the new tmr-tabulated-cancel command, ELPA Syncer, 2022/05/11
- [elpa] externals/tmr 81aa6ce65c 6/7: Use forward-line instead of {next, previous}-line, ELPA Syncer, 2022/05/11
- [elpa] externals/tmr 15089d145e 2/7: tmr-tabulated: Add documentation to the Commentary section, ELPA Syncer, 2022/05/11
- [elpa] externals/tmr b240741a14 4/7: Add Damien Cassou as author, ELPA Syncer, 2022/05/11
- [elpa] externals/tmr 4d8c70530c 1/7: tmr-cancel: Fix,
ELPA Syncer <=
- [elpa] externals/tmr d8071f7476 7/7: Use let bound variable in tmr--read-timer, ELPA Syncer, 2022/05/11
- [elpa] externals/tmr 90526a0310 5/7: Fix placement of comma for Authors, ELPA Syncer, 2022/05/11