Blame src/util.h

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#ifndef UTIL_H
Packit 1c1d7e
#define UTIL_H
Packit 1c1d7e
Packit 1c1d7e
/*! \file 
Packit 1c1d7e
 *  \brief A bunch of utility functions.
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#include <qlist.h>
Packit 1c1d7e
#include <ctype.h>
Packit 1c1d7e
#include "types.h"
Packit 1c1d7e
#include "sortdict.h"
Packit 1c1d7e
#include "docparser.h"
Packit 1c1d7e
Packit 1c1d7e
//--------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
class ClassDef;
Packit 1c1d7e
class FileDef;
Packit 1c1d7e
class MemberList;
Packit 1c1d7e
class NamespaceDef;
Packit 1c1d7e
class FileNameDict;
Packit 1c1d7e
class ArgumentList;
Packit 1c1d7e
class OutputList;
Packit 1c1d7e
class OutputDocInterface;
Packit 1c1d7e
class MemberDef;
Packit 1c1d7e
class ExampleSDict;
Packit 1c1d7e
class ClassSDict;
Packit 1c1d7e
class BaseClassList;
Packit 1c1d7e
class GroupDef;
Packit 1c1d7e
class NamespaceSDict;
Packit 1c1d7e
class ClassList;
Packit 1c1d7e
class MemberGroupSDict;
Packit 1c1d7e
struct TagInfo;
Packit 1c1d7e
class MemberNameInfoSDict;
Packit 1c1d7e
struct ListItemInfo;
Packit 1c1d7e
class PageDef;
Packit 1c1d7e
struct SectionInfo;
Packit 1c1d7e
class QDir;
Packit 1c1d7e
class Definition;
Packit 1c1d7e
class BufStr;
Packit 1c1d7e
class QFileInfo;
Packit 1c1d7e
class QStrList;
Packit 1c1d7e
class FTextStream;
Packit 1c1d7e
class QFile;
Packit 1c1d7e
Packit 1c1d7e
//--------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
/** Abstract interface for a hyperlinked text fragment. */
Packit 1c1d7e
class TextGeneratorIntf
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    virtual ~TextGeneratorIntf() {}
Packit 1c1d7e
    virtual void writeString(const char *,bool) const = 0;
Packit 1c1d7e
    virtual void writeBreak(int indent) const = 0;
Packit 1c1d7e
    virtual void writeLink(const char *extRef,const char *file,
Packit 1c1d7e
                      const char *anchor,const char *text
Packit 1c1d7e
                     ) const = 0; 
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
/** Implements TextGeneratorIntf for an OutputDocInterface stream. */
Packit 1c1d7e
class TextGeneratorOLImpl : public TextGeneratorIntf
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    virtual ~TextGeneratorOLImpl() {}
Packit 1c1d7e
    TextGeneratorOLImpl(OutputDocInterface &od);
Packit 1c1d7e
    void writeString(const char *s,bool keepSpaces) const;
Packit 1c1d7e
    void writeBreak(int indent) const;
Packit 1c1d7e
    void writeLink(const char *extRef,const char *file,
Packit 1c1d7e
                   const char *anchor,const char *text
Packit 1c1d7e
                  ) const;
Packit 1c1d7e
  private:
Packit 1c1d7e
    OutputDocInterface &m_od;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
//--------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
/** @brief maps a unicode character code to a list of T::ElementType's
Packit 1c1d7e
 */
Packit 1c1d7e
template<class T>
Packit 1c1d7e
class LetterToIndexMap : public SIntDict<T>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    LetterToIndexMap() { SIntDict<T>::setAutoDelete(TRUE); }
Packit 1c1d7e
    void append(uint letter,typename T::ElementType *elem)
Packit 1c1d7e
    {
Packit 1c1d7e
      T *l = SIntDict<T>::find((int)letter);
Packit 1c1d7e
      if (l==0)
Packit 1c1d7e
      {
Packit 1c1d7e
        l = new T(letter);
Packit 1c1d7e
        SIntDict<T>::inSort((int)letter,l);
Packit 1c1d7e
      }
Packit 1c1d7e
      l->append(elem);
Packit 1c1d7e
    }
Packit 1c1d7e
  private:
Packit 1c1d7e
    int compareValues(const T *l1, const T *l2) const
Packit 1c1d7e
    {
Packit 1c1d7e
      return (int)l1->letter()-(int)l2->letter();
Packit 1c1d7e
    }
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
//--------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
QCString langToString(SrcLangExt lang);
Packit 1c1d7e
QCString getLanguageSpecificSeparator(SrcLangExt lang,bool classScope=FALSE);
Packit 1c1d7e
Packit 1c1d7e
//--------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
void linkifyText(const TextGeneratorIntf &ol,
Packit 1c1d7e
                 const Definition *scope,
Packit 1c1d7e
                 const FileDef *fileScope,
Packit 1c1d7e
                 const Definition *self,
Packit 1c1d7e
                 const char *text,
Packit 1c1d7e
                 bool autoBreak=FALSE,
Packit 1c1d7e
                 bool external=TRUE,
Packit 1c1d7e
                 bool keepSpaces=FALSE,
Packit 1c1d7e
                 int indentLevel=0
Packit 1c1d7e
                );
Packit 1c1d7e
Packit 1c1d7e
void setAnchors(MemberList *ml);
Packit 1c1d7e
Packit 1c1d7e
QCString fileToString(const char *name,bool filter=FALSE,bool isSourceCode=FALSE);
Packit 1c1d7e
Packit 1c1d7e
QCString dateToString(bool);
Packit 1c1d7e
Packit 1c1d7e
bool getDefs(const QCString &scopeName,
Packit 1c1d7e
                    const QCString &memberName, 
Packit 1c1d7e
                    const char *, 
Packit 1c1d7e
                    MemberDef *&md, 
Packit 1c1d7e
                    ClassDef *&cd,
Packit 1c1d7e
                    FileDef *&fd, 
Packit 1c1d7e
                    NamespaceDef *&nd,
Packit 1c1d7e
                    GroupDef *&gd,
Packit 1c1d7e
                    bool forceEmptyScope=FALSE,
Packit 1c1d7e
                    FileDef *currentFile=0,
Packit 1c1d7e
                    bool checkCV=FALSE,
Packit 1c1d7e
                    const char *forceTagFile=0
Packit 1c1d7e
                   );
Packit 1c1d7e
Packit 1c1d7e
QCString getFileFilter(const char* name,bool isSourceCode);
Packit 1c1d7e
Packit 1c1d7e
bool resolveRef(/* in */  const char *scName,
Packit 1c1d7e
                /* in */  const char *name,
Packit 1c1d7e
                /* in */  bool inSeeBlock,
Packit 1c1d7e
                /* out */ Definition **resContext,
Packit 1c1d7e
                /* out */ MemberDef  **resMember,
Packit 1c1d7e
                /* in */  bool lookForSpecializations = TRUE,
Packit 1c1d7e
                /* in */  FileDef *currentFile = 0,
Packit 1c1d7e
                /* in */  bool checkScope = FALSE
Packit 1c1d7e
               );
Packit 1c1d7e
Packit 1c1d7e
bool resolveLink(/* in */  const char *scName,
Packit 1c1d7e
                 /* in */  const char *lr,
Packit 1c1d7e
                 /* in */  bool inSeeBlock,
Packit 1c1d7e
                 /* out */ Definition **resContext,
Packit 1c1d7e
                 /* out */ QCString &resAnchor
Packit 1c1d7e
                );
Packit 1c1d7e
Packit 1c1d7e
//bool generateRef(OutputDocInterface &od,const char *,
Packit 1c1d7e
//                        const char *,bool inSeeBlock,const char * =0);
Packit 1c1d7e
Packit 1c1d7e
bool generateLink(OutputDocInterface &od,const char *,
Packit 1c1d7e
                         const char *,bool inSeeBlock,const char *);
Packit 1c1d7e
Packit 1c1d7e
void generateFileRef(OutputDocInterface &od,const char *,
Packit 1c1d7e
                             const char *linkTxt=0);
Packit 1c1d7e
Packit 1c1d7e
void writePageRef(OutputDocInterface &od,const char *cn,const char *mn);
Packit 1c1d7e
Packit 1c1d7e
QCString getCanonicalTemplateSpec(Definition *d,FileDef *fs,const QCString& spec);
Packit 1c1d7e
Packit 1c1d7e
bool matchArguments2(Definition *srcScope,FileDef *srcFileScope,ArgumentList *srcAl,
Packit 1c1d7e
                     Definition *dstScope,FileDef *dstFileScope,ArgumentList *dstAl,
Packit 1c1d7e
                     bool checkCV
Packit 1c1d7e
                    );
Packit 1c1d7e
Packit 1c1d7e
void mergeArguments(ArgumentList *,ArgumentList *,bool forceNameOverwrite=FALSE);
Packit 1c1d7e
Packit 1c1d7e
QCString substituteClassNames(const QCString &s);
Packit 1c1d7e
Packit 1c1d7e
QCString substitute(const QCString &s,const QCString &src,const QCString &dst);
Packit 1c1d7e
Packit 1c1d7e
QCString clearBlock(const char *s,const char *begin,const char *end);
Packit 1c1d7e
Packit 1c1d7e
QCString selectBlock(const QCString& s,const QCString &name,bool which);
Packit 1c1d7e
Packit 1c1d7e
QCString resolveDefines(const char *n);
Packit 1c1d7e
Packit 1c1d7e
ClassDef *getClass(const char *key);
Packit 1c1d7e
Packit 1c1d7e
ClassDef *getResolvedClass(const Definition *scope,
Packit 1c1d7e
                           const FileDef *fileScope,
Packit 1c1d7e
                           const char *key,
Packit 1c1d7e
                           MemberDef **pTypeDef=0,
Packit 1c1d7e
                           QCString *pTemplSpec=0,
Packit 1c1d7e
                           bool mayBeUnlinkable=FALSE,
Packit 1c1d7e
                           bool mayBeHidden=FALSE,
Packit 1c1d7e
                           QCString *pResolvedType=0);
Packit 1c1d7e
Packit 1c1d7e
NamespaceDef *getResolvedNamespace(const char *key);
Packit 1c1d7e
Packit 1c1d7e
FileDef *findFileDef(const FileNameDict *fnDict,const char *n,
Packit 1c1d7e
                bool &ambig);
Packit 1c1d7e
Packit 1c1d7e
QCString showFileDefMatches(const FileNameDict *fnDict,const char *n);
Packit 1c1d7e
Packit 1c1d7e
int guessSection(const char *name);
Packit 1c1d7e
Packit 1c1d7e
inline bool isId(int c)
Packit 1c1d7e
{
Packit 1c1d7e
  return c=='_' || c>=128 || c<0 || isalnum(c);
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
QCString removeRedundantWhiteSpace(const QCString &s);
Packit 1c1d7e
Packit 1c1d7e
QCString argListToString(ArgumentList *al,bool useCanonicalType=FALSE,bool showDefVals=TRUE);
Packit 1c1d7e
Packit 1c1d7e
QCString tempArgListToString(ArgumentList *al,SrcLangExt lang);
Packit 1c1d7e
Packit 1c1d7e
QCString generateMarker(int id);
Packit 1c1d7e
Packit 1c1d7e
void writeExample(OutputList &ol,ExampleSDict *el);
Packit 1c1d7e
Packit 1c1d7e
QCString stripAnonymousNamespaceScope(const QCString &s);
Packit 1c1d7e
Packit 1c1d7e
QCString stripFromPath(const QCString &path);
Packit 1c1d7e
Packit 1c1d7e
QCString stripFromIncludePath(const QCString &path);
Packit 1c1d7e
Packit 1c1d7e
bool rightScopeMatch(const QCString &scope, const QCString &name);
Packit 1c1d7e
Packit 1c1d7e
bool leftScopeMatch(const QCString &scope, const QCString &name);
Packit 1c1d7e
Packit 1c1d7e
QCString substituteKeywords(const QCString &s,const char *title,
Packit 1c1d7e
         const char *projName,const char *projNum,const char *projBrief);
Packit 1c1d7e
Packit 1c1d7e
int getPrefixIndex(const QCString &name);
Packit 1c1d7e
Packit 1c1d7e
QCString removeAnonymousScopes(const QCString &s);
Packit 1c1d7e
Packit 1c1d7e
QCString replaceAnonymousScopes(const QCString &s,const char *replacement=0);
Packit 1c1d7e
Packit 1c1d7e
void initClassHierarchy(ClassSDict *cl);
Packit 1c1d7e
Packit 1c1d7e
bool hasVisibleRoot(BaseClassList *bcl);
Packit 1c1d7e
bool classHasVisibleChildren(ClassDef *cd);
Packit 1c1d7e
bool namespaceHasVisibleChild(NamespaceDef *nd,bool includeClasses);
Packit 1c1d7e
bool classVisibleInIndex(ClassDef *cd);
Packit 1c1d7e
Packit 1c1d7e
int minClassDistance(const ClassDef *cd,const ClassDef *bcd,int level=0);
Packit 1c1d7e
Protection classInheritedProtectionLevel(ClassDef *cd,ClassDef *bcd,Protection prot=Public,int level=0);
Packit 1c1d7e
Packit 1c1d7e
QCString convertNameToFile(const char *name,bool allowDots=FALSE,bool allowUnderscore=FALSE);
Packit 1c1d7e
Packit 1c1d7e
void extractNamespaceName(const QCString &scopeName,
Packit 1c1d7e
                          QCString &className,QCString &namespaceName,
Packit 1c1d7e
                          bool allowEmptyClass=FALSE);
Packit 1c1d7e
Packit 1c1d7e
QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &templ);
Packit 1c1d7e
Packit 1c1d7e
QCString stripScope(const char *name);
Packit 1c1d7e
Packit 1c1d7e
QCString convertToId(const char *s);
Packit 1c1d7e
Packit 1c1d7e
QCString convertToHtml(const char *s,bool keepEntities=TRUE);
Packit 1c1d7e
Packit 1c1d7e
QCString convertToLaTeX(const QCString &s,bool insideTabbing=FALSE,bool keepSpaces=FALSE);
Packit 1c1d7e
Packit 1c1d7e
QCString convertToXML(const char *s);
Packit 1c1d7e
Packit 1c1d7e
QCString convertToJSString(const char *s);
Packit 1c1d7e
Packit 1c1d7e
QCString getOverloadDocs();
Packit 1c1d7e
Packit 1c1d7e
void addMembersToMemberGroup(/* in */     MemberList *ml,
Packit 1c1d7e
                             /* in,out */ MemberGroupSDict **ppMemberGroupSDict,
Packit 1c1d7e
                             /* in */     Definition *context);
Packit 1c1d7e
Packit 1c1d7e
int extractClassNameFromType(const QCString &type,int &pos,
Packit 1c1d7e
                              QCString &name,QCString &templSpec,SrcLangExt=SrcLangExt_Unknown);
Packit 1c1d7e
Packit 1c1d7e
QCString normalizeNonTemplateArgumentsInString(
Packit 1c1d7e
       const QCString &name,
Packit 1c1d7e
       Definition *context,
Packit 1c1d7e
       const ArgumentList *formalArgs);
Packit 1c1d7e
Packit 1c1d7e
QCString substituteTemplateArgumentsInString(
Packit 1c1d7e
       const QCString &name,
Packit 1c1d7e
       ArgumentList *formalArgs,
Packit 1c1d7e
       ArgumentList *actualArgs);
Packit 1c1d7e
Packit 1c1d7e
QList<ArgumentList> *copyArgumentLists(const QList<ArgumentList> *srcLists);
Packit 1c1d7e
Packit 1c1d7e
QCString stripTemplateSpecifiersFromScope(const QCString &fullName,
Packit 1c1d7e
                                          bool parentOnly=TRUE,
Packit 1c1d7e
                                          QCString *lastScopeStripped=0);
Packit 1c1d7e
Packit 1c1d7e
QCString resolveTypeDef(Definition *d,const QCString &name,
Packit 1c1d7e
                        Definition **typedefContext=0);
Packit 1c1d7e
Packit 1c1d7e
QCString mergeScopes(const QCString &leftScope,const QCString &rightScope);
Packit 1c1d7e
Packit 1c1d7e
int getScopeFragment(const QCString &s,int p,int *l);
Packit 1c1d7e
Packit 1c1d7e
int filterCRLF(char *buf,int len);
Packit 1c1d7e
Packit 1c1d7e
void addRefItem(const QList<ListItemInfo> *sli,const char *prefix,
Packit 1c1d7e
                const char *key,
Packit 1c1d7e
                const char *name,const char *title,const char *args,Definition *scope);
Packit 1c1d7e
Packit 1c1d7e
PageDef *addRelatedPage(const char *name,const QCString &ptitle,
Packit 1c1d7e
                           const QCString &doc,QList<SectionInfo> *anchors,
Packit 1c1d7e
                           const char *fileName,int startLine,
Packit 1c1d7e
                           const QList<ListItemInfo> *sli,
Packit 1c1d7e
                           GroupDef *gd=0,
Packit 1c1d7e
                           TagInfo *tagInfo=0,
Packit 1c1d7e
                           SrcLangExt lang=SrcLangExt_Unknown
Packit 1c1d7e
                          );
Packit 1c1d7e
Packit 1c1d7e
QCString escapeCharsInString(const char *name,bool allowDots,bool allowUnderscore=FALSE);
Packit 1c1d7e
Packit 1c1d7e
void addGroupListToTitle(OutputList &ol,Definition *d);
Packit 1c1d7e
Packit 1c1d7e
void filterLatexString(FTextStream &t,const char *str,
Packit 1c1d7e
                       bool insideTabbing=FALSE,
Packit 1c1d7e
                       bool insidePre=FALSE,
Packit 1c1d7e
                       bool insideItem=FALSE,
Packit 1c1d7e
                       bool keepSpaces=FALSE);
Packit 1c1d7e
Packit 1c1d7e
QCString latexEscapeLabelName(const char *s,bool insideTabbing);
Packit 1c1d7e
QCString latexEscapeIndexChars(const char *s,bool insideTabbing);
Packit 1c1d7e
QCString latexEscapePDFString(const char *s);
Packit 1c1d7e
Packit 1c1d7e
QCString rtfFormatBmkStr(const char *name);
Packit 1c1d7e
Packit 1c1d7e
QCString linkToText(SrcLangExt lang,const char *link,bool isFileName);
Packit 1c1d7e
Packit 1c1d7e
bool checkExtension(const char *fName, const char *ext);
Packit 1c1d7e
Packit 1c1d7e
QCString stripExtensionGeneral(const char *fName, const char *ext);
Packit 1c1d7e
Packit 1c1d7e
QCString stripExtension(const char *fName);
Packit 1c1d7e
Packit 1c1d7e
void replaceNamespaceAliases(QCString &scope,int i);
Packit 1c1d7e
Packit 1c1d7e
int isAccessibleFrom(const Definition *scope,const FileDef *fileScope,const Definition *item);
Packit 1c1d7e
Packit 1c1d7e
int isAccessibleFromWithExpScope(const Definition *scope,const FileDef *fileScope,const Definition *item,
Packit 1c1d7e
                     const QCString &explicitScopePart);
Packit 1c1d7e
Packit 1c1d7e
int computeQualifiedIndex(const QCString &name);
Packit 1c1d7e
Packit 1c1d7e
void addDirPrefix(QCString &fileName);
Packit 1c1d7e
Packit 1c1d7e
QCString relativePathToRoot(const char *name);
Packit 1c1d7e
Packit 1c1d7e
void createSubDirs(QDir &d);
Packit 1c1d7e
Packit 1c1d7e
QCString stripPath(const char *s);
Packit 1c1d7e
Packit 1c1d7e
bool containsWord(const QCString &s,const QCString &word);
Packit 1c1d7e
Packit 1c1d7e
bool findAndRemoveWord(QCString &s,const QCString &word);
Packit 1c1d7e
Packit 1c1d7e
QCString stripLeadingAndTrailingEmptyLines(const QCString &s,int &docLine);
Packit 1c1d7e
Packit 1c1d7e
//void stringToSearchIndex(const QCString &docUrlBase,const QCString &title,
Packit 1c1d7e
//                         const QCString &str, bool priority=FALSE,
Packit 1c1d7e
//                         const QCString &anchor="");
Packit 1c1d7e
Packit 1c1d7e
bool updateLanguageMapping(const QCString &extension,const QCString &parser);
Packit 1c1d7e
SrcLangExt getLanguageFromFileName(const QCString& fileName);
Packit 1c1d7e
void initDefaultExtensionMapping();
Packit 1c1d7e
void addCodeOnlyMappings();
Packit 1c1d7e
Packit 1c1d7e
MemberDef *getMemberFromSymbol(Definition *scope,FileDef *fileScope, 
Packit 1c1d7e
                                const char *n);
Packit 1c1d7e
bool checkIfTypedef(Definition *scope,FileDef *fileScope,const char *n);
Packit 1c1d7e
Packit 1c1d7e
ClassDef *newResolveTypedef(const FileDef *fileScope,MemberDef *md,
Packit 1c1d7e
                            MemberDef **pMemType=0,QCString *pTemplSpec=0,
Packit 1c1d7e
                            QCString *pResolvedType=0,
Packit 1c1d7e
                            ArgumentList *actTemplParams=0);
