55 const char *,
const char *,
69 virtual void addWord(
const char *,
bool) {}
79 const char *lref,
const char *dn)
148 for (;(mg=mgli.current());++mgli)
162 for (;(mg=mgli.current());++mgli)
170 for (mli.toFirst();(ml=mli.current());++mli)
191 tagFile <<
" <compound kind=\"file\">" <<
endl;
199 for (;(ii=ili.current());++ili)
206 bool isIDLorJava = FALSE;
209 const char *locStr = (ii->
local || isIDLorJava) ?
"yes" :
"no";
210 const char *impStr = (ii->
imported || isIDLorJava) ?
"yes" :
"no";
211 tagFile <<
" <includes id=\""
214 <<
"local=\"" << locStr <<
"\" "
215 <<
"imported=\"" << impStr <<
"\">"
223 QListIterator<LayoutDocEntry> eli(
226 for (eli.toFirst();(lde=eli.current());++eli)
236 for (ci.toFirst();(cd=ci.current());++ci)
253 for (ni.toFirst();(nd=ni.current());++ni)
257 tagFile <<
" <namespace>" <<
convertToXML(nd->
name()) <<
"</namespace>" << endl;
279 for (;(mg=mgli.current());++mgli)
292 tagFile <<
" </compound>" <<
endl;
349 int fileMarkerPos = refText.find(
"@0");
350 if (fileMarkerPos!=-1)
352 ol.
parseText(refText.left(fileMarkerPos));
356 refText.length()-fileMarkerPos-2));
373 if (rootNode && !rootNode->
isEmpty())
406 for (;(ii=ili.current());++ili)
411 bool isIDLorJava = FALSE;
430 if (ii->
local || isIDLorJava)
454 if (ii->
local || isIDLorJava)
476 warn_uncond(
"Include graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",
name().data());
500 warn_uncond(
"Included by graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",
name().data());
533 bool const isConstantGroup)
594 for (;(mg=mgli.current());++mgli)
597 && mg->
header()!=
"[NOHEADER]")
621 QListIterator<LayoutDocEntry> eli(
626 for (eli.toFirst();(lde=eli.current());++eli)
673 QCString versionTitle;
684 if (!generateTreeView)
704 if (!generateTreeView)
735 QListIterator<LayoutDocEntry> eli(
738 for (eli.toFirst();(lde=eli.current());++eli)
836 err(
"Internal inconsistency: member %d should not be part of "
837 "LayoutDocManager::File entry list\n",lde->
kind());
863 for (mli.toFirst();(ml=mli.current());++mli)
886 for (mli.toFirst();(md=mli.current());++mli)
921 static bool filterSourceFiles =
Config_getBool(FILTER_SOURCE_FILES);
942 if (!generateTreeView)
976 static bool clangAssistedParsing =
Config_getBool(CLANG_ASSISTED_PARSING);
977 if (clangAssistedParsing &&
998 bool needs2PassParsing =
1000 !filterSourceFiles &&
1003 if (needs2PassParsing)
1035 static bool filterSourceFiles =
Config_getBool(FILTER_SOURCE_FILES);
1038 (void)filesInSameTu;
1040 static bool clangAssistedParsing =
Config_getBool(CLANG_ASSISTED_PARSING);
1041 if (clangAssistedParsing &&
1081 for (mli.toFirst();(ml=mli.current());++mli)
1094 for (;(mg=mgli.current());++mgli)
1112 if (allMemberList && allMemberList->
findRef(md)!=-1)
1117 if (allMemberList==0)
1122 allMemberList->
append(md);
1150 err(
"FileDef::insertMembers(): "
1151 "member `%s' with class scope `%s' inserted in file scope `%s'!\n",
1181 if (!nd->
name().isEmpty() &&
1276 bool imported,
bool indirect)
1279 QCString iName = fd ? fd->
absFilePath().data() : incName;
1286 m_includeList->setAutoDelete(TRUE);
1310 for (iii.toFirst();(ii=iii.current());++iii)
1323 for (iii.toLast();(ii=iii.current());--iii)
1333 for (nli.toLast();(nd=nli.current());--nli)
1351 for (udi.toLast();(d=udi.current());--udi)
1373 bool local,
bool imported)
1376 QCString iName = fd ? fd->
absFilePath().data() : incName;
1383 m_includedByList->setAutoDelete(TRUE);
1398 if (name.isEmpty())
return FALSE;
1406 QCString extension =
name().right(4);
1411 extension!=
".doc" && extension!=
".txt" && extension!=
".dox" &&
1412 extension!=
".md" &&
name().right(9)!=
".markdown";
1432 for (;(mg=mgli.current());++mgli)
1439 for (mli.toFirst();(ml=mli.current());++mli)
1454 while ((si1=path.find(
'/',pos1))!=-1)
1456 int si2=dir.find(
'/',pos2);
1459 if (si2==-1 && path.mid(pos1,si1-pos2)==dir.mid(pos2))
1461 return dir.length();
1463 if (si1!=si2 || path.mid(pos1,si1-pos2)!=dir.mid(pos2,si2-pos2))
1465 return QMAX(pos1-1,0);
1475 QListIterator<DirEntry> dli(root->
children());
1477 for (dli.toFirst();(de=dli.current());++dli)
1482 QCString dirName=dir->
name();
1487 if ((uint)sp==dirName.length())
1490 return findDirNode(dir,name.mid(dirName.length()+1));
1494 QCString baseName =dirName.left(sp);
1495 QCString oldBranchName=dirName.mid(sp+1);
1496 QCString newBranchName=name.mid(sp+1);
1498 int newIndex=newBranchName.findRev(
'/');
1499 if (newIndex>0) newBranchName=newBranchName.left(newIndex);
1510 dir->
rename(oldBranchName);
1515 root->
children().setAutoDelete(FALSE);
1517 root->
children().setAutoDelete(TRUE);
1521 root->
children().getLast()->setLast(FALSE);
1529 int si=name.findRev(
'/');
1536 QCString baseName = name.left(si);
1541 root->
children().getLast()->setLast(FALSE);
1553 if (!dirNode->
children().isEmpty())
1555 dirNode->
children().getLast()->setLast(FALSE);
1562 static void generateIndent(QTextStream &t,
DirEntry *de,
int level)
1566 generateIndent(t,de->
parent(),level+1);
1575 t <<
"<img " << FTV_IMGATTRIBS(plastnode) <<
"/>";
1579 t <<
"<img " << FTV_IMGATTRIBS(lastnode) <<
"/>";
1586 t <<
"<img " << FTV_IMGATTRIBS(pnode) <<
"/>";
1590 t <<
"<img " << FTV_IMGATTRIBS(node) <<
"/>";
1598 t <<
"<img " << FTV_IMGATTRIBS(blank) <<
"/>";
1602 t <<
"<img " << FTV_IMGATTRIBS(vertline) <<
"/>";
1610 indent.fill(
' ',level*2);
1611 QListIterator<DirEntry> dli(root->
children());
1613 for (dli.toFirst();(de=dli.current());++dli)
1615 t << indent <<
"<p>";
1616 generateIndent(t,de,0);
1621 t <<
"<img " << FTV_IMGATTRIBS(folderclosed) <<
"/>";
1624 t << indent <<
"<div>\n";
1626 t << indent <<
"</div>\n";
1631 t <<
"<img " << FTV_IMGATTRIBS(
doc) <<
"/>";
1632 t << de->file()->name();
1659 QListIterator<DirEntry> dli(root->
children());
1661 for (dli.toFirst();(de=dli.current());++dli)
1676 for (fnli.toFirst();(fn=fnli.current());++fnli)
1680 for (;(fd=fni.current());++fni)
1702 for (nli.toFirst();(nd=nli.current());++nli)
1706 for (nli.toFirst();(nd=nli.current());++nli)
1713 for (unli.toFirst();(und=unli.current());++unli)
1724 for (cli.toFirst();(ucd=cli.current());++cli)
1736 return name().right(4)==
".doc" ||
1737 name().right(4)==
".txt" ||
1738 name().right(4)==
".dox" ||
1739 name().right(3)==
".md" ||
1740 name().right(9)==
".markdown";
1746 if (!vercmd.isEmpty() && !
m_filePath.isEmpty() &&
1755 err(
"could not execute %s\n",vercmd.data());
1758 const int bufSize=1024;
1760 int numRead = (int)fread(buf,1,bufSize-1,f);
1762 if (numRead>0 && numRead<bufSize)
1772 msg(
"no version available\n");
1805 for (mli.toFirst();(ml=mli.current());++mli)
1844 for (;(ml=mli.current());++mli)
1854 for (;(ml=mli.current());++mli)
1895 QDict<void> *filesVisited,
const FileDef *fd,QStrList &incFiles)
1901 for (iii.toFirst();(ii=iii.current());++iii)
1903 if (ii->fileDef && !ii->fileDef->isReference() &&
1904 !filesVisited->find(ii->fileDef->absFilePath()))
1907 incFiles.append(ii->fileDef->absFilePath());
1908 filesVisited->insert(ii->fileDef->absFilePath(),(
void*)0x8);
1917 QDict<void> includes(257);