X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-def.el;h=276dadd582afa1cd12d87d0d7f7e3339b501886e;hb=f64e139c5380c9b142e90dc9c308bf525a45c8a2;hp=89a696d37e2aefde07a32151887fe6af07d33d0f;hpb=67667aef7a2a3546b3ef9445f4bddd38380fb91a;p=elisp%2Fflim.git diff --git a/mime-def.el b/mime-def.el index 89a696d..276dadd 100644 --- a/mime-def.el +++ b/mime-def.el @@ -26,10 +26,16 @@ ;;; Code: +(require 'poe) +(require 'poem) +(require 'pcustom) (require 'mcharset) +(require 'alist) + +(eval-when-compile (require 'cl)) ; list* (eval-and-compile - (defconst mime-library-product ["Chao" (1 13 0) "JR Fujinomori"] + (defconst mime-library-product ["FLIM" (1 13 2) "Kasanui"] "Product name, version number and code name of MIME-library package.") ) @@ -55,16 +61,11 @@ (require 'custom) -(eval-when-compile (require 'cl)) - -(defgroup mime nil +(defgroup mime '((default-mime-charset custom-variable)) "Emacs MIME Interfaces" :group 'news :group 'mail) -(custom-handle-keyword 'default-mime-charset :group 'mime - 'custom-variable) - (defcustom mime-uuencode-encoding-name-list '("x-uue" "x-uuencode") "*List of encoding names for uuencode format." :group 'mime @@ -211,6 +212,11 @@ (require 'luna) +(autoload 'mime-entity-content-type "mime") +(autoload 'mime-parse-multipart "mime-parse") +(autoload 'mime-parse-encapsulated "mime-parse") +(autoload 'mime-entity-content "mime") + (luna-define-class mime-entity () (location content-type children parent @@ -224,6 +230,37 @@ (luna-define-internal-accessors 'mime-entity) +(luna-define-method mime-entity-fetch-field ((entity mime-entity) + field-name) + (or (symbolp field-name) + (setq field-name (intern (capitalize (capitalize field-name))))) + (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))) + (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) + )) + )) + +(luna-define-method mime-insert-text-content ((entity mime-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) + )) + ;;; @ for mm-backend ;;;