Mercurial > emacs
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)))