diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-01-30 19:27:46 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-01-30 19:27:46 -0800 |
commit | 7037ccbafe1b1a5540a50440e203d4298b8b2777 (patch) | |
tree | c538b88d49c53ec18a18a3a5d13524f0a98ef51a /tests/015 | |
parent | 89589c71c1eaa51a9f2d1c75b12ae47668ffc662 (diff) | |
download | txr-7037ccbafe1b1a5540a50440e203d4298b8b2777.tar.gz txr-7037ccbafe1b1a5540a50440e203d4298b8b2777.tar.bz2 txr-7037ccbafe1b1a5540a50440e203d4298b8b2777.zip |
awk: add CSV support.
* stdlib/awk (awk-state upd-rec-to-f): Handle a new case
of fs being the keyword symbol :csv, producing a
field-splitting lambda that calls get-csv.
* tests/015/awk-basic.tl: Several new test cases for
this CSV feature.
* txr.1: Documented.
Diffstat (limited to 'tests/015')
-rw-r--r-- | tests/015/awk-basic.tl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/015/awk-basic.tl b/tests/015/awk-basic.tl index a411d495..caf6087f 100644 --- a/tests/015/awk-basic.tl +++ b/tests/015/awk-basic.tl @@ -39,3 +39,21 @@ (t (set f f) (prn))) "one,two,three\nfour,five,six\nseven,eight,nine,ten\n") + +(defvarl *d1* "a,b,c\r\n\r\nd,e,f\r\ng,h,i") + +(motest + (awk (:inputs (make-string-input-stream *d1*)) + (:set fs :csv) + (t (prn nf))) + "3\n1\n3\n3\n" + (awk (:inputs (make-string-input-stream *d1*)) + (:set fs :csv ofs "|") + (t (set f f) + (prn))) + "a|b|c\r\n\r\nd|e|f\r\ng|h|i\n" + (awk (:inputs (make-string-input-stream *d1*)) + (:set fs :csv rs "\r\n" ofs "|") + (t (set f f) + (prn))) + "a|b|c\n\nd|e|f\ng|h|i\n") |