(image-load-path-for-library): Pass value of path rather than symbol.
Always return list of directories. Guarantee that image directory comes first.
This commit is contained in:
parent
c852c516e0
commit
5248a565ca
2 changed files with 28 additions and 30 deletions
|
@ -1,3 +1,9 @@
|
|||
2006-03-14 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* image.el (image-load-path-for-library): Pass value of path
|
||||
rather than symbol. Always return list of directories. Guarantee
|
||||
that image directory comes first.
|
||||
|
||||
2006-03-14 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
* font-core.el: New function/variable
|
||||
|
|
|
@ -77,30 +77,34 @@ value is used as a list of directories to search.")
|
|||
(list (file-name-as-directory (expand-file-name "images" data-directory))
|
||||
'data-directory 'load-path)))
|
||||
|
||||
|
||||
(defun 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))
|
||||
|
||||
(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))
|
||||
|
@ -142,26 +146,14 @@ compatibility with versions of Emacs that lack the variable
|
|||
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))))))
|
||||
|
||||
|
||||
(defun image-jpeg-p (data)
|
||||
"Value is non-nil if DATA, a string, consists of JFIF image data.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue