Doxygen
qcstring.h 文件参考
#include <string>
#include <algorithm>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cstdint>
#include <ostream>
#include "utf8.h"
+ qcstring.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

class  QCString
 This is an alternative implementation of QCString. 更多...
 

宏定义

#define FALSE   false
 
#define TRUE   true
 
#define ASSERT(x)
 
#define qsnprintf   snprintf
 
#define HAS_IMPLICIT_CAST_TO_PLAIN_C_STRING   0
 
#define HAS_CHARACTER_APPEND_OPERATOR   1
 
#define HAD_PLUS_OPERATOR_FOR_CHAR   0
 

类型定义

typedef unsigned char uchar
 
typedef unsigned short ushort
 
typedef unsigned uint
 
typedef unsigned long ulong
 
typedef int64_t int64
 
typedef uint64_t uint64
 

函数

void * qmemmove (void *dst, const void *src, size_t len)
 
char * qstrdup (const char *)
 
uint cstrlen (const char *str)
 
uint qstrlen (const char *str)
 
char * cstrcpy (char *dst, const char *src)
 
char * qstrcpy (char *dst, const char *src)
 
char * qstrncpy (char *dst, const char *src, size_t len)
 
int cstrcmp (const char *str1, const char *str2)
 
bool qisempty (const char *s)
 
int qstrcmp (const char *str1, const char *str2)
 
int cstrncmp (const char *str1, const char *str2, size_t len)
 
int qstrncmp (const char *str1, const char *str2, size_t len)
 
bool qisspace (char c)
 
int qstricmp (const char *str1, const char *str2)
 
int qstrnicmp (const char *str1, const char *str2, size_t len)
 
bool operator== (const QCString &s1, const QCString &s2)
 
bool operator== (const QCString &s1, const char *s2)
 
bool operator== (const char *s1, const QCString &s2)
 
bool operator!= (const QCString &s1, const QCString &s2)
 
bool operator!= (const QCString &s1, const char *s2)
 
bool operator!= (const char *s1, const QCString &s2)
 
bool operator< (const QCString &s1, const QCString &s2)
 
bool operator< (const QCString &s1, const char *s2)
 
bool operator< (const char *s1, const QCString &s2)
 
bool operator<= (const QCString &s1, const char *s2)
 
bool operator<= (const char *s1, const QCString &s2)
 
bool operator> (const QCString &s1, const char *s2)
 
bool operator> (const char *s1, const QCString &s2)
 
bool operator>= (const QCString &s1, const char *s2)
 
bool operator>= (const char *s1, const QCString &s2)
 
QCString operator+ (const QCString &s1, const QCString &s2)
 
QCString operator+ (const QCString &s1, const char *s2)
 
QCString operator+ (const char *s1, const QCString &s2)
 
const char * qPrint (const char *s)
 
const char * qPrint (const QCString &s)
 
const char * qPrint (const std::string &s)
 
std::string toStdString (const QCString &s)
 
int qstricmp (const QCString &str1, const char *str2)
 
int qstricmp (const char *str1, const QCString &str2)
 
int qstricmp (const QCString &str1, const QCString &str2)
 
int qstrnicmp (const QCString &str1, const char *str2, size_t len)
 
int qstrnicmp (const char *str1, const QCString &str2, size_t len)
 
int qstrnicmp (const QCString &str1, const QCString &str2, size_t len)
 
QCString substitute (const QCString &str, const QCString &find, const QCString &replace)
 substitute all occurrences of src in s by dst 更多...
 
QCString substitute (const QCString &str, const char *find, const char *replace)
 
QCString substitute (const QCString &s, const QCString &src, const QCString &dst, int skip_seq)
 substitute all occurrences of src in s by dst, but skip each consecutive sequence of src where the number consecutive src matches skip_seq; if skip_seq is negative, skip any number of consecutive src 更多...
 
QCString substitute (const QCString &s, char srcChar, char dstChar)
 
std::ostream & operator<< (std::ostream &os, const QCString &s)
 

宏定义说明

◆ ASSERT

