* mm-decode.el (mm-copy-to-buffer): Copy buffer in unibyte mode.
authoryamaoka <yamaoka>
Thu, 22 Mar 2001 01:48:47 +0000 (01:48 +0000)
committeryamaoka <yamaoka>
Thu, 22 Mar 2001 01:48:47 +0000 (01:48 +0000)
ChangeLog
lisp/mm-decode.el

index ced0009..ee20333 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-03-21  Thierry Emery <thierry.emery@club-internet.fr>
+
+       * lisp/mm-decode.el (mm-copy-to-buffer): Copy buffer in unibyte
+       mode.
+
 2001-03-19  Katsumi Yamaoka <yamaoka@jpl.org>
 
        * lisp/gnus-kill.el (gnus-execute): Work with the extra headers.
index bc2b7b5..d44a5dc 100644 (file)
@@ -443,14 +443,18 @@ The original alist is not modified.  See also `destructive-alist-to-plist'."
 (defun mm-copy-to-buffer ()
   "Copy the contents of the current buffer to a fresh buffer."
   (save-excursion
-    (let ((obuf (current-buffer))
-         beg)
+    (let ((flag enable-multibyte-characters)
+         (new-buffer (generate-new-buffer " *mm*")))
       (goto-char (point-min))
       (search-forward-regexp "^\n" nil t)
-      (setq beg (point))
-      (set-buffer (generate-new-buffer " *mm*"))
-      (insert-buffer-substring obuf beg)
-      (current-buffer))))
+      (save-restriction
+       (narrow-to-region (point) (point-max))
+       (when flag
+         (set-buffer-multibyte nil))
+       (copy-to-buffer new-buffer (point-min) (point-max))
+       (when flag
+         (set-buffer-multibyte t)))
+      new-buffer)))
 
 (defun mm-display-parts (handle &optional no-default)
   (if (stringp (car handle))