# HG changeset patch # User Miles Bader # Date 1023675305 0 # Node ID c553d91619aa8a57b7321ab6183acdc61f8dbac1 # Parent 6bc9049644e2d41d78ea73431c1b6dde978e8af5 (display-supports-face-attributes-p): Work correctly if DISPLAY is a frame. (face-spec-set-match-display): Support `supports' predicate. (italic): Try underlining for displays that don't support real italics. diff -r 6bc9049644e2 -r c553d91619aa lisp/faces.el --- a/lisp/faces.el Sun Jun 09 21:58:46 2002 +0000 +++ b/lisp/faces.el Mon Jun 10 02:15:05 2002 +0000 @@ -1318,6 +1318,8 @@ ((eq req 'background) (memq (frame-parameter frame 'background-mode) options)) + ((eq req 'supports) + (display-supports-face-attributes-p options frame)) (t (error "Unknown req `%S' with options `%S'" req options))))) match)) @@ -1494,7 +1496,10 @@ as it can display a yellowish color, but `:slant italic' will _not_ be satisified by the tty display code's automatic substitution of a `dim' face for italic." - (let ((frame (car (frames-on-display-list display)))) + (let ((frame + (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. @@ -1938,7 +1943,16 @@ :group 'basic-faces) -(defface italic '((t :slant italic)) +(defface italic + '((((supports :slant italic)) + :slant italic) + (((supports :underline t)) + :underline t) + (t + ;; default to italic, even it doesn't appear to be supported, + ;; because in some cases the display engine will do it's own + ;; workaround (to `dim' on ttys) + :slant italic)) "Basic italic font." :group 'basic-faces)