Commit 44e3f440 authored by Bill Wohler's avatar Bill Wohler
Browse files

* 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.
parent 5248a565
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
......
......@@ -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)
......
......@@ -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\".")
......
......@@ -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))
......
......@@ -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))
......
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment