Just return the image directories, not all directories in the path in addition to...
[gnus] / lisp / mm-util.el
index a288b8b..8808b0b 100644 (file)
@@ -680,7 +680,7 @@ superset of iso-8859-1."
   "100% binary coding system.")
 
 (defvar mm-text-coding-system
-  (or (if (memq system-type '(windows-nt ms-dos ms-windows))
+  (or (if (memq system-type '(windows-nt ms-dos))
          (and (mm-coding-system-p 'raw-text-dos) 'raw-text-dos)
        (and (mm-coding-system-p 'raw-text) 'raw-text))
       mm-binary-coding-system)
@@ -692,12 +692,12 @@ superset of iso-8859-1."
 (defvar mm-auto-save-coding-system
   (cond
    ((mm-coding-system-p 'utf-8-emacs)  ; Mule 7
-    (if (memq system-type '(windows-nt ms-dos ms-windows))
+    (if (memq system-type '(windows-nt ms-dos))
        (if (mm-coding-system-p 'utf-8-emacs-dos)
            'utf-8-emacs-dos mm-binary-coding-system)
       'utf-8-emacs))
    ((mm-coding-system-p 'emacs-mule)
-    (if (memq system-type '(windows-nt ms-dos ms-windows))
+    (if (memq system-type '(windows-nt ms-dos))
        (if (mm-coding-system-p 'emacs-mule-dos)
            'emacs-mule-dos mm-binary-coding-system)
       'emacs-mule))
@@ -902,12 +902,6 @@ mail with multiple parts is preferred to sending a Unicode one.")
       out)))
 
 (eval-and-compile
-  (defvar mm-emacs-mule (and (not (featurep 'xemacs))
-                            (boundp 'enable-multibyte-characters)
-                            (default-value 'enable-multibyte-characters)
-                            (fboundp 'set-buffer-multibyte))
-    "True in Emacs with Mule.")
-
   (if (featurep 'xemacs)
       (defalias 'mm-enable-multibyte 'ignore)
     (defun mm-enable-multibyte ()
@@ -1230,33 +1224,23 @@ Use multibyte mode for this."
 
 (defmacro mm-with-unibyte-current-buffer (&rest forms)
   "Evaluate FORMS with current buffer temporarily made unibyte.
-Also bind the default-value of `enable-multibyte-characters' to nil.
-Equivalent to `progn' in XEmacs
-
-NOTE: Use this macro with caution in multibyte buffers (it is not
-worth using this macro in unibyte buffers of course).  Use of
-`(set-buffer-multibyte t)', which is run finally, is generally
-harmful since it is likely to modify existing data in the buffer.
-For instance, it converts \"\\300\\255\" into \"\\255\" in
-Emacs 23 (unicode)."
+Equivalent to `progn' in XEmacs.
+
+Note: We recommend not using this macro any more; there should be
+better ways to do a similar thing.  The previous version of this macro
+bound the default value of `enable-multibyte-characters' to nil while
+evaluating FORMS but it is no longer done.  So, some programs assuming
+it if any may malfunction."
   (if (featurep 'xemacs)
       `(progn ,@forms)
-    ;; FIXME: (default-value 'enable-multibyte-characters) is read-only
-    ;; so let-binding it is wrong.  The right fix is to not use this
-    ;; macro at all any more, since it's been ill-defined from the start.
-    (let ((multibyte (make-symbol "multibyte"))
-         (buffer (make-symbol "buffer")))
-      `(if mm-emacs-mule
-          (let ((,multibyte enable-multibyte-characters)
-                (,buffer (current-buffer)))
-            (unwind-protect
-                (letf (((default-value 'enable-multibyte-characters) nil))
-                      (set-buffer-multibyte nil)
-                      ,@forms)
-              (set-buffer ,buffer)
-              (set-buffer-multibyte ,multibyte)))
-        (letf (((default-value 'enable-multibyte-characters) nil))
-              ,@forms)))))
+    (let ((multibyte (make-symbol "multibyte")))
+      `(let ((,multibyte enable-multibyte-characters))
+        (when ,multibyte
+          (set-buffer-multibyte nil))
+        (prog1
+            (progn ,@forms)
+          (when ,multibyte
+            (set-buffer-multibyte t)))))))
 (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0)
 (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body))
 
@@ -1447,14 +1431,14 @@ If SUFFIX is non-nil, add that at the end of the file name."
 
 (defun mm-image-load-path (&optional package)
   (let (dir result)
-    (dolist (path load-path (nreverse result))
+    (dolist (path load-path)
       (when (and path
                 (file-directory-p
                  (setq dir (concat (file-name-directory
                                     (directory-file-name path))
                                    "etc/images/" (or package "gnus/")))))
-       (push dir result))
-      (push path result))))
+       (push dir result)))
+    (nreverse result)))
 
 ;; Fixme: This doesn't look useful where it's used.
 (if (fboundp 'detect-coding-region)
@@ -1669,5 +1653,4 @@ gzip, bzip2, etc. are allowed."
 
 (provide 'mm-util)
 
-;; arch-tag: 94dc5388-825d-4fd1-bfa5-2100aa351238
 ;;; mm-util.el ends here