summaryrefslogtreecommitdiffstats
path: root/src/scanner.l
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-09-24 19:31:40 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2019-09-24 19:31:40 (GMT)
commitf8ce2e4edbf986248b7382a702d982173c2f41d0 (patch)
treed8b64eb333043fd7e7d83307f728678e437bf2d1 /src/scanner.l
parentf63047687a895dc30656913d5d6ff110bde4bd7a (diff)
downloadDoxygen-f8ce2e4edbf986248b7382a702d982173c2f41d0.zip
Doxygen-f8ce2e4edbf986248b7382a702d982173c2f41d0.tar.gz
Doxygen-f8ce2e4edbf986248b7382a702d982173c2f41d0.tar.bz2
issue #7265: Double quote character in C++ raw string literal causes Doxygen to process the string contents
Diffstat (limited to 'src/scanner.l')
-rw-r--r--src/scanner.l11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/scanner.l b/src/scanner.l
index f6ffdff..07d5c71 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -142,6 +142,7 @@ static int lastCopyArgStringContext;
static int lastCopyArgContext;
static QCString *copyArgString;
static QCString fullArgString;
+static QCString dummyRawString;
static ArgumentList *currentArgumentList;
static char lastCopyArgChar;
@@ -5398,6 +5399,16 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
BEGIN(HereDoc);
}
}
+<SkipCurly,SkipCurlyCpp>{B}*{RAWBEGIN} {
+ QCString raw=QCString(yytext).stripWhiteSpace();
+ g_delimiter = raw.data()+2;
+ g_delimiter=g_delimiter.left(g_delimiter.length()-1);
+ lastRawStringContext = YY_START;
+ dummyRawString.resize(0);
+ pCopyRawString = &dummyRawString;
+ *pCopyRawString+=yytext;
+ BEGIN(RawString);
+ }
<SkipCurly,SkipCurlyCpp>[^\n#"'@\\/{}<]+ {
lineCount(); // for g_column updates
//addToBody(yytext);