From 01d7165531bc3fed36cf68d95d0283c6b0f6b8ee Mon Sep 17 00:00:00 2001 From: yamaoka Date: Fri, 12 Dec 2003 08:30:30 +0000 Subject: [PATCH] Synch to Gnus 200312120829. --- lisp/ChangeLog | 25 +++++++++++++++ lisp/nnheaderxm.el | 90 ++++++++++++++++++++++++++++++++++------------------ 2 files changed, 84 insertions(+), 31 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e08e58d..466914d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,28 @@ +2003-12-12 Katsumi Yamaoka + + * nnheaderxm.el (nnheader-xmas-run-at-time): Use a simple function + definition if there is not a bug in start-itimer. + + * pgg.el (pgg-run-at-time): Ditto. + +2003-12-11 Kevin Greiner + + * gnus-agent.el (gnus-agent-possibly-alter-active): New Function. + (gnus-agent-regenerate-group): When necessary, alter the group's + active range to include articles newly recognized as being + downloaded. + (gnus-agent-regenerate): Removed code that updated the agent's + active file as the new gnus-agent-possibly-alter-active function + obsolesced it. + + * gnus-cus.el (gnus-agent-customize-category): Added missing + agent-disable-undownloaded-faces parameter. + + * gnus-start.el (gnus-activate-group): Backed out my 2003-11-29 + patch as it was too late at adjusting the active range. + (gnus-get-unread-articles-in-group): Added call to new + gnus-agent-possibly-alter-active to adjust the active range. + 2003-12-10 Jesper Harder * message.el (message-get-reply-headers): Narrow to headers. diff --git a/lisp/nnheaderxm.el b/lisp/nnheaderxm.el index 24d8170..af0979c 100644 --- a/lisp/nnheaderxm.el +++ b/lisp/nnheaderxm.el @@ -28,39 +28,67 @@ ;;; Code: -(defun nnheader-xmas-run-at-time (time repeat function &rest args) - "Emulating function run as `run-at-time' in the right way. -TIME should be nil meaning now or a number of seconds from now. +(if (condition-case nil + (progn + (unless (or itimer-process itimer-timer) + (itimer-driver-start)) + ;; Check whether there is a bug to which the difference of + ;; the present time and the time when the itimer driver was + ;; woken up is subtracted from the initial itimer value. + (let* ((inhibit-quit t) + (ctime (current-time)) + (itimer-timer-last-wakeup + (prog1 + ctime + (setcar ctime (1- (car ctime))))) + (itimer-list nil) + (itimer (start-itimer "nnheader-run-at-time" 'ignore 5))) + (sleep-for 0.1) ;; Accept the timeout interrupt. + (prog1 + (> (itimer-value itimer) 0) + (delete-itimer itimer)))) + (error nil)) + (defun nnheader-xmas-run-at-time (time repeat function &rest args) + "Emulating function run as `run-at-time'. +TIME should be nil meaning now, or a number of seconds from now. Return an itimer object which can be used in either `delete-itimer' or `cancel-timer'." - (let ((itimers (list nil))) - (setcar - itimers - (apply #'start-itimer "nnheader-run-at-time" - (lambda (itimers repeat function &rest args) - (let ((itimer (car itimers))) - (if repeat - (progn - (set-itimer-function - itimer - (lambda (itimer repeat function &rest args) - (set-itimer-restart itimer repeat) - (set-itimer-function itimer function) - (set-itimer-function-arguments itimer args) - (apply function args))) - (set-itimer-function-arguments - itimer - (append (list itimer repeat function) args))) - (set-itimer-function - itimer - (lambda (itimer function &rest args) - (delete-itimer itimer) - (apply function args))) - (set-itimer-function-arguments - itimer - (append (list itimer function) args))))) - 1e-9 (if time (max time 1e-9) 1e-9) - nil t itimers repeat function args)))) + (apply #'start-itimer "nnheader-run-at-time" + function (if time (max time 1e-9) 1e-9) + repeat nil t args)) + (defun nnheader-xmas-run-at-time (time repeat function &rest args) + "Emulating function run as `run-at-time' in the right way. +TIME should be nil meaning now, or a number of seconds from now. +Return an itimer object which can be used in either `delete-itimer' +or `cancel-timer'." + (let ((itimers (list nil))) + (setcar + itimers + (apply #'start-itimer "nnheader-run-at-time" + (lambda (itimers repeat function &rest args) + (let ((itimer (car itimers))) + (if repeat + (progn + (set-itimer-function + itimer + (lambda (itimer repeat function &rest args) + (set-itimer-restart itimer repeat) + (set-itimer-function itimer function) + (set-itimer-function-arguments itimer args) + (apply function args))) + (set-itimer-function-arguments + itimer + (append (list itimer repeat function) args))) + (set-itimer-function + itimer + (lambda (itimer function &rest args) + (delete-itimer itimer) + (apply function args))) + (set-itimer-function-arguments + itimer + (append (list itimer function) args))))) + 1e-9 (if time (max time 1e-9) 1e-9) + nil t itimers repeat function args))))) (defun nnheader-xmas-Y-or-n-p (prompt) "Ask user a \"Y/n\" question. Return t if answer is neither \"n\", \"N\" nor \"C-g\"." -- 1.7.10.4