From c3f3ecd32a893c084b2d2e8d4228ae9925743d36 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 3 Jul 2020 18:40:38 +0200 Subject: WIP: Improve writer performance --- src/n3.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/n3.c b/src/n3.c index 1b1497a6..9648b487 100644 --- a/src/n3.c +++ b/src/n3.c @@ -690,7 +690,8 @@ read_IRIREF(SerdReader* reader, SerdNode** dest) while (!st) { const int c = eat_byte_safe(reader, peek_byte(reader)); switch (c) { - case '"': case '<': case '^': case '`': case '{': case '|': case '}': + case '"': + case '<': return r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid IRI character `%c'\n", c); case '>': @@ -708,17 +709,18 @@ read_IRIREF(SerdReader* reader, SerdNode** dest) break; } break; + case '^': + case '`': + case '{': + case '|': + case '}': + return r_err(reader, SERD_ERR_BAD_SYNTAX, + "invalid IRI character `%c'\n", c); default: if (c <= 0x20) { - if (is_print(c)) { - r_err(reader, SERD_ERR_BAD_SYNTAX, - "invalid IRI character `%c' (escape %%%02X)\n", - c, (unsigned)c); - } else { - r_err(reader, SERD_ERR_BAD_SYNTAX, - "invalid IRI character (escape %%%02X)\n", - (unsigned)c); - } + r_err(reader, SERD_ERR_BAD_SYNTAX, + "invalid IRI character (escape %%%02X)\n", + (unsigned)c); if (reader->strict) { return SERD_ERR_BAD_SYNTAX; } -- cgit v1.2.1