;; Copyright (c) 1994, 1995, 1996 Free Software Foundation, Inc.
-;; Author: Boris Goldowsky <boris@gnu.ai.mit.edu>
+;; Author: Boris Goldowsky <boris@gnu.org>
;; Keywords: wp, faces
;; This file is part of GNU Emacs.
(defconst enriched-annotation-format "<%s%s>"
"General format of enriched-text annotations.")
-(defconst enriched-annotation-regexp "<\\(/\\)?\\([-A-za-z0-9]+\\)>"
+(defconst enriched-annotation-regexp "<\\(/\\)?\\([-A-Za-z0-9]+\\)>"
"Regular expression matching enriched-text annotations.")
(defconst enriched-translations
(defun enriched-face-ans (face)
"Return annotations specifying FACE."
- (cond ((string-match "^fg:" (symbol-name face))
+ (cond ((and (consp face) (eq (car face) 'foreground-color))
+ (list (list "x-color" (cdr face))))
+ ((and (consp face) (eq (car face) 'background-color))
+ (list (list "x-bg-color" (cdr face))))
+ ((string-match "^fg:" (symbol-name face))
(list (list "x-color" (substring (symbol-name face) 3))))
((string-match "^bg:" (symbol-name face))
(list (list "x-bg-color" (substring (symbol-name face) 3))))
- ((let* ((fg (face-foreground face))
- (bg (face-background face))
+ ((let* ((fg (face-attribute face :foreground))
+ (bg (face-attribute face :background))
(props (face-font face t))
(ans (cdr (format-annotate-single-property-change
'face nil props enriched-translations))))
- (if fg (setq ans (cons (list "x-color" fg) ans)))
- (if bg (setq ans (cons (list "x-bg-color" bg) ans)))
+ (unless (eq fg 'unspecified)
+ (setq ans (cons (list "x-color" fg) ans)))
+ (unless (eq bg 'unspecified)
+ (setq ans (cons (list "x-bg-color" bg) ans)))
ans))))
;;;
(let ((face (intern (concat "fg:" color))))
(cond ((null color)
(message "Warning: no color specified for <x-color>"))
- ((internal-find-face face))
- ((and window-system (facemenu-get-face face)))
+ ((facep face))
+ ((and (display-color-p) (facemenu-get-face face)))
((make-face face)
(message "Warning: color `%s' can't be displayed" color)))
(list from to 'face face)))
(let ((face (intern (concat "bg:" color))))
(cond ((null color)
(message "Warning: no color specified for <x-bg-color>"))
- ((internal-find-face face))
- ((and window-system (facemenu-get-face face)))
+ ((facep face))
+ ((and (display-color-p) (facemenu-get-face face)))
((make-face face)
(message "Warning: color `%s' can't be displayed" color)))
(list from to 'face face)))