summaryrefslogtreecommitdiffstats
path: root/share/txr
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
commite2e0c7c02245e66d803ecb85005ed330851b07d7 (patch)
treee1154d3ddefaa2651decffbfa45dd74801c25886 /share/txr
parent685ea1dd078bb9861a86b3af5d8b6d509e4fa982 (diff)
downloadtxr-e2e0c7c02245e66d803ecb85005ed330851b07d7.tar.gz
txr-e2e0c7c02245e66d803ecb85005ed330851b07d7.tar.bz2
txr-e2e0c7c02245e66d803ecb85005ed330851b07d7.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".
Diffstat (limited to 'share/txr')
-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)