From: Eli Zaretskii Date: Sat, 16 Nov 2024 14:21:36 +0000 (+0200) Subject: Fix font-lock in 'lisp-mode' X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5d26ff4d0f0444ca3d2a1d1eed9da93dc68622f3;p=emacs.git Fix font-lock in 'lisp-mode' * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Fix regexps for "\\<>" and similar constructs. (Bug#74307) (cherry picked from commit 200c877cd48aa0f7638fdd5157555374f0f7bfc8) --- diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 876c0f803bf..e49c8d3aa63 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -487,14 +487,17 @@ This will generate compile-time constants from BINDINGS." (2 font-lock-constant-face nil t)) ;; Words inside \\[], \\<>, \\{} or \\`' tend to be for ;; `substitute-command-keys'. - (,(rx "\\\\" (or (seq "[" (group-n 1 lisp-mode-symbol) "]") + (,(rx "\\\\" (or (seq "[" + (group-n 1 lisp-mode-symbol) (not "\\") "]") (seq "`" (group-n 1 ;; allow multiple words, e.g. "C-x a" lisp-mode-symbol (* " " lisp-mode-symbol)) "'"))) (1 font-lock-constant-face prepend)) - (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) ">") - (seq "{" (group-n 1 lisp-mode-symbol) "}"))) + (,(rx "\\\\" (or (seq "<" + (group-n 1 lisp-mode-symbol) (not "\\") ">") + (seq "{" + (group-n 1 lisp-mode-symbol) (not "\\") "}"))) (1 font-lock-variable-name-face prepend)) ;; Ineffective backslashes (typically in need of doubling). ("\\(\\\\\\)\\([^\"\\]\\)"