Remove some XEmacs compat code from ezimage.el

* lisp/ezimage.el (defezimage): Remove XEmacs compat code.
This commit is contained in:
Lars Ingebrigtsen 2019-10-04 15:23:54 +02:00
parent 094e48e4e7
commit b0ef37758e

View file

@ -48,80 +48,12 @@
:type 'boolean)
;;; Create our own version of defimage
(eval-and-compile
(if (featurep 'emacs)
(progn
(defmacro defezimage (variable imagespec docstring)
"Define VARIABLE as an image if `defimage' is not available.
(defmacro defezimage (variable imagespec docstring)
"Define VARIABLE as an image if `defimage' is not available.
IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
`(progn
(defimage ,variable ,imagespec ,docstring)
(put (quote ,variable) 'ezimage t)))
;; This hack is for the ezimage install which has an icons directory for
;; the default icons to be used.
;; (add-to-list 'load-path
;; (concat (file-name-directory
;; (locate-library "ezimage.el"))
;; "icons"))
)
;; XEmacs.
(if (not (fboundp 'make-glyph))
(defmacro defezimage (variable _imagespec docstring)
"Don't bother loading up an image...
Argument VARIABLE is the variable to define.
Argument IMAGESPEC is the list defining the image to create.
Argument DOCSTRING is the documentation for VARIABLE."
`(defvar ,variable nil ,docstring))
(defun ezimage-find-image-on-load-path (image)
"Find the image file IMAGE on the load path."
(let ((l (cons
;; In XEmacs, try the data directory first (for an
;; install in XEmacs proper.) Search the load
;; path next (for user installs)
(locate-data-directory "ezimage")
load-path))
(r nil))
(while (and l (not r))
(if (file-exists-p (concat (car l) "/" image))
(setq r (concat (car l) "/" image))
(if (file-exists-p (concat (car l) "/icons/" image))
(setq r (concat (car l) "/icons/" image))
))
(setq l (cdr l)))
r))
(defun ezimage-convert-emacs21-imagespec-to-xemacs (spec)
"Convert the Emacs21 image SPEC into an XEmacs image spec.
The Emacs 21 spec is what I first learned, and is easy to convert."
(let* ((sl (car spec))
(itype (nth 1 sl))
(ifile (nth 3 sl)))
(vector itype ':file (ezimage-find-image-on-load-path ifile))))
(defmacro defezimage (variable imagespec docstring)
"Define VARIABLE as an image if `defimage' is not available.
IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
`(progn
(defvar ,variable
;; The Emacs21 version of defimage looks just like the XEmacs image
;; specifier, except that it needs a :type keyword. If we line
;; stuff up right, we can use this cheat to support XEmacs specifiers.
(condition-case nil
(make-glyph
(make-image-specifier
(ezimage-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
'buffer)
(error nil))
,docstring)
(put ',variable 'ezimage t)))
)))
`(progn
(defimage ,variable ,imagespec ,docstring)
(put (quote ,variable) 'ezimage t)))
(defezimage ezimage-directory
((:type xpm :file "ezimage/dir.xpm" :ascent center))