(ucs-fragment-8859): Don't modify
[bpt/emacs.git] / lisp / image.el
index e4c2387..ac1ef55 100644 (file)
@@ -1,6 +1,8 @@
 ;;; image.el --- image API
 
 ;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+;; Maintainer: FSF
 ;; Keywords: multimedia
 
 ;; This file is part of GNU Emacs.
@@ -48,7 +50,8 @@ a non-nil value, TYPE is the image's type ")
 
 
 (defun image-jpeg-p (data)
-  "Value is non-nil if DATA, a string, consists of JFIF image 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)
     (catch 'jfif
       (let ((len (length data)) (i 2))
@@ -64,7 +67,7 @@ a non-nil value, TYPE is the image's type ")
            (when (and (>= code #xe0) (<= code #xef))
              ;; APP0 LEN1 LEN2 "JFIF\0"
              (throw 'jfif 
-                    (string-match "JFIF" (substring data i (+ i nbytes)))))
+                    (string-match "JFIF\\|Exif" (substring data i (+ i nbytes)))))
            (setq i (+ i 1 nbytes))))))))
 
 
@@ -97,6 +100,7 @@ be determined."
     (setq file (expand-file-name file data-directory)))
   (setq file (expand-file-name file))
   (let ((header (with-temp-buffer
+                 (set-buffer-multibyte nil)
                  (insert-file-contents-literally file nil 0 256)
                  (buffer-string))))
     (image-type-from-data header)))
@@ -199,11 +203,7 @@ means display it in the right marginal area."
   (let ((start (point)))
     (insert string)
     (add-text-properties start (point)
-                        (list 'display image
-                              ;; `image' has the right properties to
-                              ;; mark an intangible field.
-                              'intangible image
-                              'rear-nonsticky (list 'display)))))
+                        `(display ,image rear-nonsticky (display)))))
 
 
 ;;;###autoload