summaryrefslogtreecommitdiff
path: root/usr.sbin/nsd/zlexer.lex
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2014-09-16 16:54:07 +0000
committerBrad Smith <brad@cvs.openbsd.org>2014-09-16 16:54:07 +0000
commit2b306798f33a46a535e3b0f3ebdd05f3ad86f526 (patch)
tree89eaf541a39a437880bc8bea6dd6a370166c9242 /usr.sbin/nsd/zlexer.lex
parentb9bd487caa683ae9060dcce84b139082da8e3e4c (diff)
update to NSD 4.1.0, ok sthen@
Diffstat (limited to 'usr.sbin/nsd/zlexer.lex')
-rw-r--r--usr.sbin/nsd/zlexer.lex10
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.sbin/nsd/zlexer.lex b/usr.sbin/nsd/zlexer.lex
index bcb5661ab80..56ad724e108 100644
--- a/usr.sbin/nsd/zlexer.lex
+++ b/usr.sbin/nsd/zlexer.lex
@@ -107,7 +107,9 @@ parser_pop_stringbuf(void)
SPACE [ \t]
LETTER [a-zA-Z]
NEWLINE [\n\r]
-ZONESTR [^ \t\n\r();.\"\$]
+ZONESTR [^ \t\n\r();.\"\$]|\\.|\\\n
+CHARSTR [^ \t\n\r();.]|\\.|\\\n
+QUOTE \"
DOLLAR \$
COMMENT ;
DOT \.
@@ -281,7 +283,7 @@ ANY [^\"\n\\]|\\.
}
/* Quoted strings. Strip leading and ending quotes. */
-\" { BEGIN(quotedstring); LEXOUT(("\" ")); }
+{QUOTE} { BEGIN(quotedstring); LEXOUT(("\" ")); }
<quotedstring><<EOF>> {
zc_error("EOF inside quoted string");
BEGIN(INITIAL);
@@ -290,14 +292,14 @@ ANY [^\"\n\\]|\\.
}
<quotedstring>{ANY}* { LEXOUT(("STR ")); yymore(); }
<quotedstring>\n { ++parser->line; yymore(); }
-<quotedstring>\" {
+<quotedstring>{QUOTE} {
LEXOUT(("\" "));
BEGIN(INITIAL);
yytext[yyleng - 1] = '\0';
return parse_token(STR, yytext, &lexer_state);
}
-({ZONESTR}|\\.|\\\n)+ {
+{ZONESTR}({CHARSTR})* {
/* Any allowed word. */
return parse_token(STR, yytext, &lexer_state);
}