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

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

[elpa] master fb26929 34/60: Fix parsec-make-alternatives


From: Junpeng Qiu
Subject: [elpa] master fb26929 34/60: Fix parsec-make-alternatives
Date: Tue, 25 Oct 2016 17:45:15 +0000 (UTC)

branch: master
commit fb269292ed1cbd73a9d3463414a1361c20a0ed4b
Author: Junpeng Qiu <address@hidden>
Commit: Junpeng Qiu <address@hidden>

    Fix parsec-make-alternatives
---
 parsec-tests.el |   18 ++++++++++++++++++
 parsec.el       |   13 +++++++------
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/parsec-tests.el b/parsec-tests.el
index 63721b3..471957f 100644
--- a/parsec-tests.el
+++ b/parsec-tests.el
@@ -104,6 +104,24 @@
        :group 2))
     "bc")))
 
+(ert-deftest test-parsec-make-alternatives ()
+  (should
+   (equal
+    (parsec-make-alternatives '(?-))
+    "-"))
+  (should
+   (equal
+    (parsec-make-alternatives '(?- ?\] ?a ?^))
+    "]a^-"))
+  (should
+   (equal
+    (parsec-make-alternatives '(?- ?^))
+    "-^"))
+  (should
+   (equal
+    (parsec-make-alternatives '(?^ ?\"))
+    "\"^")))
+
 (ert-deftest test-parsec-one-of ()
   (should
    (equal
diff --git a/parsec.el b/parsec.el
index 8c9b2e2..4911142 100644
--- a/parsec.el
+++ b/parsec.el
@@ -129,12 +129,13 @@
        ((char-equal c ?-) (setq regex-end "-"))
        ((char-equal c ?^) (setq contains-caret-p t))
        (t (setq regex-str (concat regex-str (char-to-string c))))))
-    (if (and contains-caret-p
-             (string-equal regex-end "-")
-             (string-equal regex-head "")
-             (string-equal regex-str ""))
-        (setq regex-end "-^")
-      (setq regex-str (concat regex-str "^")))
+    (when contains-caret-p
+      (if (and
+           (string-equal regex-end "-")
+           (string-equal regex-head "")
+           (string-equal regex-str ""))
+          (setq regex-end "-^")
+        (setq regex-str (concat regex-str "^"))))
     (concat regex-head regex-str regex-end)))
 
 (defun parsec-one-of (&rest chars)



reply via email to

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