Browse Source

Only override the comma value on `*_init` if it is "invalid"

gingerBill 1 year ago
parent
commit
3812d5e002
2 changed files with 8 additions and 2 deletions
  1. 4 1
      core/encoding/csv/reader.odin
  2. 4 1
      core/encoding/csv/writer.odin

+ 4 - 1
core/encoding/csv/reader.odin

@@ -91,7 +91,10 @@ DEFAULT_RECORD_BUFFER_CAPACITY :: 256
 
 // reader_init initializes a new Reader from r
 reader_init :: proc(reader: ^Reader, r: io.Reader, buffer_allocator := context.allocator) {
-	reader.comma = ','
+	switch reader.comma {
+	case '\x00', '\n', '\r', 0xfffd:
+		reader.comma = ','
+	}
 
 	context.allocator = buffer_allocator
 	reserve(&reader.record_buffer, DEFAULT_RECORD_BUFFER_CAPACITY)

+ 4 - 1
core/encoding/csv/writer.odin

@@ -17,7 +17,10 @@ Writer :: struct {
 
 // writer_init initializes a Writer that writes to w
 writer_init :: proc(writer: ^Writer, w: io.Writer) {
-	writer.comma = ','
+	switch writer.comma {
+	case '\x00', '\n', '\r', 0xfffd:
+		writer.comma = ','
+	}
 	writer.w = w
 }