From f0c5bd32c1cb0a6cf1f24f684bdaba0f401c330f Mon Sep 17 00:00:00 2001 From: yamaoka Date: Fri, 16 Jan 2004 12:14:26 +0000 Subject: [PATCH] Synch to No Gnus 200401161213. --- lisp/ChangeLog | 5 +++ lisp/run-at-time.el | 108 +++++++++++++++++++++++++-------------------------- 2 files changed, 57 insertions(+), 56 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6ffb029..a7fdb34 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2004-01-16 Katsumi Yamaoka + + * run-at-time.el: Remove useless (require 'itimer), + eval-and-compile and (featurep 'xemacs). + 2004-01-16 Jesper Harder * gnus-msg.el (gnus-post-news): Use blank Newsgroups line if diff --git a/lisp/run-at-time.el b/lisp/run-at-time.el index a4f54fe..47298e9 100644 --- a/lisp/run-at-time.el +++ b/lisp/run-at-time.el @@ -26,74 +26,70 @@ ;; XEmacs has a buggy version of run-at-time. This file defines a ;; non-buggy version of the same. -(require 'itimer) - -(eval-and-compile - (when (featurep 'xemacs) - (defalias - 'run-at-time - (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 "run-at-time" 'ignore 5))) - (sleep-for 0.1) ;; Accept the timeout interrupt. - (prog1 - (> (itimer-value itimer) 0) - (delete-itimer itimer)))) - (error nil)) - (lambda (time repeat function &rest args) - "Function emulating the function of the same name of Emacs. +(defalias + 'run-at-time + (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 "run-at-time" 'ignore 5))) + (sleep-for 0.1) ;; Accept the timeout interrupt. + (prog1 + (> (itimer-value itimer) 0) + (delete-itimer itimer)))) + (error nil)) + (lambda (time repeat function &rest args) + "Function emulating the function of the same name of Emacs. 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'." - (apply #'start-itimer "run-at-time" - function (if time (max time 1e-9) 1e-9) - repeat nil t args)) - (lambda (time repeat function &rest args) - "Function emulating the function of the same name of Emacs. + (apply #'start-itimer "run-at-time" + function (if time (max time 1e-9) 1e-9) + repeat nil t args)) + (lambda (time repeat function &rest args) + "Function emulating the function of the same name of Emacs. It works correctly for TIME even if there is a bug in the XEmacs core. 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 "fixed-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))) + (let ((itimers (list nil))) + (setcar + itimers + (apply #'start-itimer "fixed-run-at-time" + (lambda (itimers repeat function &rest args) + (let ((itimer (car itimers))) + (if repeat + (progn (set-itimer-function itimer - (lambda (itimer function &rest args) - (delete-itimer 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 function) args))))) - 1e-9 (if time (max time 1e-9) 1e-9) - nil t itimers repeat function args)))))))) + (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)))))) (provide 'run-at-time) -- 1.7.10.4