From e41ae81c3d3232111db340a7c11b7e8203e3bfce Mon Sep 17 00:00:00 2001 From: albert-github Date: Sat, 26 Jan 2019 16:29:45 +0100 Subject: issue #6796 Bad link to section, subsection if pointing at item past suspicious text To escape `\` and `@` not only `\\` and `@@` should be possible but also `\@` and `@\` --- src/commentscan.l | 4 ++-- src/doctokenizer.l | 2 +- src/scanner.l | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commentscan.l b/src/commentscan.l index c656c9e..0ca293c 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -1181,7 +1181,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" addOutput(yytext); } } -{B}*("\\\\"|"@@")"f"[$\[{] { // escaped formula command +{B}*({CMD}{CMD})"f"[$\[{] { // escaped formula command addOutput(yytext); } {B}*{CMD}"~"[a-z_A-Z-]* { // language switch command @@ -1805,7 +1805,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" g_sectionTitle+=yytext; addOutput(yytext); } -("\\\\"|"@@"){ID} { // unescape escaped command +({CMD}{CMD}){ID} { // unescape escaped command g_sectionTitle+=&yytext[1]; addOutput(yytext); } diff --git a/src/doctokenizer.l b/src/doctokenizer.l index 90f9846..5cf5f02 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -1227,7 +1227,7 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV} /* State for the pass used to find the anchors and sections */ [^\n@\\<]+ -"@@"|"\\\\"|"@<"|"\\<" +{CMD}("<"|{CMD}) "<"{CAPTION}({WS}+{ATTRIB})*">" { QCString tag=yytext; int s=tag.find("id="); diff --git a/src/scanner.l b/src/scanner.l index cc497e3..d2c7072 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -6542,7 +6542,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) // middle of a comment block docBlock+=yytext; } -("@@"|"\\\\"){ID}/[^a-z_A-Z0-9] { // escaped command +({CMD}{CMD}){ID}/[^a-z_A-Z0-9] { // escaped command docBlock+=yytext; } {CMD}("f$"|"f["|"f{") { -- cgit v0.12