~blainsmith/hare-csv

c508357554ea39dfc20639b71ec94f5e20a3ed42 — Blain Smith 10 months ago 02c26cd
delim cannot be a double quote rune

Signed-off-by: Blain Smith <rebelgeek@blainsmith.com>
2 files changed, 14 insertions(+), 6 deletions(-)

M format/csv/reader.ha
M format/csv/writer.ha
M format/csv/reader.ha => format/csv/reader.ha +7 -3
@@ 13,9 13,13 @@ export type reader = struct {
};

// Creates a new [[reader]] with a specified delimiter.
export fn newreader(in: io::handle, delim: rune) reader = reader {
	in = in,
	delim = delim,
export fn newreader(in: io::handle, delim: rune) reader = {
	if (delim == '"') abort("format::csv: Invalid delimiter");

	return reader {
		in = in,
		delim = delim,
	};
};

// Reads one record (a slice of strings) from a [[reader]].

M format/csv/writer.ha => format/csv/writer.ha +7 -3
@@ 13,9 13,13 @@ export type writer = struct {
};

// Creates a new [[writer]] with a specified delimiter.
export fn newwriter(out: io::handle, delim: rune) writer = writer {
	out = out,
	delim = delim,
export fn newwriter(out: io::handle, delim: rune) writer = {
	if (delim == '"') abort("format::csv: Invalid delimiter");

	return writer {
		out = out,
		delim = delim,
	};
};

// Writes one record (a slice of strings) to a [[writer]], escaping