Doxygen
Loading...
Searching...
No Matches
util.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2026 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef UTIL_H
17#define UTIL_H
18
19/*! \file
20 * \brief A bunch of utility functions.
21 */
22
23#include <cctype>
24#include <functional>
25#include <variant>
26
27#include "construct.h"
28#include "containers.h"
29#include "types.h"
30
31//--------------------------------------------------------------------
32
33class ArgumentList;
34class ClassDef;
35class ConceptDef;
36class Definition;
37class Dir;
38class ExampleList;
39class FileDef;
40class FileInfo;
41class GroupDef;
42class MemberDef;
43class ModuleDef;
44class NamespaceDef;
45class OutputList;
46
47/*! Returns the scope separator to use given the programming language \a lang */
48DString getLanguageSpecificSeparator(SrcLangExt lang,bool classScope=false);
49
50//----------------------------------------------------------------
51
52/*! reads a file with name \a name and returns it as a string. If \a filter
53 * is true the file will be filtered by any user specified input filter.
54 * If \a name is "-" the string will be read from standard input.
55 */
56DString fileToString(const DString &name,bool filter=false,bool isSourceCode=false);
57
58//! read a file name \a fileName and optionally filter and transcode it
59bool readInputFile(const DString &fileName,std::string &contents,
60 bool filter=true,bool isSourceCode=false);
61
62/*! Thread-safe function to write a string representing an inline graph to a file.
63 * The contents will be used to create a hash that will be used to make the name unique.
64 * @param[in] baseName the base name of the file to write including path.
65 * @param[in] extension the file extension to use.
66 * @param[in] content the data to write to the file
67 * @param[out] exists is set to true if the file was already written before.
68 * @returns the name of the file written or an empty string in case of an error.
69 */
70DString writeInlineGraph(const DString &baseName,const DString &extension,const DString &content,bool &exists);
71
72/*! Deletes all graph files written with writeInlineGraph() */
74
75//----------------------------------------------------------------
76
77/*! Helper to pass the input parameters to getDefs() */
79{
80 GetDefInput(const DString &scName,const DString &memName,const DString &a) :
81 scopeName(scName),memberName(memName),args(a) {}
85 bool forceEmptyScope = false;
86 const FileDef *currentFile = nullptr;
87 bool checkCV = false;
88 bool insideCode = false;
89};
90
91/*! Helper to pass the result parameters from getDefs() */
93{
94 bool found = false;
95 const MemberDef *md=nullptr;
96 const ClassDef *cd=nullptr;
97 const FileDef *fd=nullptr;
98 const NamespaceDef *nd=nullptr;
99 const GroupDef *gd=nullptr;
100 const ConceptDef *cnd=nullptr;
101 const ModuleDef *modd=nullptr;
102};
103
104GetDefResult getDefs(const GetDefInput &input);
105
106/*! looks for a filter for the file \a name. Returns the name of the filter
107 * if there is a match for the file name, otherwise an empty string.
108 * In case \a inSourceCode is true then first the source filter list is
109 * considered.
110 */
111DString getFileFilter(const DString &name,bool isSourceCode);
112
113/*! Returns a symbol definition (compound and/or member) given its name and context.
114 * @post return value true implies *resContext!=0 or *resMember!=0
115 */
116bool resolveRef(/* in */ const DString &scName,
117 /* in */ const DString &name,
118 /* in */ bool inSeeBlock,
119 /* out */ const Definition **resContext,
120 /* out */ const MemberDef **resMember,
121 /* in */ SrcLangExt lang,
122 /* in */ bool lookForSpecializations = true,
123 /* in */ const FileDef *currentFile = nullptr,
124 /* in */ bool checkScope = false
125 );
126
127/*! Returns an symbol definition given its name and context for an explicitly linked symbol.
128 * @post return value true implies *resContext!=0
129 */
130bool resolveLink(/* in */ const DString &scName,
131 /* in */ const DString &lr,
132 /* in */ bool inSeeBlock,
133 /* out */ const Definition **resContext,
134 /* out */ DString &resAnchor,
135 /* in */ SrcLangExt lang,
136 /* in */ const DString &prefix=DString(),
137 /* in */ const FileDef *currentFile=nullptr
138 );
139
140DString resolveTypeDef(const Definition *d,const DString &name,
141 const Definition **typedefContext=nullptr);
142
143/*! Resolve a reference via a tagfile reference \a ref.
144 * If after resolving the reference the result points to a relative path
145 * then \a relPath is prepended to create the correct link.
146 */
147DString externalRef(const DString &relPath,const DString &ref);
148
149//----------------------------------------------------------------
150
151/*! Compares two parameter lists \a srcAl and \a dstAl and returns true if they match. */
152bool matchArguments2(const Definition *srcScope,const FileDef *srcFileScope,const DString &srcReturnType,const ArgumentList *srcAl,
153 const Definition *dstScope,const FileDef *dstFileScope,const DString &dstReturnType,const ArgumentList *dstAl,
154 bool checkCV,SrcLangExt lang
155 );
156
157/*! Merges the information of two parameter lists (typically a declaration and a definition).
158 * Missing information is added to either list.
159 * The name of parameter of srcAl is only overwritten if \a forceNameOverwrite is true.
160 */
161void mergeArguments(ArgumentList &srcAl,ArgumentList &dstAl,bool forceNameOverwrite=false);
162
163/*! Returns true if the template parameter lists \a srcAl and \a dstAl match.
164 * The lists are considered to match if they have the same number of parameters and
165 * each matching parameter in \a srcAl and \a dstAl has the same constraints (or at least one parameter has no constraints).
166 */
167bool matchTemplateArguments(const ArgumentList &srcAl,const ArgumentList &dstAl);
168
169/*! Returns a representation of \a name where all known types have been normalized to their canonical form.
170 * The normalization is done in the context of \a context and using the formal arguments in \a formalArgs.
171 */
173 const DString &name,
174 const Definition *context,
175 const ArgumentList &formalArgs);
176
177/*! Substitutes any occurrence of a formal argument from argument list
178 * \a formalArgs in \a name by the corresponding actual argument in
179 * argument list \a actualArgs. The result after substitution
180 * is returned as a string. The argument \a name is used to
181 * prevent recursive substitution.
182 */
184 const DString &name,
185 const ArgumentList &formalArgs,
186 const ArgumentList *actualArgs);
187
188/*! Returns a documentation string combining the inline documentation for each parameter in the list \a al. */
190
191/*! Returns a documentation string combining the inline documentation for each template parameter in the list \a al. */
193
194/*! Returns a string representation of the parameter list \a al.
195 * If \a useCanonicalType is true then the canonical type is used for each argument.
196 * If \a showDefVals is true then default values are included in the string representation.
197 */
198DString argListToString(const ArgumentList &al,bool useCanonicalType=false,bool showDefVals=true);
199
200/*! Returns a string representation of the template parameter list \a al.
201 * The \a lang parameter is used to determine the correct syntax for the template parameters.
202 * If \a includeDefaults is true then default values are included in the string representation.
203 */
204DString tempArgListToString(const ArgumentList &al,SrcLangExt lang,bool includeDefaults=true);
205
206//----------------------------------------------------------------
207
209{
210 const char *name;
212};
213
214using SelectionBlockList = std::vector<SelectionBlock>;
215
217{
219 const char *beginStr;
220 size_t beginLen;
221 const char *endStr;
222 size_t endLen;
223 const char *closeStr;
224 size_t closeLen;
225};
226
227DString selectBlocks(const DString& s,const SelectionBlockList &blockList, const SelectionMarkerInfo &markerInfo);
228void checkBlocks(const DString& s,const DString fileName, const SelectionMarkerInfo &markerInfo);
229
230//----------------------------------------------------------------
231
232DString findExampleFilePath(const DString &file, bool &ambig);
233void writeExamples(OutputList &ol,const ExampleList &el);
234
235//----------------------------------------------------------------
236
237DString stripScope(const DString &name);
239DString stripFromPath(const DString &path);
241DString stripPath(const DString &s);
242DString stripIndentation(const DString &s,bool skipFirstLine=false);
243DString stripExtensionGeneral(const DString &fName, const DString &ext);
244DString stripExtension(const DString &fName);
246void stripIndentationVerbatim(DString &doc,size_t indentationLevel, bool skipFirstLine=true);
247
249DString detab(const DString &s,size_t &refIndent);
250
251//---------------------------------------------------------------
252
253bool rightScopeMatch(const DString &scope, const DString &name);
254bool leftScopeMatch(const DString &scope, const DString &name);
255
256//---------------------------------------------------------------
257
259{
260 const char *keyword;
261 using GetValue = std::function<DString()>;
262 using GetValueWithParam = std::function<DString(const DString &)>;
263 std::variant<GetValue,GetValueWithParam> getValueVariant;
264};
265
266using KeywordSubstitutionList = std::vector<KeywordSubstitution>;
267
268DString substituteKeywords(const DString &file,const DString &s,const KeywordSubstitutionList &keywords);
269
270//---------------------------------------------------------------
271
272void addDirPrefix(DString &fileName);
273int getPrefixIndex(const DString &name);
274int computeQualifiedIndex(const DString &name);
275
276//---------------------------------------------------------------
277
278DString convertNameToFile(const DString &name,bool allowDots=false,bool allowUnderscore=false);
279DString escapeCharsInString(const DString &name,bool allowDots,bool allowUnderscore=false);
281DString linkToText(SrcLangExt lang,const DString &link,bool ignoreDots);
282
283//---------------------------------------------------------------
284
286
287DString replaceAnonymousScopes(const DString &s,const DString &replacement=DString());
288
289DString insertTemplateSpecifierInScope(const DString &scope,const DString &templ);
290
292 bool parentOnly=true,
293 DString *lastScopeStripped=nullptr,
294 DString scopeName=DString(),
295 bool allowArtificial=true);
296
297DString mergeScopes(const DString &leftScope,const DString &rightScope);
298
299int getScopeFragment(const DString &s,int p,int *l);
300
301//---------------------------------------------------------------
302
303DString convertToId(const DString &s);
304DString convertToHtml(const DString &s,bool keepEntities=true);
305DString convertToXML(const DString &s, bool keepEntities=false, bool citeEntry = false);
306DString convertToJSString(const DString &s,bool keepEntities=false,bool singleQuotes=false);
307
308//---------------------------------------------------------------
309
310bool updateLanguageMapping(const DString &extension,const DString &parser);
311SrcLangExt getLanguageFromFileName(const DString& fileName, SrcLangExt defLang=SrcLangExt::Cpp);
316
317//---------------------------------------------------------------
318
319void writeMarkerList(OutputList &ol,const std::string &markerText,size_t numMarkers,
320 std::function<void(size_t)> replaceFunc);
321DString writeMarkerList(const std::string &markerText,size_t numMarkers,
322 std::function<DString(size_t)> replaceFunc);
323
325
326//---------------------------------------------------------------
327
328void createSubDirs(const Dir &d);
329void clearSubDirs(const Dir &d);
331
332/*! Copies the file \a src to \a dest. Returns true if the copy was successful, false otherwise.
333 * When a relative path is used, is is based on the current working directory.
334 */
335bool copyFile(const DString &src,const DString &dest);
336
337/*! Helper to open an output search \a f for writing. If the file already exists it will be renamed to .bak first.
338 * If \a outFile is "-" then the output will be written to standard output.
339 */
340bool openOutputFile(const DString &outFile,std::ofstream &f);
341
342//---------------------------------------------------------------
343
344bool isURL(const DString &url);
345DString correctURL(const DString &url,const DString &relPath);
346DString createHtmlUrl(const DString &relPath,
347 const DString &ref,
348 bool islocalFile,
349 const DString &targetFileName,
350 const DString &anchor);
351
352//---------------------------------------------------------------
353
355DString demangleCSharpGenericName(const DString &name,const DString &templArgs);
356
357//---------------------------------------------------------------
358DString extractBeginRawStringDelimiter(const char *rawStart);
359DString extractEndRawStringDelimiter(const char *rawEnd);
360
361//---------------------------------------------------------------
362
363void extractNamespaceName(const DString &scopeName,
364 DString &className,DString &namespaceName,
365 bool allowEmptyClass=false);
366
367int extractClassNameFromType(const DString &type,int &pos,
368 DString &name,DString &templSpec,SrcLangExt=SrcLangExt::Unknown);
369
370
371/** Returns true if the names of the symbols can be case sensitive. */
372bool useCaseSenseNames();
373
374bool checkExtension(const DString &fName, const DString &ext);
375
377
378bool checkIfTypedef(const Definition *scope,const FileDef *fileScope,const DString &n);
379
380void addGroupListToTitle(OutputList &ol,const Definition *d);
381
382void writeTypeConstraints(OutputList &ol,const Definition *d,const ArgumentList &al);
383
384void stackTrace();
385
387
389 MemberListType inListType,
390 Protection inProt,
391 MemberListType *outListType1,
392 MemberListType *outListType2
393 );
394
395DString makeBaseName(const DString &name, const DString &ext);
396
397DString determineAbsoluteIncludeName(const DString &curFile,const DString &incFileName);
398
399DString filterTitle(const DString &title);
400
401/*! Returns the file extension to use for dot files as specified via the DOT_IMAGE_FORMAT configuration option. */
403/*! Returns the file extension to use for dot files as specified via the argument `format`. */
405
407
408DString externalLinkTarget(const bool parent = false);
409
410DString getEncoding(const FileInfo &fi);
411
412bool mainPageHasTitle();
417
418#endif
constexpr auto prefix
Definition anchor.cpp:47
This class represents an function or template argument list.
Definition arguments.h:66
A abstract class representing of a compound symbol.
Definition classdef.h:100
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:84
The common base class of all entity definitions found in the sources.
Definition definition.h:77
Class representing a directory in the file system.
Definition dir.h:73
A model of a file symbol.
Definition filedef.h:97
Minimal replacement for QFileInfo.
Definition fileinfo.h:26
A model of a group of symbols.
Definition groupdef.h:48
A model of a class/file/namespace member symbol.
Definition memberdef.h:45
Wrapper class for the MemberListType type.
Definition types.h:346
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:311
constexpr DocNodeVariant * parent(DocNodeVariant *n)
returns the parent node of a given node n or nullptr if the node has no parent.
Definition docnode.h:1335
Definition message.h:146
bool forceEmptyScope
Definition util.h:85
const FileDef * currentFile
Definition util.h:86
bool insideCode
Definition util.h:88
DString args
Definition util.h:84
DString memberName
Definition util.h:83
bool checkCV
Definition util.h:87
DString scopeName
Definition util.h:82
GetDefInput(const DString &scName, const DString &memName, const DString &a)
Definition util.h:80
const MemberDef * md
Definition util.h:95
const ConceptDef * cnd
Definition util.h:100
const FileDef * fd
Definition util.h:97
const ModuleDef * modd
Definition util.h:101
const GroupDef * gd
Definition util.h:99
bool found
Definition util.h:94
const ClassDef * cd
Definition util.h:96
const NamespaceDef * nd
Definition util.h:98
std::function< DString()> GetValue
Definition util.h:261
std::variant< GetValue, GetValueWithParam > getValueVariant
Definition util.h:263
std::function< DString(const DString &)> GetValueWithParam
Definition util.h:262
const char * keyword
Definition util.h:260
const char * name
Definition util.h:210
bool enabled
Definition util.h:211
size_t beginLen
Definition util.h:220
const char * closeStr
Definition util.h:223
const char * beginStr
Definition util.h:219
size_t closeLen
Definition util.h:224
const char * endStr
Definition util.h:221
This file contains a number of basic enums and types.
Protection
Definition types.h:32
SrcLangExt
Definition types.h:207
void mergeArguments(ArgumentList &srcAl, ArgumentList &dstAl, bool forceNameOverwrite=false)
Definition util.cpp:1689
DString stripExtension(const DString &fName)
Definition util.cpp:3956
bool useCaseSenseNames()
Returns true if the names of the symbols can be case sensitive.
Definition util.cpp:2680
bool isURL(const DString &url)
Checks whether the given url starts with a supported protocol.
Definition util.cpp:4647
bool resolveLink(const DString &scName, const DString &lr, bool inSeeBlock, const Definition **resContext, DString &resAnchor, SrcLangExt lang, const DString &prefix=DString(), const FileDef *currentFile=nullptr)
Definition util.cpp:2308
DString inlineArgListToDoc(const ArgumentList &al)
Definition util.cpp:4866
DString stripLeadingAndTrailingEmptyLines(const DString &s, int &docLine)
Special version of DString::stripWhiteSpace() that only strips completely blank lines.
Definition util.cpp:3988
DString externalLinkTarget(const bool parent=false)
Definition util.cpp:4492
bool mainPageHasTitle()
Definition util.cpp:4960
DString replaceColorMarkers(const DString &str)
Replaces any markers of the form ##AA in input string str by new markers of the form #AABBCC,...
Definition util.cpp:4569
bool protectionLevelVisible(Protection prot)
Definition util.cpp:4672
DString stripFromIncludePath(const DString &path)
Definition util.cpp:227
bool updateLanguageMapping(const DString &extension, const DString &parser)
Definition util.cpp:4064
std::vector< KeywordSubstitution > KeywordSubstitutionList
Definition util.h:266
void extractNamespaceName(const DString &scopeName, DString &className, DString &namespaceName, bool allowEmptyClass=false)
Definition util.cpp:3027
DString mergeScopes(const DString &leftScope, const DString &rightScope)
Definition util.cpp:3754
DString filterTitle(const DString &title)
Definition util.cpp:4455
DString detab(const DString &s, size_t &refIndent)
Definition util.cpp:5195
DString selectBlocks(const DString &s, const SelectionBlockList &blockList, const SelectionMarkerInfo &markerInfo)
remove disabled blocks and all block markers from s and return the result as a string
Definition util.cpp:5017
bool matchTemplateArguments(const ArgumentList &srcAl, const ArgumentList &dstAl)
Definition util.cpp:1833
void addCodeOnlyMappings()
Definition util.cpp:4163
DString resolveTypeDef(const Definition *d, const DString &name, const Definition **typedefContext=nullptr)
Definition util.cpp:232
DString stripTemplateSpecifiersFromScope(const DString &fullName, bool parentOnly=true, DString *lastScopeStripped=nullptr, DString scopeName=DString(), bool allowArtificial=true)
Definition util.cpp:3687
DString convertNameToFile(const DString &name, bool allowDots=false, bool allowUnderscore=false)
Definition util.cpp:2864
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore=false)
Definition util.cpp:2689
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
Definition util.cpp:4284
DString extractBeginRawStringDelimiter(const char *rawStart)
Definition util.cpp:5355
DString getProjectId()
Definition util.cpp:5286
DString writeInlineGraph(const DString &baseName, const DString &extension, const DString &content, bool &exists)
Definition util.cpp:5374
bool rightScopeMatch(const DString &scope, const DString &name)
Definition util.cpp:729
bool checkIfTypedef(const Definition *scope, const FileDef *fileScope, const DString &n)
Definition util.cpp:4272
DString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefaults=true)
Definition util.cpp:903
bool readInputFile(const DString &fileName, std::string &contents, bool filter=true, bool isSourceCode=false)
read a file name fileName and optionally filter and transcode it
Definition util.cpp:4375
DString unescapeCharsInString(const DString &s)
Definition util.cpp:2776
void cleanupInlineGraphs()
Definition util.cpp:5399
DString correctURL(const DString &url, const DString &relPath)
Corrects URL url according to the relative path relPath.
Definition util.cpp:4660
int computeQualifiedIndex(const DString &name)
Return the index of the last :: in the string name that is still before the first <.
Definition util.cpp:5294
DString convertToId(const DString &s)
Definition util.cpp:3203
bool resolveRef(const DString &scName, const DString &name, bool inSeeBlock, const Definition **resContext, const MemberDef **resMember, SrcLangExt lang, bool lookForSpecializations=true, const FileDef *currentFile=nullptr, bool checkScope=false)
Definition util.cpp:2008
DString insertTemplateSpecifierInScope(const DString &scope, const DString &templ)
Definition util.cpp:3077
DString removeRedundantWhiteSpace(const DString &s)
Definition util.cpp:426
DString convertToXML(const DString &s, bool keepEntities=false, bool citeEntry=false)
Definition util.cpp:3233
bool checkExtension(const DString &fName, const DString &ext)
Definition util.cpp:3927
DString showDate(const DString &fmt)
Definition util.cpp:2568
bool leftScopeMatch(const DString &scope, const DString &name)
Definition util.cpp:740
std::vector< SelectionBlock > SelectionBlockList
Definition util.h:214
DString stripExtensionGeneral(const DString &fName, const DString &ext)
Definition util.cpp:3946
DString stripIndentation(const DString &s, bool skipFirstLine=false)
Definition util.cpp:4684
DString argListToString(const ArgumentList &al, bool useCanonicalType=false, bool showDefVals=true)
Definition util.cpp:859
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:3922
DString extractEndRawStringDelimiter(const char *rawEnd)
Definition util.cpp:5363
int extractClassNameFromType(const DString &type, int &pos, DString &name, DString &templSpec, SrcLangExt=SrcLangExt::Unknown)
Definition util.cpp:3381
void clearSubDirs(const Dir &d)
Definition util.cpp:2997
DString stripScope(const DString &name)
Definition util.cpp:3110
DString getFileNameExtension(const DString &fn)
Definition util.cpp:4211
void createSubDirs(const Dir &d)
Definition util.cpp:2970
SrcLangExt getLanguageFromFileName(const DString &fileName, SrcLangExt defLang=SrcLangExt::Cpp)
Definition util.cpp:4169
DString normalizeNonTemplateArgumentsInString(const DString &name, const Definition *context, const ArgumentList &formalArgs)
Definition util.cpp:3466
DString getFileFilter(const DString &name, bool isSourceCode)
Definition util.cpp:1020
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const DString &srcReturnType, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const DString &dstReturnType, const ArgumentList *dstAl, bool checkCV, SrcLangExt lang)
Definition util.cpp:1589
void initDefaultExtensionMapping()
Definition util.cpp:4096
void addHtmlExtensionIfMissing(DString &fName)
Definition util.cpp:3932
void checkBlocks(const DString &s, const DString fileName, const SelectionMarkerInfo &markerInfo)
Definition util.cpp:5130
DString linkToText(SrcLangExt lang, const DString &link, bool ignoreDots)
Definition util.cpp:2265
DString substituteKeywords(const DString &file, const DString &s, const KeywordSubstitutionList &keywords)
Definition util.cpp:2495
void addDirPrefix(DString &fileName)
DString relativePathToRoot(const DString &name)
Definition util.cpp:2913
DString convertToJSString(const DString &s, bool keepEntities=false, bool singleQuotes=false)
Definition util.cpp:3352
DString projectLogoFile()
Definition util.cpp:2581
void convertProtectionLevel(MemberListType inListType, Protection inProt, MemberListType *outListType1, MemberListType *outListType2)
Computes for a given list type inListType, which are the the corresponding list type(s) in the base c...
Definition util.cpp:4905
DString removeAnonymousScopes(const DString &s)
Definition util.cpp:98
DString getEncoding(const FileInfo &fi)
Definition util.cpp:4478
bool copyFile(const DString &src, const DString &dest)
Copies the contents of file with name src to the newly created file with name dest.
Definition util.cpp:4620
void writeExamples(OutputList &ol, const ExampleList &el)
Definition util.cpp:804
int getPrefixIndex(const DString &name)
Definition util.cpp:2652
DString createHtmlUrl(const DString &relPath, const DString &ref, bool islocalFile, const DString &targetFileName, const DString &anchor)
Definition util.cpp:4503
void stackTrace()
Definition util.cpp:4311
void stripIndentationVerbatim(DString &doc, size_t indentationLevel, bool skipFirstLine=true)
Definition util.cpp:4773
DString demangleCSharpGenericName(const DString &name, const DString &templArgs)
Definition util.cpp:5344
DString projectLogoSize()
Definition util.cpp:2600
DString mangleCSharpGenericName(const DString &name)
Definition util.cpp:5335
GetDefResult getDefs(const GetDefInput &input)
Definition util.cpp:1866
DString getDotImageExtension()
Definition util.cpp:4965
DString replaceAnonymousScopes(const DString &s, const DString &replacement=DString())
Definition util.cpp:155
int getScopeFragment(const DString &s, int p, int *l)
Definition util.cpp:3799
DString determineAbsoluteIncludeName(const DString &curFile, const DString &incFileName)
Definition util.cpp:2930
DString substituteTemplateArgumentsInString(const DString &name, const ArgumentList &formalArgs, const ArgumentList *actualArgs)
Definition util.cpp:3525
DString makeBaseName(const DString &name, const DString &ext)
Definition util.cpp:3975
DString getDotImageExtensionGenerated(const DString &format)
Definition util.cpp:4975
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
Definition util.cpp:753
DString externalRef(const DString &relPath, const DString &ref)
Definition util.cpp:4539
DString fileToString(const DString &name, bool filter=false, bool isSourceCode=false)
Definition util.cpp:1053
DString stripPath(const DString &s)
Definition util.cpp:3961
DString stripFromPath(const DString &path)
Definition util.cpp:219
DString inlineTemplateArgListToDoc(const ArgumentList &al)
Definition util.cpp:832
DString convertToHtml(const DString &s, bool keepEntities=true)
Definition util.cpp:3292
bool openOutputFile(const DString &outFile, std::ofstream &f)
Definition util.cpp:4987
DString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope=false)
Definition util.cpp:4630
DString stripAnonymousNamespaceScope(const DString &s)
Definition util.cpp:167
DString findExampleFilePath(const DString &file, bool &ambig)
Definition util.cpp:2452
SrcLangExt getLanguageFromCodeLang(DString &fileName)
Routine to handle the language attribute of the \code command.
Definition util.cpp:4187