diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2005-09-18 14:04:46 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2005-09-18 14:04:46 +0000 |
commit | 34accfecbdda09326e6189b472fd154c56ccf0d1 (patch) | |
tree | a24fce80ff6df256c633b249ce6c02b69eb5a686 /lisp | |
parent | 76f4613d311aca518367ad0d7677e9e54cfa72d3 (diff) | |
download | emacs-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/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/image.el | 31 |
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))) |