X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mmcooked.el;h=c2b30663b2b33e03029deeb840bb01fa8a57a5da;hb=4727809b0b568e24ae94c1d6bdb4354b37959739;hp=d8926ae352b020621445a46221439bbf6eb5dfbf;hpb=310f35c816e303d1b64be304ed0f1a6e453198fd;p=elisp%2Fflim.git diff --git a/mmcooked.el b/mmcooked.el index d8926ae..c2b3066 100644 --- a/mmcooked.el +++ b/mmcooked.el @@ -1,6 +1,6 @@ ;;; mmcooked.el --- MIME entity implementation for binary buffer -;; Copyright (C) 1998 Free Software Foundation, Inc. +;; Copyright (C) 1998,1999 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: MIME, multimedia, mail, news @@ -19,44 +19,70 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Code: (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)) + (set-buffer (mime-buffer-entity-buffer-internal entity)) (let ((encoding (or (mime-entity-encoding entity) "7bit"))) (if (member encoding '("7bit" "8bit" "binary")) - (write-region (mime-entity-body-start-internal entity) - (mime-entity-body-end-internal entity) filename) - (mime-write-decoded-region (mime-entity-body-start-internal entity) - (mime-entity-body-end-internal entity) - filename encoding) + (write-region (mime-buffer-entity-body-start-internal entity) + (mime-buffer-entity-body-end-internal entity) filename) + (mime-write-decoded-region + (mime-buffer-entity-body-start-internal entity) + (mime-buffer-entity-body-end-internal entity) + filename encoding) )))) -(defun mmcooked-write-entity (entity filename) +(mm-define-method write-entity ((entity cooked) filename) + (save-excursion + (set-buffer (mime-buffer-entity-buffer-internal entity)) + (write-region (mime-buffer-entity-header-start-internal entity) + (mime-buffer-entity-body-end-internal entity) + filename) + )) + +(mm-define-method write-entity-body ((entity cooked) filename) (save-excursion - (set-buffer (mime-entity-buffer entity)) - (write-region (mime-entity-point-min entity) - (mime-entity-point-max entity) filename) + (set-buffer (mime-buffer-entity-buffer-internal entity)) + (write-region (mime-buffer-entity-body-start-internal entity) + (mime-buffer-entity-body-end-internal entity) + filename) + )) + +(luna-define-method mime-insert-header ((entity mime-cooked-entity) + &optional invisible-fields + visible-fields) + (let (default-mime-charset) + (funcall (car (luna-class-find-functions + (luna-find-class 'mime-buffer-entity) + 'mime-insert-header)) + 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 ;;;