summaryrefslogtreecommitdiff
path: root/lisp/image.el
diff options
context:
space:
mode:
authorWilliam M. Perry <wmperry@aventail.com>1999-12-31 15:54:44 +0000
committerWilliam M. Perry <wmperry@aventail.com>1999-12-31 15:54:44 +0000
commitbc28370787eb85b1df6dfa89b015750b60fb69d5 (patch)
tree7b6d98c301025ee102d457def8728472d68be6a0 /lisp/image.el
parent63448a4dc2fbe334435eeef39fa03e3b350a866a (diff)
downloademacs-bc28370787eb85b1df6dfa89b015750b60fb69d5.tar.gz
* image.el (defimage): Images with the :data keyword should be considered valid as well.
Diffstat (limited to 'lisp/image.el')
-rw-r--r--lisp/image.el26
1 files changed, 16 insertions, 10 deletions
diff --git a/lisp/image.el b/lisp/image.el
index 1e4aea4d709..9b28d4f2eb2 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -72,7 +72,7 @@ Image types are symbols like `xbm' or `jpeg'."
"Create an image which will be loaded from FILE.
Optional TYPE is a symbol describing the image type. If TYPE is omitted
or nil, try to determine the image file type from its first few bytes.
-If that doesn't work, use FILE's extension.as image type.
+If that doesn't work, use FILE's extension as image type.
Optional PROPS are additional image attributes to assign to the image,
like, e.g. `:heuristic-mask t'.
Value is the image created, or nil if images of type TYPE are not supported."
@@ -164,10 +164,12 @@ documentation string.
Each image specification in SPECS is a property list. The contents of
a specification are image type dependent. All specifications must at
-least contain the properties `:type TYPE' and `:file FILE', where TYPE
-is a symbol specifying the image type, e.g. `xbm', and FILE is the
-file to load the image from. The first image specification whose TYPE
-is supported, and FILE exists, is used to define SYMBOL.
+least contain the properties `:type TYPE' and either `:file FILE' or
+`:data DATA', where TYPE is a symbol specifying the image type,
+e.g. `xbm', FILE is the file to load the image from, and DATA is a
+string containing the actual image data. The first image
+specification whose TYPE is supported, and FILE exists, is used to
+define SYMBOL.
Example:
@@ -176,13 +178,17 @@ Example:
(let (image)
(while (and specs (null image))
(let* ((spec (car specs))
+ (data (plist-get spec :data))
(type (plist-get spec :type))
(file (plist-get spec :file)))
- (when (and (image-type-available-p type) (stringp file))
- (setq file (expand-file-name file data-directory))
- (when (file-readable-p file)
- (setq image (cons 'image (plist-put spec :file file)))))
- (setq specs (cdr specs))))
+ (when (and (image-type-available-p type) ; Image type is supported
+ (or data (stringp file))) ; Data or file was specified
+ (if data
+ (setq image (cons 'image spec))
+ (setq file (expand-file-name file data-directory))
+ (when (file-readable-p file)
+ (setq image (cons 'image (plist-put spec :file file)))))
+ (setq specs (cdr specs)))))
`(defvar ,symbol ',image ,doc)))