Doxygen
Loading...
Searching...
No Matches
util.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2021 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//--------------------------------------------------------------------
61
62/** Abstract interface for a hyperlinked text fragment. */
64{
65 public:
67
68 virtual void writeString(std::string_view,bool) const = 0;
69 virtual void writeBreak(int indent) const = 0;
70 virtual void writeLink(const QCString &extRef,const QCString &file,
71 const QCString &anchor,std::string_view text
72 ) const = 0;
73};
74
75/** Implements TextGeneratorIntf for an OutputDocInterface stream. */
77{
78 public:
80 void writeString(std::string_view s,bool keepSpaces) const override;
81 void writeBreak(int indent) const override;
82 void writeLink(const QCString &extRef,const QCString &file,
83 const QCString &anchor,std::string_view text
84 ) const override;
85 private:
87};
88
89//--------------------------------------------------------------------
90
93
94//--------------------------------------------------------------------
95
97{
98 public:
99 // === getters for optional params
100 const Definition *scope() const { return m_scope; }
101 const FileDef *fileScope() const { return m_fileScope; }
102 const Definition *self() const { return m_self; }
103 const ArgumentList *argumentList() const { return m_al; }
104 bool autoBreak() const { return m_autoBreak; }
105 bool external() const { return m_external; }
106 bool keepSpaces() const { return m_keepSpaces; }
107 int indentLevel() const { return m_indentLevel; }
108 size_t breakThreshold() const { return m_breakThreshold; }
109
110 // === setters for optional params
112 { m_scope = scope; return *this; }
113
116
118 { m_self = self; return *this;}
119
121 { m_al = al; return *this; }
122
125
128
131
134
137
138 private:
139 // optional params with defaults
140 const Definition * m_scope = nullptr;
141 const FileDef * m_fileScope = nullptr;
142 const Definition * m_self = nullptr;
143 const ArgumentList *m_al = nullptr;
144 bool m_autoBreak = false;
145 bool m_external = true;
146 bool m_keepSpaces = false;
148 size_t m_breakThreshold = 30;
149};
150
151void linkifyText(const TextGeneratorIntf &ol,
152 const QCString &text,
153 const LinkifyTextOptions &options
154 );
155
156QCString fileToString(const QCString &name,bool filter=FALSE,bool isSourceCode=FALSE);
157
159{
160 GetDefInput(const QCString &scName,const QCString &memName,const QCString &a) :
161 scopeName(scName),memberName(memName),args(a) {}
165 bool forceEmptyScope = false;
166 const FileDef *currentFile = nullptr;
167 bool checkCV = false;
168 bool insideCode = false;
169};
170
172{
173 bool found = false;
174 const MemberDef *md=nullptr;
175 const ClassDef *cd=nullptr;
176 const FileDef *fd=nullptr;
177 const NamespaceDef *nd=nullptr;
178 const GroupDef *gd=nullptr;
179 const ConceptDef *cnd=nullptr;
180 const ModuleDef *modd=nullptr;
181};
182
183GetDefResult getDefs(const GetDefInput &input);
184
185QCString getFileFilter(const QCString &name,bool isSourceCode);
186
187bool resolveRef(/* in */ const QCString &scName,
188 /* in */ const QCString &name,
189 /* in */ bool inSeeBlock,
190 /* out */ const Definition **resContext,
191 /* out */ const MemberDef **resMember,
192 /* in */ SrcLangExt lang,
193 /* in */ bool lookForSpecializations = TRUE,
194 /* in */ const FileDef *currentFile = nullptr,
195 /* in */ bool checkScope = FALSE
196 );
197
198bool resolveLink(/* in */ const QCString &scName,
199 /* in */ const QCString &lr,
200 /* in */ bool inSeeBlock,
201 /* out */ const Definition **resContext,
202 /* out */ QCString &resAnchor,
203 /* in */ SrcLangExt lang,
204 /* in */ const QCString &prefix=QCString()
205 );
206
207void generateFileRef(OutputList &ol,const QCString &,
208 const QCString &linkTxt=QCString());
209
210void writePageRef(OutputList &ol,const QCString &cn,const QCString &mn);
211
212//QCString getCanonicalTemplateSpec(const Definition *d,const FileDef *fs,const QCString& spec);
213
214bool matchArguments2(const Definition *srcScope,const FileDef *srcFileScope,const QCString &srcReturnType,const ArgumentList *srcAl,
215 const Definition *dstScope,const FileDef *dstFileScope,const QCString &dstReturnType,const ArgumentList *dstAl,
216 bool checkCV,SrcLangExt lang
217 );
218
219void mergeArguments(ArgumentList &,ArgumentList &,bool forceNameOverwrite=FALSE);
220
221bool matchTemplateArguments(const ArgumentList &srcAl,const ArgumentList &dstAl);
222
224
226{
227 const char *name;
229};
230
231using SelectionBlockList = std::vector<SelectionBlock>;
232
234{
236 const char *beginStr;
237 size_t beginLen;
238 const char *endStr;
239 size_t endLen;
240 const char *closeStr;
241 size_t closeLen;
242};
243
244QCString selectBlocks(const QCString& s,const SelectionBlockList &blockList, const SelectionMarkerInfo &markerInfo);
245void checkBlocks(const QCString& s,const QCString fileName, const SelectionMarkerInfo &markerInfo);
246
248
249
250FileDef *findFileDef(const FileNameLinkedMap *fnMap, const QCString &n, bool &ambig);
251QCString findFilePath(const QCString &file, bool &ambig);
252
254
255EntryType guessSection(const QCString &name);
256
257inline bool isId(int c)
258{
259 return c=='_' || c>=128 || c<0 || isalnum(c) || c=='$';
260}
261inline bool isIdJS(int c)
262{
263 return c>=128 || c<0 || isalnum(c);
264}
265
266QCString removeRedundantWhiteSpace(const QCString &s);
267
268QCString inlineArgListToDoc(const ArgumentList &al);
269QCString inlineTemplateArgListToDoc(const ArgumentList &al);
270
271QCString argListToString(const ArgumentList &al,bool useCanonicalType=FALSE,bool showDefVals=TRUE);
272
273QCString tempArgListToString(const ArgumentList &al,SrcLangExt lang,bool includeDefaults=true);
274
275QCString generateMarker(int id);
276
277void writeExamples(OutputList &ol,const ExampleList &el);
278
279QCString stripAnonymousNamespaceScope(const QCString &s);
280
281QCString stripFromPath(const QCString &path);
282
283QCString stripFromIncludePath(const QCString &path);
284
285bool rightScopeMatch(const QCString &scope, const QCString &name);
286
287bool leftScopeMatch(const QCString &scope, const QCString &name);
288
290{
291 const char *keyword;
292 using GetValue = std::function<QCString()>;
293 using GetValueWithParam = std::function<QCString(const QCString &)>;
294 std::variant<GetValue,GetValueWithParam> getValueVariant;
295};
296
297using KeywordSubstitutionList = std::vector<KeywordSubstitution>;
298
299QCString substituteKeywords(const QCString &file,const QCString &s,const KeywordSubstitutionList &keywords);
300
301QCString substituteKeywords(const QCString &file,const QCString &s,const QCString &title,
302 const QCString &projName,const QCString &projNum,const QCString &projBrief);
303
304int getPrefixIndex(const QCString &name);
305
307
308QCString replaceAnonymousScopes(const QCString &s,const QCString &replacement=QCString());
309
310QCString convertNameToFile(const QCString &name,bool allowDots=FALSE,bool allowUnderscore=FALSE);
311
312QCString generateAnonymousAnchor(const QCString &fileName,int count);
313
314void extractNamespaceName(const QCString &scopeName,
315 QCString &className,QCString &namespaceName,
316 bool allowEmptyClass=FALSE);
317
319
320QCString stripScope(const QCString &name);
321
323QCString correctId(const QCString &s);
324
325QCString convertToHtml(const QCString &s,bool keepEntities=true);
326
327QCString convertToXML(const QCString &s, bool keepEntities=false, bool citeEntry = false);
328
329QCString convertToJSString(const QCString &s,bool keepEntities=false,bool singleQuotes=false);
330
332
333void addMembersToMemberGroup(/* in,out */ MemberList *ml,
334 /* in,out */ MemberGroupList *pMemberGroups,
335 /* in */ const Definition *context);
336
337int extractClassNameFromType(const QCString &type,int &pos,
338 QCString &name,QCString &templSpec,SrcLangExt=SrcLangExt::Unknown);
339
341 const QCString &name,
342 const Definition *context,
343 const ArgumentList &formalArgs);
344
346 const QCString &name,
347 const ArgumentList &formalArgs,
348 const ArgumentList *actualArgs);
349
351 bool parentOnly=TRUE,
352 QCString *lastScopeStripped=nullptr,
353 QCString scopeName=QCString(),
354 bool allowArtificial=true);
355
356QCString resolveTypeDef(const Definition *d,const QCString &name,
357 const Definition **typedefContext=nullptr);
358
359QCString mergeScopes(const QCString &leftScope,const QCString &rightScope);
360
361int getScopeFragment(const QCString &s,int p,int *l);
362
363void addRefItem(const RefItemVector &sli,
364 const QCString &key,
365 const QCString &prefix,
366 const QCString &name,
367 const QCString &title,
368 const QCString &args,
369 const Definition *scope);
370
371PageDef *addRelatedPage(const QCString &name,
372 const QCString &ptitle,
373 const QCString &doc,
374 const QCString &fileName,
375 int docLine,
376 int startLine,
377 const RefItemVector &sli = RefItemVector(),
378 GroupDef *gd=nullptr,
379 const TagInfo *tagInfo=nullptr,
380 bool xref=FALSE,
381 SrcLangExt lang=SrcLangExt::Unknown
382 );
383
384bool getCaseSenseNames();
385
386QCString escapeCharsInString(const QCString &name,bool allowDots,bool allowUnderscore=FALSE);
388
389void addGroupListToTitle(OutputList &ol,const Definition *d);
390
391QCString linkToText(SrcLangExt lang,const QCString &link,bool isFileName);
392
393bool checkExtension(const QCString &fName, const QCString &ext);
394
396
397QCString stripExtensionGeneral(const QCString &fName, const QCString &ext);
398
399QCString stripExtension(const QCString &fName);
400
401QCString makeBaseName(const QCString &name, const QCString &ext);
402
403int computeQualifiedIndex(const QCString &name);
404
405void addDirPrefix(QCString &fileName);
406
408QCString determineAbsoluteIncludeName(const QCString &curFile,const QCString &incFileName);
409
410void createSubDirs(const Dir &d);
411void clearSubDirs(const Dir &d);
412
414QCString stripPath(const QCString &s);
415
416bool containsWord(const QCString &s,const char *word);
417
418bool findAndRemoveWord(QCString &s,const char *word);
419
421
422bool updateLanguageMapping(const QCString &extension,const QCString &parser);
423SrcLangExt getLanguageFromFileName(const QCString& fileName, SrcLangExt defLang=SrcLangExt::Cpp);
428
429bool checkIfTypedef(const Definition *scope,const FileDef *fileScope,const QCString &n);
430
431QCString parseCommentAsText(const Definition *scope,const MemberDef *member,const QCString &doc,const QCString &fileName,int lineNr);
432QCString parseCommentAsHtml(const Definition *scope,const MemberDef *member,const QCString &doc,const QCString &fileName,int lineNr);
433
434bool transcodeCharacterStringToUTF8(std::string &input,const char *inputEncoding);
435
436QCString recodeString(const QCString &str,const char *fromEncoding,const char *toEncoding);
437
438void writeTypeConstraints(OutputList &ol,const Definition *d,const ArgumentList &al);
439
441
442void stackTrace();
443
444bool readInputFile(const QCString &fileName,std::string &contents,
445 bool filter=TRUE,bool isSourceCode=FALSE);
446QCString filterTitle(const QCString &title);
447
448bool patternMatch(const FileInfo &fi,const StringVector &patList);
449
450QCString externalLinkTarget(const bool parent = false);
451QCString createHtmlUrl(const QCString &relPath,
452 const QCString &ref,
453 bool href,
454 bool islocalFile,
455 const QCString &targetFileName,
456 const QCString &anchor);
457QCString externalRef(const QCString &relPath,const QCString &ref,bool href);
458int nextUtf8CharPosition(const QCString &utf8Str,uint32_t len,uint32_t startPos);
459
460void writeMarkerList(OutputList &ol,const std::string &markerText,size_t numMarkers,
461 std::function<void(size_t)> replaceFunc);
462QCString writeMarkerList(const std::string &markerText,size_t numMarkers,
463 std::function<QCString(size_t)> replaceFunc);
464
465/** Data associated with a HSV colored image. */
467{
468 const char *name;
469 unsigned short width;
470 unsigned short height;
471 const unsigned char *content;
472 const unsigned char *alpha;
473};
474
476
477bool copyFile(const QCString &src,const QCString &dest);
478
479int lineBlock(const QCString &text,const QCString &marker);
480
481bool isURL(const QCString &url);
482
483QCString correctURL(const QCString &url,const QCString &relPath);
484
486
488
489QCString stripIndentation(const QCString &s,bool skipFirstLine=false);
490void stripIndentationVerbatim(QCString &doc,const int indentationLevel, bool skipFirstLine=true);
491
493
494bool fileVisibleInIndex(const FileDef *fd,bool &genSourceFile);
495
497
499 MemberListType inListType,
500 Protection inProt,
501 MemberListType *outListType1,
502 MemberListType *outListType2
503 );
504
505bool mainPageHasTitle();
506bool openOutputFile(const QCString &outFile,std::ofstream &f);
507
508StringVector split(const std::string &s,const std::string &delimiter);
509StringVector split(const std::string &s,const reg::Ex &delimiter);
510int findIndex(const StringVector &sv,const std::string &s);
511int findIndex(const std::string &s,const reg::Ex &re);
512std::string join(const StringVector &s,const std::string &delimiter);
513
514bool recognizeFixedForm(const QCString &contents, FortranFormat format);
516
517QCString integerToAlpha(int n, bool upper=true);
518QCString integerToRoman(int n, bool upper=true);
519
520QCString getEncoding(const FileInfo &fi);
521
522inline QCString fixSpaces(const QCString &s) { return substitute(s," ","&#160;"); }
523
524QCString detab(const QCString &s,size_t &refIndent);
525
526QCString getProjectId();
527QCString projectLogoFile();
528
529void mergeMemberOverrideOptions(MemberDefMutable *md1,MemberDefMutable *md2);
530
531size_t updateColumnCount(const char *s,size_t col);
532
533QCString mangleCSharpGenericName(const QCString &name);
534QCString demangleCSharpGenericName(const QCString &name,const QCString &templArgs);
535
536QCString extractBeginRawStringDelimiter(const char *rawStart);
537QCString extractEndRawStringDelimiter(const char *rawEnd);
538
539QCString writeFileContents(const QCString &baseName,const QCString &extension,const QCString &content,bool &exists);
540void cleanupInlineGraph();
541
543
544/*! Writes an HTML entity for the current symbol and advances the input pointer.
545 * \tparam T Type of the output sink used to write encoded output.
546 * \param t Output target receiving the encoded entity or fallback text.
547 * \param s Pointer to the start of a potential HTML entity in the input text.
548 * \param mapper Callback that maps a entity symbol type to its HTML entity string.
549 * \param fallback Fallback string written when no entity mapping is available.
550 * \return Pointer to the position after the processed HTML entity in the input text.
551 */
552template<class T>
553const char *writeHtmlEntity(T& t, const char *s, HtmlEntityMapperFunc &&mapper, const char *fallback);
554
555#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
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
Wrapper class for the Entry type.
Definition types.h:856
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
This is an alternative implementation of QCString.
Definition qcstring.h:103
class that provide information about a section.
Definition section.h:58
Abstract interface for a hyperlinked text fragment.
Definition util.h:64
virtual void writeString(std::string_view, bool) const =0
virtual void writeBreak(int indent) const =0
virtual void writeLink(const QCString &extRef, const QCString &file, const QCString &anchor, std::string_view text) const =0
TextGeneratorOLImpl(OutputList &ol)
Definition util.cpp:102
OutputList & m_ol
Definition util.h:86
Class representing a regular expression.
Definition regex.h:39
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition construct.h:20
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
static void addMembersToMemberGroup()
Definition doxygen.cpp:9180
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
Definition qcstring.cpp:571
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
Data associated with a HSV colored image.
Definition util.h:467
const unsigned char * content
Definition util.h:471
unsigned short height
Definition util.h:470
const unsigned char * alpha
Definition util.h:472
unsigned short width
Definition util.h:469
const char * name
Definition util.h:468
bool forceEmptyScope
Definition util.h:165
const FileDef * currentFile
Definition util.h:166
QCString scopeName
Definition util.h:162
bool insideCode
Definition util.h:168
GetDefInput(const QCString &scName, const QCString &memName, const QCString &a)
Definition util.h:160
bool checkCV
Definition util.h:167
QCString args
Definition util.h:164
QCString memberName
Definition util.h:163
const MemberDef * md
Definition util.h:174
const ConceptDef * cnd
Definition util.h:179
const FileDef * fd
Definition util.h:176
const ModuleDef * modd
Definition util.h:180
const GroupDef * gd
Definition util.h:178
bool found
Definition util.h:173
const ClassDef * cd
Definition util.h:175
const NamespaceDef * nd
Definition util.h:177
std::function< QCString()> GetValue
Definition util.h:292
std::variant< GetValue, GetValueWithParam > getValueVariant
Definition util.h:294
std::function< QCString(const QCString &)> GetValueWithParam
Definition util.h:293
const char * keyword
Definition util.h:291
LinkifyTextOptions & setScope(const Definition *scope)
Definition util.h:111
size_t m_breakThreshold
Definition util.h:148
const FileDef * m_fileScope
Definition util.h:141
LinkifyTextOptions & setAutoBreak(bool autoBreak)
Definition util.h:123
const Definition * m_self
Definition util.h:142
LinkifyTextOptions & setSelf(const Definition *self)
Definition util.h:117
int indentLevel() const
Definition util.h:107
LinkifyTextOptions & setFileScope(const FileDef *fileScope)
Definition util.h:114
bool external() const
Definition util.h:105
const ArgumentList * m_al
Definition util.h:143
LinkifyTextOptions & setIndentLevel(int indentLevel)
Definition util.h:132
const ArgumentList * argumentList() const
Definition util.h:103
LinkifyTextOptions & setArgumentList(const ArgumentList *al)
Definition util.h:120
const Definition * scope() const
Definition util.h:100
const Definition * self() const
Definition util.h:102
LinkifyTextOptions & setKeepSpaces(bool keepSpaces)
Definition util.h:129
bool m_keepSpaces
Definition util.h:146
size_t breakThreshold() const
Definition util.h:108
bool keepSpaces() const
Definition util.h:106
const FileDef * fileScope() const
Definition util.h:101
const Definition * m_scope
Definition util.h:140
LinkifyTextOptions & setExternal(bool external)
Definition util.h:126
bool autoBreak() const
Definition util.h:104
LinkifyTextOptions & setBreakThreshold(size_t breakThreshold)
Definition util.h:135
const char * name
Definition util.h:227
bool enabled
Definition util.h:228
size_t beginLen
Definition util.h:237
const char * closeStr
Definition util.h:240
const char * beginStr
Definition util.h:236
size_t closeLen
Definition util.h:241
const char * endStr
Definition util.h:238
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
QCString writeFileContents(const QCString &baseName, const QCString &extension, const QCString &content, bool &exists)
Thread-safe function to write a string to a file.
Definition util.cpp:6981
QCString externalRef(const QCString &relPath, const QCString &ref, bool href)
Definition util.cpp:5797
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const QCString &srcReturnType, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const QCString &dstReturnType, const ArgumentList *dstAl, bool checkCV, SrcLangExt lang)
Definition util.cpp:2031
QCString removeRedundantWhiteSpace(const QCString &s)
Definition util.cpp:567
QCString convertNameToFile(const QCString &name, bool allowDots=FALSE, bool allowUnderscore=FALSE)
Definition util.cpp:3525
QCString extractDirection(QCString &docs)
Strip the direction part from docs and return it as a string in canonical form.
Definition util.cpp:6200
QCString mergeScopes(const QCString &leftScope, const QCString &rightScope)
Definition util.cpp:4619
QCString findFilePath(const QCString &file, bool &ambig)
Definition util.cpp:2996
QCString normalizeNonTemplateArgumentsInString(const QCString &name, const Definition *context, const ArgumentList &formalArgs)
Definition util.cpp:4325
QCString linkToText(SrcLangExt lang, const QCString &link, bool isFileName)
Definition util.cpp:2708
QCString recodeString(const QCString &str, const char *fromEncoding, const char *toEncoding)
size_t updateColumnCount(const char *s, size_t col)
Definition util.cpp:6902
QCString substituteClassNames(const QCString &s)
void extractNamespaceName(const QCString &scopeName, QCString &className, QCString &namespaceName, bool allowEmptyClass=FALSE)
Definition util.cpp:3718
bool findAndRemoveWord(QCString &s, const char *word)
removes occurrences of whole word from sentence, while keeps internal spaces and reducing multiple se...
Definition util.cpp:5011
bool mainPageHasTitle()
Definition util.cpp:6306
QCString insertTemplateSpecifierInScope(const QCString &scope, const QCString &templ)
Definition util.cpp:3767
bool protectionLevelVisible(Protection prot)
Definition util.cpp:5959
QCString convertCharEntitiesToUTF8(const QCString &s)
Definition util.cpp:4072
QCString generateAnonymousAnchor(const QCString &fileName, int count)
Definition util.cpp:3579
std::vector< KeywordSubstitution > KeywordSubstitutionList
Definition util.h:297
bool readInputFile(const QCString &fileName, std::string &contents, bool filter=TRUE, bool isSourceCode=FALSE)
read a file name fileName and optionally filter and transcode it
Definition util.cpp:5574
QCString parseCommentAsHtml(const Definition *scope, const MemberDef *member, const QCString &doc, const QCString &fileName, int lineNr)
Definition util.cpp:5449
bool matchTemplateArguments(const ArgumentList &srcAl, const ArgumentList &dstAl)
Definition util.cpp:2275
int lineBlock(const QCString &text, const QCString &marker)
Returns the line number of the line following the line with the marker.
Definition util.cpp:5892
void addCodeOnlyMappings()
Definition util.cpp:5229
std::string join(const StringVector &s, const std::string &delimiter)
create a string where the string in the vector are joined by the given delimiter
Definition util.cpp:6691
void checkBlocks(const QCString &s, const QCString fileName, const SelectionMarkerInfo &markerInfo)
Definition util.cpp:6544
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
Definition util.cpp:5483
bool leftScopeMatch(const QCString &scope, const QCString &name)
Definition util.cpp:881
QCString correctURL(const QCString &url, const QCString &relPath)
Corrects URL url according to the relative path relPath.
Definition util.cpp:5947
QCString stripAnonymousNamespaceScope(const QCString &s)
Definition util.cpp:230
QCString stripPath(const QCString &s)
Definition util.cpp:4973
QCString stripFromIncludePath(const QCString &path)
Definition util.cpp:329
QCString fixSpaces(const QCString &s)
Definition util.h:522
QCString removeEmptyLines(const QCString &s)
Definition util.cpp:6608
QCString extractEndRawStringDelimiter(const char *rawEnd)
Definition util.cpp:6964
bool checkIfTypedef(const Definition *scope, const FileDef *fileScope, const QCString &n)
Definition util.cpp:5339
bool transcodeCharacterStringToUTF8(std::string &input, const char *inputEncoding)
Definition util.cpp:1456
int nextUtf8CharPosition(const QCString &utf8Str, uint32_t len, uint32_t startPos)
bool patternMatch(const FileInfo &fi, const StringVector &patList)
Definition util.cpp:5728
QCString generateMarker(int id)
Definition util.cpp:279
QCString selectBlocks(const QCString &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:6431
QCString stripIndentation(const QCString &s, bool skipFirstLine=false)
Definition util.cpp:5971
void stripIndentationVerbatim(QCString &doc, const int indentationLevel, bool skipFirstLine=true)
Definition util.cpp:6060
bool recognizeFixedForm(const QCString &contents, FortranFormat format)
Definition util.cpp:6365
bool openOutputFile(const QCString &outFile, std::ofstream &f)
Definition util.cpp:6318
QCString substituteKeywords(const QCString &file, const QCString &s, const KeywordSubstitutionList &keywords)
Definition util.cpp:3075
int extractClassNameFromType(const QCString &type, int &pos, QCString &name, QCString &templSpec, SrcLangExt=SrcLangExt::Unknown)
Definition util.cpp:4240
std::vector< SelectionBlock > SelectionBlockList
Definition util.h:231
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
Definition util.cpp:4849
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:4936
QCString relativePathToRoot(const QCString &name)
Definition util.cpp:3600
QCString substituteTemplateArgumentsInString(const QCString &name, const ArgumentList &formalArgs, const ArgumentList *actualArgs)
Definition util.cpp:4390
void generateFileRef(OutputList &ol, const QCString &, const QCString &linkTxt=QCString())
Definition util.cpp:2876
SrcLangExt getLanguageFromCodeLang(QCString &fileName)
Routine to handle the language attribute of the \code command.
Definition util.cpp:5253
QCString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefaults=true)
Definition util.cpp:1299
void writePageRef(OutputList &ol, const QCString &cn, const QCString &mn)
Definition util.cpp:259
void clearSubDirs(const Dir &d)
Definition util.cpp:3688
QCString showFileDefMatches(const FileNameLinkedMap *fnMap, const QCString &n)
Definition util.cpp:3039
QCString demangleCSharpGenericName(const QCString &name, const QCString &templArgs)
Definition util.cpp:6945
QCString stripExtensionGeneral(const QCString &fName, const QCString &ext)
Definition util.cpp:4958
QCString filterTitle(const QCString &title)
Definition util.cpp:5654
QCString unescapeCharsInString(const QCString &s)
Definition util.cpp:3437
void createSubDirs(const Dir &d)
Definition util.cpp:3661
bool fileVisibleInIndex(const FileDef *fd, bool &genSourceFile)
Definition util.cpp:6111
QCString stripScope(const QCString &name)
Definition util.cpp:3800
QCString replaceAnonymousScopes(const QCString &s, const QCString &replacement=QCString())
Definition util.cpp:218
QCString externalLinkTarget(const bool parent=false)
Definition util.cpp:5749
bool checkExtension(const QCString &fName, const QCString &ext)
Definition util.cpp:4941
bool isURL(const QCString &url)
Checks whether the given url starts with a supported protocol.
Definition util.cpp:5935
QCString inlineTemplateArgListToDoc(const ArgumentList &al)
Definition util.cpp:1227
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang=SrcLangExt::Cpp)
Definition util.cpp:5235
bool updateLanguageMapping(const QCString &extension, const QCString &parser)
Definition util.cpp:5130
void addDirPrefix(QCString &fileName)
int computeQualifiedIndex(const QCString &name)
Return the index of the last :: in the string name that is still before the first <.
Definition util.cpp:6846
QCString stripExtension(const QCString &fName)
Definition util.cpp:4968
void initDefaultExtensionMapping()
Definition util.cpp:5162
QCString parseCommentAsText(const Definition *scope, const MemberDef *member, const QCString &doc, const QCString &fileName, int lineNr)
Definition util.cpp:5393
QCString integerToAlpha(int n, bool upper=true)
Definition util.cpp:6704
PageDef * addRelatedPage(const QCString &name, const QCString &ptitle, const QCString &doc, const QCString &fileName, int docLine, int startLine, const RefItemVector &sli=RefItemVector(), GroupDef *gd=nullptr, const TagInfo *tagInfo=nullptr, bool xref=FALSE, SrcLangExt lang=SrcLangExt::Unknown)
Definition util.cpp:4719
QCString integerToRoman(int n, bool upper=true)
Definition util.cpp:6720
QCString langToString(SrcLangExt lang)
Returns a string representation of lang.
Definition util.cpp:5913
QCString determineAbsoluteIncludeName(const QCString &curFile, const QCString &incFileName)
Definition util.cpp:3621
QCString detab(const QCString &s, size_t &refIndent)
Definition util.cpp:6742
QCString convertToHtml(const QCString &s, bool keepEntities=true)
Definition util.cpp:3988
EntryType guessSection(const QCString &name)
Definition util.cpp:338
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:6251
bool resolveLink(const QCString &scName, const QCString &lr, bool inSeeBlock, const Definition **resContext, QCString &resAnchor, SrcLangExt lang, const QCString &prefix=QCString())
Definition util.cpp:2734
void linkifyText(const TextGeneratorIntf &ol, const QCString &text, const LinkifyTextOptions &options)
Definition util.cpp:893
QCString fileToString(const QCString &name, bool filter=FALSE, bool isSourceCode=FALSE)
Definition util.cpp:1494
int findIndex(const StringVector &sv, const std::string &s)
find the index of a string in a vector of strings, returns -1 if the string could not be found
Definition util.cpp:6676
QCString removeAnonymousScopes(const QCString &s)
Definition util.cpp:161
std::function< QCString(HtmlEntityMapper::SymType)> HtmlEntityMapperFunc
Definition util.h:542
QCString removeLongPathMarker(QCString path)
Definition util.cpp:287
void writeExamples(OutputList &ol, const ExampleList &el)
Definition util.cpp:1175
QCString correctId(const QCString &s)
Definition util.cpp:3926
void stackTrace()
Definition util.cpp:5510
void mergeMemberOverrideOptions(MemberDefMutable *md1, MemberDefMutable *md2)
Definition util.cpp:6883
bool getCaseSenseNames()
Definition util.cpp:3341
QCString getDotImageExtension()
Definition util.cpp:6311
QCString createHtmlUrl(const QCString &relPath, const QCString &ref, bool href, bool islocalFile, const QCString &targetFileName, const QCString &anchor)
Definition util.cpp:5760
QCString mangleCSharpGenericName(const QCString &name)
Definition util.cpp:6935
GetDefResult getDefs(const GetDefInput &input)
Definition util.cpp:2308
QCString makeBaseName(const QCString &name, const QCString &ext)
Definition util.cpp:4989
QCString getProjectId()
Definition util.cpp:6833
QCString projectLogoFile()
Definition util.cpp:3161
QCString escapeCharsInString(const QCString &name, bool allowDots, bool allowUnderscore=FALSE)
Definition util.cpp:3350
StringVector split(const std::string &s, const std::string &delimiter)
split input string s by string delimiter delimiter.
Definition util.cpp:6640
QCString getEncoding(const FileInfo &fi)
Definition util.cpp:5735
QCString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope=FALSE)
Returns the scope separator to use given the programming language lang.
Definition util.cpp:5919
QCString stripFromPath(const QCString &path)
Definition util.cpp:321
FortranFormat convertFileNameFortranParserCode(QCString fn)
Definition util.cpp:6418
QCString stripLeadingAndTrailingEmptyLines(const QCString &s, int &docLine)
Special version of QCString::stripWhiteSpace() that only strips completely blank lines.
Definition util.cpp:5054
bool copyFile(const QCString &src, const QCString &dest)
Copies the contents of file with name src to the newly created file with name dest.
Definition util.cpp:5879
QCString stripTemplateSpecifiersFromScope(const QCString &fullName, bool parentOnly=TRUE, QCString *lastScopeStripped=nullptr, QCString scopeName=QCString(), bool allowArtificial=true)
Definition util.cpp:4552
QCString getFileFilter(const QCString &name, bool isSourceCode)
Definition util.cpp:1422
QCString convertToJSString(const QCString &s, bool keepEntities=false, bool singleQuotes=false)
Definition util.cpp:4048
QCString extractBeginRawStringDelimiter(const char *rawStart)
Definition util.cpp:6956
QCString argListToString(const ArgumentList &al, bool useCanonicalType=FALSE, bool showDefVals=TRUE)
Definition util.cpp:1254
bool isIdJS(int c)
Definition util.h:261
QCString getOverloadDocs()
Definition util.cpp:4114
void cleanupInlineGraph()
Definition util.cpp:7012
bool containsWord(const QCString &s, const char *word)
returns TRUE iff string s contains word w
Definition util.cpp:4995
QCString convertToXML(const QCString &s, bool keepEntities=false, bool citeEntry=false)
Definition util.cpp:3933
bool resolveRef(const QCString &scName, const QCString &name, bool inSeeBlock, const Definition **resContext, const MemberDef **resMember, SrcLangExt lang, bool lookForSpecializations=TRUE, const FileDef *currentFile=nullptr, bool checkScope=FALSE)
Definition util.cpp:2452
int getPrefixIndex(const QCString &name)
Definition util.cpp:3252
bool rightScopeMatch(const QCString &scope, const QCString &name)
Definition util.cpp:870
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
Definition util.cpp:1124
bool isId(int c)
Definition util.h:257
QCString inlineArgListToDoc(const ArgumentList &al)
Definition util.cpp:1204
QCString resolveTypeDef(const Definition *d, const QCString &name, const Definition **typedefContext=nullptr)
Definition util.cpp:373
const char * writeHtmlEntity(T &t, const char *s, HtmlEntityMapperFunc &&mapper, const char *fallback)
Definition util.cpp:7034
QCString replaceColorMarkers(const QCString &str)
Replaces any markers of the form ##AA in input string str by new markers of the form #AABBCC,...
Definition util.cpp:5828
QCString getFileNameExtension(const QCString &fn)
Definition util.cpp:5277
void mergeArguments(ArgumentList &, ArgumentList &, bool forceNameOverwrite=FALSE)
Definition util.cpp:2131
QCString convertToId(const QCString &s)
Definition util.cpp:3893
QCString processMarkup(const QCString &s)
FileDef * findFileDef(const FileNameLinkedMap *fnMap, const QCString &n, bool &ambig)
Definition util.cpp:2904
int getScopeFragment(const QCString &s, int p, int *l)
Definition util.cpp:4664
void addHtmlExtensionIfMissing(QCString &fName)
Definition util.cpp:4946