changeset 65599:39114a2ae201

(image-load-path): Use symbol `data-directory' instead of its value, for backward compatibility with packages that bind it during `find-image'. Suggested by Katsumi Yamaoka. (image-search-load-path): Handle symbols whose values are strings.
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 18 Sep 2005 14:04:46 +0000
parents bae76b0c6f5e
children bd15c2b64526
files lisp/ChangeLog lisp/image.el
diffstat 2 files changed, 27 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Sep 18 14:03:55 2005 +0000
+++ b/lisp/ChangeLog	Sun Sep 18 14:04:46 2005 +0000
@@ -1,3 +1,10 @@
+2005-09-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* image.el (image-load-path): Use symbol `data-directory' instead
+	of its value, for backward compatibility with packages that bind
+	it during `find-image'.  Suggested by Katsumi Yamaoka.
+	(image-search-load-path): Handle symbols whose values are strings.
+
 2005-09-18  Romain Francoise  <romain@orebokech.com>
 
 	* calendar/diary-lib.el (mark-diary-entries): Rearrange to wrap
--- a/lisp/image.el	Sun Sep 18 14:03:55 2005 +0000
+++ b/lisp/image.el	Sun Sep 18 14:04:46 2005 +0000
@@ -51,11 +51,13 @@
 
 (defvar image-load-path
   (list (file-name-as-directory (expand-file-name "images" data-directory))
-	data-directory 'load-path)
+	'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.")
+If an element is a string, it defines a directory to search.
+If an element is a variable symbol whose value is a string, that
+value defines a directory to search.
+If an element is a variable symbol whose value is a list, the
+value 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.
@@ -278,17 +280,24 @@
       (setq overlays (cdr overlays)))))
 
 (defun image-search-load-path (file path)
-  (let (found pathname)
+  (let (element found pathname)
     (while (and (not found) (consp path))
+      (setq element (car path))
       (cond
-       ((stringp (car path))
+       ((stringp element)
 	(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 pathname (expand-file-name file element)))))
+       ((and (symbolp element) (boundp element))
+	(setq element (symbol-value element))
+	(cond
+	 ((stringp element)
+	  (setq found
+		(file-readable-p
+		 (setq pathname (expand-file-name file element)))))
+	 ((consp element)
+	  (if (setq pathname (image-search-load-path file element))
+	      (setq found t))))))
       (setq path (cdr path)))
     (if found pathname)))