summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2005-09-18 14:04:46 +0000
committerChong Yidong <cyd@stupidchicken.com>2005-09-18 14:04:46 +0000
commit34accfecbdda09326e6189b472fd154c56ccf0d1 (patch)
treea24fce80ff6df256c633b249ce6c02b69eb5a686 /lisp
parent76f4613d311aca518367ad0d7677e9e54cfa72d3 (diff)
downloademacs-34accfecbdda09326e6189b472fd154c56ccf0d1.tar.gz
(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.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/image.el31
2 files changed, 27 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5374457354d..b1e9df5c125 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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
diff --git a/lisp/image.el b/lisp/image.el
index 154a49e61b1..ee188677517 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -51,11 +51,13 @@ 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)
+ '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 @@ BUFFER nil or omitted means use the current buffer."
(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)))