]> code.delx.au - gnu-emacs/commitdiff
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
authorBill Wohler <wohler@newt.com>
Tue, 14 Mar 2006 19:21:48 +0000 (19:21 +0000)
committerBill Wohler <wohler@newt.com>
Tue, 14 Mar 2006 19:21:48 +0000 (19:21 +0000)
from image-load-path-for-library, which are:
(image-load-path-for-library): Pass value of path rather than symbol.
Always return list of directories. Guarantee that image directory
comes first.

* mh-e.el (image-load-path): Define on those Emacsen that lack it to
avoid compile and run-time errors.

* mh-folder.el (mh-folder-mode): Use new idiom for setting
image-load-path.

* mh-letter.el (mh-letter-mode): Ditto.

* mh-utils.el (mh-logo-display): Ditto.

lisp/mh-e/ChangeLog
lisp/mh-e/mh-compat.el
lisp/mh-e/mh-e.el
lisp/mh-e/mh-folder.el
lisp/mh-e/mh-letter.el
lisp/mh-e/mh-utils.el

index eda95da386cfd8e9087545da73b5d57bff1be4ee..ecdf207d25250145a12b41fac6a2bf983fc86c5a 100644 (file)
@@ -1,3 +1,21 @@
+2006-03-14  Bill Wohler  <wohler@newt.com>
+
+       * mh-compat.el (mh-image-load-path-for-library): Incorporate
+       changes from image-load-path-for-library, which are:
+       (image-load-path-for-library): Pass value of path rather than
+       symbol. Always return list of directories. Guarantee that image
+       directory comes first.
+
+       * mh-e.el (image-load-path): Define on those Emacsen that lack it
+       to avoid compile and run-time errors.   
+
+       * mh-folder.el (mh-folder-mode): Use new idiom for setting
+       image-load-path.
+
+       * mh-letter.el (mh-letter-mode): Ditto. 
+
+       * mh-utils.el (mh-logo-display): Ditto.
+
 2006-03-12  Bill Wohler  <wohler@newt.com>
 
        * mh-utils.el (mh-folder-list): Fix docstring (closes SF
index d6bded8726e8b3bf21de02171606a04a00cec824..50542d67f4e1232c5e21aa4f5769e90397cd9850 100644 (file)
@@ -119,30 +119,30 @@ introduced in Emacs 22."
   image-load-path-for-library (library image &optional path no-error)
   "Return a suitable search path for images relative to LIBRARY.
 
-Images for LIBRARY are searched for in \"../../etc/images\" and
-\"../etc/images\" relative to the files in \"lisp/LIBRARY\" as
-well as in `image-load-path' and `load-path'.
+First it searches for IMAGE in a path suitable for LIBRARY, which
+includes \"../../etc/images\" and \"../etc/images\" relative to
+the library file itself, followed by `image-load-path' and
+`load-path'.
 
-This function returns the value of `load-path' augmented with the
-directory containing IMAGE. If PATH is given, it is used instead
-of `load-path'. If PATH is t, just return the directory that
-contains IMAGE.
+Then this function returns a list of directories which contains
+first the directory in which IMAGE was found, followed by the
+value of `load-path'. If PATH is given, it is used instead of
+`load-path'.
 
-If NO-ERROR is non-nil, return nil if a suitable path can't be
-found rather than signaling an error.
+If NO-ERROR is non-nil and a suitable path can't be found, don't
+signal an error. Instead, return a list of directories as before,
+except that nil appears in place of the image directory.
 
 Here is an example that uses a common idiom to provide
 compatibility with versions of Emacs that lack the variable
 `image-load-path':
 
-  (let ((load-path
-         (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\"))
-        (image-load-path
-         (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\" 'image-load-path)))
-    (mh-tool-bar-folder-buttons-init))
+    ;; Avoid errors on Emacsen without `image-load-path'.
+    (if (not (boundp 'image-load-path)) (defvar image-load-path nil))
 
-This function is used by Emacs versions that don't have
-`image-load-path-for-library'."
+    (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\"))
+           (image-load-path (cons (car load-path) image-load-path)))
+      (mh-tool-bar-folder-buttons-init))"
   (unless library (error "No library specified"))
   (unless image   (error "No image specified"))
   (let ((image-directory))
@@ -184,26 +184,13 @@ This function is used by Emacs versions that don't have
                        dir (expand-file-name "../" dir)))
                (setq image-directory dir)))))
      (no-error
-      ;; In this case we will return nil.
       (message "Could not find image %s for library %s" image library))
      (t
       (error "Could not find image %s for library %s" image library)))
 
-    ;; Return the directory, nil if no-error was non-nil and a
-    ;; suitable path could not be found, or an augmented
-    ;; `image-load-path' or `load-path'.
-    (cond ((or (null image-directory)
-               (eq path t))
-           image-directory)
-          ((and path (symbolp path))
-           (nconc (list image-directory)
-                  (delete image-directory
-                          (if (boundp path)
-                              (copy-sequence (symbol-value path))
-                            nil))))
-          (t
-           (nconc (list image-directory)
-                  (delete image-directory (copy-sequence load-path)))))))
+    ;; Return an augmented `path' or `load-path'.
+    (nconc (list image-directory)
+           (delete image-directory (copy-sequence (or path load-path))))))
 
 (mh-defun-compat mh-image-search-load-path
   image-search-load-path (file &optional path)
index 0b8961470a7322dab54df8c0e72956a86acc9820..2f29a678f135eaab68a4ecb007aaef2900440720 100644 (file)
@@ -325,6 +325,9 @@ Name of the Previous sequence.")
 
 ;; Etc. (alphabetical)
 
+;; Avoid errors on Emacsen without image-load-path.
+(if (not (boundp 'image-load-path)) (defvar image-load-path nil))
+
 (defvar mh-flists-present-flag nil
   "Non-nil means that we have \"flists\".")
 
index f8e37a93cf83449e8879555083f138a7fbeaf498..2c32d1433f11d8416a63a518f9e79ac4a5241b28 100644 (file)
@@ -591,9 +591,8 @@ perform the operation on all messages in that region.
 \\{mh-folder-mode-map}"
   (mh-do-in-gnu-emacs
     (unless mh-folder-buttons-init-flag
-      (let ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
-            (image-load-path (mh-image-load-path-for-library
-                              "mh-e" "mh-logo.xpm" 'image-load-path)))
+      (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
+             (image-load-path (cons (car load-path) image-load-path)))
         (mh-tool-bar-folder-buttons-init)
         (setq mh-folder-buttons-init-flag t)))
     (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map))
index 9d28ee4ec95d8e3dfe53ab18f4debb91b7642a9a..a7290cf5ae9fceee02176dce0f730273333a1864 100644 (file)
@@ -313,9 +313,8 @@ order).
   (make-local-variable 'mh-sent-from-msg)
   (mh-do-in-gnu-emacs
     (unless mh-letter-buttons-init-flag
-      (let ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
-            (image-load-path (mh-image-load-path-for-library
-                              "mh-e" "mh-logo.xpm" 'image-load-path)))
+      (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
+             (image-load-path (cons (car load-path) image-load-path)))
         (mh-tool-bar-letter-buttons-init)
         (setq mh-letter-buttons-init-flag t)))
     (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map))
index 15f71f4ee73f43bbc8b51bbb6544ad738f125498..44e15f3cb19b127335a730f4ded88565f83f0ec6 100644 (file)
@@ -131,9 +131,8 @@ Ignores case when searching for OLD."
 (defun mh-logo-display ()
   "Modify mode line to display MH-E logo."
   (mh-do-in-gnu-emacs
-    (let ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
-          (image-load-path (mh-image-load-path-for-library
-                            "mh-e" "mh-logo.xpm" 'image-load-path)))
+    (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
+           (image-load-path (cons (car load-path) image-load-path)))
       (add-text-properties
        0 2
        `(display ,(or mh-logo-cache