diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2021-02-18 11:11:11 +0100 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2021-02-18 11:32:50 +0100 |
commit | 892db042a0d85caeea9a4969073e13f525eb9f60 (patch) | |
tree | 9f788aa6079518167673d2510b8ae5306fe5c872 /lisp/emacs-lisp | |
parent | 8358637936c455d906675932db4cbf90c35b6c53 (diff) | |
download | emacs-892db042a0d85caeea9a4969073e13f525eb9f60.tar.gz emacs-892db042a0d85caeea9a4969073e13f525eb9f60.tar.bz2 emacs-892db042a0d85caeea9a4969073e13f525eb9f60.zip |
Fix rx `regexp` form with deprecated syntax
The argument of the rx `regexp` form is assumed to evaluate to a valid
regexp, but certain kinds of deprecated but still accepted usage were
not handled correctly, such as unescaped literal (special) characters:
(rx "a" (regexp "*")) => "a*" which is wrong.
Handle these cases; there is no extra trouble.
* lisp/emacs-lisp/rx.el (rx--translate-regexp): Force bracketing
of single special characters.
* test/lisp/emacs-lisp/rx-tests.el (rx-regexp): Add test case.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/rx.el | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el index b29b870061d..58584f300c9 100644 --- a/lisp/emacs-lisp/rx.el +++ b/lisp/emacs-lisp/rx.el @@ -890,7 +890,7 @@ Return (REGEXP . PRECEDENCE)." (* (or (seq "[:" (+ (any "a-z")) ":]") (not (any "]")))) "]") - anything + (not (any "*+?^$[\\")) (seq "\\" (or anything (seq (any "sScC_") anything) |