(primary-type (mime-content-type-primary-type content-type)))
(cond ((eq primary-type 'multipart)
(mime-parse-multipart entity)
- (mime-entity-children-internal entity)
)
((and (eq primary-type 'message)
(memq (mime-content-type-subtype content-type)
'(rfc822 news external-body)
))
(mime-parse-encapsulated entity)
- (mime-entity-children-internal entity)
- )
- )))
+ ))
+ ))
(mm-define-method entity-content ((entity buffer))
(save-excursion
(mm-define-method write-entity ((entity buffer) filename)
(save-excursion
(set-buffer (mime-entity-buffer-internal entity))
- (write-region-as-binary (mime-entity-header-start-internal entity)
- (mime-entity-body-end-internal entity)
- filename)
+ (write-region-as-raw-text-CRLF (mime-entity-header-start-internal entity)
+ (mime-entity-body-end-internal entity)
+ filename)
))
(mm-define-method write-entity-body ((entity buffer) filename)
(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)))
+ (setq beg (point))
(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")
+ (add-text-properties beg (point)
+ (list 'original-field-name field-name
+ 'original-field-body field-body))
))))))))