# HG changeset patch # User Miles Bader # Date 1086317411 0 # Node ID 7f92c3f5d841b9a40b7b283092a597138b769ce8 # Parent 305e52f43c691d1ee477d340d5450cb043b39ccb Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-368 Improve display-supports-face-attributes-p on non-ttys diff -r 305e52f43c69 -r 7f92c3f5d841 lisp/ChangeLog --- a/lisp/ChangeLog Fri Jun 04 00:12:24 2004 +0000 +++ b/lisp/ChangeLog Fri Jun 04 02:50:11 2004 +0000 @@ -1,3 +1,8 @@ +2004-06-04 Miles Bader + + * faces.el (display-supports-face-attributes-p): Implement a + `different from default' check for non-tty displays. + 2004-06-03 David Kastrup * woman.el (woman-mapcan): More concise code. diff -r 305e52f43c69 -r 7f92c3f5d841 lisp/faces.el --- a/lisp/faces.el Fri Jun 04 00:12:24 2004 +0000 +++ b/lisp/faces.el Fri Jun 04 02:50:11 2004 +0000 @@ -1510,11 +1510,25 @@ (if (framep display) display (car (frames-on-display-list display))))) - ;; For now, we assume that non-tty displays can support everything. - ;; Later, we should add the ability to query about specific fonts, - ;; colors, etc. - (or (memq (framep frame) '(x w32 mac)) - (tty-supports-face-attributes-p attributes frame)))) + (if (not (memq (framep frame) '(x w32 mac))) + ;; On ttys, `tty-supports-face-attributes-p' does all the work we need. + (tty-supports-face-attributes-p attributes frame) + ;; For now, we assume that non-tty displays can support everything, + ;; and so we just check to see if any of the specified attributes is + ;; different from the default -- though this probably isn't always + ;; accurate for font-related attributes. Later, we should add the + ;; ability to query about specific fonts, colors, etc. + (while (and attributes + (let* ((attr (car attributes)) + (val (cadr attributes)) + (default-val (face-attribute 'default attr frame))) + (if (and (stringp val) (stringp default-val)) + ;; compare string attributes case-insensitively + (eq (compare-strings val nil nil default-val nil nil t) + t) + (equal val default-val)))) + (setq attributes (cddr attributes))) + (not (null attributes))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;