aboutsummaryrefslogtreecommitdiffstats
path: root/src/writer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/writer.c')
-rw-r--r--src/writer.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/writer.c b/src/writer.c
index eca334a8..85d20deb 100644
--- a/src/writer.c
+++ b/src/writer.c
@@ -64,9 +64,9 @@ write_text(SerdWriter writer, TextContext ctx,
uint8_t in = utf8[i++];
switch (in) {
case '\\': writer->sink("\\\\", 2, writer->stream); continue;
- case '\n': writer->sink("\\n", 2, writer->stream); continue;
- case '\r': writer->sink("\\r", 2, writer->stream); continue;
- case '\t': writer->sink("\\t", 2, writer->stream); continue;
+ case '\n': writer->sink("\\n", 2, writer->stream); continue;
+ case '\r': writer->sink("\\r", 2, writer->stream); continue;
+ case '\t': writer->sink("\\t", 2, writer->stream); continue;
case '"':
if (terminator == '"') {
writer->sink("\\\"", 2, writer->stream);
@@ -86,7 +86,7 @@ write_text(SerdWriter writer, TextContext ctx,
if ((in & 0x80) == 0) { // Starts with `0'
size = 1;
c = in & 0x7F;
- if ((in >= 0x20) && (in <= 0x7E)) { // Printable ASCII
+ if (in_range((in >= 0x20) && (in <= 0x7E)) { // Printable ASCII
writer->sink(&in, 1, writer->stream);
continue;
}
@@ -112,6 +112,7 @@ write_text(SerdWriter writer, TextContext ctx,
if (ctx == WRITE_STRING && !(writer->style & SERD_STYLE_ASCII)) {
// Write UTF-8 character directly to UTF-8 output
+ // TODO: Scan to next escape and write entire range at once
writer->sink(utf8 + i - 1, size, writer->stream);
i += size - 1;
continue;