summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-09-11 04:55:03 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-09-11 04:55:03 -0700
commite48a3d09d48254741908e3cf14d21aa3bf8499cd (patch)
treee1154d3ddefaa2651decffbfa45dd74801c25886
parent1132cf22f4bcb241df8782f5a07e5cc991d8e1ac (diff)
downloadtxr-e48a3d09d48254741908e3cf14d21aa3bf8499cd.tar.gz
txr-e48a3d09d48254741908e3cf14d21aa3bf8499cd.tar.bz2
txr-e48a3d09d48254741908e3cf14d21aa3bf8499cd.zip
awk macro: don't use record stream if rs is "\n".
* share/txr/stdlib/awk.tl (sys:awk-state loop): Take input stream directly without a record adapter, if the record separator is the string "\n".
-rw-r--r--share/txr/stdlib/awk.tl13
1 files changed, 7 insertions, 6 deletions
diff --git a/share/txr/stdlib/awk.tl b/share/txr/stdlib/awk.tl
index de6bcb71..e74a0a18 100644
--- a/share/txr/stdlib/awk.tl
+++ b/share/txr/stdlib/awk.tl
@@ -72,12 +72,13 @@
(when beg-file-func
[beg-file-func aws])
(unwind-protect
- (let ((recin (record-adapter (if (regexp aws.rs)
- aws.rs
- (regex-compile aws.rs))
- (if (streamp in)
- in
- (open-file in)))))
+ (let* ((stin (if (streamp in) in (open-file in)))
+ (recin (if (equal aws.rs "\n")
+ stin
+ (record-adapter (if (regexp aws.rs)
+ aws.rs
+ (regex-compile aws.rs))
+ stin))))
(set aws.file-rec-num 0)
(whilet ((rec (get-line recin)))
(set aws.rec rec)