emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/image.el


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/lisp/image.el
Date: Thu, 15 Sep 2005 10:00:14 -0400

Index: emacs/lisp/image.el
diff -c emacs/lisp/image.el:1.48 emacs/lisp/image.el:1.49
*** emacs/lisp/image.el:1.48    Sat Aug  6 22:13:43 2005
--- emacs/lisp/image.el Thu Sep 15 14:00:09 2005
***************
*** 49,54 ****
--- 49,62 ----
  with one argument, a string containing the image data.  If PREDICATE returns
  a non-nil value, TYPE is the image's type.")
  
+ (defvar image-load-path
+   (list (file-name-as-directory (expand-file-name "images" data-directory))
+       data-directory 'load-path)
+   "List of locations in which to search for image files.
+ If an element is a string, it defines a directory to search in.
+ If an element is a variable symbol, the value of that variable is
+ used as a list of directories to search.")
+ 
  (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."
***************
*** 269,274 ****
--- 277,296 ----
          (delete-overlay overlay)))
        (setq overlays (cdr overlays)))))
  
+ (defun image-search-load-path (file path)
+   (let (found pathname)
+     (while (and (not found) (consp path))
+       (cond
+        ((stringp (car path))
+       (setq found
+             (file-readable-p
+              (setq pathname (expand-file-name file (car path))))))
+        ((and (symbolp (car path)) (boundp (car path)))
+       (if (setq pathname (image-search-load-path
+                           file (symbol-value (car path))))
+           (setq found t))))
+       (setq path (cdr path)))
+     (if found pathname)))
  
  ;;;###autoload
  (defun find-image (specs)
***************
*** 286,292 ****
  specification to be returned.  Return nil if no specification is
  satisfied.
  
! The image is looked for first on `load-path' and then in `data-directory'."
    (let (image)
      (while (and specs (null image))
        (let* ((spec (car specs))
--- 308,314 ----
  specification to be returned.  Return nil if no specification is
  satisfied.
  
! The image is looked for in `image-load-path'."
    (let (image)
      (while (and specs (null image))
        (let* ((spec (car specs))
***************
*** 296,315 ****
             found)
        (when (image-type-available-p type)
          (cond ((stringp file)
!                (let ((path load-path))
!                  (while (and (not found) path)
!                    (let ((try-file (expand-file-name file (car path))))
!                      (when (file-readable-p try-file)
!                        (setq found try-file)))
!                    (setq path (cdr path)))
!                  (unless found
!                    (let ((try-file (expand-file-name file data-directory)))
!                      (if (file-readable-p try-file)
!                          (setq found try-file))))
!                  (if found
!                      (setq image
!                            (cons 'image (plist-put (copy-sequence spec)
!                                                    :file found))))))
                ((not (null data))
                 (setq image (cons 'image spec)))))
        (setq specs (cdr specs))))
--- 318,328 ----
             found)
        (when (image-type-available-p type)
          (cond ((stringp file)
!                (if (setq found (image-search-load-path
!                                 file image-load-path))
!                    (setq image
!                          (cons 'image (plist-put (copy-sequence spec)
!                                                  :file found)))))
                ((not (null data))
                 (setq image (cons 'image spec)))))
        (setq specs (cdr specs))))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]