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