[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/consult 544cb07 1/2: Simplify regexp conversion
From: |
ELPA Syncer |
Subject: |
[elpa] externals/consult 544cb07 1/2: Simplify regexp conversion |
Date: |
Thu, 5 Aug 2021 14:57:07 -0400 (EDT) |
branch: externals/consult
commit 544cb07d0a07575a7ce545e1cd7ddd66b2917b20
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Simplify regexp conversion
---
consult.el | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/consult.el b/consult.el
index f3d287c..c66db9d 100644
--- a/consult.el
+++ b/consult.el
@@ -557,22 +557,19 @@ This function only changes the escaping of parentheses,
braces and pipes."
;; XXX Unsupported Emacs regexp features:
;; * "*" at the beginning of a choice, e.g, "\(?:*" or "\|*"
;; * Backslash constructs \= \sx \Sx \cx \Cx
- (let ((subst `(("\\\\" . "\\\\")
- ,@(if (eq type 'pcre)
- '(("\\`" . "\\\\A") ("\\'" . "\\\\Z")
- ("\\<" . "\\\\b") ("\\>" . "\\\\b")
- ("\\_<" . "\\\\b") ("\\_>" . "\\\\b"))
- '(("\\`" . "\\\\`") ("\\'" . "\\\\'")
- ("\\<" . "\\\\<") ("\\>" . "\\\\>")
- ("\\_<" . "\\\\<") ("\\_>" . "\\\\>"))))))
+ (let ((swap '(("\\|" . "|")
+ ("\\(" . "(") ("\\)" . ")")
+ ("\\{" . "{") ("\\}" . "}")))
+ (subst (if (eq type 'pcre)
+ '(("\\`" . "\\A") ("\\'" . "\\Z")
+ ("\\<" . "\\b") ("\\>" . "\\b")
+ ("\\_<" . "\\b") ("\\_>" . "\\b"))
+ '(("\\_<" . "\\<") ("\\_>" . "\\>")))))
(replace-regexp-in-string
"\\\\\\\\\\|\\\\?[(){}|]\\|\\\\[`'<>]\\|\\\\_[<>]"
(lambda (x)
- (cond
- ((cdr (assoc x subst)))
- ((= 1 (length x)) (concat "\\\\" x))
- (t (substring x 1))))
- regexp))))
+ (or (cdr (assoc x subst)) (cdr (assoc x swap)) (car (rassoc x swap))
x))
+ regexp 'fixedcase 'literal))))
(defun consult--compile-regexp (str type)
"Compile STR to a list of regexps of TYPE."