summaryrefslogtreecommitdiffstats
path: root/src/doxygen.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-08-18 08:21:16 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-08-18 08:21:16 (GMT)
commit8b279c9bc28c70405e61219a6c2b3c6dbc7426e6 (patch)
tree8b5992a20a6f12debdd0b75362032a1d4684013c /src/doxygen.cpp
parent6385a83aa86bc5ad741d8068a574c5851bed708a (diff)
downloadDoxygen-8b279c9bc28c70405e61219a6c2b3c6dbc7426e6.zip
Doxygen-8b279c9bc28c70405e61219a6c2b3c6dbc7426e6.tar.gz
Doxygen-8b279c9bc28c70405e61219a6c2b3c6dbc7426e6.tar.bz2
Bug 734727 - GENERATE_TAGFILE no longer includes any @*section links
Changed the previous fix to allow references to sections defined in a mainpage that is imported via a tag file.
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r--src/doxygen.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 168725d..533e6ef 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -8628,15 +8628,16 @@ static void buildPageList(EntryNav *rootNav)
RECURSE_ENTRYTREE(buildPageList,rootNav);
}
+// search for the main page defined in this project
static void findMainPage(EntryNav *rootNav)
{
if (rootNav->section() == Entry::MAINPAGEDOC_SEC)
{
rootNav->loadEntry(g_storage);
- Entry *root = rootNav->entry();
- if (Doxygen::mainPage==0)
+ if (Doxygen::mainPage==0 && rootNav->tagInfo()==0)
{
+ Entry *root = rootNav->entry();
//printf("Found main page! \n======\n%s\n=======\n",root->doc.data());
QCString title=root->args.stripWhiteSpace();
//QCString indexName=Config_getBool("GENERATE_TREEVIEW")?"main":"index";
@@ -8648,7 +8649,7 @@ static void findMainPage(EntryNav *rootNav)
Doxygen::mainPage->setFileName(indexName,TRUE);
Doxygen::mainPage->setShowToc(root->stat);
addPageToContext(Doxygen::mainPage,rootNav);
-
+
SectionInfo *si = Doxygen::sectionDict->find(Doxygen::mainPage->name());
if (si)
{
@@ -8674,11 +8675,12 @@ static void findMainPage(EntryNav *rootNav)
Doxygen::mainPage->addSectionsToDefinition(root->anchors);
}
}
- else
+ else if (rootNav->tagInfo()==0)
{
+ Entry *root = rootNav->entry();
warn(root->fileName,root->startLine,
- "found more than one \\mainpage comment block! Skipping this "
- "block."
+ "found more than one \\mainpage comment block! Skipping this "
+ "block."
);
}
@@ -8687,6 +8689,22 @@ static void findMainPage(EntryNav *rootNav)
RECURSE_ENTRYTREE(findMainPage,rootNav);
}
+// search for the main page imported via tag files and add only the section labels
+static void findMainPageTagFiles(EntryNav *rootNav)
+{
+ if (rootNav->section() == Entry::MAINPAGEDOC_SEC)
+ {
+ rootNav->loadEntry(g_storage);
+
+ if (Doxygen::mainPage && rootNav->tagInfo())
+ {
+ Entry *root = rootNav->entry();
+ Doxygen::mainPage->addSectionsToDefinition(root->anchors);
+ }
+ }
+ RECURSE_ENTRYTREE(findMainPageTagFiles,rootNav);
+}
+
static void computePageRelations(EntryNav *rootNav)
{
if ((rootNav->section()==Entry::PAGEDOC_SEC ||
@@ -11083,6 +11101,7 @@ void parseInput()
g_s.begin("Search for main page...\n");
findMainPage(rootNav);
+ findMainPageTagFiles(rootNav);
g_s.end();
g_s.begin("Computing page relations...\n");