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 );
138
139DString resolveTypeDef(const Definition *d,const DString &name,
140 const Definition **typedefContext=nullptr);
141
142/*! Resolve a reference via a tagfile reference \a ref.
143 * If after resolving the reference the result points to a relative path
144 * then \a relPath is prepended to create the correct link.
145 */
146DString externalRef(const DString &relPath,const DString &ref);
147
148//----------------------------------------------------------------
149
150/*! Compares two parameter lists \a srcAl and \a dstAl and returns true if they match. */
151bool matchArguments2(const Definition *srcScope,const FileDef *srcFileScope,const DString &srcReturnType,const ArgumentList *srcAl,
152 const Definition *dstScope,const FileDef *dstFileScope,const DString &dstReturnType,const ArgumentList *dstAl,
153 bool checkCV,SrcLangExt lang
154 );
155
156/*! Merges the information of two parameter lists (typically a declaration and a definition).
157 * Missing information is added to either list.
158 * The name of parameter of srcAl is only overwritten if \a forceNameOverwrite is true.
159 */
160void mergeArguments(ArgumentList &srcAl,ArgumentList &dstAl,bool forceNameOverwrite=false);
161
162/*! Returns true if the template parameter lists \a srcAl and \a dstAl match.
163 * The lists are considered to match if they have the same number of parameters and
164 * each matching parameter in \a srcAl and \a dstAl has the same constraints (or at least one parameter has no constraints).
165 */
166bool matchTemplateArguments(const ArgumentList &srcAl,const ArgumentList &dstAl);
167
168/*! Returns a representation of \a name where all known types have been normalized to their canonical form.
169 * The normalization is done in the context of \a context and using the formal arguments in \a formalArgs.
170 */
172 const DString &name,
173 const Definition *context,
174 const ArgumentList &formalArgs);
175
176/*! Substitutes any occurrence of a formal argument from argument list
177 * \a formalArgs in \a name by the corresponding actual argument in
178 * argument list \a actualArgs. The result after substitution
179 * is returned as a string. The argument \a name is used to
180 * prevent recursive substitution.
181 */
183 const DString &name,
184 const ArgumentList &formalArgs,
185 const ArgumentList *actualArgs);
186
187/*! Returns a documentation string combining the inline documentation for each parameter in the list \a al. */
189
190/*! Returns a documentation string combining the inline documentation for each template parameter in the list \a al. */
192
193/*! Returns a string representation of the parameter list \a al.
194 * If \a useCanonicalType is true then the canonical type is used for each argument.
195 * If \a showDefVals is true then default values are included in the string representation.
196 */
197DString argListToString(const ArgumentList &al,bool useCanonicalType=false,bool showDefVals=true);
198
199/*! Returns a string representation of the template parameter list \a al.
200 * The \a lang parameter is used to determine the correct syntax for the template parameters.
201 * If \a includeDefaults is true then default values are included in the string representation.
202 */
203DString tempArgListToString(const ArgumentList &al,SrcLangExt lang,bool includeDefaults=true);
204
205//----------------------------------------------------------------
206
208{
209 const char *name;
211};
212
213using SelectionBlockList = std::vector<SelectionBlock>;
214
216{
218 const char *beginStr;
219 size_t beginLen;
220 const char *endStr;
221 size_t endLen;
222 const char *closeStr;
223 size_t closeLen;
224};
225
226DString selectBlocks(const DString& s,const SelectionBlockList &blockList, const SelectionMarkerInfo &markerInfo);
227void checkBlocks(const DString& s,const DString fileName, const SelectionMarkerInfo &markerInfo);
228
229//----------------------------------------------------------------
230
231DString findExampleFilePath(const DString &file, bool &ambig);
232void writeExamples(OutputList &ol,const ExampleList &el);
233
234//----------------------------------------------------------------
235
236DString stripScope(const DString &name);
238DString stripFromPath(const DString &path);
240DString stripPath(const DString &s);
241DString stripIndentation(const DString &s,bool skipFirstLine=false);
242DString stripExtensionGeneral(const DString &fName, const DString &ext);
243DString stripExtension(const DString &fName);
245void stripIndentationVerbatim(DString &doc,size_t indentationLevel, bool skipFirstLine=true);
246
248DString detab(const DString &s,size_t &refIndent);
249
250//---------------------------------------------------------------
251
252bool rightScopeMatch(const DString &scope, const DString &name);
253bool leftScopeMatch(const DString &scope, const DString &name);
254
255//---------------------------------------------------------------
256
258{
259 const char *keyword;
260 using GetValue = std::function<DString()>;
261 using GetValueWithParam = std::function<DString(const DString &)>;
262 std::variant<GetValue,GetValueWithParam> getValueVariant;
263};
264
265using KeywordSubstitutionList = std::vector<KeywordSubstitution>;
266
267DString substituteKeywords(const DString &file,const DString &s,const KeywordSubstitutionList &keywords);
268
269//---------------------------------------------------------------
270
271void addDirPrefix(DString &fileName);
272int getPrefixIndex(const DString &name);
273int computeQualifiedIndex(const DString &name);
274
275//---------------------------------------------------------------
276
277DString convertNameToFile(const DString &name,bool allowDots=false,bool allowUnderscore=false);
278DString escapeCharsInString(const DString &name,bool allowDots,bool allowUnderscore=false);
280DString linkToText(SrcLangExt lang,const DString &link,bool ignoreDots);
281
282//---------------------------------------------------------------
283
285
286DString replaceAnonymousScopes(const DString &s,const DString &replacement=DString());
287
288DString insertTemplateSpecifierInScope(const DString &scope,const DString &templ);
289
291 bool parentOnly=true,
292 DString *lastScopeStripped=nullptr,
293 DString scopeName=DString(),
294 bool allowArtificial=true);
295
296DString mergeScopes(const DString &leftScope,const DString &rightScope);
297
298int getScopeFragment(const DString &s,int p,int *l);
299
300//---------------------------------------------------------------
301
302DString convertToId(const DString &s);
303DString convertToHtml(const DString &s,bool keepEntities=true);
304DString convertToXML(const DString &s, bool keepEntities=false, bool citeEntry = false);
305DString convertToJSString(const DString &s,bool keepEntities=false,bool singleQuotes=false);
306
307//---------------------------------------------------------------
308
309bool updateLanguageMapping(const DString &extension,const DString &parser);
310SrcLangExt getLanguageFromFileName(const DString& fileName, SrcLangExt defLang=SrcLangExt::Cpp);
315
316//---------------------------------------------------------------
317
318void writeMarkerList(OutputList &ol,const std::string &markerText,size_t numMarkers,
319 std::function<void(size_t)> replaceFunc);
320DString writeMarkerList(const std::string &markerText,size_t numMarkers,
321 std::function<DString(size_t)> replaceFunc);
322
324
325//---------------------------------------------------------------
326
327void createSubDirs(const Dir &d);
328void clearSubDirs(const Dir &d);
330
331/*! Copies the file \a src to \a dest. Returns true if the copy was successful, false otherwise.
332 * When a relative path is used, is is based on the current working directory.
333 */
334bool copyFile(const DString &src,const DString &dest);
335
336/*! Helper to open an output search \a f for writing. If the file already exists it will be renamed to .bak first.
337 * If \a outFile is "-" then the output will be written to standard output.
338 */
339bool openOutputFile(const DString &outFile,std::ofstream &f);
340
341//---------------------------------------------------------------
342
343bool isURL(const DString &url);
344DString correctURL(const DString &url,const DString &relPath);
345DString createHtmlUrl(const DString &relPath,
346 const DString &ref,
347 bool islocalFile,
348 const DString &targetFileName,
349 const DString &anchor);
350
351//---------------------------------------------------------------
352
354DString demangleCSharpGenericName(const DString &name,const DString &templArgs);
355
356//---------------------------------------------------------------
357DString extractBeginRawStringDelimiter(const char *rawStart);
358DString extractEndRawStringDelimiter(const char *rawEnd);
359
360//---------------------------------------------------------------
361
362void extractNamespaceName(const DString &scopeName,
363 DString &className,DString &namespaceName,
364 bool allowEmptyClass=false);
365
366int extractClassNameFromType(const DString &type,int &pos,
367 DString &name,DString &templSpec,SrcLangExt=SrcLangExt::Unknown);
368
369
370/** Returns true if the names of the symbols can be case sensitive. */
371bool useCaseSenseNames();
372
373bool checkExtension(const DString &fName, const DString &ext);
374
376
377bool checkIfTypedef(const Definition *scope,const FileDef *fileScope,const DString &n);
378
379void addGroupListToTitle(OutputList &ol,const Definition *d);
380
381void writeTypeConstraints(OutputList &ol,const Definition *d,const ArgumentList &al);
382
383void stackTrace();
384
386
388 MemberListType inListType,
389 Protection inProt,
390 MemberListType *outListType1,
391 MemberListType *outListType2
392 );
393
394DString makeBaseName(const DString &name, const DString &ext);
395
396DString determineAbsoluteIncludeName(const DString &curFile,const DString &incFileName);
397
398DString filterTitle(const DString &title);
399
400/*! Returns the file extension to use for dot files as specified via the DOT_IMAGE_FORMAT configuration option. */
402
403DString externalLinkTarget(const bool parent = false);
404
405DString getEncoding(const FileInfo &fi);
406
407bool mainPageHasTitle();
412
413#endif
constexpr auto prefix
Definition anchor.cpp:44
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:88
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:144
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:260
std::variant< GetValue, GetValueWithParam > getValueVariant
Definition util.h:262
std::function< DString(const DString &)> GetValueWithParam
Definition util.h:261
const char * keyword
Definition util.h:259
const char * name
Definition util.h:209
bool enabled
Definition util.h:210
size_t beginLen
Definition util.h:219
const char * closeStr
Definition util.h:222
const char * beginStr
Definition util.h:218
size_t closeLen
Definition util.h:223
const char * endStr
Definition util.h:220
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:1691
DString stripExtension(const DString &fName)
Definition util.cpp:3957
bool useCaseSenseNames()
Returns true if the names of the symbols can be case sensitive.
Definition util.cpp:2681
bool isURL(const DString &url)
Checks whether the given url starts with a supported protocol.
Definition util.cpp:4648
DString inlineArgListToDoc(const ArgumentList &al)
Definition util.cpp:4867
DString stripLeadingAndTrailingEmptyLines(const DString &s, int &docLine)
Special version of DString::stripWhiteSpace() that only strips completely blank lines.
Definition util.cpp:3989
DString externalLinkTarget(const bool parent=false)
Definition util.cpp:4493
bool mainPageHasTitle()
Definition util.cpp:4961
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:4570
bool protectionLevelVisible(Protection prot)
Definition util.cpp:4673
DString stripFromIncludePath(const DString &path)
Definition util.cpp:229
bool updateLanguageMapping(const DString &extension, const DString &parser)
Definition util.cpp:4065
std::vector< KeywordSubstitution > KeywordSubstitutionList
Definition util.h:265
void extractNamespaceName(const DString &scopeName, DString &className, DString &namespaceName, bool allowEmptyClass=false)
Definition util.cpp:3028
DString mergeScopes(const DString &leftScope, const DString &rightScope)
Definition util.cpp:3755
DString filterTitle(const DString &title)
Definition util.cpp:4456
DString detab(const DString &s, size_t &refIndent)
Definition util.cpp:5181
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:5003
bool matchTemplateArguments(const ArgumentList &srcAl, const ArgumentList &dstAl)
Definition util.cpp:1835
void addCodeOnlyMappings()
Definition util.cpp:4164
DString resolveTypeDef(const Definition *d, const DString &name, const Definition **typedefContext=nullptr)
Definition util.cpp:234
DString stripTemplateSpecifiersFromScope(const DString &fullName, bool parentOnly=true, DString *lastScopeStripped=nullptr, DString scopeName=DString(), bool allowArtificial=true)
Definition util.cpp:3688
DString convertNameToFile(const DString &name, bool allowDots=false, bool allowUnderscore=false)
Definition util.cpp:2865
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore=false)
Definition util.cpp:2690
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
Definition util.cpp:4285
DString extractBeginRawStringDelimiter(const char *rawStart)
Definition util.cpp:5341
DString getProjectId()
Definition util.cpp:5272
DString writeInlineGraph(const DString &baseName, const DString &extension, const DString &content, bool &exists)
Definition util.cpp:5360
bool rightScopeMatch(const DString &scope, const DString &name)
Definition util.cpp:731
bool checkIfTypedef(const Definition *scope, const FileDef *fileScope, const DString &n)
Definition util.cpp:4273
DString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefaults=true)
Definition util.cpp:905
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:4376
DString unescapeCharsInString(const DString &s)
Definition util.cpp:2777
void cleanupInlineGraphs()
Definition util.cpp:5385
DString correctURL(const DString &url, const DString &relPath)
Corrects URL url according to the relative path relPath.
Definition util.cpp:4661
int computeQualifiedIndex(const DString &name)
Return the index of the last :: in the string name that is still before the first <.
Definition util.cpp:5280
DString convertToId(const DString &s)
Definition util.cpp:3204
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:2010
DString insertTemplateSpecifierInScope(const DString &scope, const DString &templ)
Definition util.cpp:3078
DString removeRedundantWhiteSpace(const DString &s)
Definition util.cpp:428
DString convertToXML(const DString &s, bool keepEntities=false, bool citeEntry=false)
Definition util.cpp:3234
bool checkExtension(const DString &fName, const DString &ext)
Definition util.cpp:3928
DString showDate(const DString &fmt)
Definition util.cpp:2569
bool leftScopeMatch(const DString &scope, const DString &name)
Definition util.cpp:742
std::vector< SelectionBlock > SelectionBlockList
Definition util.h:213
DString stripExtensionGeneral(const DString &fName, const DString &ext)
Definition util.cpp:3947
DString stripIndentation(const DString &s, bool skipFirstLine=false)
Definition util.cpp:4685
DString argListToString(const ArgumentList &al, bool useCanonicalType=false, bool showDefVals=true)
Definition util.cpp:861
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:3923
DString extractEndRawStringDelimiter(const char *rawEnd)
Definition util.cpp:5349
int extractClassNameFromType(const DString &type, int &pos, DString &name, DString &templSpec, SrcLangExt=SrcLangExt::Unknown)
Definition util.cpp:3382
void clearSubDirs(const Dir &d)
Definition util.cpp:2998
DString stripScope(const DString &name)
Definition util.cpp:3111
DString getFileNameExtension(const DString &fn)
Definition util.cpp:4212
void createSubDirs(const Dir &d)
Definition util.cpp:2971
SrcLangExt getLanguageFromFileName(const DString &fileName, SrcLangExt defLang=SrcLangExt::Cpp)
Definition util.cpp:4170
DString normalizeNonTemplateArgumentsInString(const DString &name, const Definition *context, const ArgumentList &formalArgs)
Definition util.cpp:3467
DString getFileFilter(const DString &name, bool isSourceCode)
Definition util.cpp:1022
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:1591
void initDefaultExtensionMapping()
Definition util.cpp:4097
bool resolveLink(const DString &scName, const DString &lr, bool inSeeBlock, const Definition **resContext, DString &resAnchor, SrcLangExt lang, const DString &prefix=DString())
Definition util.cpp:2310
void addHtmlExtensionIfMissing(DString &fName)
Definition util.cpp:3933
void checkBlocks(const DString &s, const DString fileName, const SelectionMarkerInfo &markerInfo)
Definition util.cpp:5116
DString linkToText(SrcLangExt lang, const DString &link, bool ignoreDots)
Definition util.cpp:2267
DString substituteKeywords(const DString &file, const DString &s, const KeywordSubstitutionList &keywords)
Definition util.cpp:2496
void addDirPrefix(DString &fileName)
DString relativePathToRoot(const DString &name)
Definition util.cpp:2914
DString convertToJSString(const DString &s, bool keepEntities=false, bool singleQuotes=false)
Definition util.cpp:3353
DString projectLogoFile()
Definition util.cpp:2582
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:4906
DString removeAnonymousScopes(const DString &s)
Definition util.cpp:100
DString getEncoding(const FileInfo &fi)
Definition util.cpp:4479
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:4621
void writeExamples(OutputList &ol, const ExampleList &el)
Definition util.cpp:806
int getPrefixIndex(const DString &name)
Definition util.cpp:2653
DString createHtmlUrl(const DString &relPath, const DString &ref, bool islocalFile, const DString &targetFileName, const DString &anchor)
Definition util.cpp:4504
void stackTrace()
Definition util.cpp:4312
void stripIndentationVerbatim(DString &doc, size_t indentationLevel, bool skipFirstLine=true)
Definition util.cpp:4774
DString demangleCSharpGenericName(const DString &name, const DString &templArgs)
Definition util.cpp:5330
DString projectLogoSize()
Definition util.cpp:2601
DString mangleCSharpGenericName(const DString &name)
Definition util.cpp:5321
GetDefResult getDefs(const GetDefInput &input)
Definition util.cpp:1868
DString getDotImageExtension()
Definition util.cpp:4966
DString replaceAnonymousScopes(const DString &s, const DString &replacement=DString())
Definition util.cpp:157
int getScopeFragment(const DString &s, int p, int *l)
Definition util.cpp:3800
DString determineAbsoluteIncludeName(const DString &curFile, const DString &incFileName)
Definition util.cpp:2931
DString substituteTemplateArgumentsInString(const DString &name, const ArgumentList &formalArgs, const ArgumentList *actualArgs)
Definition util.cpp:3526
DString makeBaseName(const DString &name, const DString &ext)
Definition util.cpp:3976
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
Definition util.cpp:755
DString externalRef(const DString &relPath, const DString &ref)
Definition util.cpp:4540
DString fileToString(const DString &name, bool filter=false, bool isSourceCode=false)
Definition util.cpp:1055
DString stripPath(const DString &s)
Definition util.cpp:3962
DString stripFromPath(const DString &path)
Definition util.cpp:221
DString inlineTemplateArgListToDoc(const ArgumentList &al)
Definition util.cpp:834
DString convertToHtml(const DString &s, bool keepEntities=true)
Definition util.cpp:3293
bool openOutputFile(const DString &outFile, std::ofstream &f)
Definition util.cpp:4973
DString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope=false)
Definition util.cpp:4631
DString stripAnonymousNamespaceScope(const DString &s)
Definition util.cpp:169
DString findExampleFilePath(const DString &file, bool &ambig)
Definition util.cpp:2453
SrcLangExt getLanguageFromCodeLang(DString &fileName)
Routine to handle the language attribute of the \code command.
Definition util.cpp:4188