X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-pgp.el;h=fd0203ac6070e055183229b449c8ca113bb0974b;hb=refs%2Fheads%2Fakemi;hp=fa33f4f50c0871370000ac4a615c11f804fd1983;hpb=a1c3dc901f0b0b89d7d90cb181de53907721f1a7;p=elisp%2Fsemi.git diff --git a/mime-pgp.el b/mime-pgp.el index fa33f4f..fd0203a 100644 --- a/mime-pgp.el +++ b/mime-pgp.el @@ -1,6 +1,6 @@ ;;; mime-pgp.el --- mime-view internal methods for PGP. -;; Copyright (C) 1995,1996,1997,1998 MORIOKA Tomohiko +;; Copyright (C) 1995,1996,1997,1998,1999 MORIOKA Tomohiko ;; Author: MORIOKA Tomohiko ;; Created: 1995/12/7 @@ -52,9 +52,9 @@ (defun mime-verify-multipart/signed (entity situation) "Internal method to verify multipart/signed." - (mime-raw-play-entity + (mime-play-entity (nth 1 (mime-entity-children entity)) ; entity-info of signature - (cdr (assq 'mode situation)) ; play-mode + (list (assq 'mode situation)) ; play-mode )) @@ -63,19 +63,15 @@ ;;; It is based on draft-kazu-pgp-mime-00.txt (PGP-kazu). (defun mime-view-application/pgp (entity situation) - (let* ((start (mime-entity-point-min entity)) - (end (mime-entity-point-max entity)) - (entity-number (mime-raw-point-to-entity-number start)) - (p-win (or (get-buffer-window mime-preview-buffer) + (let* ((p-win (or (get-buffer-window (current-buffer)) (get-largest-window))) - (new-name (format "%s-%s" (buffer-name) entity-number)) - (the-buf (current-buffer)) - (mother mime-preview-buffer) - (mode major-mode) + (new-name + (format "%s-%s" (buffer-name) (mime-entity-number entity))) + (mother (current-buffer)) representation-type) (set-buffer (get-buffer-create new-name)) (erase-buffer) - (insert-buffer-substring the-buf start end) + (mime-insert-entity entity) (cond ((progn (goto-char (point-min)) (re-search-forward "^-+BEGIN PGP SIGNED MESSAGE-+$" nil t)) @@ -94,9 +90,8 @@ (while (re-search-forward "^- -" nil t) (replace-match "-") ) - (setq representation-type - (cdr (or (assq mode mime-raw-representation-type-alist) - (assq t mime-raw-representation-type-alist)))) + (setq representation-type (if (mime-entity-cooked-p entity) + 'cooked)) ) ((progn (goto-char (point-min)) @@ -110,8 +105,8 @@ (setq representation-type 'binary) )) (setq major-mode 'mime-show-message-mode) - (setq mime-raw-representation-type representation-type) - (save-window-excursion (mime-view-mode mother)) + (save-window-excursion (mime-view-buffer nil nil mother + nil representation-type)) (set-window-buffer p-win mime-preview-buffer) )) @@ -159,30 +154,20 @@ It should be ISO 639 2 letter language code such as en, ja, ...") (defun mime-verify-application/pgp-signature (entity situation) "Internal method to check PGP/MIME signature." - (let* ((start (mime-entity-point-min entity)) - (end (mime-entity-point-max entity)) - (encoding (cdr (assq 'encoding situation))) - (entity-node-id (mime-raw-point-to-entity-node-id start)) - (mother-node-id (cdr entity-node-id)) + (let* ((entity-node-id (mime-entity-node-id entity)) + (mother (mime-entity-parent entity)) (knum (car entity-node-id)) (onum (if (> knum 0) (1- knum) (1+ knum))) - (oinfo (mime-raw-find-entity-from-node-id - (cons onum mother-node-id) mime-message-structure)) - (basename (expand-file-name "tm" mime-temp-directory)) + (orig-entity (nth onum (mime-entity-children mother))) + (basename (expand-file-name "tm" temporary-file-directory)) (orig-file (make-temp-name basename)) (sig-file (concat orig-file ".sig")) ) - (mime-raw-write-region (mime-entity-point-min oinfo) - (mime-entity-point-max oinfo) - orig-file) + (mime-write-entity orig-entity orig-file) (save-excursion (mime-show-echo-buffer)) - (mime-write-decoded-region (save-excursion - (goto-char start) - (and (search-forward "\n\n") - (match-end 0)) - ) end sig-file encoding) + (mime-write-entity-content entity sig-file) (or (mime-pgp-check-signature mime-echo-buffer-name orig-file) (let (pgp-id) (save-excursion @@ -223,14 +208,13 @@ It should be ISO 639 2 letter language code such as en, ja, ...") (defun mime-decrypt-application/pgp-encrypted (entity situation) (let* ((entity-node-id (mime-entity-node-id entity)) - (mother-node-id (cdr entity-node-id)) + (mother (mime-entity-parent entity)) (knum (car entity-node-id)) (onum (if (> knum 0) (1- knum) (1+ knum))) - (oinfo (mime-raw-find-entity-from-node-id - (cons onum mother-node-id) mime-message-structure))) - (mime-view-application/pgp oinfo situation) + (orig-entity (nth onum (mime-entity-children mother)))) + (mime-view-application/pgp orig-entity situation) ))