mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
dtc: Improve support for string escapes
dtc supports the use of C-style escapes (\n, \t and so forth) in string property definitions via the data_copy_escape_string() function. However, while it supports the most common escape characters, it doesn't support the full set that C does, which is a potential gotcha. Worse, a bug in the lexer means that while data_copy_escape_string() can handle the \" escape, a string with such an escape won't lex correctly. This patch fixes both problems, extending data_copy_escape_string() to support the missing escapes, and fixing the regex for strings in the lexer to handle internal escaped quotes. This also adds a testcase for string escape functionality. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
333542fabf
commit
a756c12bea
7 changed files with 65 additions and 2 deletions
|
@ -69,7 +69,7 @@ REFCHAR ({PROPCHAR}|{UNITCHAR}|[/@])
|
|||
}
|
||||
}
|
||||
|
||||
\"[^"]*\" {
|
||||
\"([^\\"]|\\.)*\" {
|
||||
yylloc.filenum = srcpos_filenum;
|
||||
yylloc.first_line = yylineno;
|
||||
DPRINT("String: %s\n", yytext);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue