]> git.eshelyaron.com Git - emacs.git/commitdiff
image-type-from-file-name fix for bug#9045
authorGlenn Morris <rgm@gnu.org>
Tue, 23 Oct 2012 00:46:11 +0000 (20:46 -0400)
committerGlenn Morris <rgm@gnu.org>
Tue, 23 Oct 2012 00:46:11 +0000 (20:46 -0400)
* lisp/image.el (image-type-from-file-name): If multiple types match,
return the first one that is supported.

lisp/ChangeLog
lisp/image.el

index f1714548a9865b663816e42a5aa366953f3d247a..5d527dcd3303c41d06b19c4769a607297fa61c3d 100644 (file)
@@ -1,3 +1,8 @@
+2012-10-23  Glenn Morris  <rgm@gnu.org>
+
+       * image.el (image-type-from-file-name): If multiple types match,
+       return the first one that is supported.  (Bug#9045)
+
 2012-10-22  Glenn Morris  <rgm@gnu.org>
 
        * image.el (imagemagick-enabled-types): Doc fix.
index 56c2fdff23fae665e5aa670d0aab9b136a0698e2..aef44fc3701141c93bb1aa0984ca1bdd72e721d9 100644 (file)
@@ -308,8 +308,17 @@ be determined."
   "Determine the type of image file FILE from its name.
 Value is a symbol specifying the image type, or nil if type cannot
 be determined."
-  (assoc-default file image-type-file-name-regexps 'string-match-p))
-
+  (let (type first)
+    (or
+     (catch 'found
+       (dolist (elem image-type-file-name-regexps)
+        (when (string-match-p (car elem) file)
+          (setq type (cdr elem))
+          (or first (setq first type))
+          (if (image-type-available-p type)
+              (throw 'found type)))))
+     ;; If nothing seems to be supported, return the first type that matched.
+     first)))
 
 ;;;###autoload
 (defun image-type (source &optional type data-p)