diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2004-05-07 12:56:01 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2004-05-07 12:56:01 (GMT) |
commit | 53da67394cd52ea7301f306ad766107b38ffd2ae (patch) | |
tree | c35eb3a8d51696f3a4cddc5f0e8d484466382833 | |
parent | 9b0cf1e08f786c5fbc0583fdeecd9b6fefda2b76 (diff) | |
download | Doxygen-53da67394cd52ea7301f306ad766107b38ffd2ae.zip Doxygen-53da67394cd52ea7301f306ad766107b38ffd2ae.tar.gz Doxygen-53da67394cd52ea7301f306ad766107b38ffd2ae.tar.bz2 |
Release-1.3.7
-rw-r--r-- | INSTALL | 4 | ||||
-rw-r--r-- | PLATFORMS | 1 | ||||
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rwxr-xr-x | configure | 7 | ||||
-rw-r--r-- | doc/Makefile.win_make.in | 4 | ||||
-rw-r--r-- | doc/Makefile.win_nmake.in | 4 | ||||
-rw-r--r-- | doc/language.doc | 2 | ||||
-rw-r--r-- | packages/rpm/doxygen.spec | 2 | ||||
-rw-r--r-- | qtools/qglobal.h | 2 | ||||
-rw-r--r-- | src/classdef.cpp | 4 | ||||
-rw-r--r-- | src/code.l | 2 | ||||
-rw-r--r-- | src/defargs.l | 2 | ||||
-rw-r--r-- | src/definition.cpp | 32 | ||||
-rw-r--r-- | src/definition.h | 90 | ||||
-rw-r--r-- | src/dot.cpp | 18 | ||||
-rw-r--r-- | src/doxygen.cpp | 2 | ||||
-rw-r--r-- | src/doxygen.h | 1 | ||||
-rw-r--r-- | src/entry.cpp | 46 | ||||
-rw-r--r-- | src/entry.h | 12 | ||||
-rw-r--r-- | src/example.h | 18 | ||||
-rw-r--r-- | src/groupdef.cpp | 1 | ||||
-rw-r--r-- | src/main.cpp | 1 | ||||
-rw-r--r-- | src/memberdef.cpp | 46 | ||||
-rw-r--r-- | src/pngenc.h | 8 | ||||
-rw-r--r-- | src/scanner.l | 11 | ||||
-rw-r--r-- | src/translator_fr.h | 602 | ||||
-rw-r--r-- | src/util.cpp | 58 | ||||
-rw-r--r-- | src/util.h | 7 | ||||
-rw-r--r-- | src/xmldocvisitor.cpp | 4 | ||||
-rw-r--r-- | src/xmlgen.cpp | 2 | ||||
-rwxr-xr-x | tmake/lib/beos-g++/app.t | 2 | ||||
-rwxr-xr-x | tmake/lib/beos-g++/lib.t | 2 | ||||
-rwxr-xr-x | tmake/lib/beos-g++/subdirs.t | 2 | ||||
-rwxr-xr-x | tmake/lib/beos-g++/tmake.conf | 50 |
35 files changed, 641 insertions, 414 deletions
@@ -1,7 +1,7 @@ -DOXYGEN Version 1.3.6-20040427 +DOXYGEN Version 1.3.7 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (27 April 2004) +Dimitri van Heesch (07 May 2004) @@ -1,5 +1,6 @@ aix-g++ aix-xlc +beos-g++ dgux-g++ freebsd-g++ gnu-g++ @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3.6_20040427 +DOXYGEN Version 1.3.7 Please read INSTALL for compilation instructions. @@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (27 April 2004) +Dimitri van Heesch (dimitri@stack.nl) (07 May 2004) @@ -1 +1 @@ -1.3.6-20040427 +1.3.7 @@ -23,7 +23,7 @@ f_make=NO f_dot=NO f_perl=NO f_plf_auto=NO -f_prefix=/usr +f_prefix=/usr/local f_insttool=NO f_english=NO f_wizard=NO @@ -136,6 +136,9 @@ if test -z "$f_platform"; then AIX*) f_platform=aix-xlc ;; + BeOS*) + f_platform=beos-g++ + ;; dgux:*) f_platform=dgux-g++ ;; @@ -253,7 +256,7 @@ if test "$f_wizard" = YES; then echo "QTDIR not set and Qt not found at standard locations!" echo echo "tmake requires the QTDIR environment variable to be set." - echo "check your Qt installation!" + echo "check the Qt installation instructions!" exit 2 else if test ! -d "$QTDIR/lib"; then diff --git a/doc/Makefile.win_make.in b/doc/Makefile.win_make.in index 7444f6c..3d5248e 100644 --- a/doc/Makefile.win_make.in +++ b/doc/Makefile.win_make.in @@ -30,7 +30,7 @@ clean: language: language.doc -language.doc: maintainers.txt language.tpl translator.pl - set DOXYGEN_DOCDIR=. & set VERSION=$(VERSION) & $(PERL) translator.pl +language.doc: maintainers.txt language.tpl translator.py + set DOXYGEN_DOCDIR=. & set VERSION=$(VERSION) & python translator.py FORCE: diff --git a/doc/Makefile.win_nmake.in b/doc/Makefile.win_nmake.in index 5475eba..b20bee9 100644 --- a/doc/Makefile.win_nmake.in +++ b/doc/Makefile.win_nmake.in @@ -30,9 +30,9 @@ clean: language: language.doc -language.doc: maintainers.txt language.tpl translator.pl +language.doc: maintainers.txt language.tpl translator.py set DOXYGEN_DOCDIR=. set VERSION=$(VERSION) - $(PERL) translator.pl + python translator.py FORCE: diff --git a/doc/language.doc b/doc/language.doc index 839ffbe..56be813 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other than English (the default). The output language is chosen through the configuration file (with default name and known as Doxyfile). -Currently (version 1.3.6-20040413), 28 languages +Currently (version 1.3.6-20040427), 28 languages are supported (sorted alphabetically): Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, German, Greek, diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 87799c0..0e5e237 100644 --- a/packages/rpm/doxygen.spec +++ b/packages/rpm/doxygen.spec @@ -1,6 +1,6 @@ Summary: A documentation system for C/C++. Name: doxygen -Version: 1.3.6_20040427 +Version: 1.3.7 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/qtools/qglobal.h b/qtools/qglobal.h index b8854c0..ed00758 100644 --- a/qtools/qglobal.h +++ b/qtools/qglobal.h @@ -130,6 +130,8 @@ #define _OS_UNIXWARE7_ #elif defined(__CYGWIN__) #define _OS_CYGWIN_ +#elif defined(__BEOS__) +#define _OS_BEOS_ #else #error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com" #endif diff --git a/src/classdef.cpp b/src/classdef.cpp index 67fe145..a30a774 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -986,7 +986,11 @@ void ClassDef::writeDocumentation(OutputList &ol) } ol.endTextLink(); ol.popGeneratorState(); + + ol.pushGeneratorState(); + ol.disable(OutputGenerator::RTF); ol.newParagraph(); + ol.popGeneratorState(); } } ol.writeSynopsis(); @@ -1999,7 +1999,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'")) <SkipString>"//"|"/*" { g_code->codify(yytext); } -<SkipString>\" { +<SkipString>@?\" { g_code->codify(yytext); endFontClass(); BEGIN( g_lastStringContext ); diff --git a/src/defargs.l b/src/defargs.l index db8f000..0a5d5ec 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -300,9 +300,9 @@ ID [a-z_A-Z][a-z_A-Z0-9]* { a->type = removeRedundantWhiteSpace(g_curArgTypeName); } - //printf("a->type=%s a->name=%s a->array=%s\n",a->type.data(),a->name.data()); a->array += removeRedundantWhiteSpace(g_curArgArray); a->defval = g_curArgDefValue.copy(); + //printf("a->type=%s a->name=%s a->defval=\"%s\"\n",a->type.data(),a->name.data(),a->defval.data()); a->docs = g_curArgDocs.stripWhiteSpace(); //printf("Argument `%s' `%s' adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data()); g_argList->append(a); diff --git a/src/definition.cpp b/src/definition.cpp index aa20c7b..9bf6acd 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -76,7 +76,6 @@ static void removeFromMap(Definition *d) Definition::Definition(const char *df,int dl, const char *name,const char *b, const char *d,bool isSymbol) - : m_reachableDefs(17) { //QCString ns; m_defFileName = df; @@ -112,8 +111,6 @@ Definition::Definition(const char *df,int dl, m_docFile=(QCString)"<"+name+">"; m_isSymbol = isSymbol; if (m_isSymbol) addToMap(name,this); - m_reachableDefs.setAutoDelete(TRUE); - m_reachabilityComputed=FALSE; } Definition::~Definition() @@ -761,32 +758,3 @@ QCString Definition::convertNameToFile(const char *name,bool allowDots) const } } -void Definition::addReachableDef(Definition *def,int distance) -{ - if (m_reachableDefs.find(def->qualifiedName())) - { - m_reachableDefs.insert(def->qualifiedName(),new ReachableDefinition(def,distance)); - } -} - -void Definition::computeReachability() -{ - if (m_reachabilityComputed) return; - addReachableDef(this,0); - Definition *parent = getOuterScope(); - int i=1; - while (parent) - { - parent->computeReachability(); - QDictIterator<ReachableDefinition> dli(m_reachableDefs); - ReachableDefinition *rd; - for (dli.toFirst();(rd=dli.current());++dli) - { - addReachableDef(rd->def,i); - } - parent=parent->getOuterScope(); - i++; - } - m_reachabilityComputed=TRUE; -} - diff --git a/src/definition.h b/src/definition.h index a0a3cd9..c9c8d69 100644 --- a/src/definition.h +++ b/src/definition.h @@ -25,8 +25,6 @@ class FileDef; class OutputList; class SectionDict; -//class MemberList; -//class MemberDict; class MemberSDict; class MemberDef; class GroupDef; @@ -52,7 +50,7 @@ class Definition TypeClass, TypeMember, TypeFile, TypeGroup, TypeNamespace, TypePackage, TypePage }; - /*! Use this for dynamic inspection of the derived class */ + /*! Use this for dynamic inspection of the type of the derived class */ virtual DefType definitionType() = 0; /*! Create a new definition */ @@ -60,51 +58,110 @@ class Definition const char *defFileName,int defLine, const char *name,const char *b=0,const char *d=0, bool isSymbol=TRUE); + /*! Destroys the definition */ virtual ~Definition(); + /*! Returns the name of the definition */ const QCString& name() const { return m_name; } + /*! Returns the base name of the output file that contains this * definition. */ virtual QCString qualifiedName(); + + /*! Returns the local name without any scope qualifiers. */ QCString localName() const; + + /*! Returns the base file name (without extension) of this definition. + * as it is referenced to/written to disk. + */ virtual QCString getOutputFileBase() const = 0; + /*! Returns the name of the source listing of this file. */ const QCString getSourceFileBase() const { ASSERT(0); return "NULL"; } + /*! Returns the detailed description of this definition */ const QCString& documentation() const { return m_doc; } + /*! Returns the brief description of this definition */ const QCString& briefDescription() const { return m_brief; } + /*! Sets a new \a name for the definition */ void setName(const char *name) { m_name=name; } + /*! Sets the documentation of this definition to \a d. */ void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE); + + /*! Returns the line number at which the detailed documentation was found. */ int docLine() const { return m_docLine; } + + /*! Returns the file in which the detailed documentation block was found. + * This can differ from getDefFileName(). + */ QCString docFile() const { return m_docFile; } + /*! Sets the brief description of this definition to \a b. * A dot is added to the sentence if not available. */ void setBriefDescription(const char *b,const char *briefFile,int briefLine); + + /*! Returns the line number at which the brief description was found. */ int briefLine() const { return m_briefLine; } + + /*! Returns the file in which the brief description was found. + * This can differ from getDefFileName(). + */ QCString briefFile() const { return m_briefFile; } + + /*! returns the file in which this definition was found */ + QCString getDefFileName() const { return m_defFileName; } + + /*! returns the line number at which the definition was found */ + int getDefLine() const { return m_defLine; } + /*! Returns TRUE iff the definition is documented */ virtual bool hasDocumentation() const; + + /*! Returns TRUE iff it is possible to link to this item within this + * project. + */ virtual bool isLinkableInProject() const = 0; + + /*! Returns TRUE iff it is possible to link to this item. This can + * be a link to another project imported via a tag file. + */ virtual bool isLinkable() const = 0; - virtual QCString getReference() const { return m_ref; } - // symbols - QCString symbolName() const { return m_symbolName; } - void setSymbolName(const QCString &name) { m_symbolName=name; } + /*! If this definition was imported via a tag file, this function + * returns the tagfile for the external project. This can be + * translated into an external link target via + * Doxygen::tagDestinationDict + */ + virtual QCString getReference() const { return m_ref; } + /*! Returns TRUE if this definition is imported via a tag file. */ virtual bool isReference() const { return !m_ref.isEmpty(); } + + /*! Sets the tag file id via which this definition was imported. */ void setReference(const char *r) { m_ref=r; } + /*! Returns the name of this definition as it appears in the symbol map. + */ + QCString symbolName() const { return m_symbolName; } + + /*! Sets the name of this definition as it should appear in the symbol map. + */ + void setSymbolName(const QCString &name) { m_symbolName=name; } + /*! Add the list of anchors that mark the sections that are found in the * documentation. */ void addSectionsToDefinition(QList<SectionInfo> *anchorList); + + /*! Writes the documentation anchors of the definition to + * the Doxygen::tagFile stream. + */ void writeDocAnchorsToTagFile(); // source references @@ -120,28 +177,14 @@ class Definition void addSourceReferencedBy(MemberDef *d); void addSourceReferences(MemberDef *d); - //{ - // if (todoId!=0) m_todoId=todoId; - // if (testId!=0) m_testId=testId; - // if (bugId!=0) m_bugId=bugId; - //} - //int todoId() const { return m_todoId; } - //int testId() const { return m_testId; } - //int bugId() const { return m_bugId; } void setRefItems(const QList<ListItemInfo> *sli); void mergeRefItems(Definition *d); const QList<ListItemInfo> *xrefListItems() const; - /*! returns the file in which this definition was found */ - QCString getDefFileName() const { return m_defFileName; } - /*! returns the line number at which the definition was found */ - int getDefLine() const { return m_defLine; } - virtual Definition *findInnerCompound(const char *name); virtual Definition *getOuterScope() const { return m_outerScope; } virtual void addInnerCompound(Definition *d); virtual void setOuterScope(Definition *d) { m_outerScope = d; } - virtual void computeReachability(); MemberSDict *getReferencesMembers() const { return m_sourceRefsDict; } MemberSDict *getReferencedByMembers() const { return m_sourceRefByDict; } @@ -149,7 +192,6 @@ class Definition void makePartOfGroup(GroupDef *gd); GroupList *partOfGroups() const { return m_partOfGroups; } QCString convertNameToFile(const char *name,bool allowDots=FALSE) const; - void addReachableDef(Definition *d,int distance); protected: int m_startBodyLine; // line number of the start of the definition @@ -169,10 +211,6 @@ class Definition /*! List of groups this definition is part of */ GroupList *m_partOfGroups; - // reachability of other definitions from this one - QDict<ReachableDefinition> m_reachableDefs; - bool m_reachabilityComputed; - private: int getXRefListId(const char *listName) const; void writeSourceRefList(OutputList &ol,const char *scopeName, diff --git a/src/dot.cpp b/src/dot.cpp index 16c5d07..1429645 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -82,12 +82,14 @@ static void writeGraphFooter(QTextStream &t) * site image map. * \param t the stream to which the result is written. * \param mapName the name of the map file. + * \param relPath the relative path to the root of the output directory + * (used in case CREATE_SUBDIRS is enabled). * \param urlOnly if FALSE the url field in the map contains an external * references followed by a $ and then the URL. * \returns TRUE if succesful. */ static bool convertMapFile(QTextStream &t,const char *mapName, - bool urlOnly=FALSE) + const QCString relPath, bool urlOnly=FALSE) { QFile f(mapName); if (!f.open(IO_ReadOnly)) @@ -146,7 +148,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName, { if ((dest=Doxygen::tagDestinationDict[df->ref()])) t << *dest << "/"; } - if (!df->file().isEmpty()) t << df->file() << Doxygen::htmlFileExtension; + if (!df->file().isEmpty()) t << relPath << df->file() << Doxygen::htmlFileExtension; if (!df->anchor().isEmpty()) t << "#" << df->anchor(); } else @@ -175,7 +177,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName, if ((dest=Doxygen::tagDestinationDict[refPtr])) t << *dest << "/"; t << "\" "; } - t << "href=\""; + t << "href=\"" << relPath; if (*refPtr!='\0') { if ((dest=Doxygen::tagDestinationDict[refPtr])) t << *dest << "/"; @@ -1004,7 +1006,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) out << "<tr><td><img src=\"" << imgName << "\" border=\"0\" alt=\"\" usemap=\"#" << mapLabel << "_map\">" << endl; out << "<map name=\"" << mapLabel << "_map\">" << endl; - convertMapFile(out,mapName); + convertMapFile(out,mapName,""); out << "</map></td></tr>" << endl; //thisDir.remove(mapName); } @@ -1740,7 +1742,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out, out << "\"></center>" << endl; QString tmpstr; QTextOStream tmpout(&tmpstr); - convertMapFile(tmpout,baseName+".map"); + convertMapFile(tmpout,baseName+".map",relPath); if (!tmpstr.isEmpty()) { out << "<map name=\"" << mapLabel << "\">" << endl; @@ -2004,7 +2006,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, out << "</center>" << endl; QString tmpstr; QTextOStream tmpout(&tmpstr); - convertMapFile(tmpout,baseName+".map"); + convertMapFile(tmpout,baseName+".map",relPath); if (!tmpstr.isEmpty()) { out << "<map name=\"" << mapName << "_map\">" << endl; @@ -2185,7 +2187,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format, out << "</center>" << endl; QString tmpstr; QTextOStream tmpout(&tmpstr); - convertMapFile(tmpout,baseName+".map"); + convertMapFile(tmpout,baseName+".map",relPath); if (!tmpstr.isEmpty()) { out << "<map name=\"" << mapName << "_map\">" << endl; @@ -2421,7 +2423,7 @@ QString getDotImageMapFromFile(const QString& inFile, const QString& outDir) } QString result; QTextOStream tmpout(&result); - convertMapFile(tmpout, outFile, TRUE); + convertMapFile(tmpout, outFile, "",TRUE); QDir().remove(outFile); // printf("result=%s\n",result.data()); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 6ca2c29..ba10bb9 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -3679,7 +3679,7 @@ static void computeClassRelations() if ((cd==0 || (!cd->hasDocumentation() && !cd->isReference())) && bName.right(2)!="::") { - if (!root->name.isEmpty() && root->name[0]!='@' && // normal name + if (!root->name.isEmpty() && root->name.find('@')==-1 && // normal name (guessSection(root->fileName)==Entry::HEADER_SEC || Config_getBool("EXTRACT_LOCAL_CLASSES")) && // not defined in source file (root->protection!=Private || Config_getBool("EXTRACT_PRIVATE")) && // hidden by protection diff --git a/src/doxygen.h b/src/doxygen.h index f16efed..b526495 100644 --- a/src/doxygen.h +++ b/src/doxygen.h @@ -34,7 +34,6 @@ #include "section.h" #include "membergroup.h" #include "reflist.h" -//#include "packagedef.h" class PageSList; class PageSDict; diff --git a/src/entry.cpp b/src/entry.cpp index 3bcaf31..2f2f237 100644 --- a/src/entry.cpp +++ b/src/entry.cpp @@ -38,7 +38,6 @@ Entry::Entry() argList->setAutoDelete(TRUE); //printf("Entry::Entry() tArgList=0\n"); tArgLists = 0; - //mtArgList = 0; mGrpId = -1; tagInfo = 0; sli = 0; @@ -88,9 +87,6 @@ Entry::Entry(const Entry &e) initLines = e.initLines; callGraph = e.callGraph; objc = e.objc; - //todoId = e.todoId; - //testId = e.testId; - //bugId = e.bugId; tagInfo = e.tagInfo; sublist = new QList<Entry>; sublist->setAutoDelete(TRUE); @@ -152,19 +148,6 @@ Entry::Entry(const Entry &e) tArgLists = copyArgumentLists(e.tArgLists); } - // deep copy template argument list - //if (e.mtArgList) - //{ - // mtArgList = new ArgumentList; - // mtArgList->setAutoDelete(TRUE); - // //printf("Entry::Entry(copy) new tArgList=%p\n",tArgList); - // QListIterator<Argument> mtali(*e.mtArgList); - // for (;(a=mtali.current());++mtali) - // { - // mtArgList->append(new Argument(*a)); - // //printf("appending argument %s %s\n",a->type.data(),a->name.data()); - // } - //} if (e.sli) { sli = new QList<ListItemInfo>; @@ -206,17 +189,6 @@ void Entry::addSubEntry(Entry *current) //printf("Entry::addSubEntry(%s) %p\n",current->name.data(),current->tArgList); current->parent=this; sublist->append(current); - - //if (current->tArgList) - //{ - // Argument * a=current->tArgList->first(); - // while (a) - // { - // printf("type=%s name=%s\n",a->type.data(),a->name.data()); - // a=current->tArgList->next(); - // } - //} - } void Entry::reset() @@ -227,7 +199,6 @@ void Entry::reset() bitfields.resize(0); exception.resize(0); program.resize(0); - //body.resize(0); includeFile.resize(0); includeName.resize(0); doc.resize(0); @@ -243,8 +214,6 @@ void Entry::reset() inbodyLine=-1; inside.resize(0); fileName.resize(0); - //scopeSpec.resize(0); - //memberSpec.resize(0); initializer.resize(0); initLines = -1; startLine = 1; @@ -252,9 +221,6 @@ void Entry::reset() endBodyLine = -1; mGrpId = -1; callGraph = FALSE; - //todoId = 0; - //testId = 0; - //bugId = 0; section = EMPTY_SEC; mtype = Method; virt = Normal; @@ -347,18 +313,6 @@ int Entry::getSize() al=tArgLists->next(); } } - //if (mtArgList) - //{ - // a=mtArgList->first(); - // while (e) - // { - // size+=sizeof(Argument); - // size+=a->type.length()+1 - // +a->name.length()+1 - // +a->defval.length()+1; - // a=mtArgList->next(); - // } - //} return size; } diff --git a/src/entry.h b/src/entry.h index 63ead7e..d18d7e7 100644 --- a/src/entry.h +++ b/src/entry.h @@ -136,9 +136,9 @@ struct Grouping { GROUPING_LOWEST, GROUPING_AUTO_WEAK = - GROUPING_LOWEST, //!< membership in group was defined via \@weakgroup - GROUPING_AUTO_ADD, //!< membership in group was defined via \@add[to]group - GROUPING_AUTO_DEF, //!< membership in group was defined via \@defgroup + GROUPING_LOWEST, //!< membership in group was defined via \@weakgroup + GROUPING_AUTO_ADD, //!< membership in group was defined via \@add[to]group + GROUPING_AUTO_DEF, //!< membership in group was defined via \@defgroup GROUPING_AUTO_HIGHEST = GROUPING_AUTO_DEF, GROUPING_INGROUP, //!< membership in group was defined by \@ingroup GROUPING_HIGHEST = GROUPING_INGROUP @@ -306,9 +306,9 @@ class Entry bool objc; //!< Objective-C construct enum { - GROUPDOC_NORMAL, //<! defgroup - GROUPDOC_ADD, //<! addgroup - GROUPDOC_WEAK //<! weakgroup + GROUPDOC_NORMAL, //!< defgroup + GROUPDOC_ADD, //!< addgroup + GROUPDOC_WEAK //!< weakgroup } groupDocType; //!< kind of group /// return the command name used to define GROUPDOC_SEC const char *groupDocCmd() const diff --git a/src/example.h b/src/example.h index 5adf26a..466816f 100644 --- a/src/example.h +++ b/src/example.h @@ -31,24 +31,6 @@ struct Example QCString file; }; -//class ExampleList : public QList<Example> -//{ -// public: -// ExampleList() : QList<Example>() {} -// ~ExampleList() {} -// int compareItems(GCI item1,GCI item2) -// { -// return stricmp(((Example *)item1)->name,((Example *)item2)->name); -// } -//}; - -//class ExampleDict : public QDict<Example> -//{ -// public: -// ExampleDict(int size=17) : QDict<Example>(size) {} -// ~ExampleDict() {} -//}; - class ExampleSDict : public SDict<Example> { public: diff --git a/src/groupdef.cpp b/src/groupdef.cpp index e9507ad..54b0bbd 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -573,6 +573,7 @@ void GroupDef::writeDocumentation(OutputList &ol) { ol.startMemberItem(0); ol.docify(theTranslator->trGroup(FALSE,TRUE)); + ol.docify(" "); ol.insertMemberAlign(); ol.writeObjectLink(gd->getReference(),gd->getOutputFileBase(),0,gd->groupTitle()); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) diff --git a/src/main.cpp b/src/main.cpp index 0cb8b72..9817b76 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -37,3 +37,4 @@ int main(int argc,char **argv) generateOutput(); return 0; } + diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 9676557..fd4ff55 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -188,7 +188,11 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd, QCString n=a->defval; if (!cName.isEmpty()) n=addTemplateNames(n,cd->name(),cName); ol.docify(" = "); - linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md->name(),n); + + ol.startTypewriter(); + linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md->name(),n,FALSE,TRUE,TRUE); + ol.endTypewriter(); + } a=defArgList->next(); if (a) @@ -618,21 +622,11 @@ void MemberDef::setDefinitionTemplateParameterLists(QList<ArgumentList> *lists) void MemberDef::writeLink(OutputList &ol,ClassDef *,NamespaceDef *, FileDef *,GroupDef *gd) { - //Definition *d=0; - //if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else if (gd) d=gd; - //if (d==0) { err("Member %s without definition! Please report this bug!\n",name().data()); return; } - //if (group!=0 && gd==0) // forward link to the group - //{ - // ol.writeObjectLink(group->getReference(),group->getOutputFileBase(),anchor(),name()); - //} - //else // local link - //{ - QCString sep = Config_getBool("OPTIMIZE_OUTPUT_JAVA") ? "." : "::"; - QCString n = name(); - if (classDef && gd) n.prepend(classDef->name()+sep); - else if (nspace && gd) n.prepend(nspace->name()+sep); - ol.writeObjectLink(getReference(),getOutputFileBase(),anchor(),n); - //} + QCString sep = Config_getBool("OPTIMIZE_OUTPUT_JAVA") ? "." : "::"; + QCString n = name(); + if (classDef && gd) n.prepend(classDef->name()+sep); + else if (nspace && gd) n.prepend(nspace->name()+sep); + ol.writeObjectLink(getReference(),getOutputFileBase(),anchor(),n); } /*! If this member has an anonymous class/struct/union as its type, then @@ -985,7 +979,11 @@ void MemberDef::writeDeclaration(OutputList &ol, if (!name().isEmpty() && name().at(0)!='@') // hide annonymous stuff { //printf("Member name=`%s gd=%p md->groupDef=%p inGroup=%d isLinkable()=%d\n",name().data(),gd,getGroupDef(),inGroup,isLinkable()); - if (isLinkable()) + if (!(name().isEmpty() || name().at(0)=='@') && // name valid + (hasDocumentation() || isReference()) && // has docs + !(prot==Private && !Config_getBool("EXTRACT_PRIVATE") && mtype!=Friend) && // hidden due to protection + !(isStatic() && classDef==0 && !Config_getBool("EXTRACT_STATIC")) // hidden due to static-ness + ) { if (annMemb) { @@ -1075,8 +1073,9 @@ void MemberDef::writeDeclaration(OutputList &ol, // write brief description if (!briefDescription().isEmpty() && - Config_getBool("BRIEF_MEMBER_DESC") && - !annMemb) + Config_getBool("BRIEF_MEMBER_DESC") + /* && !annMemb */ + ) { ol.startMemberDescription(); ol.parseDoc(briefFile(),briefLine(),getOuterScope()?getOuterScope():d,this,briefDescription(),TRUE,FALSE); @@ -1144,7 +1143,7 @@ bool MemberDef::isDetailedSectionLinkable() const // member is part of an anonymous scope that is the type of // another member in the list. // - bool inAnonymousScope = !briefDescription().isEmpty() && annUsed; + //bool inAnonymousScope = !briefDescription().isEmpty() && annUsed; // hide friend (class|struct|union) member if HIDE_FRIEND_COMPOUNDS // is true @@ -1156,7 +1155,7 @@ bool MemberDef::isDetailedSectionLinkable() const ) ); - return ((docFilter && staticFilter && privateFilter && friendCompoundFilter) || inAnonymousScope); + return ((docFilter && staticFilter && privateFilter && friendCompoundFilter) /*|| inAnonymousScope*/); } bool MemberDef::isDetailedSectionVisible(bool inGroup) const @@ -2050,7 +2049,10 @@ Specifier MemberDef::virtualness() const bool MemberDef::isConstructor() const { - return classDef ? name()==classDef->localName() : FALSE; + if (classDef) + return name()==classDef->localName(); + else + return FALSE; } bool MemberDef::isDestructor() const diff --git a/src/pngenc.h b/src/pngenc.h index c86cbce..66379cb 100644 --- a/src/pngenc.h +++ b/src/pngenc.h @@ -22,6 +22,7 @@ typedef unsigned char Byte; +/*! \brief Entry in the color palette of a PNG image */ struct Color { Byte red; @@ -29,6 +30,11 @@ struct Color Byte blue; }; +/*! \brief PNG image encoder + * + * This class allows to encode a raw image to a compressed PNG. + * Use write() to save the result to disk. + */ class PngEncoder { public: @@ -36,8 +42,6 @@ class PngEncoder ~PngEncoder(); void write(const char *fileName); - protected: - private: // image variables Byte *data; // pointer to the image data (one byte per pixel) diff --git a/src/scanner.l b/src/scanner.l index f8c7033..3470a18 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2154,7 +2154,8 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] current->type = current->type.mid(3); } current->type=current->type.simplifyWhiteSpace(); - current->args=current->args.simplifyWhiteSpace(); + current->args=removeRedundantWhiteSpace(current->args); + // was: current->args.simplifyWhiteSpace(); current->name=current->name.stripWhiteSpace(); //if (!current->name.isEmpty() && current->type.left(8)=="typedef ") //{ @@ -2338,7 +2339,8 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] current->program+=','; // add field terminator } // add compound definition to the tree - current->args = current->args.simplifyWhiteSpace(); + current->args=removeRedundantWhiteSpace(current->args); + // was: current->args.simplifyWhiteSpace(); current->type = current->type.simplifyWhiteSpace(); current->name = current->name.stripWhiteSpace(); //printf("adding `%s' `%s' `%s' brief=%s insideObjC=%d %x\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data(),insideObjC,current->section); @@ -3082,7 +3084,8 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] <Function>[;{,] { current->name=current->name.simplifyWhiteSpace(); current->type=current->type.simplifyWhiteSpace(); - current->args=current->args.simplifyWhiteSpace(); + current->args=removeRedundantWhiteSpace(current->args); + // was: current->args.simplifyWhiteSpace(); current->fileName = yyFileName; current->startLine = yyLineNr; if (*yytext!=';' || (current_root->section&Entry::COMPOUND_MASK) ) @@ -3694,7 +3697,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] } <Comment>"/*" { current->program += yytext ; } <Comment>"//" { current->program += yytext ; } -<Comment>[^\n\*]+ { current->program += yytext ; } +<Comment>[^\n\/\*]+ { current->program += yytext ; } <Comment>"*/" { current->program += yytext ; BEGIN( lastContext ) ; } diff --git a/src/translator_fr.h b/src/translator_fr.h index 9a05607..f959a4f 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -52,15 +52,54 @@ * -------------+------------------------------------------------------------ * 2003-09-12 | Update for new since 1.3.3 * -------------+------------------------------------------------------------ + * 2004-04-30 | Updates by Jacques Bouchard <jacques.bouchard@noos.fr>: + * | - spaces between ':' removed (should be added by the renderer) + * | - missing spaces added + * | - missing tests for OPTIMIZE_OUTPUT_FOR_C added + * | - translations corrected + * | - translator_fr.h now conforms exactly to translator_en.h + * | (try: gvim -d translator_en.h translator_fr.h) + * -------------+------------------------------------------------------------ */ #ifndef TRANSLATOR_FR_H #define TRANSLATOR_FR_H +// When defining a translator class for the new language, follow +// the description in the documentation. One of the steps says +// that you should copy the translator_en.h (this) file to your +// translator_xx.h new file. Your new language should use the +// Translator class as the base class. This means that you need to +// implement exactly the same (pure virtual) methods as the +// TranslatorEnglish does. Because of this, it is a good idea to +// start with the copy of TranslatorEnglish and replace the strings +// one by one. +// +// It is not necessary to include "translator.h" or +// "translator_adapter.h" here. The files are included in the +// language.cpp correctly. Not including any of the mentioned +// files frees the maintainer from thinking about whether the +// first, the second, or both files should be included or not, and +// why. This holds namely for localized translators because their +// base class is changed occasionaly to adapter classes when the +// Translator class changes the interface, or back to the +// Translator class (by the local maintainer) when the localized +// translator is made up-to-date again. + class TranslatorFrench : public Translator { public: - QCString idLanguage() + + // --- Language control methods ------------------- + + /*! Used for identification of the language. The identification + * should not be translated. It should be replaced by the name + * of the language in English using lower-case characters only + * (e.g. "czech", "japanese", "russian", etc.). It should be equal to + * the identification used in language.cpp. + */ + virtual QCString idLanguage() { return "french"; } + /*! Used to get the LaTeX command(s) for the language support. * This method should return string with commands that switch * LaTeX to the desired language. For example @@ -71,11 +110,8 @@ class TranslatorFrench : public Translator * "\\usepackage[latin2]{inputenc}\n" * "\\usepackage[T1]{fontenc}\n" * </pre> - * - * The Dutch LaTeX does not use such commands. Because of this - * the empty string is returned in this implementation. */ - QCString latexLanguageSupportCommand() + virtual QCString latexLanguageSupportCommand() { return "\\usepackage[french]{babel}\n"; } @@ -86,58 +122,69 @@ class TranslatorFrench : public Translator return "iso-8859-1"; } + // --- Language translation methods ------------------- + /*! used in the compound documentation before a list of related functions. */ - QCString trRelatedFunctions() + virtual QCString trRelatedFunctions() { return "Fonctions associées"; } /*! subscript for the related functions. */ - QCString trRelatedSubscript() - { return "(Noter que ces fonctions ne sont pas des méthodes de la classe)"; } + virtual QCString trRelatedSubscript() + { return "(Noter que ce ne sont pas des fonctions membres)"; } /*! header that is put before the detailed description of files, classes and namespaces. */ - QCString trDetailedDescription() + virtual QCString trDetailedDescription() { return "Description détaillée"; } /*! header that is put before the list of typedefs. */ - QCString trMemberTypedefDocumentation() - { return "Documentation des types imbriqués"; } + virtual QCString trMemberTypedefDocumentation() + { return "Documentation des typedef membres"; } /*! header that is put before the list of enumerations. */ - QCString trMemberEnumerationDocumentation() - { return "Documentation des énumérations imbriquées"; } + virtual QCString trMemberEnumerationDocumentation() + { return "Documentation des énumérations membres"; } /*! header that is put before the list of member functions. */ - QCString trMemberFunctionDocumentation() - { return "Documentation des méthodes"; } + virtual QCString trMemberFunctionDocumentation() + { return "Documentation des fonctions membres"; } /*! header that is put before the list of member attributes. */ - QCString trMemberDataDocumentation() - { return "Documentation des données imbriquées"; } + virtual QCString trMemberDataDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Documentation des champs"; + } + else + { + return "Documentation des données membres"; + } + } /*! this is the text of a link put after brief descriptions. */ - QCString trMore() + virtual QCString trMore() { return "Plus de détails..."; } /*! put in the class documentation */ - QCString trListOfAllMembers() + virtual QCString trListOfAllMembers() { return "Liste de tous les membres"; } /*! used as the title of the "list of all members" page of a class */ - QCString trMemberList() + virtual QCString trMemberList() { return "Liste des membres"; } /*! this is the first part of a sentence that is followed by a class name */ - QCString trThisIsTheListOfAllMembers() - { return "Ceci est la liste complète des membres de "; } + virtual QCString trThisIsTheListOfAllMembers() + { return "Liste complète des membres de "; } /*! this is the remainder of the sentence after the class name */ - QCString trIncludingInheritedMembers() - { return " y compris des membres des classes héritées."; } + virtual QCString trIncludingInheritedMembers() + { return ", y compris les membres hérités:"; } /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. */ - QCString trGeneratedAutomatically(const char *s) + virtual QCString trGeneratedAutomatically(const char *s) { QCString result="Généré automatiquement par Doxygen"; if (s) result+=(QCString)" pour "+s; result+=" à partir du code source."; @@ -145,15 +192,15 @@ class TranslatorFrench : public Translator } /*! put after an enum name in the list of all members */ - QCString trEnumName() + virtual QCString trEnumName() { return "énumération"; } /*! put after an enum value in the list of all members */ - QCString trEnumValue() - { return "élément d'une énumération"; } + virtual QCString trEnumValue() + { return "valeur énumérée"; } /*! put after an undocumented member in the list of all members */ - QCString trDefinedIn() + virtual QCString trDefinedIn() { return "défini dans"; } // quick reference sections @@ -161,337 +208,444 @@ class TranslatorFrench : public Translator /*! This is put above each page as a link to the list of all groups of * compounds or files (see the \\group command). */ - QCString trModules() + virtual QCString trModules() { return "Modules"; } /*! This is put above each page as a link to the class hierarchy */ - QCString trClassHierarchy() + virtual QCString trClassHierarchy() { return "Hiérarchie des classes"; } /*! This is put above each page as a link to the list of annotated classes */ - QCString trCompoundList() - { return "Liste des composants"; + virtual QCString trCompoundList() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Structures de données"; + } + else + { + return "Liste des classes"; + } + } - /*! This is put above each page as a link to the list of documented files */} - QCString trFileList() + /*! This is put above each page as a link to the list of documented files */ + virtual QCString trFileList() { return "Liste des fichiers"; } /*! This is put above each page as a link to the list of all verbatim headers */ - QCString trHeaderFiles() + virtual QCString trHeaderFiles() { return "Fichiers d'en-tête"; } /*! This is put above each page as a link to all members of compounds. */ - QCString trCompoundMembers() - { return "Composants"; } + virtual QCString trCompoundMembers() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Champs de donnée"; + } + else + { + return "Membres de classe"; + } + } /*! This is put above each page as a link to all members of files. */ - QCString trFileMembers() - { return "Déclarations"; } + virtual QCString trFileMembers() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Portée globale"; + } + else + { + return "Membres de fichier"; + } + } /*! This is put above each page as a link to all related pages. */ - QCString trRelatedPages() + virtual QCString trRelatedPages() { return "Pages associées"; } /*! This is put above each page as a link to all examples. */ - QCString trExamples() + virtual QCString trExamples() { return "Exemples"; } /*! This is put above each page as a link to the search engine. */ - QCString trSearch() + virtual QCString trSearch() { return "Recherche"; } /*! This is an introduction to the class hierarchy. */ - QCString trClassHierarchyDescription() - { return "Cette liste d'héritage est, autant que possible, " - "classée par ordre alphabétique"; } + virtual QCString trClassHierarchyDescription() + { return "Cette liste d'héritage est classée " + "approximativement par ordre alphabétique:"; + } /*! This is an introduction to the list with all files. */ - QCString trFileListDescription(bool extractAll) + virtual QCString trFileListDescription(bool extractAll) { QCString result="Liste de tous les fichiers "; if (!extractAll) result+="documentés "; - result+="avec une brève description :"; + result+="avec une brève description:"; return result; } /*! This is an introduction to the annotated compound list. */ - QCString trCompoundListDescription() - { return "Liste des classes, des structures et des unions " - "avec une brève description :"; + virtual QCString trCompoundListDescription() + { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Liste des structures de données avec une brève description:"; + } + else + { + return "Liste des classes, structures, " + "unions et interfaces avec une brève description:"; + } } /*! This is an introduction to the page with all class members. */ - QCString trCompoundMembersDescription(bool extractAll) + virtual QCString trCompoundMembersDescription(bool extractAll) { - QCString result="Liste de tous les membres de classe "; - if (!extractAll) result+="documentés "; - result+="avec les liens vers "; - if (!extractAll) result+="la documentation de la classe correspondante :"; - else result+="les classes auxquelles ils appartiennent :"; + QCString result="Liste de tous les "; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="champs de structure et d'union "; + } + else + { + result+="membres de classe "; + } + if (!extractAll) + { + result+="documentés "; + } + result+="avec liens vers "; + if (!extractAll) + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="la documentation de structure/union de chaque champ:"; + } + else + { + result+="la documentation de classe de chaque membre:"; + } + } + else + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="les structures/unions auxquelles ils appartiennent:"; + } + else + { + result+="les classes auxquelles ils appartiennent:"; + } + } return result; } /*! This is an introduction to the page with all file members. */ - QCString trFileMembersDescription(bool extractAll) - { - QCString result="Liste de toutes les déclarations"; - if (!extractAll) result+="documentées "; - result+="avec liens sur "; - if (extractAll) result+="la documentation du fichier correspondant " - "pour chacune :"; - else result+="les fichiers dans lesquels elles sont définies :"; + virtual QCString trFileMembersDescription(bool extractAll) + { + QCString result="Liste "; + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="des fonctions, variables, macros, enumérations, et typedefs "; + } + else + { + result+="de tous les membres de fichier "; + } + if (!extractAll) result+="documentés "; + result+="avec liens vers "; + if (extractAll) + result+="les fichiers auxquels ils appartiennent:"; + else + result+="la documentation:"; return result; } /*! This is an introduction to the page with the list of all header files. */ - QCString trHeaderFilesDescription() - { return "Liste de tous les fichiers d'en-tête constituant " - "l'interface de programmation :"; } + virtual QCString trHeaderFilesDescription() + { return "Liste des fichiers d'en-tête constituant l'interface de programmation:"; } /*! This is an introduction to the page with the list of all examples */ - QCString trExamplesDescription() - { return "Liste de tous les exemples :"; } + virtual QCString trExamplesDescription() + { return "Liste de tous les exemples:"; } /*! This is an introduction to the page with the list of related pages */ - QCString trRelatedPagesDescription() - { return "Liste de toutes les pages de documentation associées :"; } + virtual QCString trRelatedPagesDescription() + { return "Liste de toutes les pages de documentation associées:"; } /*! This is an introduction to the page with the list of class/file groups */ - QCString trModulesDescription() - { return "Liste de tous les modules"; } + virtual QCString trModulesDescription() + { return "Liste de tous les modules:"; } /*! This sentences is used in the annotated class/file lists if no brief * description is given. */ - QCString trNoDescriptionAvailable() - { return "Aucune description n'est disponible"; } + virtual QCString trNoDescriptionAvailable() + { return "Aucune description disponible"; } // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ - QCString trDocumentation() + virtual QCString trDocumentation() { return "Documentation"; } /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ - QCString trModuleIndex() + virtual QCString trModuleIndex() { return "Index des modules"; } /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ - QCString trHierarchicalIndex() + virtual QCString trHierarchicalIndex() { return "Index hiérarchique"; } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. */ - QCString trCompoundIndex() - { return "Index des composants"; } + virtual QCString trCompoundIndex() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Index des structures de données"; + } + else + { + return "Index des classes"; + } + } /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ - QCString trFileIndex() + virtual QCString trFileIndex() { return "Index des fichiers"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. */ - QCString trModuleDocumentation() - { return "Documentation du module"; } + virtual QCString trModuleDocumentation() + { return "Documentation des modules"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. */ - QCString trClassDocumentation() - { return "Documentation de la classe"; } + virtual QCString trClassDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Documentation des structures de données"; + } + else + { + return "Documentation des classes"; + } + } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. */ - QCString trFileDocumentation() - { return "Documentation du fichier"; } + virtual QCString trFileDocumentation() + { return "Documentation des fichiers"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ - QCString trExampleDocumentation() - { return "Documentation de l'exemple"; } + virtual QCString trExampleDocumentation() + { return "Documentation des exemples"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ - QCString trPageDocumentation() - { return "Documentation de la page"; } + virtual QCString trPageDocumentation() + { return "Documentation des pages associées"; } /*! This is used in LaTeX as the title of the document */ - QCString trReferenceManual() + virtual QCString trReferenceManual() { return "Manuel de référence"; } /*! This is used in the documentation of a file as a header before the * list of defines */ - QCString trDefines() - { return "Définitions des macros"; } + virtual QCString trDefines() + { return "Macros"; } /*! This is used in the documentation of a file as a header before the * list of function prototypes */ - QCString trFuncProtos() - { return "Prototypes des fonctions"; } + virtual QCString trFuncProtos() + { return "Prototypes de fonction"; } /*! This is used in the documentation of a file as a header before the * list of typedefs */ - QCString trTypedefs() - { return "Définitions des types"; } + virtual QCString trTypedefs() + { return "Typedefs"; } /*! This is used in the documentation of a file as a header before the * list of enumerations */ - QCString trEnumerations() + virtual QCString trEnumerations() { return "Énumérations"; } /*! This is used in the documentation of a file as a header before the * list of (global) functions */ - QCString trFunctions() + virtual QCString trFunctions() { return "Fonctions"; } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ - QCString trVariables() + virtual QCString trVariables() { return "Variables"; } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ - QCString trEnumerationValues() - { return "Éléments énumérés"; } + virtual QCString trEnumerationValues() + { return "Valeurs énumérées"; } /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ - QCString trDefineDocumentation() - { return "Documentation de la macro"; } + virtual QCString trDefineDocumentation() + { return "Documentation des macro"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ - QCString trFunctionPrototypeDocumentation() - { return "Documentation du prototype de la fonction"; } + virtual QCString trFunctionPrototypeDocumentation() + { return "Documentation des prototypes de fonction"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ - QCString trTypedefDocumentation() - { return "Documentation du type"; } + virtual QCString trTypedefDocumentation() + { return "Documentation des typedef"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ - QCString trEnumerationTypeDocumentation() + virtual QCString trEnumerationTypeDocumentation() { return "Documentation du type de l'énumération"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ - QCString trEnumerationValueDocumentation() - { return "Documentation de l'élément de l'énumeration"; } + virtual QCString trEnumerationValueDocumentation() + { return "Documentation de la valeur énumérée"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ - QCString trFunctionDocumentation() - { return "Documentation de la fonction"; } + virtual QCString trFunctionDocumentation() + { return "Documentation des fonctions"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ - QCString trVariableDocumentation() - { return "Documentation de la variable"; } + virtual QCString trVariableDocumentation() + { return "Documentation des variables"; } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds */ - QCString trCompounds() - { return "Composants"; } + virtual QCString trCompounds() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Structures de données"; + } + else + { + return "Classes"; + } + } /*! This is used in the standard footer of each page and indicates when * the page was generated */ - QCString trGeneratedAt(const char *date,const char *projName) + virtual QCString trGeneratedAt(const char *date,const char *projName) { QCString result=(QCString)"Généré le "+date; if (projName) result+=(QCString)" pour "+projName; - result+=(QCString)" par "; + result+=(QCString)" par"; return result; } /*! This is part of the sentence used in the standard footer of each page. */ - QCString trWrittenBy() + virtual QCString trWrittenBy() { return "écrit par"; } /*! this text is put before a class diagram */ - QCString trClassDiagram(const char *clName) + virtual QCString trClassDiagram(const char *clName) { - return (QCString)"Graphe d'héritage de la classe "+clName; + return (QCString)"Graphe d'héritage de "+clName+":"; } /*! this text is generated when the \\internal command is used. */ - QCString trForInternalUseOnly() + virtual QCString trForInternalUseOnly() { return "À usage interne uniquement."; } /*! this text is generated when the \\reimp command is used. */ - QCString trReimplementedForInternalReasons() - { return "Redéfini pour des raisons internes; " - "l'interface n'est pas modifiée"; + virtual QCString trReimplementedForInternalReasons() + { return "Réimplémenté pour des raisons internes; " + "l'interface de programmation n'est pas modifiée."; } /*! this text is generated when the \\warning command is used. */ - QCString trWarning() + virtual QCString trWarning() { return "Avertissement"; } /*! this text is generated when the \\bug command is used. */ - QCString trBugsAndLimitations() + virtual QCString trBugsAndLimitations() { return "Bogues et limitations"; } /*! this text is generated when the \\version command is used. */ - QCString trVersion() + virtual QCString trVersion() { return "Version"; } /*! this text is generated when the \\date command is used. */ - QCString trDate() + virtual QCString trDate() { return "Date"; } /*! this text is generated when the \\return command is used. */ - QCString trReturns() + virtual QCString trReturns() { return "Renvoie"; } /*! this text is generated when the \\sa command is used. */ - QCString trSeeAlso() + virtual QCString trSeeAlso() { return "Voir également"; } /*! this text is generated when the \\param command is used. */ - QCString trParameters() + virtual QCString trParameters() { return "Paramètres"; } /*! this text is generated when the \\exception command is used. */ - QCString trExceptions() + virtual QCString trExceptions() { return "Exceptions"; } /*! this text is used in the title page of a LaTeX document. */ - QCString trGeneratedBy() + virtual QCString trGeneratedBy() { return "Généré par"; } - // new since 0.49-990307 - +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990307 +////////////////////////////////////////////////////////////////////////// + + /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() { return "Liste des namespaces"; } @@ -500,7 +654,7 @@ class TranslatorFrench : public Translator { QCString result="Liste de tous les namespaces "; if (!extractAll) result+="documentés "; - result+="avec une brève description :"; + result+="avec une brève description:"; return result; } @@ -508,7 +662,7 @@ class TranslatorFrench : public Translator * friends of a class */ virtual QCString trFriends() - { return "Amis (friends)"; } + { return "Amis"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 @@ -527,7 +681,7 @@ class TranslatorFrench : public Translator /*! used as the title of the HTML page of a class/struct/union */ virtual QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, - bool /*isTemplate*/) + bool isTemplate) { QCString result="Référence de "; switch(compType) @@ -540,8 +694,8 @@ class TranslatorFrench : public Translator case ClassDef::Category: result+="la catégorie "; break; case ClassDef::Exception: result+="l'exception "; break; } - result+=(QCString)clName; + if (isTemplate) result+=" (modèle)"; return result; } @@ -549,7 +703,7 @@ class TranslatorFrench : public Translator virtual QCString trFileReference(const char *fileName) { QCString result= "Référence du fichier "; - result += fileName; + result+=fileName; return result; } @@ -557,31 +711,30 @@ class TranslatorFrench : public Translator virtual QCString trNamespaceReference(const char *namespaceName) { QCString result= "Référence du namespace "; - result += namespaceName; + result+=namespaceName; return result; } - /* these are for the member sections of a class, struct or union */ virtual QCString trPublicMembers() - { return "Membres publics"; } + { return "Fonctions membres publiques"; } virtual QCString trPublicSlots() { return "Connecteurs publics"; } virtual QCString trSignals() { return "Signaux"; } virtual QCString trStaticPublicMembers() - { return "Membres publics statiques"; } + { return "Fonctions membres publiques statiques"; } virtual QCString trProtectedMembers() - { return "Membres protégés"; } + { return "Fonctions membres protégées"; } virtual QCString trProtectedSlots() { return "Connecteurs protégés"; } virtual QCString trStaticProtectedMembers() - { return "Membres protégés statiques"; } + { return "Fonctions membres protégées statiques"; } virtual QCString trPrivateMembers() - { return "Membres privés"; } + { return "Fonctions membres privées"; } virtual QCString trPrivateSlots() { return "Connecteurs privés"; } virtual QCString trStaticPrivateMembers() - { return "Membres privés statiques"; } + { return "Fonctions membres privées statiques"; } /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. @@ -629,7 +782,7 @@ class TranslatorFrench : public Translator */ virtual QCString trReimplementedFromList(int numEntries) { - return "Redéfinie à partir de "+trWriteList(numEntries)+"."; + return "Réimplémentée à partir de "+trWriteList(numEntries)+"."; } /*! used in member documentation blocks to produce a list of @@ -637,23 +790,23 @@ class TranslatorFrench : public Translator */ virtual QCString trReimplementedInList(int numEntries) { - return "Redéfinie dans "+trWriteList(numEntries)+"."; + return "Réimplémentée dans "+trWriteList(numEntries)+"."; } /*! This is put above each page as a link to all members of namespaces. */ virtual QCString trNamespaceMembers() - { return "Membres des namespaces"; } + { return "Membres de namespace"; } /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) { - QCString result="Voici une liste de tous les membres de namespace"; + QCString result="Liste de tous les membres de namespace "; if (!extractAll) result+="documentés "; - result+=" avec liens vers "; + result+="avec liens vers "; if (extractAll) - result+="les documentations des namespaces associés :"; + result+="la documentation de namespace de chaque membre:"; else - result+="les namespaces auxquels ils appartiennent :"; + result+="les namespaces auxquels ils appartiennent:"; return result; } /*! This is used in LaTeX as the title of the chapter with the @@ -676,7 +829,7 @@ class TranslatorFrench : public Translator * namespaces in a file. */ virtual QCString trNamespaces() - { return "Espaces de nommage (namespaces)"; } + { return "Namespaces"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990728 @@ -689,20 +842,20 @@ class TranslatorFrench : public Translator bool single) { // here s is one of " Class", " Struct" or " Union" // single is true implies a single file - QCString result=(QCString)"La documentation associée à cette "; + QCString result=(QCString)"La documentation de "; switch(compType) { - case ClassDef::Class: result+="classe"; break; - case ClassDef::Struct: result+="structure"; break; - case ClassDef::Union: result+="union"; break; - case ClassDef::Interface: result+="interface"; break; - case ClassDef::Protocol: result+="protocol"; break; - case ClassDef::Category: result+="category"; break; - case ClassDef::Exception: result+="exception"; break; + case ClassDef::Class: result+="cette classe"; break; + case ClassDef::Struct: result+="cette structure"; break; + case ClassDef::Union: result+="cette union"; break; + case ClassDef::Interface: result+="cette interface"; break; + case ClassDef::Protocol: result+="ce protocol"; break; + case ClassDef::Category: result+="cette catégorie"; break; + case ClassDef::Exception: result+="cette exception"; break; } result+=" a été générée à partir "; - if (single) result+=" du fichier suivant :"; - else result+="des fichiers suivants :"; + if (single) result+="du fichier suivant:"; + else result+="des fichiers suivants:"; return result; } @@ -710,10 +863,7 @@ class TranslatorFrench : public Translator * list. */ virtual QCString trAlphabeticalList() - { - return "Liste par ordre alphabétique"; - } - + { return "Liste alphabétique"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990901 @@ -732,7 +882,7 @@ class TranslatorFrench : public Translator * documentation. It should be an abbreviation of the word page. */ virtual QCString trPageAbbreviation() - { return "p. "; } + { return "p."; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-991003 @@ -750,6 +900,7 @@ class TranslatorFrench : public Translator { return "Définition dans le fichier @0."; } + ////////////////////////////////////////////////////////////////////////// // new since 0.49-991205 ////////////////////////////////////////////////////////////////////////// @@ -766,17 +917,17 @@ class TranslatorFrench : public Translator /*! this text is put before a collaboration diagram */ virtual QCString trCollaborationDiagram(const char *clName) { - return (QCString)"Diagramme de collaboration de "+clName+":"; + return (QCString)"Graphe de collaboration de "+clName+":"; } /*! this text is put before an include dependency graph */ virtual QCString trInclDepGraph(const char *fName) { - return (QCString)"Graphe des dépendances par inclusion pour "+fName+":"; + return (QCString)"Graphe des dépendances par inclusion de "+fName+":"; } /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return "Documentation des contructeurs et destructeurs"; + return "Documentation des contructeurs et destructeur"; } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() @@ -806,7 +957,7 @@ class TranslatorFrench : public Translator /*! Text shown before a multi-line variable/enum initialization */ virtual QCString trInitialValue() { - return "Initialisation:"; + return "Valeur initiale:"; } /*! Text used the source code in the file index */ virtual QCString trCode() @@ -815,15 +966,15 @@ class TranslatorFrench : public Translator } virtual QCString trGraphicalHierarchy() { - return "Diagramme hiérarchique des classes"; + return "Graphe hiérarchique des classes"; } virtual QCString trGotoGraphicalHierarchy() { - return "Aller au diagramme hiérarchique des classes"; + return "Aller au graphe hiérarchique des classes"; } virtual QCString trGotoTextualHierarchy() { - return "Aller à la hiérarchie des classes en texte"; + return "Aller à la hiérarchie des classes en mode texte"; } virtual QCString trPageIndex() { @@ -840,49 +991,56 @@ class TranslatorFrench : public Translator } virtual QCString trPublicTypes() { - return "Types Publics"; + return "Types publics"; } virtual QCString trPublicAttribs() { - return "Attributs Publics"; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Champs de données"; + } + else + { + return "Attributs publics"; + } } virtual QCString trStaticPublicAttribs() { - return "Attributs Publics Statiques"; + return "Attributs publics statiques"; } virtual QCString trProtectedTypes() { - return "Types Protégés"; + return "Types protégés"; } virtual QCString trProtectedAttribs() { - return "Attributs Protégés"; + return "Attributs protégés"; } virtual QCString trStaticProtectedAttribs() { - return "Attributs Protégés Statiques"; + return "Attributs protégés statiques"; } virtual QCString trPrivateTypes() { - return "Types Privés"; + return "Types privés"; } virtual QCString trPrivateAttribs() { - return "Attributs Privés"; + return "Attributs privés"; } virtual QCString trStaticPrivateAttribs() { - return "Attributs Privés Statiques"; + return "Attributs privés statiques"; } ////////////////////////////////////////////////////////////////////////// // new since 1.1.3 ////////////////////////////////////////////////////////////////////////// - /*! Used as a marker that is put before a todo item */ + /*! Used as a marker that is put before a \\todo item */ virtual QCString trTodo() { - return "À Faire"; + return "À faire"; } /*! Used as the header of the todo list */ virtual QCString trTodoList() @@ -925,13 +1083,14 @@ class TranslatorFrench : public Translator { return "Légende du graphe"; } - /*! page explaining how the dot graph's should be interpreted */ + /*! page explaining how the dot graph's should be interpreted + * The %A in the text below are to prevent link to classes called "A". + */ virtual QCString trLegendDocs() { return - "Cette page explique comment interpréter les graphes générés " - "par doxygen.<p>\n" - + "Cette page explique comment interpréter les graphes générés " + "par doxygen.<p>\n" "Considérez l'exemple suivant:\n" "\\code\n" "/*! Classe invisible à cause d'une troncature */\n" @@ -942,6 +1101,8 @@ class TranslatorFrench : public Translator "class Undocumented { };\n\n" "/*! Classe dérivée par héritage public */\n" "class PublicBase : public Truncated { };\n\n" + "/*! Un modèle de classe */\n" + "template<class T> class Templ { };\n\n" "/*! Classe dérivée par héritage protégé */\n" "class ProtectedBase { };\n\n" "/*! Classe dérivée par héritage privé */\n" @@ -953,41 +1114,46 @@ class TranslatorFrench : public Translator " protected ProtectedBase,\n" " private PrivateBase,\n" " public Undocumented\n" + " public Templ<int>\n" "{\n" " private:\n" " Used *m_usedClass;\n" "};\n" "\\endcode\n" - "Si la valeur 200 est attribuée au tag \\c MAX_DOT_GRAPH_HEIGHT " - "du fichier de configuration, cela génèrera le graphe suivant:" - "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" + "Si la valeur 240 est attribuée au tag \\c MAX_DOT_GRAPH_HEIGHT " + "du fichier de configuration, cela génèrera le graphe suivant:" + "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" - "Les rectangles du graphe ci-dessus ont la signification suivante:\n" + "Les rectangles du graphe ci-dessus ont la signification suivante:\n" "<ul>\n" "<li>Un rectangle plein noir représente la structure ou la classe pour laquelle " "le graphe est généré.\n" "<li>Un rectangle avec un bord noir indique une classe ou une structure documentée.\n" "<li>Un rectangle avec un bord gris indique une classe ou une structure non documentée.\n" "<li>Un rectangle avec un bord rouge indique une structure ou une classe documentée\n" - "pour laquelle des relations d'héritage ou de collaboration manquent. Un graphe est " - "tronqué s'il ne rentre pas dans les limites spécifiées." + "pour laquelle des relations d'héritage ou de collaboration manquent. Un graphe est " + "tronqué s'il n'entre pas dans les limites spécifiées." "</ul>\n" "Les flèches ont la signification suivante:\n" "<ul>\n" "<li>Une flèche bleu foncé est utilisée pour visualiser une relation d'héritage public " - "entre deux classes.\n" + "entre deux classes.\n" "<li>Une flèche vert foncé est utilisée pour une relation d'héritage protégé.\n" "<li>Une flèche rouge foncé est utilisée pour une relation d'héritage privé.\n" - "<li>Une flèche violette en pointillés est utilisée si une classe est contenue ou " - "utilisée par une autre classe. La flèche est étiquetée avec la ou les variable(s) " - "qui permettent d'accéder à la classe ou structure pointée. \n" + "<li>Une flèche violette en pointillés est utilisée si une classe est contenue ou " + "utilisée par une autre classe. La flèche est étiquetée avec la ou les variable(s) " + "qui permettent d'accéder à la classe ou structure pointée. \n" + "<li>Une flèche verte en pointillés indique une relation entre une classe instanciée et " + "le modèle de classe utilisé. La flèche est étiquetée avec " + "les paramètres de modèle de la classe instanciée.\n" "</ul>\n"; } /*! text for the link to the legend page */ virtual QCString trLegend() { - return "Légende"; + return "légende"; } + ////////////////////////////////////////////////////////////////////////// // new since 1.2.0 ////////////////////////////////////////////////////////////////////////// @@ -1010,7 +1176,7 @@ class TranslatorFrench : public Translator /*! Used as a section header for KDE-2 IDL methods */ virtual QCString trDCOPMethods() { - return "Méthodes DCOP"; + return "Fonctions membres DCOP"; } ////////////////////////////////////////////////////////////////////////// @@ -1255,6 +1421,7 @@ class TranslatorFrench : public Translator { return "Références"; } + ////////////////////////////////////////////////////////////////////////// // new since 1.2.13 ////////////////////////////////////////////////////////////////////////// @@ -1268,7 +1435,7 @@ class TranslatorFrench : public Translator } /*! used in member documentation blocks to produce a list of - * all members that implementation this member. + * all members that implement this abstract member. */ virtual QCString trImplementedInList(int numEntries) { @@ -1296,7 +1463,7 @@ class TranslatorFrench : public Translator */ virtual QCString trDeprecatedList() { - return "Liste obsolète"; + return "Liste des éléments obsolètes"; } ////////////////////////////////////////////////////////////////////////// @@ -1308,12 +1475,12 @@ class TranslatorFrench : public Translator */ virtual QCString trEvents() { - return "Evènements"; + return "Evénements"; } /*! Header used for the documentation section of a class' events. */ virtual QCString trEventDocumentation() { - return "Documentation des évènements"; + return "Documentation des événements"; } ////////////////////////////////////////////////////////////////////////// @@ -1331,14 +1498,14 @@ class TranslatorFrench : public Translator */ virtual QCString trPackageMembers() { - return "Méthodes de paquetage"; + return "Fonctions de paquetage"; } /*! Used as a heading for a list of static Java class functions with * package scope. */ virtual QCString trStaticPackageMembers() { - return "Méthodes statiques de paquetage"; + return "Fonctions statiques de paquetage"; } /*! Used as a heading for a list of Java class variables with package * scope. @@ -1369,7 +1536,7 @@ class TranslatorFrench : public Translator /*! Put in front of the call graph for a function. */ virtual QCString trCallGraph() { - return "Voici le graphique d'appel pour cette fonction:"; + return "Voici le graphe d'appel pour cette fonction:"; } ////////////////////////////////////////////////////////////////////////// @@ -1389,7 +1556,7 @@ class TranslatorFrench : public Translator */ virtual QCString trSearchResultsTitle() { - return "Resultats de la recherche"; + return "Résultats de la recherche"; } /*! This string is put just before listing the search results. The * text can be different depending on the number of documents found. @@ -1426,4 +1593,3 @@ class TranslatorFrench : public Translator }; #endif - diff --git a/src/util.cpp b/src/util.cpp index f962c1f..ca30377 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -78,9 +78,27 @@ TextGeneratorOLImpl::TextGeneratorOLImpl(OutputDocInterface &od) : m_od(od) { } -void TextGeneratorOLImpl::writeString(const char *s) const +void TextGeneratorOLImpl::writeString(const char *s,bool keepSpaces) const { - m_od.docify(s); + if (keepSpaces) + { + const char *p=s; + if (p) + { + char cs[2]; + char c; + cs[1]='\0'; + while ((c=*p++)) + { + if (c==' ') m_od.writeNonBreakableSpace(1); + else cs[0]=c,m_od.docify(cs); + } + } + } + else + { + m_od.docify(s); + } } void TextGeneratorOLImpl::writeBreak() const @@ -1171,9 +1189,26 @@ QCString removeRedundantWhiteSpace(const QCString &s) uint csp=0; for (i=0;i<l;i++) { +nextChar: char c=s.at(i); if (csp<6 && c==constScope[csp]) csp++; else csp=0; - if (i<l-2 && c=='<' && // current char is a < + if (c=='"') // quoted string + { + i++; + result+=c; + while (i<l) + { + char cc=s.at(i); + result+=cc; + if (cc=='\\') // escaped character + { result+=s.at(i+1); i+=2; } + else if (cc=='"') // end of string + { i++; goto nextChar; } + else // any other character + { i++; } + } + } + else if (i<l-2 && c=='<' && // current char is a < (isId(s.at(i+1)) || isspace((uchar)s.at(i+1))) && // next char is an id char or space (i<8 || !findOperator(s,i)) // string in front is not "operator" ) @@ -1252,7 +1287,10 @@ bool leftScopeMatch(const QCString &scope, const QCString &name) } -void linkifyText(const TextGeneratorIntf &out,Definition *scope,FileDef *fileScope,const char * /*name*/,const char *text,bool autoBreak,bool external) +void linkifyText(const TextGeneratorIntf &out,Definition *scope, + FileDef *fileScope,const char *, + const char *text, bool autoBreak,bool external, + bool keepSpaces) { //printf("`%s'\n",text); static QRegExp regExp("[a-z_A-Z][a-z_A-Z0-9:]*"); @@ -1290,20 +1328,20 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,FileDef *fileSco if (i==-1) i=splitText.find(' '); if (i!=-1) // add a link-break at i in case of Html output { - out.writeString(splitText.left(i+1)); + out.writeString(splitText.left(i+1),keepSpaces); out.writeBreak(); - out.writeString(splitText.right(splitLength-i-1)); + out.writeString(splitText.right(splitLength-i-1),keepSpaces); } else { - out.writeString(splitText); + out.writeString(splitText,keepSpaces); } floatingIndex=splitLength-i-1; } else { //ol.docify(txtStr.mid(skipIndex,newIndex-skipIndex)); - out.writeString(txtStr.mid(skipIndex,newIndex-skipIndex)); + out.writeString(txtStr.mid(skipIndex,newIndex-skipIndex),keepSpaces); } // get word from string QCString word=txtStr.mid(newIndex,matchLen); @@ -1370,7 +1408,7 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,FileDef *fileSco if (!found) // add word to the result { //ol.docify(word); - out.writeString(word); + out.writeString(word,keepSpaces); } // set next start point in the string //printf("index=%d/%d\n",index,txtStr.length()); @@ -1379,7 +1417,7 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,FileDef *fileSco } // add last part of the string to the result. //ol.docify(txtStr.right(txtStr.length()-skipIndex)); - out.writeString(txtStr.right(txtStr.length()-skipIndex)); + out.writeString(txtStr.right(txtStr.length()-skipIndex),keepSpaces); } @@ -57,7 +57,7 @@ class Definition; class TextGeneratorIntf { public: - virtual void writeString(const char *) const = 0; + virtual void writeString(const char *,bool) const = 0; virtual void writeBreak() const = 0; virtual void writeLink(const char *extRef,const char *file, const char *anchor,const char *text @@ -68,7 +68,7 @@ class TextGeneratorOLImpl : public TextGeneratorIntf { public: TextGeneratorOLImpl(OutputDocInterface &od); - void writeString(const char *s) const; + void writeString(const char *s,bool keepSpaces) const; void writeBreak() const; void writeLink(const char *extRef,const char *file, const char *anchor,const char *text @@ -85,7 +85,8 @@ void linkifyText(const TextGeneratorIntf &ol, const char *name, const char *text, bool autoBreak=FALSE, - bool external=TRUE + bool external=TRUE, + bool keepSpaces=FALSE ); void setAnchors(ClassDef *cd,char id,MemberList *ml,int groupId=-1); QCString fileToString(const char *name,bool filter=FALSE); diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index a128a00..ae853b4 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -445,7 +445,9 @@ void XmlDocVisitor::visitPost(DocSimpleListItem *) void XmlDocVisitor::visitPre(DocSection *s) { if (m_hide) return; - m_t << "<sect" << s->level() << " id=\"" << s->id() << "\">" << endl; + m_t << "<sect" << s->level() << " id=\"" << s->file(); + if (!s->anchor().isEmpty()) m_t << "_1" << s->anchor(); + m_t << "\">" << endl; m_t << "<title>"; filter(s->title()); m_t << "</title>" << endl; diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index ef45139..aca2094 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -153,7 +153,7 @@ class TextGeneratorXMLImpl : public TextGeneratorIntf { public: TextGeneratorXMLImpl(QTextStream &t): m_t(t) {} - void writeString(const char *s) const + void writeString(const char *s,bool /*keepSpaces*/) const { writeXMLString(m_t,s); } diff --git a/tmake/lib/beos-g++/app.t b/tmake/lib/beos-g++/app.t new file mode 100755 index 0000000..867725e --- /dev/null +++ b/tmake/lib/beos-g++/app.t @@ -0,0 +1,2 @@ +#! Use the common Unix template +#$ IncludeTemplate("../unix/app.t"); diff --git a/tmake/lib/beos-g++/lib.t b/tmake/lib/beos-g++/lib.t new file mode 100755 index 0000000..2523b2f --- /dev/null +++ b/tmake/lib/beos-g++/lib.t @@ -0,0 +1,2 @@ +#! Use the common Unix template +#$ IncludeTemplate("../unix/lib.t"); diff --git a/tmake/lib/beos-g++/subdirs.t b/tmake/lib/beos-g++/subdirs.t new file mode 100755 index 0000000..5e888af --- /dev/null +++ b/tmake/lib/beos-g++/subdirs.t @@ -0,0 +1,2 @@ +#! Use the common Unix template +#$ IncludeTemplate("../unix/subdirs.t"); diff --git a/tmake/lib/beos-g++/tmake.conf b/tmake/lib/beos-g++/tmake.conf new file mode 100755 index 0000000..14172d6 --- /dev/null +++ b/tmake/lib/beos-g++/tmake.conf @@ -0,0 +1,50 @@ +# +# +# +# tmake configuration for linux-g++ +# + +TEMPLATE = app +CONFIG = qt warn_on release + +TMAKE_CC = gcc +TMAKE_CFLAGS = +TMAKE_CFLAGS_WARN_ON = -Wall -W +TMAKE_CFLAGS_WARN_OFF = +TMAKE_CFLAGS_RELEASE = +TMAKE_CFLAGS_DEBUG = -g +TMAKE_CFLAGS_SHLIB = -fPIC +TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses + +TMAKE_CXX = g++ +TMAKE_CXXFLAGS = $$TMAKE_CFLAGS +TMAKE_CXXFLAGS_WARN_ON = $$TMAKE_CFLAGS_WARN_ON +TMAKE_CXXFLAGS_WARN_OFF = $$TMAKE_CFLAGS_WARN_OFF +TMAKE_CXXFLAGS_RELEASE = $$TMAKE_CFLAGS_RELEASE +TMAKE_CXXFLAGS_DEBUG = $$TMAKE_CFLAGS_DEBUG +TMAKE_CXXFLAGS_SHLIB = $$TMAKE_CFLAGS_SHLIB +TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YACC + +TMAKE_INCDIR = +TMAKE_LIBDIR = +TMAKE_INCDIR_QT = $(QTDIR)/include +TMAKE_LIBDIR_QT = $(QTDIR)/lib + +TMAKE_LINK = g++ +TMAKE_LINK_SHLIB = g++ +TMAKE_LFLAGS = -Wl,-rpath=/lib:$(QTDIR)/lib +TMAKE_LFLAGS_RELEASE = +TMAKE_LFLAGS_DEBUG = +TMAKE_LFLAGS_SHLIB = -shared +TMAKE_LFLAGS_SONAME = -Wl,-soname, + +TMAKE_LIBS = +TMAKE_LIBS_QT = -lqt + +TMAKE_MOC = moc + +TMAKE_AR = ar cqs +TMAKE_RANLIB = + +TMAKE_TAR = tar -cf +TMAKE_GZIP = gzip -9f |