18#include <unordered_set>
58 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
88 if (lang==SrcLangExt::IDL)
return "\";";
89 else if (lang==SrcLangExt::Java)
return ";";
107 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
108 result.
sprintf(
"local=\"%s\" import=\"%s\" module=\"%s\" objc=\"%s\"",
223 bool isConstantGroup);
270 return std::make_unique<FileDefImpl>(p,n,ref,dn);
341 mg->distributeMemberGroupDocumentation();
352 mg->findSectionsInDocumentation(
this);
357 if (ml->listType().isDeclaration())
359 ml->findSectionsInDocumentation(
this);
378 tagFile <<
" <compound kind=\"file\">\n";
381 tagFile <<
" <filename>" << fn <<
"</filename>\n";
388 tagFile <<
" <includes id=\""
400 case LayoutDocEntry::FileClasses:
405 case LayoutDocEntry::FileInterfaces:
410 case LayoutDocEntry::FileStructs:
415 case LayoutDocEntry::FileExceptions:
420 case LayoutDocEntry::FileConcepts:
424 if (nd->isLinkableInProject())
426 tagFile <<
" <concept>" <<
convertToXML(nd->name()) <<
"</concept>\n";
431 case LayoutDocEntry::FileNamespaces:
435 if (nd->isLinkableInProject())
437 tagFile <<
" <namespace>" <<
convertToXML(nd->name()) <<
"</namespace>\n";
442 case LayoutDocEntry::MemberDecl:
455 case LayoutDocEntry::MemberGroups:
459 mg->writeTagFile(tagFile);
469 tagFile <<
" </compound>\n";
518 .setIndexWords(
true));
525 int fileMarkerPos = refText.
find(
"@0");
526 if (fileMarkerPos!=-1)
531 refText.
length()-fileMarkerPos-2));
535 err(
"translation error: invalid marker in trDefinedInSourceFile()\n");
556 .setSingleLine(
true))
565 ol.
writeDoc(ast.get(),
this,
nullptr);
589 for (
const auto &cd : list)
591 if (cd->isLinkableInProject())
593 tagFile <<
" <class kind=\"" << cd->compoundTypeString() <<
612 ol.
docify(ii.includeName);
635 ol.
docify(ii.includeName);
656 warn_uncond(
"Include graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
681 warn_uncond(
"Included by graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
715 bool const isConstantGroup)
781 mg->writeDeclarations(ol,
nullptr,
nullptr,
this,
nullptr,
nullptr);
807 if (lde->kind()==LayoutDocEntry::FileClasses &&
m_classes.declVisible() && ls)
813 else if (lde->kind()==LayoutDocEntry::FileInterfaces &&
m_interfaces.declVisible() && ls)
819 else if (lde->kind()==LayoutDocEntry::FileStructs &&
m_structs.declVisible() && ls)
825 else if (lde->kind()==LayoutDocEntry::FileExceptions &&
m_exceptions.declVisible() && ls)
831 else if (lde->kind()==LayoutDocEntry::FileNamespaces &&
m_namespaces.declVisible(
false) && ls)
837 else if (lde->kind()==LayoutDocEntry::FileConcepts &&
m_concepts.declVisible() && ls)
843 else if (lde->kind()==LayoutDocEntry::MemberDecl)
904 if (!generateTreeView)
941 if (!generateTreeView)
970 case LayoutDocEntry::BriefDesc:
973 case LayoutDocEntry::MemberDeclStart:
976 case LayoutDocEntry::FileIncludes:
979 case LayoutDocEntry::FileIncludeGraph:
982 case LayoutDocEntry::FileIncludedByGraph:
985 case LayoutDocEntry::FileSourceLink:
988 case LayoutDocEntry::FileClasses:
991 case LayoutDocEntry::FileInterfaces:
994 case LayoutDocEntry::FileStructs:
997 case LayoutDocEntry::FileExceptions:
1000 case LayoutDocEntry::FileConcepts:
1003 case LayoutDocEntry::FileNamespaces:
1006 case LayoutDocEntry::FileConstantGroups:
1009 case LayoutDocEntry::MemberGroups:
1012 case LayoutDocEntry::MemberDecl:
1018 case LayoutDocEntry::MemberDeclEnd:
1021 case LayoutDocEntry::DetailedDesc:
1024 case LayoutDocEntry::MemberDefStart:
1027 case LayoutDocEntry::FileInlineClasses:
1030 case LayoutDocEntry::MemberDef:
1036 case LayoutDocEntry::MemberDefEnd:
1039 case LayoutDocEntry::AuthorSection:
1042 case LayoutDocEntry::ClassIncludes:
1043 case LayoutDocEntry::ClassInheritanceGraph:
1044 case LayoutDocEntry::ClassNestedClasses:
1045 case LayoutDocEntry::ClassCollaborationGraph:
1046 case LayoutDocEntry::ClassAllMembersLink:
1047 case LayoutDocEntry::ClassUsedFiles:
1048 case LayoutDocEntry::ClassInlineClasses:
1049 case LayoutDocEntry::NamespaceNestedNamespaces:
1050 case LayoutDocEntry::NamespaceNestedConstantGroups:
1051 case LayoutDocEntry::NamespaceClasses:
1052 case LayoutDocEntry::NamespaceConcepts:
1053 case LayoutDocEntry::NamespaceInterfaces:
1054 case LayoutDocEntry::NamespaceStructs:
1055 case LayoutDocEntry::NamespaceExceptions:
1056 case LayoutDocEntry::NamespaceInlineClasses:
1057 case LayoutDocEntry::ConceptDefinition:
1058 case LayoutDocEntry::GroupClasses:
1059 case LayoutDocEntry::GroupConcepts:
1060 case LayoutDocEntry::GroupModules:
1061 case LayoutDocEntry::GroupInlineClasses:
1062 case LayoutDocEntry::GroupNamespaces:
1063 case LayoutDocEntry::GroupDirs:
1064 case LayoutDocEntry::GroupNestedGroups:
1065 case LayoutDocEntry::GroupFiles:
1066 case LayoutDocEntry::GroupGraph:
1067 case LayoutDocEntry::GroupPageDocs:
1068 case LayoutDocEntry::ModuleExports:
1069 case LayoutDocEntry::ModuleClasses:
1070 case LayoutDocEntry::ModuleConcepts:
1071 case LayoutDocEntry::ModuleUsedFiles:
1072 case LayoutDocEntry::DirSubDirs:
1073 case LayoutDocEntry::DirFiles:
1074 case LayoutDocEntry::DirGraph:
1075 err(
"Internal inconsistency: member '{}' should not be part of "
1076 "LayoutDocManager::File entry list\n",lde->entryToString());
1102 if (ml->listType().isDocumentation())
1104 ml->writeDocumentationPage(ol,
name(),
this);
1121 for (
const auto &md : *allMemberList)
1123 if (md->getFileDef()==
this && md->getNamespaceDef()==
nullptr && md->isLinkable() && !md->isEnumValue())
1125 if (md->isLinkableInProject())
1127 QCString fn=md->getOutputFileBase();
1174 if (!generateTreeView)
1219 clangParser->switchToFile(
this);
1220 clangParser->writeSources(codeOL,
this);
1221 codeOL.endCodeFragment(
"DoxyCode");
1227 intf->resetCodeParserState();
1230 bool needs2PassParsing =
1232 !filterSourceFiles &&
1235 if (needs2PassParsing)
1238 intf->parseCode(devNullList,
QCString(),
1260 codeOL.endCodeFragment(
"DoxyCode");
1280 clangParser->switchToFile(
this);
1281 clangParser->writeSources(devNullList,
this);
1287 intf->resetCodeParserState();
1302 if (ml->listType().isDeclaration())
1314 mg->addToDeclarationSection();
1326 if (allMemberList && allMemberList->
contains(md))
1332 if (allMemberList==
nullptr)
1379 err(
"FileDefImpl::insertMembers(): "
1380 "member '{}' with class scope '{}' inserted in file scope '{}'!\n",
1438 err(
"FileDefImpl::removeMember(): unexpected member remove in file!\n");
1505 return it!=
m_srcDefMap.end() ? it->second :
nullptr;
1546 if (visitedFiles.find(
this)!=visitedFiles.end())
return;
1547 visitedFiles.
insert(
this);
1567 if (ii.fileDef && ii.fileDef!=
this)
1570 auto unl = ii.fileDef->getUsedNamespaces();
1571 for (
auto it = unl.rbegin(); it!=unl.rend(); ++it)
1578 auto udl = ii.fileDef->getUsedDefinitions();
1579 for (
auto it = udl.rbegin(); it!=udl.rend(); ++it)
1635 mg->addListReferences(
this);
1639 if (ml->listType().isDocumentation())
1641 ml->addListReferences(
this);
1652 for (
auto &nd : usingDirList)
1661 for (
auto &nd : usingDirList)
1664 for (
const auto &und : nd->getUsedNamespaces())
1669 for (
const auto &ud : nd->getUsedDefinitions())
1678 static const std::unordered_set<std::string> docExtensions =
1679 {
"doc",
"txt",
"dox",
"md",
"markdown" };
1682 return (lastDot!=-1 && docExtensions.find(
name().mid(lastDot+1).str())!=docExtensions.end()) ||
1698 err(
"could not execute {}\n",vercmd);
1701 const int bufSize=1024;
1703 int numRead =
static_cast<int>(fread(buf,1,bufSize-1,f));
1705 if (numRead>0 && numRead<bufSize)
1715 msg(
"no version available\n");
1748 ml->setNeedsSorting(
1749 (ml->listType().isDeclaration() && sortBriefDocs) ||
1750 (ml->listType().isDocumentation() && sortMemberDocs));
1752 if (ml->listType().isDeclaration())
1766 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
FALSE); }
1776 [](
const auto &fi1,
const auto &fi2) { return fi1.includeName < fi2.includeName; });
1812 if (ml->listType()==lt)
1855 if (ii.fileDef && !ii.fileDef->isReference() &&
1856 filesVisited.find(ii.fileDef->absFilePath().str())==filesVisited.end())
1859 incFiles.push_back(ii.fileDef->absFilePath().str());
1860 filesVisited.insert(ii.fileDef->absFilePath().str());
1903 ml->countDecMembers();
1904 ml->countDocMembers();
1908 mg->countDecMembers();
1909 mg->countDocMembers();
1956 if (d==
nullptr)
return nullptr;
1959 return static_cast<FileDef*
>(d);
1969 if (d==
nullptr)
return nullptr;
1972 return static_cast<const FileDef*
>(d);
Clang parser object for a single translation unit, which consists of a source file and the directly o...
A abstract class representing of a compound symbol.
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e.
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const QCString &header, bool localNames) const
static void print(DebugMask mask, int prio, fmt::format_string< Args... > fmt, Args &&... args)
The common base class of all entity definitions found in the sources.
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual bool isLinkable() const =0
virtual bool isHidden() const =0
virtual QCString getReference() const =0
virtual QCString qualifiedName() const =0
virtual QCString getOutputFileBase() const =0
virtual bool isReference() const =0
virtual const QCString & name() const =0
bool isReference() const override
const QCString & name() const override
bool isLinkableViaGroup() const override
bool hasBriefDescription() const override
QCString docFile() const override
QCString getDefFileExtension() const override
QCString briefFile() const override
void setLanguage(SrcLangExt lang) override
void setReference(const QCString &r) override
const RefItemVector & xrefListItems() const override
QCString briefDescription(bool abbreviate=FALSE) const override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
const QCString & localName() const override
const FileDef * getBodyDef() const override
int getStartBodyLine() const override
QCString inbodyDocumentation() const override
int docLine() const override
int briefLine() const override
QCString documentation() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
virtual void writeNavigationPath(OutputList &ol) const =0
Class implementing OutputCodeIntf by throwing away everything.
A model of a directory symbol.
Representation of an include dependency graph.
static bool suppressDocWarnings
static bool parseSourcesNeeded
static bool clangAssistedParsing
static ParserManager * parserManager
A model of a file symbol.
virtual QCString includeName() const =0
virtual bool generateSourceFile() const =0
virtual QCString absFilePath() const =0
virtual const IncludeInfoList & includeFileList() const =0
bool isDocumentationFile() const override
void findSectionsInDocumentation() override
void setModuleDef(ModuleDef *mod) override
void addIncludedUsingDirectives(FileDefSet &visitedFiles) override
void writeBriefDescription(OutputList &ol)
const LinkedRefMap< const Definition > & getUsedDefinitions() const override
void setDiskName(const QCString &name) override
void addSourceRef(int line, const Definition *d, const MemberDef *md) override
LinkedRefMap< const Definition > m_usingDeclList
QCString getOutputFileBase() const override
void insertNamespace(NamespaceDef *nd) override
ModuleDef * getModuleDef() const override
void writeQuickMemberLinks(OutputList &ol, const MemberDef *currentMd) const override
void writeSourceLink(OutputList &ol)
void writeSummaryLinks(OutputList &ol) const override
QCString absFilePath() const override
ClassLinkedRefMap m_interfaces
const ConceptLinkedRefMap & getConcepts() const override
QCString m_inclDepFileName
ClassLinkedRefMap m_structs
void sortMemberLists() override
void parseSource(ClangTUParser *clangParser) override
void setDiskNameLocal(const QCString &name)
void addMemberToList(MemberListType lt, MemberDef *md)
void acquireFileVersion()
void addUsingDirective(NamespaceDef *nd) override
void writeNamespaceDeclarations(OutputList &ol, const QCString &title, bool isConstantGroup)
void countMembers() override
void distributeMemberGroupDocumentation() override
MemberDefLineMap m_srcMemberMap
ConceptLinkedRefMap m_concepts
void insertClass(ClassDef *cd) override
DefinitionLineMap m_srcDefMap
QCString getSourceFileBase() const override
NamespaceLinkedRefMap m_namespaces
IncludeInfoList m_includedByList
CodeSymbolType codeSymbolType() const override
void writeClassDeclarations(OutputList &ol, const QCString &title, const ClassLinkedRefMap &list)
QCString anchor() const override
const NamespaceLinkedRefMap & getNamespaces() const override
void removeMember(MemberDef *md) override
void addUsingDeclaration(const Definition *d) override
ClassLinkedRefMap m_exceptions
QCString includeName() const override
void writeTagFile(TextStream &t) override
void endMemberDeclarations(OutputList &ol)
void addListReferences() override
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
const MemberGroupList & getMemberGroups() const override
IncludeInfoMap m_includedByMap
void insertMember(MemberDef *md) override
const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const override
void writeInlineClasses(OutputList &ol)
const QCString & docName() const override
void writeIncludeFiles(OutputList &ol)
MemberGroupList m_memberGroups
void computeAnchors() override
void writeDetailedDescription(OutputList &ol, const QCString &title)
void writeMemberPages(OutputList &ol) override
void writeSourceFooter(OutputList &ol) override
QCString fileVersion() const override
void writeConcepts(OutputList &ol, const QCString &title)
bool generateSourceFile() const override
void writeIncludedByGraph(OutputList &ol)
const QCString & name() const override
const MemberDef * getSourceMember(int lineNr) const override
QCString m_outputDiskName
bool isIncluded(const QCString &name) const override
const IncludeInfoList & includeFileList() const override
void removeMemberFromList(MemberListType lt, MemberDef *md)
void getAllIncludeFilesRecursively(StringVector &incFiles) const override
MemberLists m_memberLists
LinkedRefMap< NamespaceDef > m_usingDirList
QCString getVersion() const override
void writeAuthorSection(OutputList &ol)
void insertConcept(ConceptDef *cd) override
const MemberLists & getMemberLists() const override
void addIncludedByDependency(const FileDef *fd, const QCString &incName, IncludeKind kind) override
IncludeInfoMap m_includeMap
QCString m_inclByDepFileName
DirDef * getDirDef() const override
void overrideIncludeGraph(bool e) override
ClassLinkedRefMap m_classes
void overrideIncludedByGraph(bool e) override
const IncludeInfoList & includedByFileList() const override
bool hasIncludedByGraph() const override
void writePageNavigation(OutputList &ol) const override
QCString displayName(bool=TRUE) const override
bool subGrouping() const override
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
void writeSourceHeader(OutputList &ol) override
FileDefImpl(const QCString &p, const QCString &n, const QCString &ref=QCString(), const QCString &dn=QCString())
void writeSourceBody(OutputList &ol, ClangTUParser *clangParser) override
void writeIncludeGraph(OutputList &ol)
QCString title() const override
void addMembersToMemberGroup() override
int numDocMembers() const override
QCString getPath() const override
bool m_hasIncludedByGraph
IncludeInfoList m_includeList
void startMemberDocumentation(OutputList &ol)
int numDecMembers() const override
void writeClassesToTagFile(TextStream &t, const ClassLinkedRefMap &list)
MemberList * getMemberList(MemberListType lt) const override
void startMemberDeclarations(OutputList &ol)
bool isSource() const override
void combineUsingRelations() override
bool isLinkableInProject() const override
void endMemberDocumentation(OutputList &ol)
QCString includedByDependencyGraphFileName() const override
const ClassLinkedRefMap & getClasses() const override
QCString fileName() const override
bool hasIncludeGraph() const override
void writeDocumentation(OutputList &ol) override
bool isLinkable() const override
void addIncludeDependency(const FileDef *fd, const QCString &incName, IncludeKind kind) override
DefType definitionType() const override
bool hasDetailedDescription() const override
QCString includeDependencyGraphFileName() const override
void setDirDef(DirDef *dd) override
void writeMemberGroups(OutputList &ol)
const Definition * getSourceDefinition(int lineNr) const override
static LayoutDocManager & instance()
Returns a reference to this singleton.
Container class representing a vector of objects with keys.
bool add(const char *k, T *obj)
A model of a class/file/namespace member symbol.
virtual const ClassDef * getClassDef() const =0
virtual MemberType memberType() const =0
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
A list of MemberDef objects as shown in documentation sections.
bool needsSorting() const
int numDocMembers() const
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const QCString &title, const QCString &subtitle, bool showEnumValues=FALSE, bool showInline=FALSE, const ClassDef *inheritedFrom=nullptr, MemberListType lt=MemberListType::PubMethods(), bool showSectionTitle=true) const
Writes the list of members to the output.
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
void setNeedsSorting(bool b)
MemberListType listType() const
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, const QCString &anchor, bool showEnumValues=FALSE, bool showInline=FALSE) const
int numDecMembers(const ClassDef *inheritedFrom) const
Wrapper class for the MemberListType type.
constexpr const char * toLabel() const
void remove(const MemberDef *md)
bool contains(const MemberDef *md) const
void push_back(const T &value)
static ModuleManager & instance()
ModuleDef * getPrimaryInterface(const QCString &moduleName) const
An abstract interface of a namespace symbol.
virtual void combineUsingRelations(NamespaceDefSet &visitedNamespace)=0
Class representing a list of different code generators.
void add(OutputCodeIntfPtr &&p)
void startCodeFragment(const QCString &style)
Class representing a list of output generators that are written to in parallel.
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
bool isEnabled(OutputType o)
void endTextBlock(bool paraBreak=FALSE)
void writeString(const QCString &text)
void disable(OutputType o)
const OutputCodeList & codeGenerators() const
void startGroupHeader(const QCString &id=QCString(), int extraLevels=0)
void enable(OutputType o)
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
void docify(const QCString &s)
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, const DocOptions &options)
void startParagraph(const QCString &classDef=QCString())
void startProjectNumber()
void startTextBlock(bool dense=FALSE)
void endInclDepGraph(DotInclDepGraph &g)
void startMemberSections()
void pushGeneratorState()
void disableAllBut(OutputType o)
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
void writeAnchor(const QCString &fileName, const QCString &name)
void endGroupHeader(int extraLevels=0)
void lineBreak(const QCString &style=QCString())
void parseText(const QCString &textStr)
void startTextLink(const QCString &file, const QCString &anchor)
This is an alternative implementation of QCString.
int find(char c, int index=0, bool cs=TRUE) const
size_t length() const
Returns the length of the string, not counting the 0-terminator.
bool isEmpty() const
Returns TRUE iff the string is empty.
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
const std::string & str() const
QCString right(size_t len) const
QCString & sprintf(const char *format,...)
int findRev(char c, int index=-1, bool cs=TRUE) const
QCString & insert(size_t index, const QCString &s)
QCString left(size_t len) const
Text streaming class that buffers data.
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *, const ModuleDef *)
#define Config_getInt(name)
#define Config_getBool(name)
#define Config_getString(name)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
std::unordered_set< std::string > StringUnorderedSet
std::vector< std::string > StringVector
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, const DocOptions &options)
IDocParserPtr createDocParser()
factory function to create a parser
static void writeTagFile()
std::unordered_map< std::string, const IncludeInfo * > IncludeInfoMap
QCString includeClose(SrcLangExt lang, IncludeKind kind)
std::unordered_map< int, const Definition * > DefinitionLineMap
QCString includeStatement(SrcLangExt lang, IncludeKind kind)
std::unique_ptr< FileDef > createFileDef(const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
bool compareFileDefs(const FileDef *fd1, const FileDef *fd2)
FileDef * toFileDef(Definition *d)
std::unordered_map< int, const MemberDef * > MemberDefLineMap
QCString includeOpen(SrcLangExt lang, IncludeKind kind)
QCString includeTagFileAttributes(SrcLangExt lang, IncludeKind kind)
static void getAllIncludeFilesRecursively(StringUnorderedSet &filesVisited, const FileDef *fd, StringVector &incFiles)
constexpr uint32_t IncludeKind_ObjCMask
constexpr uint32_t IncludeKind_ImportMask
constexpr uint32_t IncludeKind_LocalMask
std::unordered_set< const FileDef * > FileDefSet
void startTitle(OutputList &ol, const QCString &fileName, const DefinitionMutable *def)
void endTitle(OutputList &ol, const QCString &fileName, const QCString &name)
void startFile(OutputList &ol, const QCString &name, bool isSource, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel, const QCString &allMembersFile)
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
Translator * theTranslator
MemberDefMutable * toMemberDefMutable(Definition *d)
#define warn_uncond(fmt,...)
FILE * popen(const QCString &name, const QCString &type)
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
std::unordered_set< const NamespaceDef * > NamespaceDefSet
Portable versions of functions that are platform dependent.
int qstricmp_sort(const char *str1, const char *str2)
const char * qPrint(const char *s)
std::vector< RefItem * > RefItemVector
Web server based search engine.
std::string_view stripWhiteSpace(std::string_view s)
Given a string view s, returns a new, narrower view on that string, skipping over any leading or trai...
Represents of a member declaration list with configurable title and subtitle.
QCString title(SrcLangExt lang) const
Represents of a member definition list with configurable title.
QCString title(SrcLangExt lang) const
QCString title(SrcLangExt lang) const
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
QCString convertToHtml(const QCString &s, bool keepEntities)
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
void addGroupListToTitle(OutputList &ol, const Definition *d)
QCString fileToString(const QCString &name, bool filter, bool isSourceCode)
void createSubDirs(const Dir &d)
static QCString stripFromPath(const QCString &p, const StringVector &l)
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
QCString convertToXML(const QCString &s, bool keepEntities)
EntryType guessSection(const QCString &name)
QCString removeLongPathMarker(QCString path)
QCString getFileFilter(const QCString &name, bool isSourceCode)
QCString getFileNameExtension(const QCString &fn)
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.