Its main job is to figure out which images to use based on the display's
color capability and based on the available image libraries."
(mapcar (lambda (bind)
- (let (image-exp)
+ (let (image-exp plist)
(when (and (eq (car-safe (cdr-safe bind)) 'menu-item)
- (setq image-exp (plist-get bind :image))
- (consp image-exp)
- (not (eq (car image-exp) 'image))
- (fboundp (car image-exp)))
- (if (not (display-images-p))
- (setq bind nil)
- (let ((image (eval image-exp)))
- (unless (image-mask-p image)
- (setq image (append image '(:mask heuristic))))
- (setq bind (copy-sequence bind))
- (plist-put bind :image image))))
- bind))
+ ;; For the format of menu-items, see node
+ ;; `Extended Menu Items' in the Elisp manual.
+ (setq plist (nthcdr (if (consp (nth 4 bind)) 5 4)
+ bind))
+ (setq image-exp (plist-get plist :image))
+ (consp image-exp)
+ (not (eq (car image-exp) 'image))
+ (fboundp (car image-exp)))
+ (if (not (display-images-p))
+ (setq bind nil)
+ (let ((image (eval image-exp)))
+ (unless (image-mask-p image)
+ (setq image (append image '(:mask heuristic))))
+ (setq bind (copy-sequence bind)
+ plist (nthcdr (if (consp (nth 4 bind)) 5 4)
+ bind))
+ (plist-put plist :image image))))
+ bind))
tool-bar-map))
(defconst tool-bar-find-image-cache (make-hash-table :weakness t :test 'equal))