(autoload 'vcard-parse-string "vcard")
(autoload 'vcard-format-string "vcard")
(autoload 'fill-flowed "flow-fill")
- (autoload 'html2text "html2text"))
+ (autoload 'html2text "html2text" nil t))
(defvar gnus-article-mime-handles)
(defvar gnus-newsgroup-charset)
(defcustom mm-fill-flowed t
"If non-nil a format=flowed article will be displayed flowed."
:type 'boolean
+ :version "22.1"
:group 'mime-display)
;;; Internal variables.
(defun mm-w3m-cid-retrieve-1 (url handle)
(dolist (elem handle)
- (when (listp elem)
- (if (equal url (mm-handle-id elem))
- (progn
- (mm-insert-part elem)
- (throw 'found-handle (mm-handle-media-type elem))))
- (if (equal "multipart" (mm-handle-media-supertype elem))
- (mm-w3m-cid-retrieve-1 url elem)))))
+ (when (consp elem)
+ (when (equal url (mm-handle-id elem))
+ (mm-insert-part elem)
+ (throw 'found-handle (mm-handle-media-type elem)))
+ (when (and (stringp (car elem))
+ (equal "multipart" (mm-handle-media-supertype elem)))
+ (mm-w3m-cid-retrieve-1 url elem)))))
(defun mm-w3m-cid-retrieve (url &rest args)
"Insert a content pointed by URL if it has the cid: scheme."
(when (string-match "\\`cid:" url)
- (catch 'found-handle
- (mm-w3m-cid-retrieve-1 (concat "<" (substring url (match-end 0)) ">")
- (with-current-buffer w3m-current-buffer
- gnus-article-mime-handles)))))
+ (or (catch 'found-handle
+ (mm-w3m-cid-retrieve-1
+ (setq url (concat "<" (substring url (match-end 0)) ">"))
+ (with-current-buffer w3m-current-buffer
+ gnus-article-mime-handles)))
+ (prog1
+ nil
+ (message "Failed to find \"Content-ID: %s\"" url)))))
(defun mm-inline-text-html-render-with-w3m (handle)
"Render a text/html part using emacs-w3m."
(save-restriction
(narrow-to-region b (point))
(goto-char b)
- (fill-flowed)
+ (fill-flowed nil (equal (cdr (assoc 'delsp (mm-handle-type handle)))
+ "yes"))
(goto-char (point-max))))
(save-restriction
(narrow-to-region b (point))
(otherwise (error "Unknown or unimplemented PKCS#7 type"))))
(defun mm-view-pkcs7-verify (handle)
- ;; A bogus implementation of PKCS#7. FIXME::
- (mm-insert-part handle)
- (goto-char (point-min))
- (if (search-forward "Content-Type: " nil t)
- (delete-region (point-min) (match-beginning 0)))
- (goto-char (point-max))
- (if (re-search-backward "--\r?\n?" nil t)
- (delete-region (match-end 0) (point-max)))
+ (let ((verified nil))
+ (with-temp-buffer
+ (insert "MIME-Version: 1.0\n")
+ (mm-insert-headers "application/pkcs7-mime" "base64" "smime.p7m")
+ (insert-buffer-substring (mm-handle-buffer handle))
+ (setq verified (smime-verify-region (point-min) (point-max))))
+ (goto-char (point-min))
+ (mm-insert-part handle)
+ (if (search-forward "Content-Type: " nil t)
+ (delete-region (point-min) (match-beginning 0)))
+ (goto-char (point-max))
+ (if (re-search-backward "--\r?\n?" nil t)
+ (delete-region (match-end 0) (point-max)))
+ (unless verified
+ (insert-buffer-substring smime-details-buffer)))
(goto-char (point-min))
(while (search-forward "\r\n" nil t)
(replace-match "\n"))
- (message "Verify signed PKCS#7 message is unimplemented.")
- (sit-for 1)
t)
(defun mm-view-pkcs7-decrypt (handle)