(mml1991-function-alist): Add pgg.
authorSimon Josefsson <jas@extundo.com>
Sun, 29 Sep 2002 20:33:02 +0000 (20:33 +0000)
committerSimon Josefsson <jas@extundo.com>
Sun, 29 Sep 2002 20:33:02 +0000 (20:33 +0000)
(mml1991-pgg-sign, mml1991-pgg-encrypt): New functions.

lisp/ChangeLog
lisp/mml1991.el

index 3d5747a..8773335 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-29  Simon Josefsson  <jas@extundo.com>
+
+       * mml1991.el (mml1991-function-alist): Add pgg.
+       (mml1991-pgg-sign, mml1991-pgg-encrypt): New functions.
+
 2002-09-28  Simon Josefsson  <jas@extundo.com>
 
        * mml2015.el (autoload): Autoload correct files.  Trivial patch
index b3aa9f3..b83f2a3 100644 (file)
@@ -24,7 +24,7 @@
 
 ;;; Commentary:
 
-;; RCS: $Id: mml1991.el,v 6.6 2002/02/20 00:15:32 yamaoka Exp $
+;; RCS: $Id: mml1991.el,v 6.7 2002/05/04 14:20:42 jas Exp $
 
 ;;; Code:
 
@@ -35,7 +35,9 @@
   '((mailcrypt mml1991-mailcrypt-sign
               mml1991-mailcrypt-encrypt)
     (gpg mml1991-gpg-sign
-        mml1991-gpg-encrypt))
+        mml1991-gpg-encrypt)
+    (pgg mml1991-pgg-sign
+        mml1991-pgg-encrypt))
   "Alist of PGP functions.")
 
 ;;; mailcrypt wrapper
        (insert-buffer cipher)
        (goto-char (point-max))))))
 
+;; pgg wrapper
+
+(defun mml1991-pgg-sign (cont)
+  (let (headers)
+    ;; Don't sign headers.
+    (goto-char (point-min))
+    (while (not (looking-at "^$"))
+      (forward-line))
+    (unless (eobp) ;; no headers?
+      (setq headers (buffer-substring (point-min) (point)))
+      (forward-line) ;; skip header/body separator
+      (kill-region (point-min) (point)))
+    (unless (let ((pgg-gpg-user-id (message-options-get 'message-sender)))
+             (pgg-sign-region (point-min) (point-max) t))
+      (pop-to-buffer pgg-errors-buffer)
+      (error "Encrypt error"))
+    (kill-region (point-min) (point-max))
+    (if headers (insert headers))
+    (insert "\n")
+    (insert-buffer pgg-output-buffer)
+    t))
+
+(defun mml1991-pgg-encrypt (cont)
+  (let (headers)
+    ;; Don't sign headers.
+    (goto-char (point-min))
+    (while (not (looking-at "^$"))
+      (forward-line))
+    (unless (eobp) ;; no headers?
+      (setq headers (buffer-substring (point-min) (point)))
+      (forward-line) ;; skip header/body separator
+      (kill-region (point-min) (point)))
+    (unless (pgg-encrypt-region
+            (point-min) (point-max) 
+            (list (or
+                   (message-options-get 'message-recipients)
+                   (message-options-set 'message-recipients
+                                        (read-string "Recipients: ")))))
+      (pop-to-buffer pgg-errors-buffer)
+      (error "Encrypt error"))
+    (kill-region (point-min) (point-max))
+    (if headers (insert headers))
+    (insert "\n")
+    (insert-buffer pgg-output-buffer)
+    t))
+
 ;;;###autoload
 (defun mml1991-encrypt (cont)
   (let ((func (nth 2 (assq mml1991-use mml1991-function-alist))))