From 538323f3a21632f1b8a6443ed79e2305306cee7b Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 26 Apr 2021 07:20:49 -0700 Subject: matcher: bugfix in `text{rest}` case. * share/txr/stdlib/match.tl (expand-quasi-match): Calculate npos correctly relative to current pos. Use match-str rather than starts-with. --- share/txr/stdlib/match.tl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'share') diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl index f429a9c9..5586b874 100644 --- a/share/txr/stdlib/match.tl +++ b/share/txr/stdlib/match.tl @@ -852,8 +852,8 @@ ;; `txt@...` ((@(stringp @txt) . @rest) (with-gensyms (npos) - (cons ^@(require @(with ,npos ,(len txt)) - (starts-with ,txt ,str)) + (cons ^@(require @(with ,npos (+ ,pos (len ,txt))) + (match-str ,str ,txt ,pos)) (quasi-match vlist rest vars str npos)))) ;; `@var` (existing binding) (((@(eq 'sys:var) @(bound-p vlist vars @sym) . @nil)) -- cgit v1.2.3