From fd43fb5a258ea487032edcf5d3faae67477bb21a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Sat, 28 Sep 2024 22:04:19 +0200 Subject: [PATCH] Warn about :reverse-video in defface This attribute keyword has been non-working in defface for 14 years, thus warning about it is both safe and decent. * lisp/emacs-lisp/bytecomp.el (bytecomp--check-cus-face-spec): Warn and suggest :inverse-video to be used instead. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-defface-spec): Add a test case. * etc/NEWS: Notify the user. (cherry picked from commit 8d0c8076c3f2c27bd8ff0dbc72d046c64e1dde44) --- etc/NEWS | 4 ++++ lisp/emacs-lisp/bytecomp.el | 7 +++++-- test/lisp/emacs-lisp/bytecomp-tests.el | 4 ++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 507b69fa66e..7bd59311e29 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -429,6 +429,10 @@ All the characters that belong to the 'symbol' script (according to * Lisp Changes in Emacs 31.1 +--- +** The face attribute ':reverse-video' is obsolete. +Use ':inverse-video' instead. + +++ ** Support interactive D-Bus authorization. A new ':authorizable t' parameter has been added to 'dbus-call-method' diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 4cb6518c8e9..43ed67b0cbd 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -5404,15 +5404,18 @@ FORM is used to provide location, `bytecomp--cus-function' and :underline :overline :strike-through :box :inverse-video :stipple :font ;; FIXME: obsolete keywords, warn about them too? - ;; `:reverse-video' is very rare. :bold ; :bold t = :weight bold :italic ; :italic t = :slant italic - :reverse-video ; alias for :inverse-video )) (when (eq (car-safe val) 'quote) (bytecomp--cus-warn (list val atts sp spec) "Value for face attribute `%s' should not be quoted" attr))) + ((eq attr :reverse-video) + (bytecomp--cus-warn + (list atts sp spec) + (concat "Face attribute `:reverse-video' is obsolete;" + " use `:inverse-video' instead"))) (t (bytecomp--cus-warn (list atts sp spec) diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index cce6b1221fc..39c3732581a 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el @@ -2000,6 +2000,10 @@ EXPECTED-POINT BINDINGS (MODES \\='\\='(ruby-mode js-mode python-mode)) \ (bytecomp--with-warning-test (rx "`:inverse' is not a valid face attribute keyword") (df '((t (:background "blue" :inverse t))))) ; old attr list syntax + (bytecomp--with-warning-test + (rx "Face attribute `:reverse-video' is obsolete;" + " use `:inverse-video' instead") + (df '((t :background "red" :reverse-video t)))) (bytecomp--with-warning-test (rx "Value for face attribute `:inherit' should not be quoted") (df '((t :inherit 'other)))) -- 2.39.5