Mercurial > emacs
changeset 27059:6bb2a4a0413e
* image.el (defimage): Images with the :data keyword should be considered valid as well.
author | William M. Perry <wmperry@aventail.com> |
---|---|
date | Fri, 31 Dec 1999 15:54:44 +0000 |
parents | 209b24ba8ddf |
children | 4960164efd1c |
files | lisp/ChangeLog lisp/image.el |
diffstat | 2 files changed, 21 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Dec 31 15:47:49 1999 +0000 +++ b/lisp/ChangeLog Fri Dec 31 15:54:44 1999 +0000 @@ -1,3 +1,8 @@ +1999-12-31 William M. Perry <wmperry@aventail.com> + + * image.el (defimage): Images with the `:data' keyword should be + considered valid as well. + 1999-12-31 Richard M. Stallman <rms@caffeine.ai.mit.edu> * dired.el (dired-get-filename): Don't call file-name-absolute-p
--- a/lisp/image.el Fri Dec 31 15:47:49 1999 +0000 +++ b/lisp/image.el Fri Dec 31 15:54:44 1999 +0000 @@ -72,7 +72,7 @@ "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 @@ 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 @@ (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)))