branch: externals/tmr
commit bf9c46ad1e7dbf21ea390dcafa4d840e8b807eb1
Author: Damien Cassou <dam...@cassou.me>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    tmr: Add tmr-clone to create a timer from an existing one
---
 tmr.el | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/tmr.el b/tmr.el
index a29c577e02..583f191445 100644
--- a/tmr.el
+++ b/tmr.el
@@ -335,9 +335,10 @@ Optionally include DESCRIPTION."
 (defvar tmr--duration-hist '()
   "Minibuffer history of `tmr' durations.")
 
-(defun tmr--read-duration ()
-  "Ask the user to type a duration."
-  (let ((def (nth 0 tmr--duration-hist)))
+(defun tmr--read-duration (&optional default)
+  "Ask the user to type a duration.
+If DEFAULT is provided, use that as a default."
+  (let ((def (or default (nth 0 tmr--duration-hist))))
     (read-string
      (if def
          (format "N minutes for timer (append `h' or `s' for other units) 
[%s]: " def)
@@ -409,5 +410,13 @@ user uses a prefix argument (\\[universal-argument])."
     (tmr--description-prompt)))
   (tmr time description))
 
+;;;###autoload
+(defun tmr-clone (timer)
+  "Create a new timer by cloning TIMER."
+  (interactive (list (tmr--read-timer)))
+  (tmr (tmr--read-duration
+        (format "%ss" (tmr--timer-duration timer)))
+       (tmr--timer-description timer)))
+
 (provide 'tmr)
 ;;; tmr.el ends here

Reply via email to