X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/ee0e9f11ea2823550c4593d0d339b972911358b8..986bd52a31d3ef5a9cc35ecfb8463d758d1e5e6c:/lisp/faces.el diff --git a/lisp/faces.el b/lisp/faces.el index fbe0f30ae6..bdac3a1bb6 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -1,6 +1,6 @@ ;;; faces.el --- Lisp faces -;; Copyright (C) 1992-1996, 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -119,7 +119,7 @@ REGISTRY, ALTERNATIVE1, ALTERNATIVE2, and etc." (defun face-list () - "Return a list of all defined face names." + "Return a list of all defined faces." (mapcar #'car face-new-frame-defaults)) @@ -557,9 +557,10 @@ If FACE is a face-alias, get the documentation for the target face." (defun set-face-attribute (face frame &rest args) "Set attributes of FACE on FRAME from ARGS. -FRAME nil means change attributes on all frames. FRAME t means change -the default for new frames (this is done automatically each time an -attribute is changed on all frames). +If FRAME is nil this function sets the attributes for all +existing frames, and the default for new frames. If FRAME is t, +change the default for new frames (this is done automatically +each time an attribute is changed on all frames). ARGS must come in pairs ATTRIBUTE VALUE. ATTRIBUTE must be a valid face attribute name. All attributes can be set to `unspecified'; @@ -1512,11 +1513,23 @@ If SPEC is nil, return nil." (defun face-spec-reset-face (face &optional frame) "Reset all attributes of FACE on FRAME to unspecified." - (let (reset-args) - (dolist (attr-and-name face-attribute-name-alist) - (push 'unspecified reset-args) - (push (car attr-and-name) reset-args)) - (apply 'set-face-attribute face frame reset-args))) + (apply 'set-face-attribute face frame + (if (eq face 'default) + ;; For the default face, avoid making any attribute + ;; unspecified. Instead, set attributes to default values + ;; (see also realize_default_face in xfaces.c). + (append + '(:underline nil :overline nil :strike-through nil + :box nil :inverse-video nil :stipple nil :inherit nil) + (unless (display-graphic-p frame) + '(:family "default" :foundry "default" :width normal + :height 1 :weight normal :slant normal + :foreground "unspecified-fg" + :background "unspecified-bg"))) + ;; For all other faces, unspecify all attributes. + (apply 'append + (mapcar (lambda (x) (list (car x) 'unspecified)) + face-attribute-name-alist))))) (defun face-spec-set (face spec &optional for-defface) "Set FACE's face spec, which controls its appearance, to SPEC. @@ -1704,13 +1717,14 @@ If omitted or nil, that stands for the selected frame's display." (> (tty-color-gray-shades display) 2))))) (defun read-color (&optional prompt convert-to-RGB allow-empty-name msg) - "Read a color name or RGB triplet of the form \"#RRRRGGGGBBBB\". + "Read a color name or RGB triplet. Completion is available for color names, but not for RGB triplets. -RGB triplets have the form #XXXXXXXXXXXX, where each X is a hex -digit. The number of Xs must be a multiple of 3, with the same -number of Xs for each of red, green, and blue. The order is red, -green, blue. +RGB triplets have the form \"#RRGGBB\". Each of the R, G, and B +components can have one to four digits, but all three components +must have the same number of digits. Each digit is a hex value +between 0 and F; either upper case or lower case for A through F +are acceptable. In addition to standard color names and RGB hex values, the following are available as color candidates. In each case, the @@ -1925,7 +1939,7 @@ frame parameters in PARAMETERS." (progn ;; Initialize faces from face spec and custom theme. (face-spec-recalc face frame) - ;; X resouces for the default face are applied during + ;; X resources for the default face are applied during ;; `x-create-frame'. (and (not (eq face 'default)) window-system-p (make-face-x-resource-internal face frame)) @@ -2065,9 +2079,9 @@ terminal type to a different value." (((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) + ;; Default to italic, even if it doesn't appear to be supported, + ;; because in some cases the display engine will do its own + ;; workaround (to `dim' on ttys). :slant italic)) "Basic italic face." :group 'basic-faces) @@ -2366,6 +2380,10 @@ used to display the prompt text." '((((background light)) :background "black") (((background dark)) :background "white")) "Basic face for the cursor color under X. +Currently, only the `:background' attribute is meaningful; all +other attributes are ignored. The cursor foreground color is +taken from the background color of the underlying text. + Note: Other faces cannot inherit from the cursor face." :version "21.1" :group 'cursor @@ -2453,7 +2471,7 @@ It is used for characters of no fonts too." ;;; Manipulating font names. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; This is here for compatibilty with Emacs 20.2. For example, +;; This is here for compatibility with Emacs 20.2. For example, ;; international/fontset.el uses x-resolve-font-name. The following ;; functions are not used in the face implementation itself.