# HG changeset patch # User Chong Yidong # Date 1127052286 0 # Node ID 39114a2ae201aba95bf28631d807b21f358157b5 # Parent bae76b0c6f5eb3d08554b9f5c75f81eeedc18ae4 (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. diff -r bae76b0c6f5e -r 39114a2ae201 lisp/ChangeLog --- 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 + + * 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 * calendar/diary-lib.el (mark-diary-entries): Rearrange to wrap diff -r bae76b0c6f5e -r 39114a2ae201 lisp/image.el --- 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)))