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 <memory>
24#include <unordered_map>
25#include <algorithm>
26#include <functional>
27#include <fstream>
28#include <variant>
29#include <string_view>
30
31#include <ctype.h>
32#include "types.h"
33#include "docparser.h"
34#include "containers.h"
35#include "outputgen.h"
36#include "regex.h"
37#include "conceptdef.h"
38#include "construct.h"
39#include "htmlentity.h"
40
41//--------------------------------------------------------------------
42
43class ClassDef;
44class FileDef;
45class MemberList;
46class NamespaceDef;
48class ArgumentList;
49class OutputList;
50class OutputDocInterface;
51class MemberDef;
52class GroupDef;
53struct TagInfo;
54class PageDef;
55class SectionInfo;
56class Definition;
57class FileInfo;
58class Dir;
59
60/*! Returns the scope separator to use given the programming language \a lang */
61DString getLanguageSpecificSeparator(SrcLangExt lang,bool classScope=false);
62
63//----------------------------------------------------------------
64
65/*! reads a file with name \a name and returns it as a string. If \a filter
66 * is true the file will be filtered by any user specified input filter.
67 * If \a name is "-" the string will be read from standard input.
68 */
69DString fileToString(const DString &name,bool filter=false,bool isSourceCode=false);
70
71//! read a file name \a fileName and optionally filter and transcode it
72bool readInputFile(const DString &fileName,std::string &contents,
73 bool filter=true,bool isSourceCode=false);
74
75/*! Thread-safe function to write a string representing an inline graph to a file.
76 * The contents will be used to create a hash that will be used to make the name unique.
77 * @param[in] baseName the base name of the file to write including path.
78 * @param[in] extension the file extension to use.
79 * @param[in] content the data to write to the file
80 * @param[out] exists is set to true if the file was already written before.
81 * @returns the name of the file written or an empty string in case of an error.
82 */
83DString writeInlineGraph(const DString &baseName,const DString &extension,const DString &content,bool &exists);
84
85/*! Deletes all graph files written with writeInlineGraph() */
87
88//----------------------------------------------------------------
89
90/*! Helper to pass the input parameters to getDefs() */
92{
93 GetDefInput(const DString &scName,const DString &memName,const DString &a) :
94 scopeName(scName),memberName(memName),args(a) {}
98 bool forceEmptyScope = false;
99 const FileDef *currentFile = nullptr;
100 bool checkCV = false;
101 bool insideCode = false;
102};
103
104/*! Helper to pass the result parameters from getDefs() */
106{
107 bool found = false;
108 const MemberDef *md=nullptr;
109 const ClassDef *cd=nullptr;
110 const FileDef *fd=nullptr;
111 const NamespaceDef *nd=nullptr;
112 const GroupDef *gd=nullptr;
113 const ConceptDef *cnd=nullptr;
114 const ModuleDef *modd=nullptr;
115};
116
117GetDefResult getDefs(const GetDefInput &input);
118
119/*! looks for a filter for the file \a name. Returns the name of the filter
120 * if there is a match for the file name, otherwise an empty string.
121 * In case \a inSourceCode is true then first the source filter list is
122 * considered.
123 */
124DString getFileFilter(const DString &name,bool isSourceCode);
125
126/*! Returns a symbol definition (compound and/or member) given its name and context.
127 * @post return value true implies *resContext!=0 or *resMember!=0
128 */
129bool resolveRef(/* in */ const DString &scName,
130 /* in */ const DString &name,
131 /* in */ bool inSeeBlock,
132 /* out */ const Definition **resContext,
133 /* out */ const MemberDef **resMember,
134 /* in */ SrcLangExt lang,
135 /* in */ bool lookForSpecializations = true,
136 /* in */ const FileDef *currentFile = nullptr,
137 /* in */ bool checkScope = false
138 );
139
140/*! Returns an symbol definition given its name and context for an explicitly linked symbol.
141 * @post return value true implies *resContext!=0
142 */
143bool resolveLink(/* in */ const DString &scName,
144 /* in */ const DString &lr,
145 /* in */ bool inSeeBlock,
146 /* out */ const Definition **resContext,
147 /* out */ DString &resAnchor,
148 /* in */ SrcLangExt lang,
149 /* in */ const DString &prefix=DString()
150 );
151
152DString resolveTypeDef(const Definition *d,const DString &name,
153 const Definition **typedefContext=nullptr);
154
155//----------------------------------------------------------------
156
157/*! Compares two parameter lists \a srcAl and \a dstAl and returns true if they match. */
158bool matchArguments2(const Definition *srcScope,const FileDef *srcFileScope,const DString &srcReturnType,const ArgumentList *srcAl,
159 const Definition *dstScope,const FileDef *dstFileScope,const DString &dstReturnType,const ArgumentList *dstAl,
160 bool checkCV,SrcLangExt lang
161 );
162
163/*! Merges the information of two parameter lists (typically a declaration and a definition).
164 * Missing information is added to either list.
165 * The name of parameter of srcAl is only overwritten if \a forceNameOverwrite is true.
166 */
167void mergeArguments(ArgumentList &srcAl,ArgumentList &dstAl,bool forceNameOverwrite=false);
168
169/*! Returns true if the template parameter lists \a srcAl and \a dstAl match.
170 * The lists are considered to match if they have the same number of parameters and
171 * each matching parameter in \a srcAl and \a dstAl has the same constraints (or at least one parameter has no constraints).
172 */
173bool matchTemplateArguments(const ArgumentList &srcAl,const ArgumentList &dstAl);
174
175/*! Returns a representation of \a name where all known types have been normalized to their canonical form.
176 * The normalization is done in the context of \a context and using the formal arguments in \a formalArgs.
177 */
179 const DString &name,
180 const Definition *context,
181 const ArgumentList &formalArgs);
182
183/*! Substitutes any occurrence of a formal argument from argument list
184 * \a formalArgs in \a name by the corresponding actual argument in
185 * argument list \a actualArgs. The result after substitution
186 * is returned as a string. The argument \a name is used to
187 * prevent recursive substitution.
188 */
190 const DString &name,
191 const ArgumentList &formalArgs,
192 const ArgumentList *actualArgs);
193
194/*! Returns a documentation string combining the inline documentation for each parameter in the list \a al. */
196
197/*! Returns a documentation string combining the inline documentation for each template parameter in the list \a al. */
199
200/*! Returns a string representation of the parameter list \a al.
201 * If \a useCanonicalType is true then the canonical type is used for each argument.
202 * If \a showDefVals is true then default values are included in the string representation.
203 */
204DString argListToString(const ArgumentList &al,bool useCanonicalType=false,bool showDefVals=true);
205
206/*! Returns a string representation of the template parameter list \a al.
207 * The \a lang parameter is used to determine the correct syntax for the template parameters.
208 * If \a includeDefaults is true then default values are included in the string representation.
209 */
210DString tempArgListToString(const ArgumentList &al,SrcLangExt lang,bool includeDefaults=true);
211
212//----------------------------------------------------------------
213
215{
216 const char *name;
218};
219
220using SelectionBlockList = std::vector<SelectionBlock>;
221
223{
225 const char *beginStr;
226 size_t beginLen;
227 const char *endStr;
228 size_t endLen;
229 const char *closeStr;
230 size_t closeLen;
231};
232
233DString selectBlocks(const DString& s,const SelectionBlockList &blockList, const SelectionMarkerInfo &markerInfo);
234void checkBlocks(const DString& s,const DString fileName, const SelectionMarkerInfo &markerInfo);
235
236//----------------------------------------------------------------
237
238DString findExampleFilePath(const DString &file, bool &ambig);
239void writeExamples(OutputList &ol,const ExampleList &el);
240
242
244
245DString stripFromPath(const DString &path);
246
248
249bool rightScopeMatch(const DString &scope, const DString &name);
250
251bool leftScopeMatch(const DString &scope, const DString &name);
252
253//---------------------------------------------------------------
254
256{
257 const char *keyword;
258 using GetValue = std::function<DString()>;
259 using GetValueWithParam = std::function<DString(const DString &)>;
260 std::variant<GetValue,GetValueWithParam> getValueVariant;
261};
262
263using KeywordSubstitutionList = std::vector<KeywordSubstitution>;
264
265DString substituteKeywords(const DString &file,const DString &s,const KeywordSubstitutionList &keywords);
266
267//---------------------------------------------------------------
268
269int getPrefixIndex(const DString &name);
270
271DString convertNameToFile(const DString &name,bool allowDots=false,bool allowUnderscore=false);
272
273//---------------------------------------------------------------
274
276
277DString replaceAnonymousScopes(const DString &s,const DString &replacement=DString());
278
279DString insertTemplateSpecifierInScope(const DString &scope,const DString &templ);
280
281DString stripScope(const DString &name);
282
284 bool parentOnly=true,
285 DString *lastScopeStripped=nullptr,
286 DString scopeName=DString(),
287 bool allowArtificial=true);
288
289DString mergeScopes(const DString &leftScope,const DString &rightScope);
290
291int getScopeFragment(const DString &s,int p,int *l);
292
293//---------------------------------------------------------------
294
295DString convertToId(const DString &s);
296DString convertToHtml(const DString &s,bool keepEntities=true);
297DString convertToXML(const DString &s, bool keepEntities=false, bool citeEntry = false);
298DString convertToJSString(const DString &s,bool keepEntities=false,bool singleQuotes=false);
299
300//---------------------------------------------------------------
301
302void extractNamespaceName(const DString &scopeName,
303 DString &className,DString &namespaceName,
304 bool allowEmptyClass=false);
305
306int extractClassNameFromType(const DString &type,int &pos,
307 DString &name,DString &templSpec,SrcLangExt=SrcLangExt::Unknown);
308
309PageDef *addRelatedPage(const DString &name,
310 const DString &ptitle,
311 const DString &doc,
312 const DString &fileName,
313 int docLine,
314 int startLine,
315 const RefItemVector &sli = RefItemVector(),
316 GroupDef *gd=nullptr,
317 const TagInfo *tagInfo=nullptr,
318 bool xref=false,
319 SrcLangExt lang=SrcLangExt::Unknown
320 );
321
322/** Returns true if the names of the symbols can be case sensitive. */
323bool useCaseSenseNames();
324
325DString escapeCharsInString(const DString &name,bool allowDots,bool allowUnderscore=false);
327
328void addGroupListToTitle(OutputList &ol,const Definition *d);
329
330DString linkToText(SrcLangExt lang,const DString &link,bool ignoreDots);
331
332bool checkExtension(const DString &fName, const DString &ext);
334DString stripExtensionGeneral(const DString &fName, const DString &ext);
335DString stripExtension(const DString &fName);
336
337DString makeBaseName(const DString &name, const DString &ext);
338
339int computeQualifiedIndex(const DString &name);
340
341void addDirPrefix(DString &fileName);
342
344DString determineAbsoluteIncludeName(const DString &curFile,const DString &incFileName);
345
346void createSubDirs(const Dir &d);
347void clearSubDirs(const Dir &d);
348
350DString stripPath(const DString &s);
351
352bool findAndRemoveWord(DString &s,const char *word);
353
355
356//---------------------------------------------------------------
357bool updateLanguageMapping(const DString &extension,const DString &parser);
358SrcLangExt getLanguageFromFileName(const DString& fileName, SrcLangExt defLang=SrcLangExt::Cpp);
363//---------------------------------------------------------------
364
365bool checkIfTypedef(const Definition *scope,const FileDef *fileScope,const DString &n);
366
367DString parseCommentAsText(const Definition *scope,const MemberDef *member,const DString &doc,const DString &fileName,int lineNr);
368DString parseCommentAsHtml(const Definition *scope,const MemberDef *member,const DString &doc,const DString &fileName,int lineNr);
369
370bool transcodeCharacterStringToUTF8(std::string &input,const char *inputEncoding);
371
372DString recodeString(const DString &str,const char *fromEncoding,const char *toEncoding);
373
374void writeTypeConstraints(OutputList &ol,const Definition *d,const ArgumentList &al);
375
376void stackTrace();
377
378DString filterTitle(const DString &title);
379
380bool patternMatch(const FileInfo &fi,const StringVector &patList);
381
382DString externalLinkTarget(const bool parent = false);
383DString createHtmlUrl(const DString &relPath,
384 const DString &ref,
385 bool href,
386 bool islocalFile,
387 const DString &targetFileName,
388 const DString &anchor);
389DString externalRef(const DString &relPath,const DString &ref,bool href);
390
391//---------------------------------------------------------------
392void writeMarkerList(OutputList &ol,const std::string &markerText,size_t numMarkers,
393 std::function<void(size_t)> replaceFunc);
394DString writeMarkerList(const std::string &markerText,size_t numMarkers,
395 std::function<DString(size_t)> replaceFunc);
396
398//---------------------------------------------------------------
399
400bool copyFile(const DString &src,const DString &dest);
401
402int lineBlock(const DString &text,const DString &marker);
403
404bool isURL(const DString &url);
405
406DString correctURL(const DString &url,const DString &relPath);
407
409
411
412DString stripIndentation(const DString &s,bool skipFirstLine=false);
413void stripIndentationVerbatim(DString &doc,size_t indentationLevel, bool skipFirstLine=true);
414
416
417bool fileVisibleInIndex(const FileDef *fd,bool &genSourceFile);
418
420 MemberListType inListType,
421 Protection inProt,
422 MemberListType *outListType1,
423 MemberListType *outListType2
424 );
425
426bool mainPageHasTitle();
427bool openOutputFile(const DString &outFile,std::ofstream &f);
428
429bool recognizeFixedForm(const DString &contents, FortranFormat format);
431
432DString getEncoding(const FileInfo &fi);
433
434DString detab(const DString &s,size_t &refIndent);
435
440
442
443size_t updateColumnCount(const char *s,size_t col);
444
446DString demangleCSharpGenericName(const DString &name,const DString &templArgs);
447
448DString extractBeginRawStringDelimiter(const char *rawStart);
449DString extractEndRawStringDelimiter(const char *rawEnd);
450
451#endif
constexpr auto prefix
Definition anchor.cpp:44
This class represents an function or template argument list.
Definition arguments.h:65
A abstract class representing of a compound symbol.
Definition classdef.h:104
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:89
DString()=default
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:75
bool exists() const
Definition dir.cpp:257
A model of a file symbol.
Definition filedef.h:99
Minimal replacement for QFileInfo.
Definition fileinfo.h:23
Ordered dictionary of FileName objects.
Definition filename.h:69
A model of a group of symbols.
Definition groupdef.h:52
A model of a class/file/namespace member symbol.
Definition memberdef.h:48
A list of MemberDef objects as shown in documentation sections.
Definition memberlist.h:125
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:315
A model of a page symbol.
Definition pagedef.h:26
class that provide information about a section.
Definition section.h:58
std::vector< std::string > StringVector
Definition containers.h:33
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
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
bool forceEmptyScope
Definition util.h:98
const FileDef * currentFile
Definition util.h:99
bool insideCode
Definition util.h:101
DString args
Definition util.h:97
DString memberName
Definition util.h:96
bool checkCV
Definition util.h:100
DString scopeName
Definition util.h:95
GetDefInput(const DString &scName, const DString &memName, const DString &a)
Definition util.h:93
const MemberDef * md
Definition util.h:108
const ConceptDef * cnd
Definition util.h:113
const FileDef * fd
Definition util.h:110
const ModuleDef * modd
Definition util.h:114
const GroupDef * gd
Definition util.h:112
bool found
Definition util.h:107
const ClassDef * cd
Definition util.h:109
const NamespaceDef * nd
Definition util.h:111
std::function< DString()> GetValue
Definition util.h:258
std::variant< GetValue, GetValueWithParam > getValueVariant
Definition util.h:260
std::function< DString(const DString &)> GetValueWithParam
Definition util.h:259
const char * keyword
Definition util.h:257
const char * name
Definition util.h:216
bool enabled
Definition util.h:217
size_t beginLen
Definition util.h:226
const char * closeStr
Definition util.h:229
const char * beginStr
Definition util.h:225
size_t closeLen
Definition util.h:230
const char * endStr
Definition util.h:227
This struct is used to capture the tag file information for an Entry.
Definition entry.h:104
This file contains a number of basic enums and types.
Protection
Definition types.h:32
SrcLangExt
Definition types.h:207
FortranFormat
Definition types.h:612
DString stripExtension(const DString &fName)
Definition util.cpp:4152
bool useCaseSenseNames()
Returns true if the names of the symbols can be case sensitive.
Definition util.cpp:2746
bool isURL(const DString &url)
Checks whether the given url starts with a supported protocol.
Definition util.cpp:5097
DString substituteTemplateArgumentsInString(const DString &nm, const ArgumentList &formalArgs, const ArgumentList *actualArgs)
Definition util.cpp:3591
DString parseCommentAsText(const Definition *scope, const MemberDef *md, const DString &doc, const DString &fileName, int lineNr)
Definition util.cpp:4561
size_t updateColumnCount(const char *s, size_t col)
Definition util.cpp:5951
DString inlineArgListToDoc(const ArgumentList &al)
Definition util.cpp:5399
bool findAndRemoveWord(DString &sentence, const char *word)
removes occurrences of whole word from sentence, while keeps internal spaces and reducing multiple se...
Definition util.cpp:4180
DString stripLeadingAndTrailingEmptyLines(const DString &s, int &docLine)
Special version of DString::stripWhiteSpace() that only strips completely blank lines.
Definition util.cpp:4223
bool mainPageHasTitle()
Definition util.cpp:5493
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:4996
bool protectionLevelVisible(Protection prot)
Definition util.cpp:5122
DString stripFromIncludePath(const DString &path)
Definition util.cpp:259
DString mergeScopes(const DString &leftScope, const DString &rightScope)
Definition util.cpp:3820
bool resolveLink(const DString &scName, const DString &lr, bool, const Definition **resContext, DString &resAnchor, SrcLangExt lang, const DString &prefix)
Definition util.cpp:2375
DString filterTitle(const DString &title)
Definition util.cpp:4822
DString detab(const DString &s, size_t &refIndent)
Definition util.cpp:5796
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:5618
bool matchTemplateArguments(const ArgumentList &srcAl, const ArgumentList &dstAl)
Definition util.cpp:1900
void stripIndentationVerbatim(DString &doc, size_t indentationLevel, bool skipFirstLine)
Definition util.cpp:5223
void addCodeOnlyMappings()
Definition util.cpp:4398
PageDef * addRelatedPage(const DString &name, const DString &ptitle, const DString &doc, const DString &fileName, int docLine, int startLine, const RefItemVector &sli, GroupDef *gd, const TagInfo *tagInfo, bool xref, SrcLangExt lang)
Definition util.cpp:3920
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
Definition util.cpp:4651
DString extractBeginRawStringDelimiter(const char *rawStart)
Definition util.cpp:6004
DString getProjectId()
Definition util.cpp:5887
DString writeInlineGraph(const DString &baseName, const DString &extension, const DString &content, bool &exists)
Definition util.cpp:6023
bool rightScopeMatch(const DString &scope, const DString &name)
Definition util.cpp:761
bool checkIfTypedef(const Definition *scope, const FileDef *fileScope, const DString &n)
Definition util.cpp:4507
DString unescapeCharsInString(const DString &s)
Definition util.cpp:2842
bool resolveRef(const DString &scName, const DString &name, bool inSeeBlock, const Definition **resContext, const MemberDef **resMember, SrcLangExt lang, bool lookForSpecialization, const FileDef *currentFile, bool checkScope)
Definition util.cpp:2075
DString externalLinkTarget(const bool parent)
Definition util.cpp:4917
DString replaceAnonymousScopes(const DString &s, const DString &replacement)
Definition util.cpp:171
void cleanupInlineGraphs()
Definition util.cpp:6048
DString correctURL(const DString &url, const DString &relPath)
Corrects URL url according to the relative path relPath.
Definition util.cpp:5110
int computeQualifiedIndex(const DString &name)
Return the index of the last :: in the string name that is still before the first <.
Definition util.cpp:5895
DString convertToJSString(const DString &s, bool keepEntities, bool singleQuotes)
Definition util.cpp:3418
DString convertToId(const DString &s)
Definition util.cpp:3269
bool transcodeCharacterStringToUTF8(std::string &input, const char *inputEncoding)
Definition util.cpp:1086
bool recognizeFixedForm(const DString &contents, FortranFormat format)
Definition util.cpp:5552
bool patternMatch(const FileInfo &fi, const StringVector &patList)
Definition util.cpp:4896
DString insertTemplateSpecifierInScope(const DString &scope, const DString &templ)
Definition util.cpp:3143
DString removeRedundantWhiteSpace(const DString &s)
Definition util.cpp:458
bool checkExtension(const DString &fName, const DString &ext)
Definition util.cpp:4123
int lineBlock(const DString &text, const DString &marker)
Returns the line number of the line following the line with the marker.
Definition util.cpp:5060
DString convertNameToFile(const DString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:2930
DString showDate(const DString &fmt)
Definition util.cpp:2634
bool leftScopeMatch(const DString &scope, const DString &name)
Definition util.cpp:772
DString stripExtensionGeneral(const DString &fName, const DString &ext)
Definition util.cpp:4142
DString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefault)
Definition util.cpp:935
DString externalRef(const DString &relPath, const DString &ref, bool href)
Definition util.cpp:4965
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:4118
DString extractEndRawStringDelimiter(const char *rawEnd)
Definition util.cpp:6012
void clearSubDirs(const Dir &d)
Definition util.cpp:3063
DString stripScope(const DString &name)
Definition util.cpp:3176
DString getFileNameExtension(const DString &fn)
Definition util.cpp:4446
void createSubDirs(const Dir &d)
Definition util.cpp:3036
DString convertToHtml(const DString &s, bool keepEntities)
Definition util.cpp:3358
bool fileVisibleInIndex(const FileDef *fd, bool &genSourceFile)
Definition util.cpp:5274
DString resolveTypeDef(const Definition *context, const DString &qualifiedName, const Definition **typedefContext)
Definition util.cpp:264
DString parseCommentAsHtml(const Definition *scope, const MemberDef *member, const DString &doc, const DString &fileName, int lineNr)
Definition util.cpp:4617
bool readInputFile(const DString &fileName, std::string &contents, bool filter, bool isSourceCode)
read a file name fileName and optionally filter and transcode it
Definition util.cpp:4742
DString normalizeNonTemplateArgumentsInString(const DString &name, const Definition *context, const ArgumentList &formalArgs)
Definition util.cpp:3532
SrcLangExt getLanguageFromFileName(const DString &fileName, SrcLangExt defLang)
Definition util.cpp:4404
DString getFileFilter(const DString &name, bool isSourceCode)
Definition util.cpp:1052
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:1656
void initDefaultExtensionMapping()
Definition util.cpp:4331
void addHtmlExtensionIfMissing(DString &fName)
Definition util.cpp:4128
void checkBlocks(const DString &s, const DString fileName, const SelectionMarkerInfo &markerInfo)
Definition util.cpp:5731
DString createHtmlUrl(const DString &relPath, const DString &ref, bool href, bool isLocalFile, const DString &targetFileName, const DString &anchor)
Definition util.cpp:4928
DString fileToString(const DString &name, bool filter, bool isSourceCode)
Definition util.cpp:1120
DString linkToText(SrcLangExt lang, const DString &link, bool ignoreDots)
Definition util.cpp:2332
DString substituteKeywords(const DString &file, const DString &s, const KeywordSubstitutionList &keywords)
Definition util.cpp:2561
DString removeLongPathMarker(const DString &path)
Definition util.cpp:212
void extractNamespaceName(const DString &scopeName, DString &className, DString &namespaceName, bool allowEmptyClass)
Definition util.cpp:3093
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
Definition util.cpp:3299
DString stripTemplateSpecifiersFromScope(const DString &fullName, bool parentOnly, DString *pLastScopeStripped, DString scopeName, bool allowArtificial)
Definition util.cpp:3753
DString relativePathToRoot(const DString &name)
Definition util.cpp:2979
DString argListToString(const ArgumentList &al, bool useCanonicalType, bool showDefVals)
Definition util.cpp:891
DString projectLogoFile()
Definition util.cpp:2647
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:5438
DString getEncoding(const FileInfo &fi)
Definition util.cpp:4903
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:5047
int getPrefixIndex(const DString &name)
Definition util.cpp:2718
DString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
Definition util.cpp:5080
bool updateLanguageMapping(const DString &extension, const DString &language)
Definition util.cpp:4299
void stackTrace()
Definition util.cpp:4678
DString demangleCSharpGenericName(const DString &name, const DString &templArgs)
Definition util.cpp:5993
void mergeMemberOverrideOptions(MemberDefMutable *md1, MemberDefMutable *md2)
Definition util.cpp:5932
DString projectLogoSize()
Definition util.cpp:2666
DString mangleCSharpGenericName(const DString &name)
Definition util.cpp:5984
FortranFormat convertFileNameFortranParserCode(DString fn)
Definition util.cpp:5605
GetDefResult getDefs(const GetDefInput &input)
Definition util.cpp:1933
DString getDotImageExtension()
Definition util.cpp:5498
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:2755
void mergeArguments(ArgumentList &srcAl, ArgumentList &dstAl, bool forceNameOverwrite)
Definition util.cpp:1756
int getScopeFragment(const DString &s, int p, int *l)
Definition util.cpp:3865
DString stripIndentation(const DString &s, bool skipFirstLine)
Definition util.cpp:5134
int extractClassNameFromType(const DString &type, int &pos, DString &name, DString &templSpec, SrcLangExt lang)
Definition util.cpp:3447
DString determineAbsoluteIncludeName(const DString &curFile, const DString &incFileName)
Definition util.cpp:2996
DString removeAnonymousScopes(const DString &str)
Definition util.cpp:114
DString makeBaseName(const DString &name, const DString &ext)
Definition util.cpp:4171
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
Definition util.cpp:785
DString stripPath(const DString &s)
Definition util.cpp:4157
DString stripFromPath(const DString &path)
Definition util.cpp:251
DString inlineTemplateArgListToDoc(const ArgumentList &al)
Definition util.cpp:864
void writeExamples(OutputList &ol, const ExampleList &list)
Definition util.cpp:836
bool openOutputFile(const DString &outFile, std::ofstream &f)
Definition util.cpp:5505
DString stripAnonymousNamespaceScope(const DString &s)
Definition util.cpp:183
DString findExampleFilePath(const DString &file, bool &ambig)
Definition util.cpp:2518
SrcLangExt getLanguageFromCodeLang(DString &fileName)
Routine to handle the language attribute of the \code command.
Definition util.cpp:4422
DString recodeString(const DString &str, const char *fromEncoding, const char *toEncoding)
std::vector< KeywordSubstitution > KeywordSubstitutionList
Definition util.h:263
std::vector< SelectionBlock > SelectionBlockList
Definition util.h:220
void addDirPrefix(DString &fileName)
DString processMarkup(const DString &s)