X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mmgeneric.el;h=5bd9686300b9d30887d452cd910d54da05efbee9;hb=a395fea546a169e1aa1c862477743da54b6d807a;hp=034ed2311fd29abad435175334fab5fe7d2cbaab;hpb=c11722f67c755026823e7bd8a68ae1bb7425a703;p=elisp%2Fflim.git diff --git a/mmgeneric.el b/mmgeneric.el index 034ed23..5bd9686 100644 --- a/mmgeneric.el +++ b/mmgeneric.el @@ -32,23 +32,26 @@ (autoload 'mime-entity-content-type "mime") (autoload 'mime-parse-multipart "mime-parse") -(autoload 'mime-parse-encapsulated "mime-parse") -(autoload 'mime-parse-external "mime-parse") +(autoload 'mime-parse-message "mime-parse") +;; (autoload 'mime-parse-encapsulated "mime-parse") +;; (autoload 'mime-parse-external "mime-parse") (autoload 'mime-entity-content "mime") -(luna-define-class mime-entity () - (location - content-type children parent - node-id - content-disposition encoding - ;; for other fields - original-header parsed-header)) +(eval-and-compile + (luna-define-class mime-entity () + (location + content-type children parent + node-id + content-disposition encoding + ;; for other fields + original-header parsed-header)) + + (luna-define-internal-accessors 'mime-entity) + ) (defalias 'mime-entity-representation-type-internal 'luna-class-name) (defalias 'mime-entity-set-representation-type-internal 'luna-set-class-name) -(luna-define-internal-accessors 'mime-entity) - (luna-define-method mime-entity-fetch-field ((entity mime-entity) field-name) (or (symbolp field-name) @@ -56,22 +59,6 @@ (cdr (assq field-name (mime-entity-original-header-internal entity)))) -(luna-define-method mime-entity-children ((entity mime-entity)) - (let* ((content-type (mime-entity-content-type entity)) - (primary-type (mime-content-type-primary-type content-type)) - sub-type) - (cond ((eq primary-type 'multipart) - (mime-parse-multipart entity)) - ((eq primary-type 'message) - (setq sub-type (mime-content-type-subtype content-type)) - (cond ((eq sub-type 'external-body) - (mime-parse-external entity)) - ((memq sub-type '(rfc822 news)) - (mime-parse-encapsulated entity) - ;; [tomo] Should we make a variable to specify - ;; encapsulated media-types? - )))))) - (luna-define-method mime-insert-text-content ((entity mime-entity)) (insert (decode-mime-charset-string (mime-entity-content entity)