Merge from emacs--rel--22
[bpt/emacs.git] / lisp / image.el
index 99632b8..2633ff2 100644 (file)
@@ -1,17 +1,17 @@
 ;;; image.el --- image API
 
 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
-;;   2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;;   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: multimedia
 
 ;; 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
@@ -19,9 +19,7 @@
 ;; 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:
 
@@ -210,7 +208,8 @@ compatibility with versions of Emacs that lack the variable
 (defun image-jpeg-p (data)
   "Value is non-nil if DATA, a string, consists of JFIF image data.
 We accept the tag Exif because that is the same format."
-  (when (string-match "\\`\xff\xd8" data)
+  (setq data (ignore-errors (string-to-unibyte data)))
+  (when (and data (string-match-p "\\`\xff\xd8" data))
     (catch 'jfif
       (let ((len (length data)) (i 2))
        (while (< i len)
@@ -225,8 +224,8 @@ We accept the tag Exif because that is the same format."
            (when (and (>= code #xe0) (<= code #xef))
              ;; APP0 LEN1 LEN2 "JFIF\0"
              (throw 'jfif
-                    (string-match "JFIF\\|Exif"
-                                  (substring data i (min (+ i nbytes) len)))))
+                    (string-match-p "JFIF\\|Exif"
+                                    (substring data i (min (+ i nbytes) len)))))
            (setq i (+ i 1 nbytes))))))))
 
 
@@ -241,7 +240,7 @@ be determined."
       (let ((regexp (car (car types)))
            (image-type (cdr (car types))))
        (if (or (and (symbolp image-type)
-                    (string-match regexp data))
+                    (string-match-p regexp data))
                (and (consp image-type)
                     (funcall (car image-type) data)
                     (setq image-type (cdr image-type))))
@@ -265,7 +264,7 @@ be determined."
            (image-type (cdr (car types)))
            data)
        (if (or (and (symbolp image-type)
-                    (looking-at regexp))
+                    (looking-at-p regexp))
                (and (consp image-type)
                     (funcall (car image-type)
                              (or data
@@ -303,7 +302,7 @@ 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))
+  (assoc-default file image-type-file-name-regexps 'string-match-p))
 
 
 ;;;###autoload
@@ -328,6 +327,8 @@ Optional DATA-P non-nil means SOURCE is a string containing image data."
   type)
 
 
+(defvar image-library-alist)
+
 ;;;###autoload
 (defun image-type-available-p (type)
   "Return non-nil if image type TYPE is available.