(let ((the-buf (current-buffer))
(src-buf (mime-entity-buffer-internal entity))
(h-end (mime-entity-header-end-internal entity))
- beg p end field-name len field)
+ beg p end field-name len field-body decoded)
(save-excursion
(set-buffer src-buf)
(goto-char (mime-entity-header-start-internal entity))
end (std11-field-end))
(when (mime-visible-field-p field-name
visible-fields invisible-fields)
- (setq field (intern (capitalize field-name)))
(save-excursion
(set-buffer the-buf)
+ (setq field-body (ew-lf-crlf-to-crlf
+ (save-excursion
+ (set-buffer src-buf)
+ (buffer-substring p end))))
+ (setq decoded (ew-decode-field field-name field-body))
+ (unless (equal field-body decoded)
+ (setq decoded (ew-crlf-refold
+ decoded
+ (1+ (string-width field-name))
+ fill-column)))
(insert field-name)
(insert ":")
- (cond ((memq field eword-decode-ignored-field-list)
- ;; Don't decode
- (insert-buffer-substring src-buf p end)
- )
- ((memq field eword-decode-structured-field-list)
- ;; Decode as structured field
- (let ((body (save-excursion
- (set-buffer src-buf)
- (buffer-substring p end)
- )))
- (insert (eword-decode-and-fold-structured-field
- body (1+ len)))
- ))
- (t
- ;; Decode as unstructured field
- (let ((body (save-excursion
- (set-buffer src-buf)
- (buffer-substring p end)
- )))
- (insert (eword-decode-unstructured-field-body
- body (1+ len)))
- )))
+ (insert (ew-crlf-to-lf decoded))
(insert "\n")
))))))))