From 60abada8b95cc1772996a264065904f408ed32ff Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Fri, 19 Dec 2014 10:52:50 +0100 Subject: Bug 740218 - Full scope needed when making link inside cross-referenced section (fixed regression) --- src/doctokenizer.l | 23 +++++++++++++++++++++++ src/util.cpp | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/doctokenizer.l b/src/doctokenizer.l index aa8ef8d..8dd06bf 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -49,6 +49,7 @@ static int g_inputPos = 0; static const char *g_inputString; static QCString g_fileName; static bool g_insidePre; +static int g_sharpCount=0; // context for section finding phase static Definition *g_definition; @@ -437,6 +438,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4} %x St_Anchor %x St_Snippet %x St_SetScope +%x St_SetScopeEnd %x St_Sections %s St_SecLabel1 @@ -1018,8 +1020,29 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4} g_token->name = g_token->name.stripWhiteSpace(); return TK_WORD; } +{SCOPEMASK}"<" { + g_token->name = yytext; + g_token->name = g_token->name.stripWhiteSpace(); + g_sharpCount=1; + BEGIN(St_SetScopeEnd); + } {BLANK} { } +"<" { + g_token->name += yytext; + g_sharpCount++; + } +">" { + g_token->name += yytext; + g_sharpCount--; + if (g_sharpCount<=0) + { + return TK_WORD; + } + } +. { + g_token->name += yytext; + } "&"{ID}";" { /* symbol */ g_token->name = yytext; return TK_SYMBOL; diff --git a/src/util.cpp b/src/util.cpp index e97fe7f..39d0ba2 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -6288,7 +6288,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle, { // append documentation block to the page. pd->setDocumentation(doc,fileName,startLine); - //printf("Adding page docs `%s' pi=%p name=%s\n",doc.data(),pi,name); + //printf("Adding page docs `%s' pi=%p name=%s\n",doc.data(),pd,name); } else // new page { -- cgit v0.12