branch: externals/shell-command+ commit a8917560d6370d88aef39ce27a458070745d3ce2 Author: Philip K <phil...@posteo.net> Commit: Philip K <phil...@posteo.net>
Detect errors during tokenization --- shell-command+.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/shell-command+.el b/shell-command+.el index 4e0bfba..ab8fe14 100644 --- a/shell-command+.el +++ b/shell-command+.el @@ -138,13 +138,15 @@ the command string" "Return list of tokens of COMMAND." (let ((pos 0) tokens) (while (string-match - (rx (* space) + (rx bos (* space) (or (: ?\" (group-n 1 (* (not ?\"))) ?\") - (: (group-n 1 (+ (not (any ?\" ?\s))))))) - command pos) - (push (match-string 1 command) + (: (group-n 1 (+ (not (any ?\" space))))))) + (substring command pos)) + (push (match-string 1 (substring command pos)) tokens) - (setq pos (match-end 0))) + (setq pos (+ pos (match-end 0)))) + (unless (= pos (length command)) + (error "Tokenization error at %s" (substring command pos))) (nreverse tokens))) (defun shell-command+-cmd-grep (command)