From: yamaoka Date: Wed, 10 Dec 2003 06:37:46 +0000 (+0000) Subject: Synch to Gnus 200312100635. X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=d8347459f482463de3c976205c7fb88dcf75d0cd;p=elisp%2Fgnus.git- Synch to Gnus 200312100635. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e4aea4f..87f2585 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2003-12-10 Katsumi Yamaoka + + * nnheaderxm.el (nnheader-xmas-run-at-time): Make it work + correctly for the first argument. + + * pgg.el (pgg-run-at-time): New function. + (pgg-add-passphrase-cache): Use it. + 2003-12-10 Simon Josefsson * pgg-parse.el (pgg-decode-packets): Rewrite to handle corrupt diff --git a/lisp/nnheaderxm.el b/lisp/nnheaderxm.el index ea5df2f..24d8170 100644 --- a/lisp/nnheaderxm.el +++ b/lisp/nnheaderxm.el @@ -1,6 +1,6 @@ ;;; nnheaderxm.el --- making Gnus backends work under XEmacs -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen @@ -29,11 +29,38 @@ ;;; Code: (defun nnheader-xmas-run-at-time (time repeat function &rest args) - (start-itimer - "nnheader-run-at-time" - `(lambda () - (,function ,@args)) - time repeat)) + "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\"."