summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--match.c2
-rw-r--r--tests/006/freeform-5.expected4
-rw-r--r--tests/006/freeform-5.txr8
3 files changed, 13 insertions, 1 deletions
diff --git a/match.c b/match.c
index 4dd19afc..0fab2920 100644
--- a/match.c
+++ b/match.c
@@ -2774,7 +2774,7 @@ static val v_freeform(match_files_ctx *c)
}
if (integerp(success)) {
- c->data = lazy_str_get_trailing_list(mlc.dataline, success);
+ c->data = lazy_str_get_trailing_list(mlc.dataline, minus(success, mlc.base));
c->data_lineno = plus(c->data_lineno, one);
} else if (success == t && lim) {
c->data = lazy_str_get_trailing_list(mlc.dataline, length_str(mlc.dataline));
diff --git a/tests/006/freeform-5.expected b/tests/006/freeform-5.expected
new file mode 100644
index 00000000..99433ca3
--- /dev/null
+++ b/tests/006/freeform-5.expected
@@ -0,0 +1,4 @@
+bar="BAR"
+zzy="ZZY"
+next="NEXT"
+nextnext="NEXTNEXT"
diff --git a/tests/006/freeform-5.txr b/tests/006/freeform-5.txr
new file mode 100644
index 00000000..9e0aea40
--- /dev/null
+++ b/tests/006/freeform-5.txr
@@ -0,0 +1,8 @@
+@(next :list (append (repeat (list (mkstring 99 #\A)) 100)
+ '("FOOBARXYZZY" "NEXT" "NEXTNEXT")))
+@(freeform)
+@(skip)FOO@{bar}XY
+@zzy
+
+@next
+@nextnext