X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mmbuffer.el;h=5913265361ef77fb6b06d20ffabf8768286b568e;hb=955b92b07f71c449e9ff8f2b49b7e12408527cec;hp=76b3fdccf88ae4fae8f5a5e072fbacba488552d7;hpb=b597a8bffd0e0c3645546f206f2d962b4f93801c;p=elisp%2Fflim.git diff --git a/mmbuffer.el b/mmbuffer.el index 76b3fdc..5913265 100644 --- a/mmbuffer.el +++ b/mmbuffer.el @@ -153,7 +153,7 @@ (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)) @@ -167,33 +167,21 @@ 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") ))))))))