summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/lisp-mode.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2024-11-16 16:21:36 +0200
committerEli Zaretskii <eliz@gnu.org>2024-11-16 16:21:36 +0200
commit200c877cd48aa0f7638fdd5157555374f0f7bfc8 (patch)
treee53bb5b01d96aab225fc14acdbf05b1f726c5e52 /lisp/emacs-lisp/lisp-mode.el
parentf630520be97a9dda5e4b93765dbd82b6e9b298d0 (diff)
downloademacs-200c877cd48aa0f7638fdd5157555374f0f7bfc8.tar.gz
emacs-200c877cd48aa0f7638fdd5157555374f0f7bfc8.tar.bz2
emacs-200c877cd48aa0f7638fdd5157555374f0f7bfc8.zip
Fix font-lock in 'lisp-mode'
* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Fix regexps for "\\<>" and similar constructs. (Bug#74307)
Diffstat (limited to 'lisp/emacs-lisp/lisp-mode.el')
-rw-r--r--lisp/emacs-lisp/lisp-mode.el9
1 files changed, 6 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 220bb5175ea..99980a44ddf 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -490,14 +490,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).
("\\(\\\\\\)\\([^\"\\]\\)"