emacs-elpa-diffs
[Top][All Lists]
Advanced

[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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]