summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2020-03-05 12:49:26 +0100
committerMattias EngdegÄrd <mattiase@acm.org>2020-03-05 12:55:54 +0100
commit1814c7e158685045278f991de5eba4e40e8c8199 (patch)
treed5410f610b70f28207b617bfb793067d36808207 /lisp/emacs-lisp
parent40fb20061e6b9b2b22aeee5b7e9f038dc9ba843b (diff)
downloademacs-1814c7e158685045278f991de5eba4e40e8c8199.tar.gz
emacs-1814c7e158685045278f991de5eba4e40e8c8199.tar.bz2
emacs-1814c7e158685045278f991de5eba4e40e8c8199.zip
Fix rx error with ? and ??
The ? and ?? rx operators are special in that they can be written as characters (space and '?' respectively). This confused the definition look-up mechanism in rare cases. * lisp/emacs-lisp/rx.el (rx--expand-def): Don't look up non-symbols. * test/lisp/emacs-lisp/rx-tests.el (rx-charset-or): Test.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/rx.el2
1 files changed, 1 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
index d4a91710273..aa4b2addd47 100644
--- a/lisp/emacs-lisp/rx.el
+++ b/lisp/emacs-lisp/rx.el
@@ -134,7 +134,7 @@ Each entry is:
(if (cdr def)
(error "Not an `rx' symbol definition: %s" form)
(car def)))))
- ((consp form)
+ ((and (consp form) (symbolp (car form)))
(let* ((op (car form))
(def (rx--lookup-def op)))
(and def