Merge branch 'master' of https://git.gnus.org/gnus
[gnus] / lisp / pgg.el
index 74b6ed7..f64c408 100644 (file)
@@ -1,7 +1,7 @@
 ;;; pgg.el --- glue for the various PGP implementations.
 
 ;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
-;;   2005, 2006, 2007 Free Software Foundation, Inc.
+;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 ;; Symmetric encryption added by: Sascha Wilde <wilde@sha-bang.de>
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
+;; This file is on its way to obsolescence, waiting for allout.el to
+;; switch to EPG.
+
 ;;; Code:
 
 (require 'pgg-def)
 ;;;
 
 (eval-when-compile
-  (unless (featurep 'xemacs)
-    (defalias 'pgg-run-at-time 'run-at-time)
-    (defalias 'pgg-cancel-timer 'cancel-timer))
-
   (when (featurep 'xemacs)
     (defmacro pgg-run-at-time-1 (time repeat function args)
       (if (condition-case nil
          `(let ((time ,time))
             (apply #'start-itimer "pgg-run-at-time"
                    ,function (if time (max time 1e-9) 1e-9)
-                   ,repeat nil t ,args)))
-      `(let ((time ,time)
-            (itimers (list nil)))
-        (setcar
-         itimers
-         (apply #'start-itimer "pgg-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 pgg-run-at-time (time repeat function &rest args)
-      "Emulating function run as `run-at-time'.
+                   ,repeat nil t ,args))
+       `(let ((time ,time)
+              (itimers (list nil)))
+          (setcar
+           itimers
+           (apply #'start-itimer "pgg-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)))))))
+
+(eval-and-compile
+  (if (featurep 'xemacs)
+      (progn
+       (defun pgg-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'."
-      (pgg-run-at-time-1 time repeat function args))
-    (defun pgg-cancel-timer (timer)
-      "Emulate cancel-timer for xemacs."
-      (let ((delete-itimer 'delete-itimer))
-        (funcall delete-itimer timer)))
-    ))
+         (pgg-run-at-time-1 time repeat function args))
+       (defun pgg-cancel-timer (timer)
+         "Emulate cancel-timer for xemacs."
+         (let ((delete-itimer 'delete-itimer))
+           (funcall delete-itimer timer))))
+    (defalias 'pgg-run-at-time 'run-at-time)
+    (defalias 'pgg-cancel-timer 'cancel-timer)))
 
 (defun pgg-invoke (func scheme &rest args)
   (progn
@@ -470,8 +471,8 @@ signer's public key from `pgg-default-keyserver-address'."
          (if (null signature) nil
            (with-temp-buffer
              (buffer-disable-undo)
-             (if (fboundp 'set-buffer-multibyte)
-                 (set-buffer-multibyte nil))
+             (unless (featurep 'xemacs)
+               (set-buffer-multibyte nil))
              (insert-file-contents signature)
              (cdr (assq 2 (pgg-decode-armor-region
                            (point-min)(point-max)))))))
@@ -597,5 +598,4 @@ within the region."
 
 (provide 'pgg)
 
-;;; arch-tag: 9cc705dd-1e6a-4c90-8dce-c3561f9a2cf4
 ;;; pgg.el ends here