From dccd067f3a744752bba4542d91d704de66fa889f Mon Sep 17 00:00:00 2001 From: Bill Wohler Date: Thu, 16 Feb 2006 18:32:15 +0000 Subject: [PATCH] (mh-image-load-path): The variables image-load-path or load-path would not get updated if user set mh-image-load-path. Moved tests and add-to-list calls outside of cond so they are applied consistently, even if they are redundant in some circumstances. Efficiency isn't a concern here. Made error messages more user-friendly. --- lisp/mh-e/ChangeLog | 9 +++++++++ lisp/mh-e/mh-utils.el | 45 +++++++++++++++++++++---------------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 3dcf689767a..67fd051fda8 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog @@ -1,3 +1,12 @@ +2006-02-16 Bill Wohler + + * mh-utils.el (mh-image-load-path): The variables image-load-path + or load-path would not get updated if user set mh-image-load-path. + Moved tests and add-to-list calls outside of cond so they are + applied consistently, even if they are redundant in some + circumstances. Efficiency isn't a concern here. Made error + messages more user-friendly. + 2006-02-15 Peter S Galbraith * mh-compat.el (mh-image-search-load-path): Compatibility code. diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el index bf0d29fd2a7..58d29bc5d1c 100644 --- a/lisp/mh-e/mh-utils.el +++ b/lisp/mh-e/mh-utils.el @@ -96,10 +96,11 @@ This variable is used by that function to avoid doing the work repeatedly.") "Ensure that the MH-E images are accessible by `find-image'. Images for MH-E are found in \"../../etc/images\" relative to the -files in \"lisp/mh-e\". This function saves the actual location -found in the variable `mh-image-load-path'. If the images on your -system are actually located elsewhere, then set the variable -`mh-image-load-path' before starting MH-E. +files in \"lisp/mh-e\", in `image-load-path', or in `load-path'. +This function saves the actual location found in the variable +`mh-image-load-path'. If the images on your system are actually +located elsewhere, then set the variable `mh-image-load-path' +before starting MH-E. If `image-load-path' exists (since Emacs 22), then the contents of the variable `mh-image-load-path' is added to it if isn't @@ -110,40 +111,38 @@ already there. See also variable `mh-image-load-path-called-flag'." (unless mh-image-load-path-called-flag (cond - ((and mh-image-load-path - (file-exists-p (expand-file-name "mh-logo.xpm" - mh-image-load-path)))) - ;; User setting exists. We're done. - ((and mh-image-load-path - (not (file-exists-p (expand-file-name "mh-logo.xpm" - mh-image-load-path)))) - ;; User setting does not exist. - (message "Variable mh-image-load-path %s does not contain MH-E images" - mh-image-load-path)) + (mh-image-load-path) ; user setting exists; we're done ((mh-image-search-load-path "mh-logo.xpm") - ;; Emacs 22 already knows where the images are. + ;; Images already in image-load-path. (setq mh-image-load-path (file-name-directory (mh-image-search-load-path "mh-logo.xpm")))) ((locate-library "mh-logo.xpm") - ;; Other Emacs already knows where the images are... + ;; Images already in load-path. (setq mh-image-load-path (file-name-directory (locate-library "mh-logo.xpm")))) - (t + (t ;; Guess `mh-image-load-path' if it wasn't provided by the user. (let (mh-library-name) ;; First, find mh-e in the load-path. (setq mh-library-name (locate-library "mh-e")) (if (not mh-library-name) (error "Can not find MH-E in load-path")) + ;; And then set mh-image-load-path relative to that. (setq mh-image-load-path (expand-file-name (concat (file-name-directory mh-library-name) - "../../etc/images")))) - (if (not (file-exists-p mh-image-load-path)) - (error "Can not find image directory %s" mh-image-load-path)) - (if (boundp 'image-load-path) - (add-to-list 'image-load-path mh-image-load-path) - (add-to-list 'load-path mh-image-load-path)))) + "../../etc/images")))))) + (if (not (file-exists-p mh-image-load-path)) + (error "Directory %s in mh-image-load-path does not exist" + mh-image-load-path)) + (if (not (file-exists-p + (expand-file-name "mh-logo.xpm" mh-image-load-path))) + (error "Directory %s in mh-image-load-path does not contain MH-E images" + mh-image-load-path)) + (if (boundp 'image-load-path) + (add-to-list 'image-load-path mh-image-load-path) + (add-to-list 'load-path mh-image-load-path)) + (setq mh-image-load-path-called-flag t))) ;;;###mh-autoload -- 2.39.2