changeset 68929:3f537f106072

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.
author Peter Galbraith <galbraith@mixing.qc.dfo.ca>
date Thu, 16 Feb 2006 02:14:40 +0000
parents 133ba2ee7e43
children 16194e6e2a7b
files lisp/mh-e/ChangeLog lisp/mh-e/mh-compat.el lisp/mh-e/mh-utils.el
diffstat 3 files changed, 50 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- 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  <psg@debian.org>
+
+	* 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  <wohler@newt.com>
 
 	* mh-search.el (mh-search): Wrap code in (block mh-search ...)
--- 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
--- 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