summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ndiscvt/inf-token.l
diff options
context:
space:
mode:
authormdodd <mdodd@FreeBSD.org>2004-01-11 21:10:35 +0000
committermdodd <mdodd@FreeBSD.org>2004-01-11 21:10:35 +0000
commitf805d7f5527061ba7af4c825e0657a43fb69f380 (patch)
tree5a06b640ab61ddaf53ecb3dacadde82ef51ee91c /usr.sbin/ndiscvt/inf-token.l
parent30808aecc7d387925a864873d8085791db2d9072 (diff)
downloadFreeBSD-src-f805d7f5527061ba7af4c825e0657a43fb69f380.zip
FreeBSD-src-f805d7f5527061ba7af4c825e0657a43fb69f380.tar.gz
- Handle doubled double quotes:
`"""foo"" bar"' -> `"foo" bar' - Handle C++ style comments. Requested by: wpaul
Diffstat (limited to 'usr.sbin/ndiscvt/inf-token.l')
-rw-r--r--usr.sbin/ndiscvt/inf-token.l12
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.sbin/ndiscvt/inf-token.l b/usr.sbin/ndiscvt/inf-token.l
index c6c08b9..cc1508b 100644
--- a/usr.sbin/ndiscvt/inf-token.l
+++ b/usr.sbin/ndiscvt/inf-token.l
@@ -64,9 +64,10 @@ update_lineno(const char *cp)
\n { lineno++; return EOL; }
\r ;
;.*$ ;
+\/\/.*$ ;
= { return EQUALS; }
, { return COMMA; }
-\"(\\\"|[^"])*\" {
+\"(\\\"|[^"]|\"\")*\" {
int len = strlen(yytext) - 2;
int blen = len + 1;
char *walker;
@@ -77,6 +78,15 @@ update_lineno(const char *cp)
goto out;
walker = yylval.str;
for (i = 1; i <= len; i++) {
+ if (yytext[i] == '\"') {
+ switch (yytext[i + 1]) {
+ case '\"':
+ i++;
+ break;
+ default:
+ break;
+ }
+ }
if (yytext[i] == '\\') {
switch (yytext[i + 1]) {
case '\n':
OpenPOWER on IntegriCloud