From 189c3af4052d543ce816637d97fed926fefa5c47 Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Fri, 15 Nov 2024 01:14:07 +0100 Subject: csv -> tsv --- tsv/tsv.ha | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tsv/tsv.ha (limited to 'tsv') diff --git a/tsv/tsv.ha b/tsv/tsv.ha new file mode 100644 index 0000000..85015a1 --- /dev/null +++ b/tsv/tsv.ha @@ -0,0 +1,22 @@ +use io; +use strings; +use fmt; + +export type error = !(str | io::error); + +export fn writerecord(w: io::handle, record: []str) (void | error) = { + let sep = ""; + for (const field .. record) { + const pfield = strings::replace(field, "\t", ""); + defer free(pfield); + fmt::fprintf(w, "{}{}", sep, pfield)!; + sep = "\t"; + }; + fmt::fprintln(w)!; +}; + +export fn writerecords(w: io::handle, records: [][]str) (void | error) = { + for (const record .. records) { + writerecord(w, record)?; + }; +}; -- cgit v1.2.3