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

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

[elpa] externals/shell-command+ 6faa38c 3/4: Fix tokenization issue in s


From: ELPA Syncer
Subject: [elpa] externals/shell-command+ 6faa38c 3/4: Fix tokenization issue in some test cases
Date: Fri, 15 Oct 2021 09:57:36 -0400 (EDT)

branch: externals/shell-command+
commit 6faa38cf7f1889069c5570f0c43a4ac9486ac690
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Fix tokenization issue in some test cases
---
 shell-command+.el | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/shell-command+.el b/shell-command+.el
index 25d7fc8..7f3f68f 100644
--- a/shell-command+.el
+++ b/shell-command+.el
@@ -144,7 +144,7 @@ this option to nil."
 
 
 (defconst shell-command+-token-regexp
-  (rx bos (* space)
+  (rx (* space)
       (or (: ?\"
              (group-n 1 (* (or (: ?\\ anychar) (not (any ?\\ ?\")))))
              ?\")
@@ -159,22 +159,23 @@ this option to nil."
   "Return list of tokens of COMMAND.
 If EXPAND is non-nil, expand wildcards."
   (let ((pos 0) tokens)
-    (while (string-match shell-command+-token-regexp (substring command pos))
-      (push (let ((tok (match-string 2 (substring command pos))))
+    (while (string-match shell-command+-token-regexp command pos)
+      (push (let ((tok (match-string 2 command)))
               (if (and expand tok)
                   (or (file-expand-wildcards tok) (list tok))
                 (list (replace-regexp-in-string
                        (rx (* ?\\ ?\\) (group ?\\ (group anychar)))
                        "\\2"
-                       (or (match-string 2 (substring command pos))
-                           (match-string 1 (substring command pos)))
+                       (or (match-string 2 command)
+                           (match-string 1 command))
                        nil nil 1))))
             tokens)
-      (when (= (match-end 0) 0)
+      (when (= pos (match-end 0))
         (error "Zero-width token parsed"))
-      (setq pos (+ pos (match-end 0))))
+      (setq pos (match-end 0)))
     (unless (= pos (length command))
-      (error "Tokenization error at %s" (substring command pos)))
+      (error "Tokenization error at %S in string %S (parsed until %d, instead 
of %d)"
+             (substring command pos) command pos (length command)))
     (apply #'append (nreverse tokens))))
 
 (defun shell-command+-cmd-grep (command)



reply via email to

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