mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-20 18:17:20 +00:00
Fix error handling of MIME parsing.
This commit is contained in:
parent
76428f01c6
commit
8258ae3f5a
@ -1,3 +1,11 @@
|
||||
2010-12-24 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* mail/rmailmm.el (rmail-mime-parse): Perform parsing in
|
||||
condition-case and return an error message string if something
|
||||
goes wrong.
|
||||
(rmail-show-mime): Adjusted for the above change. Insert the
|
||||
header by rmail-mime-insert-header.
|
||||
|
||||
2010-12-24 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* mail/rmailmm.el: New key bindings for rmail-mime-next-item,
|
||||
|
@ -1130,11 +1130,12 @@ modified."
|
||||
|
||||
(defun rmail-mime-parse ()
|
||||
"Parse the current Rmail message as a MIME message.
|
||||
The value is a MIME-entiy object (see `rmail-mime-entity')."
|
||||
The value is a MIME-entiy object (see `rmail-mime-entity').
|
||||
If an error occurs, return an error message string."
|
||||
(let ((rmail-mime-mbox-buffer (if (rmail-buffers-swapped-p)
|
||||
rmail-view-buffer
|
||||
(current-buffer))))
|
||||
;;(condition-case err
|
||||
(condition-case err
|
||||
(with-current-buffer rmail-mime-mbox-buffer
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
@ -1148,8 +1149,7 @@ The value is a MIME-entiy object (see `rmail-mime-entity')."
|
||||
(aset new 1 (aset (rmail-mime-entity-tagline entity) 2 nil))
|
||||
(aset new 1 (aset (rmail-mime-entity-tagline entity) 2 t)))
|
||||
entity)))
|
||||
;;(error (error (format "%s" err))))
|
||||
))
|
||||
(error (format "%s" err)))))
|
||||
|
||||
(defun rmail-mime-insert (entity)
|
||||
"Insert a MIME-entity ENTITY in the current buffer.
|
||||
@ -1251,25 +1251,27 @@ attachments as specfied by `rmail-mime-attachment-dirs-alist'."
|
||||
(rmail-mime-mbox-buffer rmail-buffer)
|
||||
(rmail-mime-view-buffer rmail-view-buffer)
|
||||
(rmail-mime-coding-system nil))
|
||||
(if entity
|
||||
(if (vectorp entity)
|
||||
(with-current-buffer rmail-mime-view-buffer
|
||||
(erase-buffer)
|
||||
(rmail-mime-insert entity)
|
||||
(if rmail-mime-coding-system
|
||||
(set-buffer-file-coding-system rmail-mime-coding-system t t)))
|
||||
;; Decoding failed. Insert the original message body as is.
|
||||
;; Decoding failed. ENTITY is an error message. Insert the
|
||||
;; original message body as is, and show warning.
|
||||
(let ((region (with-current-buffer rmail-mime-mbox-buffer
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "^$" nil t)
|
||||
(forward-line 1)
|
||||
(cons (point) (point-max)))))
|
||||
(vector (point-min) (point) (point-max)))))
|
||||
(with-current-buffer rmail-mime-view-buffer
|
||||
(let ((inhibit-read-only t))
|
||||
(erase-buffer)
|
||||
(rmail-mime-insert-header region)
|
||||
(insert-buffer-substring rmail-mime-mbox-buffer
|
||||
(car region) (cdr region))))
|
||||
(aref region 1) (aref region 2))))
|
||||
(set-buffer-file-coding-system 'no-conversion t t)
|
||||
(message "MIME decoding failed")))))
|
||||
(message "MIME decoding failed: %s" entity)))))
|
||||
|
||||
(setq rmail-show-mime-function 'rmail-show-mime)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user