X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mmbuffer.el;h=f014aeccd024c8d85743c49f05ea26e182af437c;hb=4e0d3697cfa05187b6afc56a01b234f38cab610c;hp=8754e2bebb42203704fcaf2332665c6158913c1e;hpb=612da76d851eb90ed049a76f2761d4521781e556;p=elisp%2Fflim.git diff --git a/mmbuffer.el b/mmbuffer.el index 8754e2b..f014aec 100644 --- a/mmbuffer.el +++ b/mmbuffer.el @@ -87,21 +87,6 @@ ) -(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 @@ -173,33 +158,24 @@ (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) @@ -241,19 +217,44 @@ )) -;;; @ 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)) @@ -264,27 +265,20 @@ (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) )