Packit 1c1d7e
Packit 1c1d7e
QCString parseCommentAsText(const Definition *scope,const MemberDef *member,const QCString &doc,const QCString &fileName,int lineNr);
Packit 1c1d7e
Packit 1c1d7e
QCString transcodeCharacterStringToUTF8(const QCString &input);
Packit 1c1d7e
Packit 1c1d7e
QCString recodeString(const QCString &str,const char *fromEncoding,const char *toEncoding);
Packit 1c1d7e
Packit 1c1d7e
QCString extractAliasArgs(const QCString &args,int pos);
Packit 1c1d7e
Packit 1c1d7e
int countAliasArguments(const QCString argList);
Packit 1c1d7e
Packit 1c1d7e
//QCString replaceAliasArguments(const QCString &aliasValue,const QCString &argList);
Packit 1c1d7e
Packit 1c1d7e
QCString resolveAliasCmd(const QCString aliasCmd);
Packit 1c1d7e
QCString expandAlias(const QCString &aliasName,const QCString &aliasValue);
Packit 1c1d7e
Packit 1c1d7e
void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al);
Packit 1c1d7e
Packit 1c1d7e
QCString convertCharEntitiesToUTF8(const QCString &s);
Packit 1c1d7e
Packit 1c1d7e
void stackTrace();
Packit 1c1d7e
Packit 1c1d7e
bool readInputFile(const char *fileName,BufStr &inBuf,
Packit 1c1d7e
                   bool filter=TRUE,bool isSourceCode=FALSE);
Packit 1c1d7e
QCString filterTitle(const QCString &title);
Packit 1c1d7e
Packit 1c1d7e
bool patternMatch(const QFileInfo &fi,const QStrList *patList);
Packit 1c1d7e
Packit 1c1d7e
QCString externalLinkTarget();
Packit 1c1d7e
QCString externalRef(const QCString &relPath,const QCString &ref,bool href);
Packit 1c1d7e
int nextUtf8CharPosition(const QCString &utf8Str,int len,int startPos);
Packit 1c1d7e
const char *writeUtf8Char(FTextStream &t,const char *s);
Packit 1c1d7e
Packit 1c1d7e
Packit 1c1d7e
/** Data associated with a HSV colored image. */
Packit 1c1d7e
struct ColoredImgDataItem
Packit 1c1d7e
{
Packit 1c1d7e
  const char *name;
Packit 1c1d7e
  unsigned short width;
Packit 1c1d7e
  unsigned short height;
Packit 1c1d7e
  unsigned char *content;
Packit 1c1d7e
  unsigned char *alpha;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
void writeColoredImgData(const char *dir,ColoredImgDataItem data[]);
Packit 1c1d7e
QCString replaceColorMarkers(const char *str);
Packit 1c1d7e
Packit 1c1d7e
bool copyFile(const QCString &src,const QCString &dest);
Packit 1c1d7e
QCString extractBlock(const QCString text,const QCString marker);
Packit 1c1d7e
int lineBlock(const QCString text,const QCString marker);
Packit 1c1d7e
Packit 1c1d7e
QCString correctURL(const QCString &url,const QCString &relPath);
Packit 1c1d7e
Packit 1c1d7e
QCString processMarkup(const QCString &s);
Packit 1c1d7e
Packit 1c1d7e
bool protectionLevelVisible(Protection prot);
Packit 1c1d7e
Packit 1c1d7e
QCString stripIndentation(const QCString &s);
Packit 1c1d7e
Packit 1c1d7e
QCString getDotImageExtension(void);
Packit 1c1d7e
Packit 1c1d7e
bool fileVisibleInIndex(FileDef *fd,bool &genSourceFile);
Packit 1c1d7e
Packit 1c1d7e
void addDocCrossReference(MemberDef *src,MemberDef *dst);
Packit 1c1d7e
Packit 1c1d7e
uint getUtf8Code( const QCString& s, int idx );
Packit 1c1d7e
uint getUtf8CodeToLower( const QCString& s, int idx );
Packit 1c1d7e
uint getUtf8CodeToUpper( const QCString& s, int idx );
Packit 1c1d7e
Packit 1c1d7e
QCString extractDirection(QCString &docs);
Packit 1c1d7e
Packit 1c1d7e
void convertProtectionLevel(
Packit 1c1d7e
                   MemberListType inListType,
Packit 1c1d7e
                   Protection inProt,
Packit 1c1d7e
                   int *outListType1,
Packit 1c1d7e
                   int *outListType2
Packit 1c1d7e
                  );
Packit 1c1d7e
Packit 1c1d7e
bool mainPageHasTitle();
Packit 1c1d7e
bool openOutputFile(const char *outFile,QFile &f);
Packit 1c1d7e
void writeExtraLatexPackages(FTextStream &t);
Packit 1c1d7e
Packit 1c1d7e
#endif
Packit 1c1d7e