Mercurial > emacs
changeset 66113:bfb1c3364c23
* mh-init.el (mh-image-load-path-called-flag): New variable which
is used by mh-image-load-path so that it runs only once.
(mh-image-load-path): Modified so that it gets run only once. Also
flatten out heavily nested if statements to make it clearer.
* mh-e.el (mh-folder-mode): Call mh-image-load-path to allow Emacs
to find images used in the toolbar.
* mh-customize.el (:folder): Remove call to mh-image-load-path.
author | Satyaki Das <satyaki@theforce.stanford.edu> |
---|---|
date | Sun, 16 Oct 2005 03:24:54 +0000 |
parents | 9bb08ad57594 |
children | 13abee3a9bc6 |
files | lisp/mh-e/ChangeLog lisp/mh-e/mh-customize.el lisp/mh-e/mh-e.el lisp/mh-e/mh-init.el |
diffstat | 4 files changed, 40 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mh-e/ChangeLog Sun Oct 16 02:23:23 2005 +0000 +++ b/lisp/mh-e/ChangeLog Sun Oct 16 03:24:54 2005 +0000 @@ -1,3 +1,15 @@ +2005-10-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-init.el (mh-image-load-path-called-flag): New variable which + is used by mh-image-load-path so that it runs only once. + (mh-image-load-path): Modified so that it gets run only once. Also + flatten out heavily nested if statements to make it clearer. + + * mh-e.el (mh-folder-mode): Call mh-image-load-path to allow Emacs + to find images used in the toolbar. + + * mh-customize.el (:folder): Remove call to mh-image-load-path. + 2005-10-14 Bill Wohler <wohler@newt.com> * mh-e.el (Version, mh-version): Added +cvs to version.
--- a/lisp/mh-e/mh-customize.el Sun Oct 16 02:23:23 2005 +0000 +++ b/lisp/mh-e/mh-customize.el Sun Oct 16 03:24:54 2005 +0000 @@ -1897,7 +1897,6 @@ for y in letter-docs collect `(const :tag ,y ,x))))))) -(mh-image-load-path) (mh-tool-bar-define ((:folder mh-inc-folder mh-mime-save-parts mh-previous-undeleted-msg mh-page-msg mh-next-undeleted-msg mh-delete-msg mh-refile-msg
--- a/lisp/mh-e/mh-e.el Sun Oct 16 02:23:23 2005 +0000 +++ b/lisp/mh-e/mh-e.el Sun Oct 16 03:24:54 2005 +0000 @@ -1561,6 +1561,7 @@ \\{mh-folder-mode-map}" + (mh-image-load-path) (make-local-variable 'font-lock-defaults) (setq font-lock-defaults '(mh-folder-font-lock-keywords t)) (make-local-variable 'desktop-save-buffer)
--- a/lisp/mh-e/mh-init.el Sun Oct 16 02:23:23 2005 +0000 +++ b/lisp/mh-e/mh-init.el Sun Oct 16 03:24:54 2005 +0000 @@ -307,6 +307,9 @@ ;;; to error have been changed to calls to message, and code following was ;;; inserted as an else clause. This is not robust, so if you can fix this, ;;; please do! + +(defvar mh-image-load-path-called-flag nil) + ;;;###mh-autoload (defun mh-image-load-path () "Ensure that the MH-E images are accessible by `find-image'. @@ -314,36 +317,30 @@ `lisp/mh-e'. If `image-load-path' exists (since Emacs 22), then the images directory is added to it if isn't already there. Otherwise, the images directory is added to the `load-path' if it isn't already there." - (let (mh-load-path mh-image-load-path) - ;; First, find mh-e in the load-path. - (let ((path load-path)) - (while path - (let* ((directory (directory-file-name (car path)))) - (setq mh-load-path - (if (and (equal (file-name-nondirectory directory) "mh-e") - (file-exists-p directory)) - directory - nil)) - (setq path (if mh-load-path nil (cdr path))))) - (if (not mh-load-path) - ;; This message be error; there shouldn't be an else. Blame compiler. - (message "Can not find mh-e in load-path (OK when compiling)") - ;; Create the image path associated with this mh-e directory. - (setq mh-image-load-path (expand-file-name - (concat (file-name-directory mh-load-path) - "../etc/images"))))) - (if (or (not mh-image-load-path) - (not (file-exists-p mh-image-load-path))) - ;; This message be error; there shouldn't be an else. Blame compiler. - (message "Can not find image directory %s (OK when compiling)" - mh-image-load-path) - ;; If image-load-path exists, and the image path isn't there add it. - (if (boundp 'image-load-path) - (if (not (member mh-image-load-path image-load-path)) - (push mh-image-load-path image-load-path)) - ;; Otherwise, if the image path isn't in the load-path, add it there. - (if (not (member mh-image-load-path load-path)) - (push mh-image-load-path load-path)))))) + (message "mh-image-load-path called") ;XXX: for debugging + (unless mh-image-load-path-called-flag + (let (mh-load-path mh-image-load-path) + ;; First, find mh-e in the load-path. + (setq mh-load-path + (loop for dir in load-path + for dir-name = (directory-file-name dir) + when (and (equal (file-name-nondirectory dir-name) "mh-e") + (file-exists-p dir-name)) + return dir-name)) + (if mh-load-path + (setq mh-image-load-path + (expand-file-name (concat (file-name-directory mh-load-path) + "../etc/images"))) + (error "Can not find mh-e in load-path")) + (cond ((or (not mh-image-load-path) + (not (file-exists-p mh-image-load-path))) + (error "Can not find image directory %s" + mh-image-load-path)) + ((boundp 'image-load-path) + (pushnew mh-image-load-path image-load-path)) + ((not (member mh-image-load-path load-path)) + (push mh-image-load-path load-path)))) + (setq mh-image-load-path-called-flag t))) (provide 'mh-init)