X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mmbuffer.el;h=4fa962817825cd382fd8c7a5ad5a07caedf5d373;hb=fe755ea52a6124d8aab0ff3708e1fe2a321ce044;hp=fd948b34c92cffa64f870e1ff53bf3cc7d3af6c3;hpb=79afbe85ece9473654c1a92906f839ff5e889fad;p=elisp%2Fflim.git diff --git a/mmbuffer.el b/mmbuffer.el index fd948b3..4fa9628 100644 --- a/mmbuffer.el +++ b/mmbuffer.el @@ -24,7 +24,7 @@ ;;; Code: -(require 'mime-parse) +(require 'mime) (defun mmbuffer-open-entity (location) (mime-parse-buffer location) @@ -49,6 +49,37 @@ (defun mmbuffer-cooked-p () nil) +(defun mmbuffer-entity-content (entity) + (save-excursion + (set-buffer (mime-entity-buffer-internal entity)) + (mime-decode-string + (buffer-substring (mime-entity-body-start-internal entity) + (mime-entity-body-end-internal entity)) + (mime-entity-encoding entity)))) + +(defun mmbuffer-write-entity-content (entity filename) + (save-excursion + (set-buffer (mime-entity-buffer-internal entity)) + (mime-write-decoded-region (mime-entity-body-start-internal entity) + (mime-entity-body-end-internal entity) + filename + (or (mime-entity-encoding entity) "7bit")) + )) + +(defun mmbuffer-write-entity (entity filename) + (save-excursion + (set-buffer (mime-entity-buffer entity)) + (write-region-as-binary (mime-entity-point-min entity) + (mime-entity-point-max entity) filename) + )) + +(defun mmbuffer-write-entity-body (entity filename) + (save-excursion + (set-buffer (mime-entity-buffer entity)) + (write-region-as-binary (mime-entity-body-start entity) + (mime-entity-body-end entity) filename) + )) + ;;; @ end ;;;