Update copyright header.
[elisp/semi.git] / mime-pgp.el
index 718ad9e..8f49a2e 100644 (file)
@@ -22,8 +22,8 @@
 
 ;; 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., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
                   (1- knum)
                 (1+ knum)))
         (orig-entity (nth onum (mime-entity-children mother)))
-        (basename (expand-file-name "tm" temporary-file-directory))
-        (sig-file (concat (make-temp-name basename) ".asc"))
-        status)
+        (sig-file (make-temp-file "tm" nil ".asc")))
     (save-excursion 
       (mime-show-echo-buffer)
       (set-buffer mime-echo-buffer-name)
          (while (progn (end-of-line) (not (eobp)))
            (insert "\r")
            (forward-line 1))
-         (setq status (pgg-verify-region (point-min)(point-max) 
-                                         sig-file 'fetch))
+         (pgg-verify-region (point-min)(point-max) 
+                            sig-file 'fetch)
          (save-excursion 
            (set-buffer mime-echo-buffer-name)
-           (insert-buffer-substring (if status pgg-output-buffer
-                                      pgg-errors-buffer))))
+           (insert-buffer-substring pgg-errors-buffer)))
       (delete-file sig-file))))
 
 
     (mime-insert-entity-content entity)
     (mime-decode-region (point-min) (point-max)
                         (cdr (assq 'encoding situation)))
-    (let ((status (pgg-snarf-keys-region (point-min)(point-max))))
-      (save-excursion 
-       (set-buffer mime-echo-buffer-name)
-       (insert-buffer-substring (if status pgg-output-buffer
-                                  pgg-errors-buffer))))))
+    (pgg-snarf-keys-region (point-min)(point-max))
+    (save-excursion 
+      (set-buffer mime-echo-buffer-name)
+      (insert-buffer-substring pgg-errors-buffer))))
 
 
 ;;; @ Internal method for application/pkcs7-signature
                   (1- knum)
                 (1+ knum)))
         (orig-entity (nth onum (mime-entity-children mother)))
-        (basename (expand-file-name "tm" temporary-file-directory))
-        (sig-file (concat (make-temp-name basename) ".asc"))
+        (sig-file (make-temp-file "tm" nil ".asc"))
         status)
     (save-excursion 
       (mime-show-echo-buffer)
        (setq mime-view-temp-message-buffer message-buf))
       (set-window-buffer p-win preview-buffer))))
 
+(defun mime-display-multipart/pgp-encrypted (entity situation)
+   (if pgg-decrypt-automatically
+       (let ((pgp-begin (point)))
+        (mime-insert-entity entity)
+        (goto-char pgp-begin)
+        (when (re-search-forward "^-+BEGIN PGP MESSAGE-+$" nil t)
+          (pgg-decrypt-region pgp-begin (point-max))
+          (delete-region pgp-begin (point-max))
+          (mime-display-entity
+           (mime-parse-buffer pgg-output-buffer))))
+     (mime-display-multipart/mixed entity situation)))
 
 ;;; @ end
 ;;;