)
-(luna-define-method mime-entity-children ((entity mime-buffer-entity))
- (let* ((content-type (mime-entity-content-type entity))
- (primary-type (mime-content-type-primary-type content-type)))
- (cond ((eq primary-type 'multipart)
- (mime-parse-multipart entity)
- )
- ((and (eq primary-type 'message)
- (memq (mime-content-type-subtype content-type)
- '(rfc822 news external-body)
- ))
- (mime-parse-encapsulated entity)
- ))
- ))
-
-
(defun mime-visible-field-p (field-name visible-fields invisible-fields)
(or (catch 'found
(while visible-fields
(mime-buffer-entity-body-end-internal entity))
(mime-entity-encoding entity))))
-(luna-define-method mime-insert-text-content ((entity mime-buffer-entity))
- (insert
- (decode-mime-charset-string (mime-entity-content entity)
- (or (mime-content-type-parameter
- (mime-entity-content-type entity)
- "charset")
- default-mime-charset)
- 'CRLF)
- ))
-
-;;; redefine to speed up
-
-(mm-define-method entity-point-min ((entity buffer))
- (mime-buffer-entity-header-start-internal entity))
-
-(mm-define-method entity-point-max ((entity buffer))
- (mime-buffer-entity-body-end-internal entity))
-
-(luna-define-method mime-entity-fetch-field ((entity mime-buffer-entity)
- field-name)
- (save-excursion
- (set-buffer (mime-buffer-entity-buffer-internal entity))
- (save-restriction
- (narrow-to-region (mime-buffer-entity-header-start-internal entity)
- (mime-buffer-entity-header-end-internal entity))
- (std11-fetch-field field-name)
- )))
+(luna-define-method mime-entity-fetch-field :around
+ ((entity mime-buffer-entity) field-name)
+ (or (luna-call-next-method)
+ (save-excursion
+ (set-buffer (mime-buffer-entity-buffer-internal entity))
+ (save-restriction
+ (narrow-to-region (mime-buffer-entity-header-start-internal entity)
+ (mime-buffer-entity-header-end-internal entity))
+ (let ((ret (std11-fetch-field field-name)))
+ (when ret
+ (or (symbolp field-name)
+ (setq field-name
+ (intern (capitalize (capitalize field-name)))))
+ (mime-entity-set-original-header-internal
+ entity
+ (put-alist field-name ret
+ (mime-entity-original-header-internal entity)))
+ ret))))))
(mm-define-method insert-entity-content ((entity buffer))
(insert (with-current-buffer (mime-buffer-entity-buffer-internal entity)
))
-;;; @ buffer
+;;; @ header buffer
;;;
(luna-define-method mime-entity-header-buffer ((entity mime-buffer-entity))
(mime-buffer-entity-buffer-internal entity)
)
+(luna-define-method mime-goto-header-start-point ((entity mime-buffer-entity))
+ (set-buffer (mime-buffer-entity-buffer-internal entity))
+ (goto-char (mime-buffer-entity-header-start-internal entity))
+ )
+
+(luna-define-method mime-entity-header-start-point ((entity
+ mime-buffer-entity))
+ (mime-buffer-entity-header-start-internal entity)
+ )
+
+(luna-define-method mime-entity-header-end-point ((entity
+ mime-buffer-entity))
+ (mime-buffer-entity-header-end-internal entity)
+ )
+
+
+;;; @ body buffer
+;;;
+
(luna-define-method mime-entity-body-buffer ((entity mime-buffer-entity))
(mime-buffer-entity-buffer-internal entity)
)
-(luna-define-method mime-entity-buffer ((entity mime-buffer-entity))
- (mime-buffer-entity-buffer-internal entity)
+(luna-define-method mime-goto-body-start-point ((entity mime-buffer-entity))
+ (set-buffer (mime-buffer-entity-buffer-internal entity))
+ (goto-char (mime-buffer-entity-body-start-internal entity))
+ )
+
+(luna-define-method mime-goto-body-end-point ((entity mime-buffer-entity))
+ (set-buffer (mime-buffer-entity-buffer-internal entity))
+ (goto-char (mime-buffer-entity-body-end-internal entity))
)
(luna-define-method mime-entity-body-start-point ((entity mime-buffer-entity))
(mime-buffer-entity-body-end-internal entity)
)
-(luna-define-method mime-entity-point-min ((entity mime-buffer-entity))
- (mime-buffer-entity-header-start-internal entity)
- )
-(luna-define-method mime-entity-point-max ((entity mime-buffer-entity))
- (mime-buffer-entity-body-end-internal entity)
- )
+;;; @ buffer (obsolete)
+;;;
-(luna-define-method mime-goto-header-start-point ((entity mime-buffer-entity))
- (set-buffer (mime-buffer-entity-buffer-internal entity))
- (goto-char (mime-buffer-entity-header-start-internal entity))
+(luna-define-method mime-entity-buffer ((entity mime-buffer-entity))
+ (mime-buffer-entity-buffer-internal entity)
)
-(luna-define-method mime-goto-body-start-point ((entity mime-buffer-entity))
- (set-buffer (mime-buffer-entity-buffer-internal entity))
- (goto-char (mime-buffer-entity-body-start-internal entity))
+(luna-define-method mime-entity-point-min ((entity mime-buffer-entity))
+ (mime-buffer-entity-header-start-internal entity)
)
-(luna-define-method mime-goto-body-end-point ((entity mime-buffer-entity))
- (set-buffer (mime-buffer-entity-buffer-internal entity))
- (goto-char (mime-buffer-entity-body-end-internal entity))
+(luna-define-method mime-entity-point-max ((entity mime-buffer-entity))
+ (mime-buffer-entity-body-end-internal entity)
)