Commit 60abada8 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Bug 740218 - Full scope needed when making link inside cross-referenced section (fixed regression)

parent b3c44e52
...@@ -49,6 +49,7 @@ static int g_inputPos = 0; ...@@ -49,6 +49,7 @@ static int g_inputPos = 0;
static const char *g_inputString; static const char *g_inputString;
static QCString g_fileName; static QCString g_fileName;
static bool g_insidePre; static bool g_insidePre;
static int g_sharpCount=0;
// context for section finding phase // context for section finding phase
static Definition *g_definition; static Definition *g_definition;
...@@ -437,6 +438,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4} ...@@ -437,6 +438,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
%x St_Anchor %x St_Anchor
%x St_Snippet %x St_Snippet
%x St_SetScope %x St_SetScope
%x St_SetScopeEnd
%x St_Sections %x St_Sections
%s St_SecLabel1 %s St_SecLabel1
...@@ -1018,8 +1020,29 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4} ...@@ -1018,8 +1020,29 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
g_token->name = g_token->name.stripWhiteSpace(); g_token->name = g_token->name.stripWhiteSpace();
return TK_WORD; return TK_WORD;
} }
<St_SetScope>{SCOPEMASK}"<" {
g_token->name = yytext;
g_token->name = g_token->name.stripWhiteSpace();
g_sharpCount=1;
BEGIN(St_SetScopeEnd);
}
<St_SetScope>{BLANK} { <St_SetScope>{BLANK} {
} }
<St_SetScopeEnd>"<" {
g_token->name += yytext;
g_sharpCount++;
}
<St_SetScopeEnd>">" {
g_token->name += yytext;
g_sharpCount--;
if (g_sharpCount<=0)
{
return TK_WORD;
}
}
<St_SetScopeEnd>. {
g_token->name += yytext;
}
<St_Ref2>"&"{ID}";" { /* symbol */ <St_Ref2>"&"{ID}";" { /* symbol */
g_token->name = yytext; g_token->name = yytext;
return TK_SYMBOL; return TK_SYMBOL;
......
...@@ -6288,7 +6288,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle, ...@@ -6288,7 +6288,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle,
{ {
// append documentation block to the page. // append documentation block to the page.
pd->setDocumentation(doc,fileName,startLine); 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 else // new page
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment