Forward binary UTF-8.
authorShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 20 Dec 2000 10:05:46 +0000 (10:05 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 20 Dec 2000 10:05:46 +0000 (10:05 +0000)
2000-12-20 05:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>

* gnus-msg.el (gnus-summary-mail-forward): Use original buffer.

* message.el (message-forward): Copy buffer in unibyte mode.

lisp/ChangeLog
lisp/gnus-msg.el
lisp/message.el

index 2fe61b0..9c60200 100644 (file)
@@ -1,3 +1,9 @@
+2000-12-20 05:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-msg.el (gnus-summary-mail-forward): Use original buffer.
+
+       * message.el (message-forward): Copy buffer in unibyte mode.
+
 2000-12-20 04:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * message.el (message-make-forward-subject): Don't widen. Decode.
index cb76f64..28dc934 100644 (file)
@@ -734,21 +734,8 @@ If POST, post instead of mail."
     (gnus-setup-message 'forward
       (gnus-summary-select-article)
       (let ((mail-parse-charset gnus-newsgroup-charset)
-           (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets)
-           text)
-       (save-excursion
-         (set-buffer gnus-original-article-buffer)
-         (setq text (buffer-string)))
-       (set-buffer 
-        (gnus-get-buffer-create
-         (generate-new-buffer-name " *Gnus forward*")))
-       (erase-buffer)
-       (unless message-forward-show-mml
-         (mm-disable-multibyte))
-       (insert text)
-       (goto-char (point-min))
-       (when (looking-at "From ")
-         (replace-match "X-From-Line: "))
+           (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets))
+       (set-buffer gnus-original-article-buffer)
        (message-forward post)))))
 
 (defun gnus-summary-resend-message (address n)
index 36c5f45..1764363 100644 (file)
@@ -4263,12 +4263,29 @@ Optional DIGEST will use digest to forward."
              (insert-buffer-substring cur)
            (mml-insert-buffer cur))
        (if message-forward-show-mml
-           (save-restriction
-             (narrow-to-region (point) (point))
-             (insert-buffer-substring cur)
-             (mime-to-mml)
+           (let ((target (current-buffer)) tmp)
+             (with-temp-buffer
+               (mm-disable-multibyte) ;; Must copy buffer in unibyte mode
+               (setq tmp (current-buffer))
+               (set-buffer cur)
+               (mm-with-unibyte-current-buffer
+                 (set-buffer tmp)
+                 (insert-buffer-substring cur))
+               (set-buffer tmp)
+               (mm-enable-multibyte)
+               (mime-to-mml)
+               (goto-char (point-min))
+               (when (looking-at "From ")
+                 (replace-match "X-From-Line: "))
+               (set-buffer target)
+               (insert-buffer-substring tmp)
+               (set-buffer tmp))
              (goto-char (point-max)))
-         (mml-insert-buffer cur)))
+         (mml-insert-buffer cur)
+         (goto-char (point-min))
+         (when (looking-at "From ")
+           (replace-match "X-From-Line: "))
+         (goto-char (point-max))))
       (setq e (point))
       (if message-forward-as-mime
          (if digest