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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/xr 74b5287 2/3: Turn negative empty sets into anything


From: Mattias Engdegård
Subject: [elpa] externals/xr 74b5287 2/3: Turn negative empty sets into anything
Date: Fri, 1 Mar 2019 13:09:47 -0500 (EST)

branch: externals/xr
commit 74b5287e3cf2f73f3fe34dffb91f3671e56b94a3
Author: Mattias Engdegård <address@hidden>
Commit: Mattias Engdegård <address@hidden>

    Turn negative empty sets into anything
    
    [^z-a] was found in the wild (auctex), apparently on purpose.
    The correct rx translation should be `anything'.
---
 xr-test.el | 2 ++
 xr.el      | 9 +++++++++
 2 files changed, 11 insertions(+)

diff --git a/xr-test.el b/xr-test.el
index 7beee0a..8dc2453 100644
--- a/xr-test.el
+++ b/xr-test.el
@@ -174,6 +174,8 @@
                  '(seq (not (any "\\o")) (any "A-\\") (any "A-a"))))
   (should (equal (xr "[^A-FFGI-LI-Mb-da-eg-ki-ns-tz-v]")
                  '(not (any "A-FI-Ma-eg-ns-t" "G"))))
+  (should (equal (xr "[z-a][^z-a]")
+                 '(seq (any) anything)))
   )
 
 (ert-deftest xr-empty ()
diff --git a/xr.el b/xr.el
index 3b804ad..03b2110 100644
--- a/xr.el
+++ b/xr.el
@@ -190,7 +190,16 @@
                         ranges)))
               sorted)
         
+        ;; Note that we return (any) for non-negated empty sets,
+        ;; such as [z-a]. (any) is not accepted by rx but at least we
+        ;; are not hiding potential bugs from the user.
         (cond
+         ;; Negated empty set, like [^z-a]: anything.
+         ((and negated
+               (null chars)
+               (null ranges)
+               (null classes))
+          'anything)
          ;; Non-negated single-char set, like [$]: make a string.
          ((and (= (length chars) 1)
                (not negated)



reply via email to

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