From bc28370787eb85b1df6dfa89b015750b60fb69d5 Mon Sep 17 00:00:00 2001 From: "William M. Perry" Date: Fri, 31 Dec 1999 15:54:44 +0000 Subject: [PATCH] * image.el (defimage): Images with the :data keyword should be considered valid as well. --- lisp/ChangeLog | 5 +++++ lisp/image.el | 26 ++++++++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index db484cfa2b3..226376bdba1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +1999-12-31 William M. Perry + + * image.el (defimage): Images with the `:data' keyword should be + considered valid as well. + 1999-12-31 Richard M. Stallman * dired.el (dired-get-filename): Don't call file-name-absolute-p 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))) -- 2.39.5