From: Juri Linkov Date: Tue, 8 Jan 2013 23:50:40 +0000 (+0200) Subject: * lisp/textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate): X-Git-Tag: emacs-24.3.90~173^2~7^2~372 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/073ca75ba32d3b14aace7ad51c85f83be09376bd * lisp/textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate): * lisp/progmodes/flymake.el (flymake-errline, flymake-warnline): Use underline style wave on terminals that support it. * src/xfaces.c (tty_supports_face_attributes_p): Return 0 for the case of (supports :underline (:style wave)). Fixes: debbugs:13000 --- diff --git a/etc/NEWS b/etc/NEWS index d826ec3745..29e0d5a9fe 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -205,6 +205,9 @@ property using the supplied face spec. *** Face specs set via Custom themes now replace the `defface' spec rather than inheriting from it (as do face specs set via Customize). +*** New face characteristic (supports :underline (:style wave)) +specifies whether or not the terminal can display a wavy line. + ** time-to-seconds is not obsolete any more. ** New function special-form-p. ** Docstrings can be made dynamic by adding a `dynamic-docstring-function' diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 92c071e177..ba5fc47a0b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-01-08 Juri Linkov + + * textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate): + * progmodes/flymake.el (flymake-errline, flymake-warnline): + Use underline style wave on terminals that support it. (Bug#13000) + 2013-01-08 Stefan Monnier * emacs-lisp/pcase.el (pcase--split-equal): Also take advantage if diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 7ca0ececa7..0f92df95a9 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -844,13 +844,21 @@ Return t if it has at least one flymake overlay, nil if no overlay." has-flymake-overlays)) (defface flymake-errline - '((t :inherit error)) + '((((supports :underline (:style wave))) + :underline (:style wave :color "Red1")) + (t + :inherit error)) "Face used for marking error lines." + :version "24.4" :group 'flymake) (defface flymake-warnline - '((t :inherit warning)) + '((((supports :underline (:style wave))) + :underline (:style wave :color "DarkOrange")) + (t + :inherit warning)) "Face used for marking warning lines." + :version "24.4" :group 'flymake) (defun flymake-highlight-line (line-no line-err-info-list) diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index 7e692960db..fe2f808c59 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -445,13 +445,23 @@ like \"Some." ;;*---------------------------------------------------------------------*/ ;;* Highlighting */ ;;*---------------------------------------------------------------------*/ -(defface flyspell-incorrect '((t :underline t :inherit error)) +(defface flyspell-incorrect + '((((supports :underline (:style wave))) + :underline (:style wave :color "Red1")) + (t + :underline t :inherit error)) "Flyspell face for misspelled words." + :version "24.4" :group 'flyspell) -(defface flyspell-duplicate '((t :underline t :inherit warning)) +(defface flyspell-duplicate + '((((supports :underline (:style wave))) + :underline (:style wave :color "DarkOrange")) + (t + :underline t :inherit warning)) "Flyspell face for words that appear twice in a row. See also `flyspell-duplicate-distance'." + :version "24.4" :group 'flyspell) (defvar flyspell-overlay nil) diff --git a/src/ChangeLog b/src/ChangeLog index 9ab201c8be..c60fa70138 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2013-01-08 Juri Linkov + + * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case + of (supports :underline (:style wave)). (Bug#13000) + 2013-01-08 Aaron S. Hawley * undo.c (Fprimitive_undo): Move to simple.el. diff --git a/src/xfaces.c b/src/xfaces.c index ed2895c014..43535b9ea0 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -4877,6 +4877,8 @@ tty_supports_face_attributes_p (struct frame *f, { if (STRINGP (val)) return 0; /* ttys can't use colored underlines */ + else if (EQ (CAR_SAFE (val), QCstyle) && EQ (CAR_SAFE (CDR_SAFE (val)), Qwave)) + return 0; /* ttys can't use wave underlines */ else if (face_attr_equal_p (val, def_attrs[LFACE_UNDERLINE_INDEX])) return 0; /* same as default */ else