# HG changeset patch # User Peter Galbraith # Date 1140056080 0 # Node ID 3f537f10607215653116df7487ee3fce5f66d5f4 # Parent 133ba2ee7e439e067e3b9f737ab7cd1cdfe2b936 mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and XEmacs don't have `image-search-load-path'. mh-utils.el (mh-image-load-path): Don't bail out on error if the images are already found. diff -r 133ba2ee7e43 -r 3f537f106072 lisp/mh-e/ChangeLog --- a/lisp/mh-e/ChangeLog Thu Feb 16 01:41:30 2006 +0000 +++ b/lisp/mh-e/ChangeLog Thu Feb 16 02:14:40 2006 +0000 @@ -1,3 +1,11 @@ +2006-02-15 Peter S Galbraith + + * mh-compat.el (mh-image-search-load-path): Compatibility code. + Emacs 21 and XEmacs don't have `image-search-load-path'. + + * mh-utils.el (mh-image-load-path): Don't bail out on error if the + images are already found. + 2006-02-10 Bill Wohler * mh-search.el (mh-search): Wrap code in (block mh-search ...) diff -r 133ba2ee7e43 -r 3f537f106072 lisp/mh-e/mh-compat.el --- a/lisp/mh-e/mh-compat.el Thu Feb 16 01:41:30 2006 +0000 +++ b/lisp/mh-e/mh-compat.el Thu Feb 16 02:14:40 2006 +0000 @@ -115,6 +115,12 @@ `(face-background ,face ,frame) `(face-background ,face ,frame ,inherit))) +(mh-defun-compat mh-image-search-load-path + image-search-load-path (file &optional path) + "Emacs 21 and XEmacs don't have `image-search-load-path'. +This function returns nil on those systems." + nil) + ;; For XEmacs. (defalias 'mh-line-beginning-position (if (fboundp 'line-beginning-position) @@ -131,7 +137,7 @@ (mh-defun-compat mh-mail-abbrev-make-syntax-table mail-abbrev-make-syntax-table () "Emacs 21 and XEmacs don't have `mail-abbrev-make-syntax-table'. -This function does nothing on those systems." +This function returns nil on those systems." nil) (mh-defun-compat mh-match-string-no-properties diff -r 133ba2ee7e43 -r 3f537f106072 lisp/mh-e/mh-utils.el --- a/lisp/mh-e/mh-utils.el Thu Feb 16 01:41:30 2006 +0000 +++ b/lisp/mh-e/mh-utils.el Thu Feb 16 02:14:40 2006 +0000 @@ -109,21 +109,41 @@ See also variable `mh-image-load-path-called-flag'." (unless mh-image-load-path-called-flag - (if (or (not mh-image-load-path) - (not (file-exists-p mh-image-load-path))) - (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")) - (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)) + (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-search-load-path "mh-logo.xpm") + ;; Emacs 22 already knows where the images are. + (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... + (setq mh-image-load-path + (file-name-directory (locate-library "mh-logo.xpm")))) + (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")) + (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)))) (setq mh-image-load-path-called-flag t))) ;;;###mh-autoload