authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-07-18 10:51:18-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-07-18 10:51:42-04:00
logc393a399fb4b463f095a8510595263759fd82cd6
treeae8b4d467362ceb049728d8faa39ee5d68b6889e
parentcd488c9da56a03d2244a67629612445c451441da

fix invalid character test on windows


1 files changed, 13 insertions(+), 8 deletions(-)

src/tokenizer.cpp+13-8
...@@ -460,16 +460,21 @@ static const char* get_escape_shorthand(uint8_t c) {...@@ -460,16 +460,21 @@ static const char* get_escape_shorthand(uint8_t c) {
460static void invalid_char_error(Tokenize *t, uint8_t c) {460static void invalid_char_error(Tokenize *t, uint8_t c) {
461 if (c == '\r') {461 if (c == '\r') {
462 tokenize_error(t, "invalid carriage return, only '\\n' line endings are supported");462 tokenize_error(t, "invalid carriage return, only '\\n' line endings are supported");
463 } else if (isprint(c)) {463 return;
464 }
465
466 const char *sh = get_escape_shorthand(c);
467 if (sh) {
468 tokenize_error(t, "invalid character: '%s'", sh);
469 return;
470 }
471
472 if (isprint(c)) {
464 tokenize_error(t, "invalid character: '%c'", c);473 tokenize_error(t, "invalid character: '%c'", c);
465 } else {474 return;
466 const char *sh = get_escape_shorthand(c);
467 if (sh) {
468 tokenize_error(t, "invalid character: '%s'", sh);
469 } else {
470 tokenize_error(t, "invalid character: '\\x%x'", c);
471 }
472 }475 }
476
477 tokenize_error(t, "invalid character: '\\x%02x'", c);
473}478}
474479
475void tokenize(Buf *buf, Tokenization *out) {480void tokenize(Buf *buf, Tokenization *out) {