(eword-decode-string, eword-decode-region): Mention language info in doc string.
[elisp/flim.git] / mmbuffer.el
index 97fc783..c605a59 100644 (file)
@@ -19,8 +19,8 @@
 
 ;; 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:
 
 (luna-define-method mime-write-entity ((entity mime-buffer-entity) filename)
   (save-excursion
     (set-buffer (mime-buffer-entity-buffer-internal entity))
-    (write-region-as-raw-text-CRLF
-     (mime-buffer-entity-header-start-internal entity)
-     (mime-buffer-entity-body-end-internal entity)
-     filename)
-    ))
+    (let ((coding-system-for-write 'raw-text-dos))
+      (write-region (mime-buffer-entity-header-start-internal entity)
+                   (mime-buffer-entity-body-end-internal entity)
+                   filename))))
 
 
 ;;; @ entity header
                                            filename)
   (save-excursion
     (set-buffer (mime-buffer-entity-buffer-internal entity))
-    (write-region-as-binary (mime-buffer-entity-body-start-internal entity)
-                           (mime-buffer-entity-body-end-internal entity)
-                           filename)
-    ))
+    (binary-write-decoded-region
+     (mime-buffer-entity-body-start-internal entity)
+     (mime-buffer-entity-body-end-internal entity)
+     filename)))
 
 
 ;;; @ entity content
          (let ((ret (std11-fetch-field field-name)))
            (when ret
              (or (symbolp field-name)
-                 (setq field-name
-                       (intern (capitalize (capitalize field-name)))))
+                 (setq field-name (intern (capitalize field-name))))
              (mime-entity-set-original-header-internal
               entity
               (put-alist field-name ret
 ;;; @ children
 ;;;
 
-(defun mmbuffer-parse-multipart (entity)
+(defun mmbuffer-parse-multipart (entity &optional representation-type)
   (with-current-buffer (mime-buffer-entity-buffer-internal entity)
-    (let* ((representation-type
-           (mime-entity-representation-type-internal entity))
-          (content-type (mime-entity-content-type-internal entity))
+    (or representation-type
+       (setq representation-type
+             (mime-entity-representation-type-internal entity)))
+    (let* ((content-type (mime-entity-content-type-internal entity))
           (dash-boundary
            (concat "--"
                    (mime-content-type-parameter content-type "boundary")))
          nil)
        ))))
 
-(defun mmbuffer-parse-encapsulated (entity &optional external)
+(defun mmbuffer-parse-encapsulated (entity &optional external
+                                          representation-type)
   (mime-entity-set-children-internal
    entity
    (with-current-buffer (mime-buffer-entity-buffer-internal entity)
                  (progn
                    (require 'mmexternal)
                    'mime-external-entity)
-               (mime-entity-representation-type-internal entity))
+               (or representation-type
+                   (mime-entity-representation-type-internal entity)))
              nil
              entity (cons 0 (mime-entity-node-id-internal entity))))))))