diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2000-08-06 15:11:00 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2000-08-06 15:11:00 (GMT) |
commit | ef99315d71b4b8e2c027033665bcc1244f43ca15 (patch) | |
tree | aa501b0916e827fee6032245628509acc64efbba /src/doxygen.cpp | |
parent | e139c0246413d3803028572dcafe9f065f4c9eab (diff) | |
download | Doxygen-ef99315d71b4b8e2c027033665bcc1244f43ca15.zip Doxygen-ef99315d71b4b8e2c027033665bcc1244f43ca15.tar.gz Doxygen-ef99315d71b4b8e2c027033665bcc1244f43ca15.tar.bz2 |
Release-1.2.0-20000806
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r-- | src/doxygen.cpp | 475 |
1 files changed, 239 insertions, 236 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 9c6f35c..2a788f0 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -30,6 +30,7 @@ #include "version.h" #include "doxygen.h" #include "scanner.h" +#include "doc.h" #include "entry.h" #include "index.h" #include "logos.h" @@ -172,74 +173,123 @@ const char *getOverloadDocs() //---------------------------------------------------------------------------- -static void addTodoItem(Entry *root,const char *prefix, - const char *name,const char *title=0) +static void addRelatedPage(const char *name,const QCString &ptitle, + const QCString &doc,QList<QCString> *anchors, + const char *fileName,int startLine, + int todoId,int testId + ) { - //printf("addTodoItem(%s) todoId=%d\n",name,root->todoId); - if (root->todoId==0 || !Config::generateTodoList) return; - RefItem *item = todoList.getRefItem(root->todoId); - ASSERT(item!=0); - if (item->written) return; - - Entry *page = new Entry; - page->section = Entry::PAGEDOC_SEC; - page->fileName = "generated"; - page->startLine = 1; - page->name = "todo"; - page->args = theTranslator->trTodoList(); - page->doc += "<dl><dt>\\anchor "; - page->doc += item->listAnchor; - page->doc += "\n"; - page->doc += prefix; - page->doc += " \\ref "; - page->doc += name; - page->doc += " \""; - if (title && title[0]!='\0') - page->doc += title; + PageInfo *pi=0; + if ((pi=pageDict[name])) + { + //warn("Warning: Page %s was already documented. Ignoring documentation " + // "at line %d of %s\n",root->name.data(),root->startLine, + // root->fileName.data()); + + // append documentation block to the page. + pi->doc+="\n\n"+doc; + } else - page->doc += name; - page->doc += "\":</dt>\n<dd>"; - page->doc += item->text; - page->doc += "</dd></dl>\n"; - root->addSubEntry(page); + { + QCString baseName=name; + if (baseName.right(4)==".tex") + baseName=baseName.left(baseName.length()-4); + else if (baseName.right(5)==".html") + baseName=baseName.left(baseName.length()-5); - item->written=TRUE; + QCString title=ptitle.stripWhiteSpace(); + pi=new PageInfo(fileName,startLine,baseName,doc,title); + pi->todoId=todoId; + pi->testId=testId; + QCString pageName; + if (Config::caseSensitiveNames) + pageName=pi->name.copy(); + else + pageName=pi->name.lower(); + setFileNameForSections(anchors,pageName); + + pageList.append(pi); + pageDict.insert(baseName,pi); + if (!pi->title.isEmpty()) + { + //outputList->writeTitle(pi->name,pi->title); + + // a page name is a label as well! + SectionInfo *si=new SectionInfo( + pi->name,pi->title,SectionInfo::Section); + si->fileName=pageName; + //printf(" SectionInfo: sec=%p sec->fileName=%s\n",si,si->fileName.data()); + //printf("Adding section info %s\n",pi->name.data()); + sectionDict.insert(pageName,si); + } + } } //---------------------------------------------------------------------------- -static void addTestItem(Entry *root,const char *prefix, - const char *name,const char *title=0) +static void addRefItem(int todoId,int testId,const char *prefix, + const char *name,const char *title,const char *args=0) { - //printf("addTestItem(%s) testId=%d\n",name,root->testId); - if (root->testId==0 || !Config::generateTestList) return; - RefItem *item = testList.getRefItem(root->testId); - ASSERT(item!=0); - if (item->written) return; - - Entry *page = new Entry; - page->section = Entry::PAGEDOC_SEC; - page->fileName = "generated"; - page->startLine = 1; - page->name = "test"; - page->args = theTranslator->trTestList(); - page->doc += "<dl><dt>\\anchor "; - page->doc += item->listAnchor; - page->doc += "\n"; - page->doc += prefix; - page->doc += " \\ref "; - page->doc += name; - page->doc += " \""; - if (title && title[0]!='\0') - page->doc += title; - else - page->doc += name; - page->doc += "\":</dt>\n<dd>"; - page->doc += item->text; - page->doc += "</dd></dl>\n"; - root->addSubEntry(page); - item->written=TRUE; + //printf("addRefItem(%s) todoId=%d testId\n",name,todoId,testId); + + //////////////////////////////////////////////////////////// + // add item to the todo list + //////////////////////////////////////////////////////////// + + if (todoId>0 && Config::generateTodoList) + { + RefItem *item = todoList.getRefItem(todoId); + ASSERT(item!=0); + if (item->written) return; + + QCString doc; + doc += "<dl><dt>\\anchor "; + doc += item->listAnchor; + doc += "\n"; + doc += prefix; + doc += " \\_internalref "; + doc += name; + doc += " \""; + doc += title; + doc += "\""; + if (args) doc += args; + doc += "</dt>\n<dd>"; + doc += item->text; + doc += "</dd></dl>\n"; + addRelatedPage("todo",theTranslator->trTodoList(),doc,0,"generated",1,0,0); + + item->written=TRUE; + } + + //////////////////////////////////////////////////////////// + // add item to the test list + //////////////////////////////////////////////////////////// + + if (testId>0 && Config::generateTestList) + { + RefItem *item = testList.getRefItem(testId); + ASSERT(item!=0); + if (item->written) return; + + QCString doc; + doc += "<dl><dt>\\anchor "; + doc += item->listAnchor; + doc += "\n"; + doc += prefix; + doc += " \\_internalref "; + doc += name; + doc += " \""; + doc += title; + doc += "\""; + if (args) doc += args; + doc += "</dt>\n<dd>"; + doc += item->text; + doc += "</dd></dl>\n"; + addRelatedPage("test",theTranslator->trTestList(),doc,0,"generated",1,0,0); + + item->written=TRUE; + } } //---------------------------------------------------------------------------- @@ -269,8 +319,7 @@ static void buildGroupList(Entry *root) groupList.append(gd); groupDict.insert(root->name,gd); addGroupToGroups(root,gd); - addTodoItem(root,"group",gd->name()); - addTestItem(root,"group",gd->name()); + gd->setRefItems(root->todoId,root->testId); } } EntryListIterator eli(*root->sublist); @@ -343,6 +392,7 @@ static void buildFileList(Entry *root) fd->setDocumentation(root->doc,FALSE); fd->setBriefDescription(root->brief); fd->addSectionsToDefinition(root->anchors); + fd->setRefItems(root->todoId,root->testId); QListIterator<QCString> sli(*root->groups); QCString *s; for (;(s=sli.current());++sli) @@ -354,8 +404,6 @@ static void buildFileList(Entry *root) //printf("File %s: in group %s\n",fd->name().data(),s->data()); } } - addTodoItem(root,"file",fd->name()); - addTestItem(root,"file",fd->name()); } } else @@ -585,8 +633,7 @@ static void buildClassList(Entry *root) fd->insertClass(cd); } addClassToGroups(root,cd); - addTodoItem(root,"class",cd->name()); - addTestItem(root,"class",cd->name()); + cd->setRefItems(root->todoId,root->testId); if (!root->subGrouping) cd->setSubGrouping(FALSE); } else // new class @@ -627,8 +674,7 @@ static void buildClassList(Entry *root) if (!root->subGrouping) cd->setSubGrouping(FALSE); addClassToGroups(root,cd); - addTodoItem(root,"class",cd->name()); - addTestItem(root,"class",cd->name()); + cd->setRefItems(root->todoId,root->testId); // see if the class is found inside a namespace bool found=addNamespace(root,cd); @@ -740,8 +786,7 @@ static void buildNamespaceList(Entry *root) // insert the namespace in the file definition if (fd) fd->insertNamespace(nd); addNamespaceToGroups(root,nd); - addTodoItem(root,"namespace",nd->name()); - addTestItem(root,"namespace",nd->name()); + nd->setRefItems(root->todoId,root->testId); } else /* if (!root->doc.isEmpty() || !root->brief.isEmpty() || @@ -756,8 +801,7 @@ static void buildNamespaceList(Entry *root) //printf("Adding namespace to group\n"); addNamespaceToGroups(root,nd); - addTodoItem(root,"namespace",nd->name()); - addTestItem(root,"namespace",nd->name()); + nd->setRefItems(root->todoId,root->testId); bool ambig; // file definition containing the namespace nd @@ -880,8 +924,7 @@ static void findUsingDirectives(Entry *root) // add class to the list namespaceList.inSort(nd); namespaceDict.insert(root->name,nd); - addTodoItem(root,"namespace",nd->name()); - addTestItem(root,"namespace",nd->name()); + nd->setRefItems(root->todoId,root->testId); } } } @@ -1082,20 +1125,19 @@ static MemberDef *addVariableToClass( // add the member to the global list if (mn) { - mn->inSort(md); + mn->append(md); } else // new variable name { mn = new MemberName(name); - mn->inSort(md); + mn->append(md); //printf("Adding memberName=%s\n",mn->memberName()); memberNameDict.insert(name,mn); memberNameList.inSort(mn); // add the member to the class } cd->insertMember(md); - addTodoItem(root,"member",cd->name()+"::"+md->name()); - addTestItem(root,"member",cd->name()+"::"+md->name()); + md->setRefItems(root->todoId,root->testId); //TODO: insert FileDef instead of filename strings. cd->insertUsedFile(root->fileName); @@ -1123,6 +1165,9 @@ static MemberDef *addVariableToFile( root->protection ); + bool ambig; + FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig); + // see if the function is inside a namespace NamespaceDef *nd = 0; if (!scope.isEmpty()) @@ -1181,16 +1226,7 @@ static MemberDef *addVariableToFile( // variable already in the scope { addMemberDocs(root,md,def,0,FALSE); - if (nscope.isEmpty()) - { - addTodoItem(root,"member",md->name()); - addTestItem(root,"member",md->name()); - } - else - { - addTodoItem(root,"member",nscope+"::"+md->name()); - addTestItem(root,"member",nscope+"::"+md->name()); - } + md->setRefItems(root->todoId,root->testId); return md; } md=mn->next(); @@ -1214,8 +1250,6 @@ static MemberDef *addVariableToFile( md->setInitializer(root->initializer); md->setMaxInitLines(root->initLines); md->setMemberGroupId(root->mGrpId); - bool ambig; - FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig); md->setBodyDef(fd); md->setDefinition(def); //if (root->mGrpId!=-1) @@ -1223,12 +1257,11 @@ static MemberDef *addVariableToFile( // md->setMemberGroup(memberGroupDict[root->mGrpId]); //} + md->setRefItems(root->todoId,root->testId); if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@') { nd->insertMember(md); md->setNamespace(nd); - addTodoItem(root,"member",nd->name()+"::"+md->name()); - addTestItem(root,"member",nd->name()+"::"+md->name()); } else { @@ -1237,20 +1270,18 @@ static MemberDef *addVariableToFile( { fd->insertMember(md); md->setFileDef(fd); - addTodoItem(root,"member",md->name()); - addTestItem(root,"member",md->name()); } } // add member definition to the list of globals if (mn) { - mn->inSort(md); + mn->append(md); } else { mn = new MemberName(name); - mn->inSort(md); + mn->append(md); functionNameDict.insert(name,mn); functionNameList.inSort(mn); } @@ -1617,12 +1648,12 @@ static void buildMemberList(Entry *root) MemberName *mn; if ((mn=memberNameDict[name])) { - mn->inSort(md); + mn->append(md); } else { mn = new MemberName(name); - mn->inSort(md); + mn->append(md); //printf("Adding memberName=%s\n",mn->memberName()); memberNameDict.insert(name,mn); memberNameList.inSort(mn); @@ -1632,8 +1663,6 @@ static void buildMemberList(Entry *root) cd->insertMember(md); // add file to list of used files cd->insertUsedFile(root->fileName); - addTodoItem(root,"member",cd->name()+"::"+md->name()); - addTestItem(root,"member",cd->name()+"::"+md->name()); addMemberToGroups(root,md); } @@ -1790,8 +1819,7 @@ static void buildMemberList(Entry *root) { nd->insertMember(md); md->setNamespace(nd); - addTodoItem(root,"member",nd->name()+"::"+md->name()); - addTestItem(root,"member",nd->name()+"::"+md->name()); + md->setRefItems(root->todoId,root->testId); } else { @@ -1806,8 +1834,7 @@ static void buildMemberList(Entry *root) // add member to the file fd->insertMember(md); md->setFileDef(fd); - addTodoItem(root,"member",md->name()); - addTestItem(root,"member",md->name()); + md->setRefItems(root->todoId,root->testId); } } @@ -1815,12 +1842,12 @@ static void buildMemberList(Entry *root) MemberName *mn; if ((mn=functionNameDict[name])) { - mn->inSort(md); + mn->append(md); } else { mn = new MemberName(name); - mn->inSort(md); + mn->append(md); functionNameDict.insert(name,mn); functionNameList.inSort(mn); } @@ -2274,6 +2301,84 @@ static void computeMemberReferences() } } +//---------------------------------------------------------------------- + +static void addTodoTestReferences() +{ + ClassDef *cd=classList.first(); + while (cd) + { + addRefItem(cd->todoId(),cd->testId(),"class",cd->getOutputFileBase(),cd->name()); + cd=classList.next(); + } + FileName *fn=inputNameList.first(); + while (fn) + { + FileDef *fd=fn->first(); + while (fd) + { + addRefItem(fd->todoId(),fd->testId(),"file",fd->getOutputFileBase(),fd->name()); + fd=fn->next(); + } + fn=inputNameList.next(); + } + NamespaceDef *nd=namespaceList.first(); + while (nd) + { + addRefItem(nd->todoId(),nd->testId(),"namespace",nd->getOutputFileBase(),nd->name()); + nd=namespaceList.next(); + } + GroupDef *gd=groupList.first(); + while (gd) + { + addRefItem(gd->todoId(),gd->testId(),"group",gd->getOutputFileBase(),gd->name()); + gd=groupList.next(); + } + PageInfo *pi=pageList.first(); + while (pi) + { + addRefItem(pi->todoId,pi->testId,"page",pi->name,pi->title); + pi=pageList.next(); + } + MemberNameListIterator mnli(memberNameList); + MemberName *mn=0; + for (mnli.toFirst();(mn=mnli.current());++mnli) + { + MemberNameIterator mni(*mn); + MemberDef *md=0; + for (mni.toFirst();(md=mni.current());++mni) + { + Definition *d=md->getClassDef(); + QCString scopeName; + if (d) scopeName=d->name(); + if (d==0) d=md->getFileDef(); + if (d==0) d=md->getGroupDef(); + if (d) + { + addRefItem(md->todoId(),md->testId(),"member",d->getOutputFileBase()+":"+md->anchor(),scopeName+"::"+md->name(),md->argsString()); + } + } + } + MemberNameListIterator fnli(functionNameList); + for (fnli.toFirst();(mn=fnli.current());++fnli) + { + MemberNameIterator mni(*mn); + MemberDef *md=0; + for (mni.toFirst();(md=mni.current());++mni) + { + Definition *d=md->getNamespaceDef(); + QCString scopeName; + if (d) scopeName=d->name(); + if (d==0) d=md->getBodyDef(); + if (d==0) d=md->getGroupDef(); + if (d) + { + addRefItem(md->todoId(),md->testId(),"member",d->getOutputFileBase()+":"+md->anchor(),scopeName+"::"+md->name(),md->argsString()); + } + } + } +} + //---------------------------------------------------------------------- @@ -2327,8 +2432,6 @@ static void addMemberDocs(Entry *root, doc+=root->doc; } md->setDocumentation(doc); - addTodoItem(root,"member",fullName); - addTestItem(root,"member",fullName); } else { @@ -2367,17 +2470,20 @@ static void addMemberDocs(Entry *root, //{ // md->setBody(root->body); //} - if ((md->getStartBodyLine()==-1 && root->bodyLine!=-1) || - (md->isVariable() && !root->explicitExternal)) + bool ambig; + FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig); + if (fd) { - md->setBodySegment(root->bodyLine,root->endBodyLine); - bool ambig; - FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig); - md->setBodyDef(fd); - } - addTodoItem(root,"member",fullName); - addTestItem(root,"member",fullName); + if ((md->getStartBodyLine()==-1 && root->bodyLine!=-1) || + (md->isVariable() && !root->explicitExternal)) + { + md->setBodySegment(root->bodyLine,root->endBodyLine); + md->setBodyDef(fd); + } + + md->setRefItems(root->todoId,root->testId); + } } //md->setDefFile(root->fileName); @@ -3250,11 +3356,10 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl md->setBodyDef(fd); md->setMemberSpecifiers(root->memSpec); md->setMemberGroupId(root->mGrpId); - mn->inSort(md); + mn->append(md); cd->insertMember(md); cd->insertUsedFile(root->fileName); - addTodoItem(root,"member",cd->name()+"::"+md->name()); - addTestItem(root,"member",cd->name()+"::"+md->name()); + md->setRefItems(root->todoId,root->testId); } } else // unrelated function with the same name as a member @@ -3368,11 +3473,10 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl md->setBriefDescription(root->brief); md->addSectionsToDefinition(root->anchors); md->setMemberGroupId(root->mGrpId); - mn->inSort(md); + mn->append(md); cd->insertMember(md); cd->insertUsedFile(root->fileName); - addTodoItem(root,"member",cd->name()+"::"+md->name()); - addTestItem(root,"member",cd->name()+"::"+md->name()); + md->setRefItems(root->todoId,root->testId); if (newMemberName) { //printf("Adding memberName=%s\n",mn->memberName()); @@ -3596,6 +3700,7 @@ static void findEnums(Entry *root) //{ // md->setMemberGroup(memberGroupDict[root->mGrpId]); //} + md->setRefItems(root->todoId,root->testId); if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@') { if (Config::hideScopeNames) @@ -3608,15 +3713,11 @@ static void findEnums(Entry *root) } nd->insertMember(md); md->setNamespace(nd); - addTodoItem(root,"member",nd->name()+"::"+md->name()); - addTestItem(root,"member",nd->name()+"::"+md->name()); } else if (isGlobal) { md->setDefinition(name); fd->insertMember(md); - addTodoItem(root,"member",md->name()); - addTestItem(root,"member",md->name()); } else if (cd) { @@ -3630,8 +3731,6 @@ static void findEnums(Entry *root) } cd->insertMember(md); cd->insertUsedFile(root->fileName); - addTodoItem(root,"member",cd->name()+"::"+md->name()); - addTestItem(root,"member",cd->name()+"::"+md->name()); } md->setDocumentation(root->doc); md->setBriefDescription(root->brief); @@ -3640,12 +3739,12 @@ static void findEnums(Entry *root) if ((mn=(*mnd)[name])) { // this is used if the same enum is in multiple namespaces/classes - mn->inSort(md); + mn->append(md); } else // new enum name { mn = new MemberName(name); - mn->inSort(md); + mn->append(md); mnd->insert(name,mn); mnl->inSort(mn); //printf("add %s to new memberName. Now %d members\n", @@ -3926,31 +4025,6 @@ static void computeClassImplUsageRelations() } //---------------------------------------------------------------------------- -//static void computeMemberGroups() -//{ -// ClassDef *cd; -// ClassListIterator cli(classList); -// for (;(cd=cli.current());++cli) -// { -// cd->computeMemberGroups(); -// } -//} - - -//---------------------------------------------------------------------------- -#if 0 -void computeClassIntfUsageRelations() -{ - ClassDef *cd; - ClassListIterator cli(classList); - for (;(cd=cli.current());++cli) - { - cd->determineIntfUsageRelation(); - } -} -#endif - -//---------------------------------------------------------------------------- // builds the list of all members for each class @@ -4357,8 +4431,6 @@ static void findDefineDocumentation(Entry *root) } //---------------------------------------------------------------------------- - -//---------------------------------------------------------------------------- // create a (sorted) list of separate documentation pages static void buildPageList(Entry *root) @@ -4367,59 +4439,16 @@ static void buildPageList(Entry *root) { if (!root->name.isEmpty()) { - PageInfo *pi=0; - if ((pi=pageDict[root->name])) - { - //warn("Warning: Page %s was already documented. Ignoring documentation " - // "at line %d of %s\n",root->name.data(),root->startLine, - // root->fileName.data()); - - // append documentation block to the page. - pi->doc+="\n\n"+root->doc; - } - else - { - QCString baseName=root->name.copy(); - if (baseName.right(4)==".tex") - baseName=baseName.left(baseName.length()-4); - else if (baseName.right(5)==".html") - baseName=baseName.left(baseName.length()-5); - - QCString title=root->args.stripWhiteSpace(); - pi=new PageInfo(root->fileName,root->startLine, - baseName, root->doc,title); - QCString pageName; - if (Config::caseSensitiveNames) - pageName=pi->name.copy(); - else - pageName=pi->name.lower(); - setFileNameForSections(root->anchors,pageName); - addTodoItem(root,"page",pageName,title); - addTestItem(root,"page",pageName,title); - - pageList.append(pi); - pageDict.insert(baseName,pi); - if (!pi->title.isEmpty()) - { - //outputList->writeTitle(pi->name,pi->title); - - // a page name is a label as well! - SectionInfo *si=new SectionInfo( - pi->name,pi->title,SectionInfo::Section); - si->fileName=pageName; - //printf(" SectionInfo: sec=%p sec->fileName=%s\n",si,si->fileName.data()); - //printf("Adding section info %s\n",pi->name.data()); - sectionDict.insert(pageName,si); - } - } + addRelatedPage(root->name,root->args,root->doc,root->anchors, + root->fileName,root->startLine,root->todoId,root->testId + ); } } else if (root->section == Entry::MAINPAGEDOC_SEC) { QCString title=root->args.stripWhiteSpace(); if (title.isEmpty()) title=theTranslator->trMainPage(); - addTodoItem(root,"page","index",title); - addTestItem(root,"page","index",title); + addRefItem(root->todoId,root->testId,"page","index",title); } EntryListIterator eli(*root->sublist); Entry *e; @@ -4629,34 +4658,6 @@ static void generateGroupDocs() } //---------------------------------------------------------------------------- -// create member group documentation based on the documentation of the -// group's members. - -//void computeMemberGroupDocumentation() -//{ -// MemberGroupDictIterator mgdi(memberGroupDict); -// MemberGroup *mg; -// for (;(mg=mgdi.current());++mgdi) -// { -// mg->addDocumentation(); -// } -//} - -//---------------------------------------------------------------------------- -// generate member group pages - -//void generateMemberGroupDocs() -//{ -// MemberGroupDictIterator mgdi(memberGroupDict); -// MemberGroup *mg; -// for (;(mg=mgdi.current());++mgdi) -// { -// mg->writeDocumentation(*outputList); -// } -//} - - -//---------------------------------------------------------------------------- // generate module pages static void generateNamespaceDocs() @@ -5404,7 +5405,7 @@ int main(int argc,char **argv) { QCString configFile=fileToString(argv[optind+4]); if (configFile.isEmpty()) exit(1); - parseConfig(fileToString(argv[optind+4])); + parseConfig(fileToString(argv[optind+4]),argv[optind+4]); configStrToVal(); substituteEnvironmentVars(); checkConfig(); @@ -5442,7 +5443,7 @@ int main(int argc,char **argv) { QCString configFile=fileToString(argv[optind+3]); if (configFile.isEmpty()) exit(1); - parseConfig(fileToString(argv[optind+3])); + parseConfig(fileToString(argv[optind+3]),argv[optind+3]); configStrToVal(); substituteEnvironmentVars(); checkConfig(); @@ -5542,7 +5543,7 @@ int main(int argc,char **argv) } } - parseConfig(config); + parseConfig(config,configName); configStrToVal(); if (updateConfig) @@ -5838,6 +5839,9 @@ int main(int argc,char **argv) msg("Adding source references...\n"); addSourceReferences(); + + msg("Adding todo/test references...\n"); + addTodoTestReferences(); /************************************************************************** * Generate documentation * @@ -5917,7 +5921,6 @@ int main(int argc,char **argv) generateSearchIndex(); msg("Generating style sheet...\n"); - //outputList->enable(OutputGenerator::Latex); outputList->writeStyleInfo(0); // write first part outputList->disableAllBut(OutputGenerator::Latex); parseText(*outputList, |