From 93b4e0f258c5a31405df91b018760cf7a236ec54 Mon Sep 17 00:00:00 2001 From: kramm Date: Fri, 7 Feb 2003 12:37:44 +0000 Subject: [PATCH] support \". --- src/parser.lex | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/parser.lex b/src/parser.lex index c0513d1..bf520e5 100644 --- a/src/parser.lex +++ b/src/parser.lex @@ -32,17 +32,20 @@ static char*prefix = 0; static void unescapeString(string_t * tmp) { char *p, *p1; + /* fixme - this routine expects the string to be + null-terminated */ - for (p1=tmp->str; (p=strchr(p1, '\\')) != 0; p1 = p+1) + for (p1=tmp->str; (p=strchr(p1, '\\')); p1 = p+1) { switch(p[1]) { - case '\\': p[1] = '\\'; break; - case 'b': p[1] = '\b'; break; - case 'f': p[1] = '\f'; break; - case 'n': p[1] = '\n'; break; - case 'r': p[1] = '\r'; break; - case 't': p[1] = '\t'; break; + case '\\': p[1] = '\\'; tmp->len--; break; + case '"': p[1] = '"'; tmp->len--; break; + case 'b': p[1] = '\b'; tmp->len--; break; + case 'f': p[1] = '\f'; tmp->len--; break; + case 'n': p[1] = '\n'; tmp->len--; break; + case 'r': p[1] = '\r'; tmp->len--; break; + case 't': p[1] = '\t'; tmp->len--; break; default: continue; } -- 1.7.10.4