X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mmcooked.el;h=6995469bfdc9e67bda42fa799ad571a61a804820;hb=4bf8fd8f57d3cb4184c0285e9d948af790d2dfc2;hp=ad3653afc151768ddcaf3df1ef74b880e53b7c3a;hpb=6962086be477f8c1ce01aa814297cd503f2f9437;p=elisp%2Fflim.git diff --git a/mmcooked.el b/mmcooked.el index ad3653a..6995469 100644 --- a/mmcooked.el +++ b/mmcooked.el @@ -26,19 +26,11 @@ (require 'mmbuffer) -(defun mmcooked-open-entity (location) - (mime-parse-buffer location 'cooked) - ) +(mm-define-backend cooked (buffer)) -(defalias 'mmcooked-entity-point-min 'mmbuffer-entity-point-min) -(defalias 'mmcooked-entity-point-max 'mmbuffer-entity-point-max) -(defalias 'mmcooked-fetch-field 'mmbuffer-fetch-field) +(mm-define-method entity-cooked-p ((entity cooked)) t) -(defun mmcooked-cooked-p () t) - -(defalias 'mmcooked-entity-content 'mmbuffer-entity-content) - -(defun mmcooked-write-entity-content (entity filename) +(mm-define-method write-entity-content ((entity cooked) filename) (save-excursion (set-buffer (mime-entity-buffer-internal entity)) (let ((encoding (or (mime-entity-encoding entity) "7bit"))) @@ -50,6 +42,43 @@ filename encoding) )))) +(mm-define-method write-entity ((entity cooked) filename) + (save-excursion + (set-buffer (mime-entity-buffer-internal entity)) + (write-region (mime-entity-header-start-internal entity) + (mime-entity-body-end-internal entity) + filename) + )) + +(mm-define-method write-entity-body ((entity cooked) filename) + (save-excursion + (set-buffer (mime-entity-buffer-internal entity)) + (write-region (mime-entity-body-start-internal entity) + (mime-entity-body-end-internal entity) + filename) + )) + +(mm-define-method insert-header ((entity cooked) + &optional invisible-fields visible-fields) + (let (default-mime-charset) + (funcall (mime-find-function 'insert-decoded-header 'buffer) + entity invisible-fields visible-fields) + )) + +(mm-define-method insert-text-content ((entity cooked)) + (let ((str (mime-entity-content entity))) + (insert + (if (member (mime-entity-encoding entity) + '(nil "7bit" "8bit" "binary")) + str + (decode-mime-charset-string str + (or (mime-content-type-parameter + (mime-entity-content-type entity) + "charset") + default-mime-charset) + 'CRLF) + )))) + ;;; @ end ;;;