#define ASSERT (   x)
值:
if ( !(x) )\
fprintf(stderr,"ASSERT: \"%s\" in %s (%d)\n",#x,__FILE__,__LINE__)

在文件 qcstring.h44 行定义.

◆ FALSE

#define FALSE   false

在文件 qcstring.h33 行定义.

◆ HAD_PLUS_OPERATOR_FOR_CHAR

#define HAD_PLUS_OPERATOR_FOR_CHAR   0

在文件 qcstring.h571 行定义.

◆ HAS_CHARACTER_APPEND_OPERATOR

#define HAS_CHARACTER_APPEND_OPERATOR   1

在文件 qcstring.h466 行定义.

◆ HAS_IMPLICIT_CAST_TO_PLAIN_C_STRING

#define HAS_IMPLICIT_CAST_TO_PLAIN_C_STRING   0

在文件 qcstring.h433 行定义.

◆ qsnprintf

#define qsnprintf   snprintf

在文件 qcstring.h57 行定义.

◆ TRUE

#define TRUE   true

在文件 qcstring.h36 行定义.

类型定义说明

◆ int64

typedef int64_t int64

在文件 qcstring.h42 行定义.

◆ uchar

typedef unsigned char uchar

在文件 qcstring.h38 行定义.

◆ uint

typedef unsigned uint

在文件 qcstring.h40 行定义.

◆ uint64

typedef uint64_t uint64

在文件 qcstring.h43 行定义.

◆ ulong

typedef unsigned long ulong

在文件 qcstring.h41 行定义.

◆ ushort

typedef unsigned short ushort

在文件 qcstring.h39 行定义.

函数说明

◆ cstrcmp()

int cstrcmp ( const char *  str1,
const char *  str2 
)
inline

在文件 qcstring.h76 行定义.

77 { return strcmp(str1,str2); }

◆ cstrcpy()

char* cstrcpy ( char *  dst,
const char *  src 
)
inline

在文件 qcstring.h68 行定义.

69 { return strcpy(dst,src); }

◆ cstrlen()

uint cstrlen ( const char *  str)
inline

在文件 qcstring.h62 行定义.

63 { return (uint)strlen(str); }

◆ cstrncmp()

int cstrncmp ( const char *  str1,
const char *  str2,
size_t  len 
)
inline

在文件 qcstring.h88 行定义.

89 { return strncmp(str1,str2,len); }

◆ operator!=() [1/3]

bool operator!= ( const char *  s1,
const QCString s2 
)
inline

在文件 qcstring.h521 行定义.

522 { return qstrcmp(s1,s2.data()) != 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator!=() [2/3]

bool operator!= ( const QCString s1,
const char *  s2 
)
inline

在文件 qcstring.h518 行定义.

519 { return qstrcmp(s1.data(),s2) != 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator!=() [3/3]

bool operator!= ( const QCString s1,
const QCString s2 
)
inline

在文件 qcstring.h515 行定义.

516 { return qstrcmp(s1.data(),s2.data()) != 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator+() [1/3]

QCString operator+ ( const char *  s1,
const QCString s2 
)
inline

在文件 qcstring.h564 行定义.

565 {
566  QCString tmp(s1);
567  tmp.append(s2);
568  return tmp;
569 }

引用了 QCString::append().

◆ operator+() [2/3]

QCString operator+ ( const QCString s1,
const char *  s2 
)
inline

在文件 qcstring.h557 行定义.

558 {
559  QCString tmp(s1);
560  tmp.append(s2);
561  return tmp;
562 }

引用了 QCString::append().

◆ operator+() [3/3]

QCString operator+ ( const QCString s1,
const QCString s2 
)
inline

在文件 qcstring.h551 行定义.

552 {
553  return QCString(s1.str()+s2.str());
554 }

引用了 QCString::str().

◆ operator<() [1/3]

bool operator< ( const char *  s1,
const QCString s2 
)
inline

在文件 qcstring.h530 行定义.

531 { return qstrcmp(s1,s2.data()) < 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator<() [2/3]

bool operator< ( const QCString s1,
const char *  s2 
)
inline

在文件 qcstring.h527 行定义.

528 { return qstrcmp(s1.data(),s2) < 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator<() [3/3]

bool operator< ( const QCString s1,
const QCString s2 
)
inline

在文件 qcstring.h524 行定义.

525 { return qstrcmp(s1.data(),s2.data()) < 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator<<()

std::ostream& operator<< ( std::ostream &  os,
const QCString s 
)
inline

在文件 qcstring.h656 行定义.

657 {
658  os << s.str();
659  return os;
660 }

引用了 QCString::str().

◆ operator<=() [1/2]

bool operator<= ( const char *  s1,
const QCString s2 
)
inline

在文件 qcstring.h536 行定义.

537 { return qstrcmp(s1,s2.data()) <= 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator<=() [2/2]

bool operator<= ( const QCString s1,
const char *  s2 
)
inline

在文件 qcstring.h533 行定义.

534 { return qstrcmp(s1.data(),s2) <= 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator==() [1/3]

bool operator== ( const char *  s1,
const QCString s2 
)
inline

在文件 qcstring.h512 行定义.

513 { return qstrcmp(s1,s2.data()) == 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator==() [2/3]

bool operator== ( const QCString s1,
const char *  s2 
)
inline

在文件 qcstring.h509 行定义.

510 { return qstrcmp(s1.data(),s2) == 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator==() [3/3]

bool operator== ( const QCString s1,
const QCString s2 
)
inline

在文件 qcstring.h506 行定义.

507 { return qstrcmp(s1.data(),s2.data()) == 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator>() [1/2]

bool operator> ( const char *  s1,
const QCString s2 
)
inline

在文件 qcstring.h542 行定义.

543 { return qstrcmp(s1,s2.data()) > 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator>() [2/2]

bool operator> ( const QCString s1,
const char *  s2 
)
inline

在文件 qcstring.h539 行定义.

540 { return qstrcmp(s1.data(),s2) > 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator>=() [1/2]

bool operator>= ( const char *  s1,
const QCString s2 
)
inline

在文件 qcstring.h548 行定义.

549 { return qstrcmp(s1,s2.data()) >= 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ operator>=() [2/2]

bool operator>= ( const QCString s1,
const char *  s2 
)
inline

在文件 qcstring.h545 行定义.

546 { return qstrcmp(s1.data(),s2) >= 0; }

引用了 QCString::data() , 以及 qstrcmp().

◆ qisempty()

bool qisempty ( const char *  s)
inline

在文件 qcstring.h79 行定义.

80 { return s==0 || *s==0; }

被这些函数引用 qstrcmp() , 以及 qstrncmp().

◆ qisspace()

bool qisspace ( char  c)
inline

在文件 qcstring.h97 行定义.

98 { return c==' ' || c=='\t' || c=='\n' || c=='\r'; }

被这些函数引用 QCString::removeWhiteSpace(), QCString::simplifyWhiteSpace(), QCString::stripWhiteSpace(), QCString::toLong(), QCString::toUInt64() , 以及 QCString::toULong().

◆ qmemmove()

void* qmemmove ( void *  dst,
const void *  src,
size_t  len 
)

在文件 qcstring.cpp397 行定义.

398 {
399  char *d;
400  char *s;
401  if ( dst > src ) {
402  d = (char *)dst + len - 1;
403  s = (char *)src + len - 1;
404  while ( len-- )
405  *d-- = *s--;
406  } else if ( dst < src ) {
407  d = (char *)dst;
408  s = (char *)src;
409  while ( len-- )
410  *d++ = *s++;
411  }
412  return dst;
413 }

被这些函数引用 BufStr::at().

◆ qPrint() [1/3]

const char* qPrint ( const char *  s)
inline

在文件 qcstring.h589 行定义.

590 {
591  if (s) return s; else return "";
592 }

被这些函数引用 MemberDefImpl::_writeCallerGraph(), MemberDefImpl::_writeCallGraph(), FileDefImpl::acquireFileVersion(), addClassToContext(), addConceptToContext(), TagFileParser::addDocAnchors(), addGroupToGroups(), addIncludeFile(), addLocalObjCMethod(), addMemberDocs(), addMemberFunction(), addMemberToGroups(), addRelatedPage(), addVariableToClass(), addVariableToFile(), adjustConfiguration(), ExprAstFilter::apply(), buildExampleList(), buildFileList(), buildGroupListFiltered(), DocParser::checkArgumentName(), checkPageRelations(), checkPngResult(), DocParser::checkRetvalName(), DocParser::checkUnOrMultipleDocumentedParams(), classInheritedProtectionLevel(), TemplateContextImpl::closeSubIndex(), computeClassRelations(), computePageRelations(), computeTemplateClassRelations(), convertMapFile(), DotFilePatcher::convertMapFile(), copyExtraFiles(), copyFile(), copyLatexStyleSheet(), copyLogo(), ResourceMgr::copyResourceAs(), copyStyleSheet(), MemberList::countDecMembers(), createOutputDirectory(), PerlModGenerator::createOutputFile(), HtmlHelp::Private::createProjectFile(), DotManager::createRunner(), createSubDirs(), DocSymbol::decodeSymbol(), DocParser::defaultHandleTitleAndSize(), DocParser::defaultHandleToken(), MemberDefImpl::detectUndocumentedParams(), DocAnchor::DocAnchor(), DocCite::DocCite(), DocEmoji::DocEmoji(), DocHtmlCaption::DocHtmlCaption(), DocLink::DocLink(), DocRef::DocRef(), TagFileParser::dump(), elemIsVisible(), encodeForOutput(), TagFileParser::endElement(), DocGroup::enterCompound(), TagFileParser::error(), DocParser::errorHandleDefaultToken(), fileToString(), filterMemberDocumentation(), DocParser::findAndCopyImage(), findClassRelation(), findDefineDocumentation(), findDirDocumentation(), findEnumDocumentation(), findGlobalMember(), findInheritedTemplateInstances(), FlowChart::findLabel(), findMainPage(), findMember(), findTemplateInstanceRelation(), findUsedClassesForClass(), findUsedTemplateInstances(), findUsingDeclarations(), VhdlDocGen::findVhdlClass(), generateClassList(), generateConceptDocs(), generateConfigFile(), generateDEF(), generateExampleDocs(), generateFileDocs(), generateFileSources(), FormulaManager::generateImages(), generateNamespaceClassDocs(), generateNamespaceConceptDocs(), generateNamespaceDocs(), generateOutput(), CitationManager::generatePage(), generatePageDocs(), generateTemplateFiles(), generateXML(), generateXMLForClass(), generateXMLForConcept(), generateXMLForDir(), generateXMLForFile(), generateXMLForGroup(), generateXMLForNamespace(), generateXMLForPage(), TemplateContextImpl::get(), DotGfxHierarchyTable::getBaseName(), getCurrentDateTime(), FilterCache::getFileContents(), getMscImageMapFromFile(), ExpressionParser::getNextToken(), MemberDefImpl::getOutputFileBase(), getResolvedNamespace(), DocParser::handleAnchor(), DocPara::handleCite(), DocPara::handleCommand(), DocPara::handleEmoji(), DocPara::handleFile(), DocPara::handleHtmlEndTag(), DocPara::handleHtmlStartTag(), DocPara::handleImage(), DocPara::handleInclude(), DocPara::handleIncludeOperator(), DocParser::handleInternalRef(), DocPara::handleLink(), DocParser::handleLinkedWord(), DocPara::handleRef(), DocPara::handleSection(), DocParser::handleStyleArgument(), DocParser::handleStyleLeave(), DocParser::handleUnclosedStyleCommands(), RTFGenerator::init(), ManGenerator::init(), HtmlGenerator::init(), LatexGenerator::init(), DocbookGenerator::init(), EclipseHelp::initialize(), HtmlHelp::initialize(), PlantumlManager::insert(), CitationManager::insertCrossReferencesForBibFile(), NamespaceDefImpl::insertMember(), GroupDefImpl::insertMember(), FileDefImpl::insertMember(), ClassDefImpl::insertTemplateInstance(), ClassDefImpl::internalInsertMember(), ClassDefImpl::isBaseClass(), VhdlDocGen::isSubClass(), ClassDefImpl::isSubClass(), TemplateEngine::Private::loadByName(), loadExtensions(), Htags::loadFilemap(), loadStylesheet(), minClassDistance(), TemplateContextImpl::openSubIndex(), CondParser::parse(), DocInclude::parse(), DocIncOperator::parse(), DocIndexEntry::parse(), DocDotFile::parse(), DocMscFile::parse(), DocDiaFile::parse(), DocLink::parse(), DocHRef::parse(), DocHtmlHeader::parse(), DocHtmlDescTitle::parse(), DocHtmlDescList::parse(), DocSection::parse(), DocSecRefItem::parse(), DocSecRefList::parse(), DocHtmlList::parse(), DocPara::parse(), DocParamList::parse(), DocHtmlCaption::parse(), DocHtmlRow::parse(), DocHtmlTable::parse(), DocText::parse(), DocRoot::parse(), TemplateParser::parse(), parseFile(), ExpressionParser::parseFilter(), ExpressionParser::parseIdentifier(), ExpressionParser::parseIdentifierOptionalArgs(), MarkdownOutlineParser::parseInput(), parseInput(), ExpressionParser::parseLiteral(), DocHtmlList::parseXml(), DocHtmlRow::parseXml(), DotGraph::prepareDotFile(), RTFGenerator::preProcessFileInplace(), PrintDocVisitor::PrintDocVisitor(), TemplateEngine::Private::printIncludeContext(), printlex(), printNavTree(), FlowChart::printNode(), Markdown::process(), DocParser::processCopyDoc(), Markdown::processSpecialCommand(), DotRunner::readBoundingBox(), readCodeFragment(), readConfiguration(), readDir(), readFileOrDirectory(), FormulaManager::readFormulas(), readInputFile(), readTagFile(), DocParser::readTextFileByName(), TemplateNodeFor::render(), TemplateNodeExtend::render(), TemplateNodeInclude::render(), TemplateNodeCreate::render(), TemplateNodeTree::renderChildren(), DotNode::renumberNodes(), resetPDFSize(), ExprAstVariable::resolve(), resolveClassNestingRelations(), rtfFormatBmkStr(), DotFilePatcher::run(), DotRunner::run(), runPlantumlContent(), TemplateContextImpl::setEncoding(), LayoutParser::startElement(), TagFileParser::startElement(), LayoutParser::startNavEntry(), OutputGenerator::startPlainFile(), Portable::system(), TemplateNodeBlock::TemplateNodeBlock(), TemplateNodeCloseSubIndex::TemplateNodeCloseSubIndex(), TemplateNodeCreate::TemplateNodeCreate(), TemplateNodeCycle::TemplateNodeCycle(), TemplateNodeEncoding::TemplateNodeEncoding(), TemplateNodeExtend::TemplateNodeExtend(), TemplateNodeFor::TemplateNodeFor(), TemplateNodeIf::TemplateNodeIf(), TemplateNodeInclude::TemplateNodeInclude(), TemplateNodeIndexEntry::TemplateNodeIndexEntry(), TemplateNodeMarkers::TemplateNodeMarkers(), TemplateNodeOpenSubIndex::TemplateNodeOpenSubIndex(), TemplateNodeRange::TemplateNodeRange(), TemplateNodeRepeat::TemplateNodeRepeat(), TemplateNodeResource::TemplateNodeResource(), TemplateNodeSet::TemplateNodeSet(), TemplateNodeTree::TemplateNodeTree(), TemplateNodeVariable::TemplateNodeVariable(), TemplateNodeWith::TemplateNodeWith(), testRTFOutput(), Trace::Trace(), Trace::trace(), transcodeCharacterBuffer(), transcodeCharacterStringToUTF8(), updateLanguageMapping(), LayoutNavEntry::url(), usage(), version(), MemberDefImpl::virtualness(), HtmlDocVisitor::visit(), DocbookDocVisitor::visit(), LatexDocVisitor::visit(), RTFDocVisitor::visit(), PrintDocVisitor::visitPost(), PerlModDocVisitor::visitPre(), PrintDocVisitor::visitPre(), MemberDefImpl::warnIfUndocumented(), MemberDefImpl::warnIfUndocumentedParams(), SearchIndexExternal::write(), ResourceMgr::writeCategory(), writeCombineScript(), writeDefaultLayoutFile(), writeDiaGraphFromFile(), DirDefImpl::writeDirectoryGraph(), writeDirTreeNode(), ClassDefImpl::writeDocumentationForInnerClasses(), writeDotGraphFromFile(), writeDotImageMapFromFile(), writeExceptionListImpl(), HtmlGenerator::writeExternalSearchPage(), ClassDiagram::writeFigure(), FlowChart::writeFlowChart(), DotGfxHierarchyTable::writeGraph(), GroupDefImpl::writeGroupGraph(), writeGroupTreeNode(), FileDefImpl::writeIncludedByGraph(), FileDefImpl::writeIncludeGraph(), ClassDefImpl::writeInheritanceGraph(), writeJavaScriptSearchIndex(), writeLatexMakefile(), writeMakeBat(), writeMscGraphFromFile(), VhdlDocGen::writeOverview(), PlantumlManager::writePlantUMLSource(), HtmlGenerator::writeSearchPage(), HtmlGenerator::writeStyleInfo(), writeTagFile() , 以及 Trace::~Trace().

◆ qPrint() [2/3]

const char* qPrint ( const QCString s)
inline

在文件 qcstring.h594 行定义.

595 {
596  if (!s.isEmpty()) return s.data(); else return "";
597 }

引用了 QCString::data() , 以及 QCString::isEmpty().

◆ qPrint() [3/3]

const char* qPrint ( const std::string &  s)
inline

在文件 qcstring.h599 行定义.

600 {
601  return s.c_str();
602 }

◆ qstrcmp()

int qstrcmp ( const char *  str1,
const char *  str2 
)
inline

在文件 qcstring.h82 行定义.

83 { return (str1 && str2) ? strcmp(str1,str2) : // both non-empty
84  (qisempty(str1) && qisempty(str2)) ? 0 : // both empty
85  qisempty(str1) ? -1 : 1; // one empty, other non-empty
86 }

引用了 qisempty().

被这些函数引用 convertMapFile(), operator!=(), operator<(), operator<=(), operator==(), operator>(), operator>=() , 以及 readConfiguration().

◆ qstrcpy()

char* qstrcpy ( char *  dst,
const char *  src 
)
inline

在文件 qcstring.h71 行定义.

72 { return src ? strcpy(dst, src) : 0; }

被这些函数引用 clearBlock(), SymbolResolver::Private::getResolvedClassRec() , 以及 substitute().

◆ qstrdup()

char* qstrdup ( const char *  )

在文件 qcstring.cpp415 行定义.

416 {
417  if ( !str )
418  return 0;
419  char *dst = new char[qstrlen(str)+1];
420  return strcpy( dst, str );
421 }

引用了 qstrlen().

◆ qstricmp() [1/4]

int qstricmp ( const char *  str1,
const char *  str2 
)

在文件 qcstring.cpp433 行定义.

434 {
435  const uchar *s1 = (const uchar *)str1;
436  const uchar *s2 = (const uchar *)str2;
437  int res;
438  uchar c;
439  if ( !s1 || !s2 )
440  return s1 == s2 ? 0 : (int)(s2 - s1);
441  for ( ; !(res = (c=(char)tolower(*s1)) - tolower(*s2)); s1++, s2++ )
442  if ( !c ) // strings are equal
443  break;
444  return res;
445 }

被这些函数引用 buildDirectories(), compareDirDefs(), compareFileDefs(), compareString(), VhdlDocGen::findAllArchitectures(), DocGroup::findExistingGroup(), FlowChart::findLabel(), VhdlDocGen::findVhdlClass(), genericCompareMembers(), mainPageHasOwnTitle(), DirDefImpl::matchPath(), parseInput(), qstricmp(), readConfiguration(), searchInputFiles(), NamespaceDefImpl::sortMemberLists(), GroupDefImpl::sortMemberLists(), FileDefImpl::sortMemberLists(), stripFromPath(), transcodeCharacterBuffer(), transcodeCharacterStringToUTF8(), writeColumn(), FlowChart::writeFlowLinks(), ClassDefImpl::writeIncludeFilesForSlice(), writeIndex() , 以及 VhdlDocGen::writeProcedureProto().

◆ qstricmp() [2/4]

int qstricmp ( const char *  str1,
const QCString str2 
)
inline

在文件 qcstring.h616 行定义.

617 {
618  return qstricmp(str1,str2.data());
619 }

引用了 QCString::data() , 以及 qstricmp().

◆ qstricmp() [3/4]

int qstricmp ( const QCString str1,
const char *  str2 
)
inline

在文件 qcstring.h611 行定义.

612 {
613  return qstricmp(str1.data(),str2);
614 }

引用了 QCString::data() , 以及 qstricmp().

◆ qstricmp() [4/4]

int qstricmp ( const QCString str1,
const QCString str2 
)
inline

在文件 qcstring.h621 行定义.

622 {
623  return qstricmp(str1.data(),str2.data());
624 }

引用了 QCString::data() , 以及 qstricmp().

◆ qstrlen()

◆ qstrncmp()

int qstrncmp ( const char *  str1,
const char *  str2,
size_t  len 
)
inline

在文件 qcstring.h91 行定义.

92 { return (str1 && str2) ? strncmp(str1,str2,len) : // both non-empty
93  (qisempty(str1) && qisempty(str2)) ? 0 : // both empty
94  qisempty(str1) ? -1 : 1; // one empty other non-empty
95 }

引用了 qisempty().

被这些函数引用 QCString::contains(), convertMapFile(), extractCopyDocId(), Markdown::findEmphasisChar(), Markdown::findEndOfLine(), QCString::findRev(), getConvertLatexMacro(), isExplicitPage(), isNewline(), Markdown::process(), Markdown::processBlocks(), Markdown::processNmdash(), Markdown::processSpecialCommand(), readSVGSize(), skipToEndMarker(), stripLeadingAndTrailingEmptyLines() , 以及 substitute().

◆ qstrncpy()

char* qstrncpy ( char *  dst,
const char *  src,
size_t  len 
)

在文件 qcstring.cpp423 行定义.

424 {
425  if ( !src )
426  return 0;
427  strncpy( dst, src, len );
428  if ( len > 0 )
429  dst[len-1] = '\0';
430  return dst;
431 }

被这些函数引用 do_warn().

◆ qstrnicmp() [1/4]

int qstrnicmp ( const char *  str1,
const char *  str2,
size_t  len 
)

在文件 qcstring.cpp447 行定义.

448 {
449  const uchar *s1 = (const uchar *)str1;
450  const uchar *s2 = (const uchar *)str2;
451  int res;
452  uchar c;
453  if ( !s1 || !s2 )
454  return (int)(s2 - s1);
455  for ( ; len--; s1++, s2++ ) {
456  if ( (res = (c=(char)tolower(*s1)) - tolower(*s2)) )
457  return res;
458  if ( !c ) // strings are equal
459  break;
460  }
461  return 0;
462 }

被这些函数引用 QCString::contains(), QCString::find(), QCString::findRev() , 以及 qstrnicmp().

◆ qstrnicmp() [2/4]

int qstrnicmp ( const char *  str1,
const QCString str2,
size_t  len 
)
inline

在文件 qcstring.h631 行定义.

632 {
633  return qstrnicmp(str1,str2.data(),len);
634 }

引用了 QCString::data() , 以及 qstrnicmp().

◆ qstrnicmp() [3/4]

int qstrnicmp ( const QCString str1,
const char *  str2,
size_t  len 
)
inline

在文件 qcstring.h626 行定义.

627 {
628  return qstrnicmp(str1.data(),str2,len);
629 }

引用了 QCString::data() , 以及 qstrnicmp().

◆ qstrnicmp() [4/4]

int qstrnicmp ( const QCString str1,
const QCString str2,
size_t  len 
)
inline

在文件 qcstring.h636 行定义.

637 {
638  return qstrnicmp(str1.data(),str2.data(),len);
639 }

引用了 QCString::data() , 以及 qstrnicmp().

◆ substitute() [1/4]

QCString substitute ( const QCString s,
char  srcChar,
char  dstChar 
)
inline

在文件 qcstring.h649 行定义.

650 {
651  std::string ss = s.str();
652  std::replace(ss.begin(),ss.end(),srcChar,dstChar);
653  return QCString(ss);
654 }

引用了 reg::replace() , 以及 QCString::str().

◆ substitute() [2/4]

QCString substitute ( const QCString s,
const QCString src,
const QCString dst,
int  skip_seq 
)

substitute all occurrences of src in s by dst, but skip each consecutive sequence of src where the number consecutive src matches skip_seq; if skip_seq is negative, skip any number of consecutive src

在文件 qcstring.cpp506 行定义.

507 {
508  if (s.isEmpty() || src.isEmpty()) return s;
509  const char *p, *q;
510  int srcLen = src.length();
511  int dstLen = dst.length();
512  int resLen;
513  if (srcLen!=dstLen)
514  {
515  int count;
516  for (count=0, p=s.data(); (q=strstr(p,src.data()))!=0; p=q+srcLen) count++;
517  resLen = s.length()+count*(dstLen-srcLen);
518  }
519  else // result has same size as s
520  {
521  resLen = s.length();
522  }
523  QCString result(resLen+1);
524  char *r;
525  for (r=result.rawData(), p=s.data(); (q=strstr(p,src.data()))!=0; p=q+srcLen)
526  {
527  // search a consecutive sequence of src
528  int seq = 0, skip = 0;
529  if (skip_seq)
530  {
531  for (const char *n=q+srcLen; qstrncmp(n,src.data(),srcLen)==0; seq=1+skip, n+=srcLen)
532  ++skip; // number of consecutive src after the current one
533 
534  // verify the allowed number of consecutive src to skip
535  if (skip_seq > 0 && skip_seq != seq)
536  seq = skip = 0;
537  }
538 
539  // skip a consecutive sequence of src when necessary
540  int l = (int)((q + seq * srcLen)-p);
541  memcpy(r,p,l);
542  r+=l;
543 
544  if (skip)
545  {
546  // skip only the consecutive src found after the current one
547  q += skip * srcLen;
548  // the next loop will skip the current src, aka (p=q+srcLen)
549  continue;
550  }
551 
552  if (dstLen>0) memcpy(r,dst.data(),dstLen);
553  r+=dstLen;
554  }
555  qstrcpy(r,p);
556  result.resize((int)strlen(result.data())+1);
557  //printf("substitute(%s,%s,%s)->%s\n",s,src,dst,result.data());
558  return result;
559 }

引用了 QCString::data(), QCString::isEmpty(), QCString::length(), qstrcpy(), qstrncmp(), QCString::rawData() , 以及 QCString::resize().

◆ substitute() [3/4]

QCString substitute ( const QCString str,
const char *  find,
const char *  replace 
)
inline

在文件 qcstring.h643 行定义.

644 {
645  return substitute(str,QCString(find),QCString(replace));
646 }

引用了 reg::replace() , 以及 substitute().

◆ substitute() [4/4]

QCString substitute ( const QCString str,
const QCString find,
const QCString replace 
)

substitute all occurrences of src in s by dst

在文件 qcstring.cpp465 行定义.

466 {
467  if (s.isEmpty() || src.isEmpty()) return s;
468  const char *p, *q;
469  int srcLen = src.length();
470  int dstLen = dst.length();
471  int resLen;
472  if (srcLen!=dstLen)
473  {
474  int count;
475  for (count=0, p=s.data(); (q=strstr(p,src.data()))!=0; p=q+srcLen) count++;
476  resLen = s.length()+count*(dstLen-srcLen);
477  }
478  else // result has same size as s
479  {
480  resLen = s.length();
481  }
482  QCString result(resLen+1);
483  char *r;
484  for (r=result.rawData(), p=s.data(); (q=strstr(p,src.data()))!=0; p=q+srcLen)
485  {
486  int l = (int)(q-p);
487  memcpy(r,p,l);
488  r+=l;
489 
490  if (dstLen>0) memcpy(r,dst.data(),dstLen);
491  r+=dstLen;
492  }
493  if (r)
494  {
495  qstrcpy(r,p);
496  }
497  //printf("substitute(%s,%s,%s)->%s\n",s,src,dst,result.data());
498  return result;
499 }

引用了 QCString::data(), QCString::isEmpty(), QCString::length(), qstrcpy() , 以及 QCString::rawData().

被这些函数引用 abbreviate(), addEnumValuesToEnums(), FlowChart::addFlowChart(), addMemberFunction(), addPageToContext(), Markdown::addStrEscapeUtf8Nbsp(), addVariableToClass(), FilterNoWrap::apply(), buildListOfUsingDecls(), buildNamespaceList(), DocParser::checkUnOrMultipleDocumentedParams(), convertFileId2Var(), ResourceMgr::copyResourceAs(), Portable::correct_path(), MemberDefImpl::displayDefinition(), RTFGenerator::endIndexSection(), field2URL(), findDirDocumentation(), DocParser::findDocsForMemberOrCompound(), findGlobalMember(), findGroupScope(), findMember(), findUsingDeclarations(), findUsingDirectives(), fixSpaces(), format_warn(), CitationManager::generatePage(), RefList::generatePage(), VhdlDocGen::getClassName(), getDefs(), DocPara::handleStartCode(), InheritedMemberInfoContext::Private::id(), linkifyText(), linkToText(), makeDisplayName(), matchExcludedSymbols(), Markdown::process(), Markdown::processLink(), processTagLessClasses(), replaceAliasArguments(), resolveRef(), DotFilePatcher::run(), selectBlock(), SearchIndex::setCurrentDoc(), substitute(), substituteHtmlKeywords(), substituteKeywords(), substituteLatexKeywords(), Portable::system(), ConfigImpl::takeStartComment(), ConfigImpl::takeUserComment(), unescapeCRef(), writeAlphabeticalClassList(), writeColumn(), MemberDefImpl::writeDeclaration(), MemberList::writeDeclarations(), writeDefaultLayoutFile(), MemberDefImpl::writeDocumentation(), HtmlGenerator::writeNavigationPath(), HtmlGenerator::writeSearchData(), HtmlGenerator::writeSearchPage(), HtmlGenerator::writeStyleInfo(), HtmlGenerator::writeStyleSheetFile() , 以及 VhdlDocGen::writeVHDLTypeDocumentation().

◆ toStdString()

std::string toStdString ( const QCString s)
inline

在文件 qcstring.h604 行定义.

605 {
606  return s.str();
607 }

引用了 QCString::str().

被这些函数引用 SectionRefs::add().

reg::replace
std::string replace(const std::string &str, const Ex &re, const std::string &replacement)
Searching in a given input string for parts that match regular expression re and replaces those parts...
Definition: regex.cpp:740
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
qstrcpy
char * qstrcpy(char *dst, const char *src)
Definition: qcstring.h:71
QCString::str
std::string str() const
Definition: qcstring.h:442
qstrncmp
int qstrncmp(const char *str1, const char *str2, size_t len)
Definition: qcstring.h:91
uint
unsigned uint
Definition: qcstring.h:40
uchar
unsigned char uchar
Definition: qcstring.h:38
qstricmp
int qstricmp(const char *str1, const char *str2)
Definition: qcstring.cpp:433
substitute
QCString substitute(const QCString &str, const QCString &find, const QCString &replace)
substitute all occurrences of src in s by dst
Definition: qcstring.cpp:465
qisempty
bool qisempty(const char *s)
Definition: qcstring.h:79
QCString::data
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
Definition: qcstring.h:153
qstrcmp
int qstrcmp(const char *str1, const char *str2)
Definition: qcstring.h:82
qstrnicmp
int qstrnicmp(const char *str1, const char *str2, size_t len)
Definition: qcstring.cpp:447
qstrlen
uint qstrlen(const char *str)
Definition: qcstring.h:65
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108