From 3170f0870ca0afb3aad9d4d1e9f21f2c73817ac4 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 11 Apr 2018 21:35:03 -0400 Subject: [PATCH] add octal escape in string --- src/parser/parser.l | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/parser/parser.l b/src/parser/parser.l index b046d60..723850b 100644 --- a/src/parser/parser.l +++ b/src/parser/parser.l @@ -137,7 +137,14 @@ L?'\\v' (void)'\v'; return TOK_CHAR_CONST; \\x[0-9A-Fa-f]{2} { /* hexadecimal escape code */ unsigned int val; - (void) sscanf(yytext + 2, "%x", &val); + (void)sscanf(yytext + 1, "%x", &val); + char v[2] = {(char)val, '\0'}; + String_concat(build_string, v); +} +\\[0-7][0-7]?[0-7]? { + /* octal escape code */ + unsigned int val; + (void)sscanf(yytext + 1, "%o", &val); char v[2] = {(char)val, '\0'}; String_concat(build_string, v); }