diff options
author | Gnus developers <ding@gnus.org> | 2012-01-28 02:25:57 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2012-01-28 02:25:57 +0000 |
commit | 39ddff397cb6bb1a57dca74f67e590d8eeb07f99 (patch) | |
tree | d8b52f1c735c57743be21ff7229ce446d9dd4756 /lisp/gnus/gnus-demon.el | |
parent | 0f2bad27087f219b48a06a6b0f9ed8a78452a6f5 (diff) | |
download | emacs-39ddff397cb6bb1a57dca74f67e590d8eeb07f99.tar.gz |
Merge changes made in Gnus trunk
shr.el (shr-browse-url): Fix the name of the `browse-url-mail' function call.
gnus-demon.el (gnus-demon-run-callback, gnus-demon-init): Convert to seconds, and make the repeat clause with HH:MM specs work as documented.
Diffstat (limited to 'lisp/gnus/gnus-demon.el')
-rw-r--r-- | lisp/gnus/gnus-demon.el | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el index 2f9952241aa..c91c725658a 100644 --- a/lisp/gnus/gnus-demon.el +++ b/lisp/gnus/gnus-demon.el @@ -102,6 +102,7 @@ Emacs has been idle for IDLE `gnus-demon-timestep's." "Run FUNC if Emacs has been idle for longer than IDLE seconds." (unless gnus-inhibit-demon (when (or (not idle) + (and (eq idle t) (> (gnus-demon-idle-since) 0)) (<= idle (gnus-demon-idle-since))) (with-local-quit (ignore-errors @@ -115,6 +116,7 @@ Emacs has been idle for IDLE `gnus-demon-timestep's." ;; Set up the timer. (let* ((func (nth 0 handler)) (time (nth 1 handler)) + (time-type (type-of time)) (idle (nth 2 handler)) ;; Compute time according with timestep. ;; If t, replace by 1 @@ -123,33 +125,32 @@ Emacs has been idle for IDLE `gnus-demon-timestep's." ((null time) nil) ((stringp time) - (gnus-demon-time-to-step time)) + (* (gnus-demon-time-to-step time) gnus-demon-timestep)) (t (* time gnus-demon-timestep)))) + (idle (if (numberp idle) + (* idle gnus-demon-timestep) + idle)) + (timer (cond - ;; (func number t) - ;; Call when Emacs has been idle for `time' - ((and (numberp time) (eq idle t)) - (run-with-timer time time 'gnus-demon-run-callback func time)) - ;; (func number number) - ;; Call every `time' when Emacs has been idle for `idle' - ((and (numberp time) (numberp idle)) - (run-with-timer time time 'gnus-demon-run-callback func idle)) ;; (func nil number) ;; Only call when Emacs has been idle for `idle' ((and (null time) (numberp idle)) (run-with-idle-timer (* idle gnus-demon-timestep) t 'gnus-demon-run-callback func)) - ;; (func number nil) + ;; (func number any) ;; Call every `time' - ((and (numberp time) (null idle)) - (run-with-timer time time 'gnus-demon-run-callback func))))) + ((eq time-type 'integer) + (run-with-timer time time 'gnus-demon-run-callback func idle)) + ;; (func string any) + ((eq time-type 'string) + (run-with-timer time (* 24 60 60) 'gnus-demon-run-callback func idle))))) (when timer (add-to-list 'gnus-demon-timers timer))))) (defun gnus-demon-time-to-step (time) - "Find out how many seconds to TIME, which is on the form \"17:43\"." + "Find out how many steps to TIME, which is on the form \"17:43\"." (let* ((now (current-time)) ;; obtain NOW as discrete components -- make a vector for speed (nowParts (decode-time now)) |