Merge from emacs--devo--0
[gnus] / lisp / mm-uu.el
index d6a7556..290da40 100644 (file)
@@ -8,20 +8,18 @@
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
-;;
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; 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., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -89,7 +87,7 @@ This can be either \"inline\" or \"attachment\".")
 
 (defcustom mm-uu-tex-groups-regexp "\\.tex\\>"
   "*Regexp matching TeX groups."
-  :version "23.0"
+  :version "23.1"
   :type 'regexp
   :group 'gnus-article-mime)
 
@@ -245,7 +243,7 @@ The value should be nil on displays where the face
 `mm-uu-extract' isn't distinguishable to the face `default'."
   :type '(choice (const :tag "Hide" t)
                 (const :tag "Don't hide" nil))
-  :version "23.0" ;; No Gnus
+  :version "23.1" ;; No Gnus
   :group 'gnus-article-mime)
 
 (defface mm-uu-extract '(;; Inspired by `gnus-cite-3'
@@ -269,7 +267,7 @@ The value should be nil on displays where the face
                          ()))
   "Face for extracted buffers."
   ;; See `mm-uu-verbatim-marks-extract'.
-  :version "23.0" ;; No Gnus
+  :version "23.1" ;; No Gnus
   :group 'gnus-article-mime)
 
 (defun mm-uu-copy-to-buffer (&optional from to properties)
@@ -280,11 +278,14 @@ If PROPERTIES is non-nil, PROPERTIES are applied to the buffer,
 see `set-text-properties'.  If PROPERTIES equals t, this means to
 apply the face `mm-uu-extract'."
   (let ((obuf (current-buffer))
+        (multi (and (boundp 'enable-multibyte-characters)
+                    enable-multibyte-characters))
        (coding-system
          ;; Might not exist in non-MULE XEmacs
          (when (boundp 'buffer-file-coding-system)
            buffer-file-coding-system)))
     (with-current-buffer (generate-new-buffer " *mm-uu*")
+      (if multi (mm-enable-multibyte) (mm-disable-multibyte))
       (setq buffer-file-coding-system coding-system)
       (insert-buffer-substring obuf from to)
       (cond ((eq properties  t)
@@ -441,8 +442,7 @@ apply the face `mm-uu-extract'."
   ;; This might not be exactly correct, but we sure can't get the
   ;; binary data from the article buffer, since that's already in a
   ;; non-binary charset.  So get it from the original article buffer. 
-  (mm-make-handle (save-excursion
-                   (set-buffer gnus-original-article-buffer)
+  (mm-make-handle (with-current-buffer gnus-original-article-buffer
                    (mm-uu-copy-to-buffer start-point end-point))
                  (list (or (and file-name
                                 (string-match "\\.[^\\.]+$" file-name)