diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2003-02-15 20:00:58 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2003-02-15 20:00:58 (GMT) |
commit | 067ee3cfc7a79acd42cedb3f89713b9ed5f47f93 (patch) | |
tree | d5ea8d453754a1b971fadd965b8949a3a3d0de9a | |
parent | e0e5c8556b4713e7dad60537658cd411f8dfd858 (diff) | |
download | Doxygen-067ee3cfc7a79acd42cedb3f89713b9ed5f47f93.zip Doxygen-067ee3cfc7a79acd42cedb3f89713b9ed5f47f93.tar.gz Doxygen-067ee3cfc7a79acd42cedb3f89713b9ed5f47f93.tar.bz2 |
Release-1.3-rc3-20020215
-rw-r--r-- | INSTALL | 4 | ||||
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | addon/doxmlparser/include/doxmlintf.h | 6 | ||||
-rw-r--r-- | addon/doxmlparser/src/doxmlintf.h | 6 | ||||
-rw-r--r-- | addon/doxmlparser/src/sectionhandler.cpp | 14 | ||||
-rw-r--r-- | addon/doxmlparser/src/sectionhandler.h | 11 | ||||
-rw-r--r-- | addon/doxmlparser/test/main.cpp | 5 | ||||
-rwxr-xr-x | configure | 7 | ||||
-rw-r--r-- | doc/config.doc | 2 | ||||
-rw-r--r-- | doc/install.doc | 8 | ||||
-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-- | qtools/qtools.pro.in | 2 | ||||
-rw-r--r-- | src/code.l | 2 | ||||
-rw-r--r-- | src/docparser.cpp | 62 | ||||
-rw-r--r-- | src/doxygen.cpp | 21 | ||||
-rw-r--r-- | src/doxytag.pro.in | 1 | ||||
-rw-r--r-- | src/filedef.cpp | 24 | ||||
-rw-r--r-- | src/libdoxygen.pro.in | 1 | ||||
-rw-r--r-- | src/libdoxygen.t | 16 | ||||
-rw-r--r-- | src/pre.l | 5 | ||||
-rw-r--r-- | src/scanner.l | 14 | ||||
-rw-r--r-- | src/translator_dk.h | 844 | ||||
-rw-r--r-- | src/translator_fr.h | 12 | ||||
-rw-r--r-- | src/treeview.h | 500 | ||||
-rw-r--r-- | src/treeview.js | 500 | ||||
-rw-r--r-- | src/util.cpp | 64 | ||||
-rw-r--r-- | src/xmlgen.cpp | 9 |
30 files changed, 686 insertions, 1466 deletions
@@ -1,7 +1,7 @@ -DOXYGEN Version 1.3-rc3 +DOXYGEN Version 1.3-rc3-20030215 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (01 February 2003) +Dimitri van Heesch (15 February 2003) @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3_rc3 +DOXYGEN Version 1.3_rc3_20030215 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) (01 February 2003) +Dimitri van Heesch (dimitri@stack.nl) (15 February 2003) @@ -1 +1 @@ -1.3-rc3 +1.3-rc3-20030215 diff --git a/addon/doxmlparser/include/doxmlintf.h b/addon/doxmlparser/include/doxmlintf.h index 481cb2f..3f7762c 100644 --- a/addon/doxmlparser/include/doxmlintf.h +++ b/addon/doxmlparser/include/doxmlintf.h @@ -727,6 +727,12 @@ class ISection virtual bool isProtected() const = 0; }; +class IUserDefined : public ISection +{ + public: + virtual const IString * header() const = 0; +}; + class ISectionIterator { public: diff --git a/addon/doxmlparser/src/doxmlintf.h b/addon/doxmlparser/src/doxmlintf.h index 481cb2f..3f7762c 100644 --- a/addon/doxmlparser/src/doxmlintf.h +++ b/addon/doxmlparser/src/doxmlintf.h @@ -727,6 +727,12 @@ class ISection virtual bool isProtected() const = 0; }; +class IUserDefined : public ISection +{ + public: + virtual const IString * header() const = 0; +}; + class ISectionIterator { public: diff --git a/addon/doxmlparser/src/sectionhandler.cpp b/addon/doxmlparser/src/sectionhandler.cpp index 1bbdf3c..5da0006 100644 --- a/addon/doxmlparser/src/sectionhandler.cpp +++ b/addon/doxmlparser/src/sectionhandler.cpp @@ -88,6 +88,8 @@ SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent) m_members.setAutoDelete(TRUE); addEndHandler("sectiondef",this,&SectionHandler::endSection); addStartHandler("memberdef",this,&SectionHandler::startMember); + addStartHandler("header",this,&SectionHandler::startHeader); + addEndHandler("header",this,&SectionHandler::endHeader); } SectionHandler::~SectionHandler() @@ -115,6 +117,18 @@ void SectionHandler::startMember(const QXmlAttributes& attrib) m_members.append(memHandler); } +void SectionHandler::startHeader(const QXmlAttributes&) +{ + m_header=""; + m_curString=""; +} + +void SectionHandler::endHeader() +{ + m_header = m_curString.stripWhiteSpace(); + debug(2,"member header=`%s'\n",m_header.data()); +} + void SectionHandler::initialize(CompoundHandler *ch) { QListIterator<MemberHandler> mli(m_members); diff --git a/addon/doxmlparser/src/sectionhandler.h b/addon/doxmlparser/src/sectionhandler.h index 42d3340..b6b674f 100644 --- a/addon/doxmlparser/src/sectionhandler.h +++ b/addon/doxmlparser/src/sectionhandler.h @@ -34,12 +34,14 @@ class SectionIterator : }; -class SectionHandler : public ISection, public BaseHandler<SectionHandler> +class SectionHandler : public IUserDefined, public BaseHandler<SectionHandler> { public: virtual void startMember(const QXmlAttributes& attrib); + virtual void startHeader(const QXmlAttributes& attrib); virtual void startSection(const QXmlAttributes& attrib); virtual void endSection(); + virtual void endHeader(); SectionHandler(IBaseHandler *parent); virtual ~SectionHandler(); @@ -73,10 +75,17 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler> void initialize(CompoundHandler *c); + // IUserDefined implementation + virtual const IString *header() const + { + return &m_header; + } + private: IBaseHandler *m_parent; SectionKind m_kind; StringImpl m_kindString; + StringImpl m_header; QList<MemberHandler> m_members; }; diff --git a/addon/doxmlparser/test/main.cpp b/addon/doxmlparser/test/main.cpp index 4b8425c..c066a24 100644 --- a/addon/doxmlparser/test/main.cpp +++ b/addon/doxmlparser/test/main.cpp @@ -565,6 +565,11 @@ int main(int argc,char **argv) printf(" Section kind=%s\n",sec->kindString()->latin1()); IMemberIterator *mli = sec->members(); IMember *mem; + if( sec->kind() == ISection::UserDefined ) + { + IUserDefined *group = dynamic_cast<IUserDefined*>(sec); + printf(" Title=%s\n", group->header()->latin1() ); + } for (mli->toFirst();(mem=mli->current());mli->toNext()) { ILinkedTextIterator *lti = mem->type(); @@ -421,13 +421,6 @@ TMAKE_MOC = $QTDIR/bin/moc EOF fi - -#if test "$f_platform" = "win32-g++"; then -# cat >> .tmakeconfig <<EOF -# TMAKE_LFLAGS += -D_WIN32 -#EOF -#fi - if test "$f_english" = YES; then cat >> .tmakeconfig <<EOF TMAKE_CXXFLAGS += -DENGLISH_ONLY diff --git a/doc/config.doc b/doc/config.doc index 5c260fb..2dbd644 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -417,6 +417,8 @@ function's detailed documentation block. comments) as a brief description. This used to be the default behaviour. The new default is to treat a multi-line C++ comment block as a detailed description. Set this tag to YES if you prefer the old behaviour instead. + Note that setting this tag to YES also means that rational rose comments + are not recognised any more. \anchor cfg_details_at_top <dt>\c DETAILS_AT_TOP <dd> diff --git a/doc/install.doc b/doc/install.doc index 92c2416..a816e8b 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -25,10 +25,10 @@ to get the latest distribution, if you did not have it already. This section is divided into the following sections: <ul> <li>\ref install_src_unix "Compiling from source on Unix" -<li>\ref install_bin_unix "Installating the binaries on Unix" +<li>\ref install_bin_unix "Installing the binaries on Unix" <li>\ref unix_problems "Known compilation problems for Unix" <li>\ref install_src_windows "Compiling from source on Windows" -<li>\ref install_bin_windows "Installating the binaries on Windows" +<li>\ref install_bin_windows "Installing the binaries on Windows" <li>\ref build_tools "Tools used to develop doxygen" </ul> @@ -158,7 +158,7 @@ Compilation is now done by performing the following steps: </ol> -\section install_bin_unix Installating the binaries on Unix +\section install_bin_unix Installing the binaries on Unix After the compilation of the source code do a <code>make install</code> to install doxygen. If you downloaded the binary distribution for Unix, @@ -540,7 +540,7 @@ Compilation is now done by performing the following steps: documentation can be generated. </ol> -\section install_bin_windows Installating the binaries on Windows +\section install_bin_windows Installing the binaries on Windows There is no fancy installation procedure at the moment (if anyone can add it in a location independent way please let me know). diff --git a/doc/language.doc b/doc/language.doc index 1284672..be7b3ba 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means that the text fragments that doxygen generates can be produced in languages other than English (the default) at configuration time. -Currently (version 1.3-rc3), 28 languages +Currently (version 1.2.14-20020317), 28 languages are supported (sorted alphabetically): Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 1ae61da..b55ba8c 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_rc3 +Version: 1.3_rc3_20030215 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 9c2b53e..2ec484c 100644 --- a/qtools/qglobal.h +++ b/qtools/qglobal.h @@ -128,6 +128,8 @@ #define _OS_UNIXWARE7_ #elif !defined(_SCO_DS) && defined(__USLC__) && defined(__SCO_VERSION__) #define _OS_UNIXWARE7_ +#elif defined(__CYGWIN__) +#define _OS_CYGWIN_ #else #error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com" #endif diff --git a/qtools/qtools.pro.in b/qtools/qtools.pro.in index 74776ef..1a02797 100644 --- a/qtools/qtools.pro.in +++ b/qtools/qtools.pro.in @@ -74,6 +74,6 @@ win32:SOURCES += qfile_win32.cpp \ INCLUDEPATH = . TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE win32:TMAKE_CXXFLAGS += -DQT_NODLL -win32-g++:TMAKE_CXXFLAGS += -D_WIN32 -D__CYGWIN__ -DALL_STATIC +win32-g++:TMAKE_CXXFLAGS += -D__CYGWIN__ -DALL_STATIC OBJECTS_DIR = ../objects DESTDIR = ../lib @@ -1171,7 +1171,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" addType(); g_code->codify(yytext); } -<ClassName>{ID} { +<ClassName>{ID}("::"{ID})* { g_curClassName=yytext; addType(); generateClassOrGlobalLink(*g_code,yytext); diff --git a/src/docparser.cpp b/src/docparser.cpp index 2fd7341..05dd5bd 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -543,12 +543,19 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children, return tok; } while ((tok=doctokenizerYYlex()) && - tok!=TK_WHITESPACE && - tok!=TK_NEWPARA && - tok!=TK_LISTITEM && - tok!=TK_ENDLIST + tok!=TK_WHITESPACE && + tok!=TK_NEWPARA && + tok!=TK_LISTITEM && + tok!=TK_ENDLIST ) { + static QRegExp specialChar("[.,|()\\[\\]:;\\?]"); + if (tok==TK_WORD && g_token->name.length()==1 && + g_token->name.find(specialChar)!=-1) + { + // special character that ends the markup command + return tok; + } if (!defaultHandleToken(parent,tok,children)) { switch (tok) @@ -732,6 +739,7 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children DBG((" name=%s",g_token->name.data())); } DBG(("\n")); +reparsetoken: QString tokenName = g_token->name; switch (tok) { @@ -767,8 +775,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,TRUE)); tok=handleStyleArgument(parent,children,tokenName); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,FALSE)); - children.append(new DocWhiteSpace(parent," ")); + if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," ")); if (tok==TK_NEWPARA) goto handlepara; + else if (tok==TK_WORD) goto reparsetoken; } break; case CMD_BOLD: @@ -776,8 +785,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,TRUE)); tok=handleStyleArgument(parent,children,tokenName); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,FALSE)); - children.append(new DocWhiteSpace(parent," ")); + if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," ")); if (tok==TK_NEWPARA) goto handlepara; + else if (tok==TK_WORD) goto reparsetoken; } break; case CMD_CODE: @@ -785,8 +795,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,TRUE)); tok=handleStyleArgument(parent,children,tokenName); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,FALSE)); - children.append(new DocWhiteSpace(parent," ")); + if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," ")); if (tok==TK_NEWPARA) goto handlepara; + else if (tok==TK_WORD) goto reparsetoken; } break; case CMD_HTMLONLY: @@ -1001,7 +1012,14 @@ handlepara: return FALSE; break; case TK_URL: - children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr)); + if (g_insideHtmlLink) + { + children.append(new DocWord(parent,g_token->name)); + } + else + { + children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr)); + } break; default: return FALSE; @@ -1347,16 +1365,18 @@ void DocXRefItem::parse() { RefItem *item = refList->getRefItem(m_id); ASSERT(item!=0); - - m_file = refList->listName(); - m_anchor = item->listAnchor; - m_title = refList->sectionTitle(); - - if (!item->text.isEmpty()) + if (item) { - docParserPushContext(); - internalValidatingParseDoc(this,m_children,item->text); - docParserPopContext(); + m_file = refList->listName(); + m_anchor = item->listAnchor; + m_title = refList->sectionTitle(); + + if (!item->text.isEmpty()) + { + docParserPushContext(); + internalValidatingParseDoc(this,m_children,item->text); + docParserPopContext(); + } } } } @@ -3392,19 +3412,19 @@ int DocPara::handleCommand(const QString &cmdName) m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,TRUE)); retval=handleStyleArgument(this,m_children,cmdName); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,FALSE)); - m_children.append(new DocWhiteSpace(this," ")); + if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," ")); break; case CMD_BOLD: m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,TRUE)); retval=handleStyleArgument(this,m_children,cmdName); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,FALSE)); - m_children.append(new DocWhiteSpace(this," ")); + if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," ")); break; case CMD_CODE: m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,TRUE)); retval=handleStyleArgument(this,m_children,cmdName); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,FALSE)); - m_children.append(new DocWhiteSpace(this," ")); + if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," ")); break; case CMD_BSLASH: m_children.append(new DocSymbol(this,DocSymbol::BSlash)); @@ -4255,7 +4275,7 @@ reparsetoken: // the command ended normally, keep scanner for new tokens. retval = 0; } - else if (retval==TK_LISTITEM || retval==TK_ENDLIST) + else if (retval==TK_LISTITEM || retval==TK_ENDLIST || retval==TK_WORD) { tok = retval; goto reparsetoken; diff --git a/src/doxygen.cpp b/src/doxygen.cpp index eac9b8a..686bfff 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1239,7 +1239,6 @@ static void findIncludedUsingDirectives() { fd->visited=FALSE; } - fn=Doxygen::inputNameList.next(); } // then recursively add using directives found in #include files // to files that have not been visited. @@ -1247,11 +1246,14 @@ static void findIncludedUsingDirectives() { FileNameIterator fni(*fn); FileDef *fd; - for (;(fd=fni.current());++fni) + for (fni.toFirst();(fd=fni.current());++fni) { - if (!fd->visited) fd->addIncludedUsingDirectives(); + if (!fd->visited) + { + //printf("----- adding using directives for file %s\n",fd->name().data()); + fd->addIncludedUsingDirectives(); + } } - fn=Doxygen::inputNameList.next(); } } @@ -4419,6 +4421,10 @@ static void findMember(Entry *root, { Debug::print(Debug::FindMembers,0, "1. funcName=`%s'\n",funcName.data()); + if (funcName.left(9)=="operator ") + { + funcName = substitute(funcName,className+"::",""); + } if (!funcTempList.isEmpty()) // try with member specialization { mn=Doxygen::memberNameSDict[funcName+funcTempList]; @@ -4677,9 +4683,10 @@ static void findMember(Entry *root, { warn_cont("%s ",md->typeString()); } - warn_cont("%s::%s%s\n", - cd->qualifiedNameWithTemplateParameters().data(), - md->name().data(),md->argsString()); + QCString qScope = cd->qualifiedNameWithTemplateParameters(); + if (!qScope.isEmpty()) warn_cont("%s::%s",qScope.data(),md->name().data()); + if (md->argsString()) warn_cont("%s",md->argsString()); + warn_cont("\n"); } } } diff --git a/src/doxytag.pro.in b/src/doxytag.pro.in index 6fc00c7..6900938 100644 --- a/src/doxytag.pro.in +++ b/src/doxytag.pro.in @@ -27,7 +27,6 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib win32-borland:LIBS += qtools.lib shell32.lib win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk win32:TMAKE_CXXFLAGS += -DQT_NODLL -win32-g++:TMAKE_CXXFLAGS += -D_WIN32 INCLUDEPATH += ../qtools OBJECTS_DIR = ../objects TARGET = ../bin/doxytag diff --git a/src/filedef.cpp b/src/filedef.cpp index d360813..d3b606b 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -651,26 +651,32 @@ void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local) void FileDef::addIncludedUsingDirectives() { - if (!visited) + if (visited) return; + visited=TRUE; + //printf("( FileDef::addIncludedUsingDirectives for file %s\n",name().data()); + + NamespaceList nl; + if (includeList) // file contains #includes { - visited=TRUE; - NamespaceList nl; - if (includeList) // file contains #includes { QListIterator<IncludeInfo> iii(*includeList); IncludeInfo *ii; - for (;(ii=iii.current());++iii) // foreach #include... + for (iii.toFirst();(ii=iii.current());++iii) // foreach #include... { - if (ii->fileDef) // ...that is a known file + if (ii->fileDef && !ii->fileDef->visited) // ...that is a known file { // recurse into this file ii->fileDef->addIncludedUsingDirectives(); } } + } + { + QListIterator<IncludeInfo> iii(*includeList); + IncludeInfo *ii; // iterate through list from last to first for (iii.toLast();(ii=iii.current());--iii) { - if (ii->fileDef) + if (ii->fileDef && ii->fileDef!=this) { NamespaceList *unl = ii->fileDef->usingDirList; if (unl) @@ -681,14 +687,16 @@ void FileDef::addIncludedUsingDirectives() { // append each using directive found in a #include file if (usingDirList==0) usingDirList = new NamespaceList; + //printf("Prepending used namespace %s to the list of file %s\n", + // nd->name().data(),name().data()); usingDirList->prepend(nd); } } } } } - // add elements of nl to usingDirList } + //printf(") end FileDef::addIncludedUsingDirectives for file %s\n",name().data()); } diff --git a/src/libdoxygen.pro.in b/src/libdoxygen.pro.in index 0b7c1a4..0c039ce 100644 --- a/src/libdoxygen.pro.in +++ b/src/libdoxygen.pro.in @@ -111,7 +111,6 @@ HEADERS = bufstr.h \ translator_sr.h \ translator_tw.h \ translator_ua.h \ - treeview.h \ unistd.h \ util.h \ version.h \ diff --git a/src/libdoxygen.t b/src/libdoxygen.t index ae86907..d11df87 100644 --- a/src/libdoxygen.t +++ b/src/libdoxygen.t @@ -16,8 +16,10 @@ #! #$ IncludeTemplate("lib.t"); -LEX = flex -YACC = bison +LEX = flex +YACC = bison +PERL = perl +INCBUFSIZE = $(PERL) -n -e "s/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;" #${ sub GenerateDep { @@ -45,13 +47,13 @@ sub GenerateDep { #################### #$ GenerateDep("scanner.cpp","scanner.l"); - $(LEX) -PscanYY -t scanner.l >scanner.cpp + $(LEX) -PscanYY -t scanner.l | $(INCBUFSIZE) >scanner.cpp #$ GenerateDep("code.cpp","code.l"); - $(LEX) -PcodeYY -t code.l >code.cpp + $(LEX) -PcodeYY -t code.l | $(INCBUFSIZE) >code.cpp #$ GenerateDep("pre.cpp","pre.l"); - $(LEX) -PpreYY -t pre.l >pre.cpp + $(LEX) -PpreYY -t pre.l | $(INCBUFSIZE) >pre.cpp #$ GenerateDep("declinfo.cpp","declinfo.l"); $(LEX) -PdeclinfoYY -t declinfo.l >declinfo.cpp @@ -75,6 +77,6 @@ sub GenerateDep { $(YACC) -l -d -p cppExpYY constexp.y -o ce_parse.c -rm ce_parse.c -treeview.h: treeview.js - cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h +#treeview.h: treeview.js +# cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h @@ -1623,7 +1623,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) g_defLitText+=' '; BEGIN(SkipCPPComment); } -<SkipCComment>"*/" { +<SkipCComment>[/]?"*/" { + if (yytext[0]=='/') outputChar('/'); outputChar('*');outputChar('/'); if (--g_commentCount<=0) { @@ -1647,7 +1648,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <SkipCComment>. { outputChar(*yytext); } -<RemoveCComment>"*/" { BEGIN(g_lastCContext); } +<RemoveCComment>"*/" { BEGIN(g_lastCContext); } <RemoveCComment>"//" <RemoveCComment>"/*" <RemoveCComment>[^*\n]+ diff --git a/src/scanner.l b/src/scanner.l index 463aad6..0240316 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -47,7 +47,7 @@ #define YY_NEVER_INTERACTIVE 1 - + /* ----------------------------------------------------------------- * * statics @@ -181,6 +181,7 @@ static void initParser() insideTryBlock = FALSE; autoGroupStack.setAutoDelete(TRUE); lastDefGroup.groupname.resize(0); + insideFormula = FALSE; } static void initEntry() @@ -959,7 +960,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } <FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface lineCount(); - if (insideIDL || insideJava) + if (insideIDL || insideJava || insideCS) { isTypedef=FALSE; current->section = Entry::INTERFACE_SEC; @@ -3899,6 +3900,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } <ReadFormulaShort>\n { formulaText+=" "; + yyLineNr++; if (lastFormulaContext==LineDoc || lastFormulaContext==AfterDocLine ) @@ -3922,7 +3924,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) insideFormula=FALSE; BEGIN(lastFormulaContext); } -<ReadFormulaLong>\n { formulaText+=*yytext; } +<ReadFormulaLong>\n { formulaText+=*yytext; yyLineNr++; } <ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; } <ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" { checkDocs(); @@ -4195,7 +4197,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } } <ClassDocBrief>"<"{BR}{ATTR}">" -<ClassDocBrief>{BS}/{SECTIONCMD} { +<ClassDocBrief>{BS}/{SECTIONCMD} | +<ClassDocBrief>{B}*/{SECTIONCMD} { current->brief=current->brief.stripWhiteSpace(); BEGIN( lastBriefContext ); } @@ -4445,12 +4448,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } <Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,AfterDoc>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n { current->doc += yytext; + yyLineNr++; } <ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ { current->brief += "-"; } <ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n { - current->brief += "."; + current->brief += "."; yyLineNr++; } <Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+/[^/] <Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+{B}+ { diff --git a/src/translator_dk.h b/src/translator_dk.h index 98e6db5..87d11b2 100644 --- a/src/translator_dk.h +++ b/src/translator_dk.h @@ -1,12 +1,13 @@ +/*-*- c-basic-offset: 2 -*-*/ /****************************************************************************** * - * + * * * Copyright (C) 1997-2003 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -15,49 +16,93 @@ * */ -/* OBS! - Til danskere og andet godtfolk: - Jeg har været i tvivl om (i hvert fald) følgende ord: - - Member - - Compound - - Namespace - - Interface - - Jeg har besluttet (indtil videre) at lade følgende ord stå som de er, - da jeg selv overvejende bruger det engelske udtryk: - - Interface - - Typedef - - Union - (union ved jeg ikke engang, hvad jeg skal kalde på dansk... - udover måske 'union') - - (Konstruktivt) input modtages med glæde! +/* + * Danish translation by + * Erik Søe Sørensen <eriksoe@daimi.au.dk> + * + * First version (not complete) for Doxygen 1.2.7 + * Extended and revised for Doxygen 1.3 + */ + +/* Translator's notes: + + Oversættelseskonventioner: + (Konventioner for konventioner: + '?' angiver oversættelser, jeg har været i tvivl om + '??' angiver tvivlsomme oversættelser + '..?' angiver ord, der endnu ikke er fundet en oversættelse til + '(do.)' angiver ord, der med vilje ikke er oversat, idet jeg selv + overvejende bruger det engelske udtryk + '(-> _) angiver ord, der er fundet en oversættelse til, men som jeg + vægrer mig ved at oversætte. + ) + bug -> 'kendt fejl' + class -> klasse + compound -> 'sammensat type' + constructor -> konstruktør ? + destructor -> destruktør ? + event -> begivenhed ? + exception (-> undtagelse ?) + friend ..? + interface -> grænseflade ? + member -> medlem (TODO) + namespace -> (do.) + private -> privat + property -> egenskab? + protected -> beskyttet ?? + public -> offentlig + slot ..? + source code -> kildekode + struct -> datastruktur + template (-> skabelon ?) + typedef -> typedefinition (?) + todo -> (do.) + union ..? + + Specielle forbindelser: + 'Inheritance diagram' -> Stamtræ (selvom Nedarvningsdiagram også gik an) + + ----- + + (Konstruktivt) input modtages med glæde! + -- Erik Søe Sørensen <eriksoe@daimi.au.dk> */ #ifndef TRANSLATOR_DK_H #define TRANSLATOR_DK_H -class TranslatorDanish : public TranslatorAdapter_1_2_7 +class TranslatorDanish : public Translator { public: // --- Language control methods ------------------- - - /*! Used for identification of the language. The identification - * should not be translated. It should be replaced by the name + + /*! 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 + * (e.g. "czech", "japanese", "russian", etc.). It should be equal to * the identification used in language.cpp. */ virtual QCString idLanguage() { return "danish"; } - - /*! Used to get the LaTeX command(s) for the language support. This method - * was designed for languages which do wish to use a babel package. + + /*! 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 + * <pre>"\\usepackage[german]{babel}\n" + * </pre> + * or + * <pre>"\\usepackage{polski}\n" + * "\\usepackage[latin2]{inputenc}\n" + * "\\usepackage[T1]{fontenc}\n" + * </pre> */ virtual QCString latexLanguageSupportCommand() { - return "danish"; + return + "\\usepackage[danish]{babel}\n" + "\\usepackage[latin1]{inputenc}\n" + "\\usepackage[T1]{fontenc}\n"; } /*! return the language charset. This will be used for the HTML output */ @@ -76,37 +121,37 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trRelatedSubscript() { return "(Bemærk at disse ikke er medlems-funktioner.)"; } - /*! header that is put before the detailed description of files, classes and namespaces. */ + /*! header that is put before the detailed description of files, + * classes and namespaces. */ virtual QCString trDetailedDescription() { return "Detaljeret beskrivelse"; } /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() - { return "Dokumentation af medlems-typedefs"; } - + { return "Dokumentation af medlems-typedefinitioner"; } + /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() { return "Dokumentation af medlems-enumerationer"; } - + // medlems-enumerationer -> 'indeholdte enumerationer' + /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() { return "Dokumentation af medlemsfunktioner"; } - + /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Felt-dokumentation"; - } - else - { - return "Dokumentation af medlems-data"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Felt-dokumentation"; + } else { + return "Dokumentation af feltvariable"; + //medlems-data"; } } /*! this is the text of a link put after brief descriptions. */ - virtual QCString trMore() + virtual QCString trMore() { return "Mere..."; } /*! put in the class documentation */ @@ -119,90 +164,85 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! this is the first part of a sentence that is followed by a class name */ virtual QCString trThisIsTheListOfAllMembers() - { return "Dette er den komplette liste over medlemmer for "; } + { return "Dette er den komplette liste over medlemmer i "; } /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() { return ", inklusive alle nedarvede medlemmer."; } - + /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. */ virtual QCString trGeneratedAutomatically(const char *s) { QCString result="Automatisk genereret af Doxygen"; if (s) result+=(QCString)" for "+s; - result+=" ud fra kildekoden."; + result+=" ud fra kildekoden."; return result; } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() - { return "enum-navn"; } - + { return "enumerationsnavn"; } + /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() - { return "enum-værdi"; } - + { return "enumerationsværdi"; } + /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() { return "defineret i"; } // quick reference sections - /*! This is put above each page as a link to the list of all groups of + /*! This is put above each page as a link to the list of all groups of * compounds or files (see the \\group command). */ virtual QCString trModules() { return "Moduler"; } - + /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() { return "Klassehierarki"; } - + /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Datastrukturer"; - } - else - { - return "Compound List"; + } else { + return "Oversigt over sammensatte typer"; } } - + /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() - { return "Filliste"; } + { return "Filoversigt"; } /*! This is put above each page as a link to the list of all verbatim headers */ virtual QCString trHeaderFiles() - { return "Header-filer"; } + { return "Headerfiler"; } /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Data-felter"; + return "Data-felter"; } else { - return "Compound Members"; + return "Felter i sammensatte typer"; } } /*! This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Globale"; - } - else - { - return "Fil-medlemmer"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Globale symboler"; + } else { + return "Placering i filer"; // Fil-medlemmer"; //TODO + //"Globale definitioner" ? } } @@ -235,16 +275,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() - { - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Her er datastrukturerne med korte beskrivelser:"; - } - else - { - return "Her er klasserne, strukturerne, " - "unionerne og grænsefladerne med korte beskrivelser:"; + { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Her er datastrukturerne med korte beskrivelser:"; + } else { + return "Her er klasserne, datastrukturerne, " + "unionerne og grænsefladerne med korte beskrivelser:"; } } @@ -252,39 +289,26 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trCompoundMembersDescription(bool extractAll) { QCString result="Her er en liste over alle "; - if (!extractAll) - { + if (!extractAll) { result+="dokumenterede "; } - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="felter i strukturer og unioner"; - } - else - { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="felter i datastrukturer og unioner"; + } else { result+="klassemedlemmer"; } result+=" med links til "; - if (!extractAll) - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="struktur/unions-dokumentationen for hvert felt:"; - } - else - { + if (!extractAll) { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="datastruktur/unions-dokumentationen for hvert felt:"; + } else { result+="klassedokumentationen for hvert medlem:"; } - } - else - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="de strukturer/unioner de hører til:"; - } - else - { - result+="de klasser de hører til:"; + } else { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="de datastrukturer/unioner, de hører til:"; + } else { + result+="de klasser, de hører til:"; } } return result; @@ -295,27 +319,24 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 { QCString result="Her er en liste over alle "; if (!extractAll) result+="dokumenterede "; - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { result+="funktioner, variable, #defines, enumerationer " "og typedefinitioner"; - } - else - { + } else { result+="fil-medlemmer"; } result+=" med links til "; - if (extractAll) - result+="de filer de hører til:"; - else - result+="dokumentationen:"; + if (extractAll) + result+="de filer, de tilhører:"; + else + result+="deres dokumentation:"; return result; } /*! This is an introduction to the page with the list of all header files. */ virtual QCString trHeaderFilesDescription() - { return "Her er de headerfiler der udgør API'en:"; } + { return "Her er de headerfiler, der udgør API'en:"; } /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() @@ -330,50 +351,47 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 { return "Her er en liste over alle moduler:"; } /*! This sentences is used in the annotated class/file lists if no brief - * description is given. + * description is given. */ virtual QCString trNoDescriptionAvailable() { return "Ikke beskrevet"; } - - // index titles (the project name is prepended for these) + + // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ virtual QCString trDocumentation() { return "Dokumentation"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() - { return "Modul-index"; } + { return "Modul-indeks"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() - { return "Hierarkisk index"; } + { return "Hierarkisk indeks"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. */ virtual QCString trCompoundIndex() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Indeks over datastrukturer"; - } - else - { - return "Compound Index"; + } else { + return "Indeks over sammensatte typer"; } } /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ - virtual QCString trFileIndex() - { return "Fil-index"; } + virtual QCString trFileIndex() + { return "Fil-indeks"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. @@ -385,7 +403,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() - { return "Klasse-dokumentation"; } + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Datastruktur-documentation"; + } else { + return "Klasse-dokumentation"; + } + } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. @@ -407,53 +431,49 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() - { return "Reference-manual"; } - - /*! This is used in the documentation of a file as a header before the + { return "Referencemanual"; } + + /*! This is used in the documentation of a file as a header before the * list of defines */ virtual QCString trDefines() { return "#Defines"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of function prototypes */ virtual QCString trFuncProtos() { return "Funktionsprototyper"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of typedefs */ virtual QCString trTypedefs() - { return "Typedefs"; } + { return "Typedefinitioner"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of enumerations */ virtual QCString trEnumerations() { return "Enumerationer"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) functions */ virtual QCString trFunctions() { return "Funktioner"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trVariables() - { return "Variabler"; } + { return "Variable"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trEnumerationValues() { return "Enumerationsværdier"; } - - /*! This is used in man pages as the author section. */ - virtual QCString trAuthor() - { return "Forfatter"; } /*! This is used in the documentation of a file before the list of * documentation blocks for defines @@ -461,62 +481,59 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trDefineDocumentation() { return "#Define-dokumentation"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() - { return "Funktionsprototype-dokumentation"; } + { return "Dokumentation af funktionsprototyper"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() - { return "Typedef-dokumentation"; } + { return "Dokumentation af typedefinitioner"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() { return "Dokumentation af enumerations-typer"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() { return "Dokumentation af enumerations-værdier"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() { return "Funktions-dokumentation"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() { return "Variabel-dokumentation"; } - /*! This is used in the documentation of a file/namespace/group before + /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds */ virtual QCString trCompounds() - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Datastrukturer"; - } - else - { - return "Compounds"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Datastrukturer"; + } else { + return "Sammensatte typer"; } } - /*! This is used in the standard footer of each page and indicates when - * the page was generated + /*! This is used in the standard footer of each page and indicates when + * the page was generated */ virtual QCString trGeneratedAt(const char *date,const char *projName) - { + { QCString result=(QCString)"Genereret "+date; if (projName) result+=(QCString)" for "+projName; result+=(QCString)" af"; @@ -532,16 +549,16 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! this text is put before a class diagram */ virtual QCString trClassDiagram(const char *clName) { - return (QCString)"Nedarvningsdiagram for "+clName+":"; + return (QCString)"Stamtræ for "+clName+":"; } - + /*! this text is generated when the \\internal command is used. */ virtual QCString trForInternalUseOnly() { return "Kun til intern brug."; } /*! this text is generated when the \\reimp command is used. */ virtual QCString trReimplementedForInternalReasons() - { return "Metode overskrevet af interne grunde; " + { return "Metoden er genimplementeret af interne grunde; " "API'en er ikke påvirket."; } /*! this text is generated when the \\warning command is used. */ @@ -560,10 +577,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trDate() { return "Dato"; } - /*! this text is generated when the \\author command is used. */ - virtual QCString trAuthors() - { return "Forfatter(e)"; } - /*! this text is generated when the \\return command is used. */ virtual QCString trReturns() { return "Returnerer"; } @@ -579,7 +592,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! this text is generated when the \\exception command is used. */ virtual QCString trExceptions() { return "Exceptions"; } - + /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() { return "Genereret af"; } @@ -587,10 +600,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// - + /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() - { return "Namespace-liste"; } + { return "Oversigt over namespaces"; } /*! used as an introduction to the namespace list */ virtual QCString trNamespaceListDescription(bool extractAll) @@ -606,17 +619,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 */ virtual QCString trFriends() { return "Friends"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - + /*! used in the class documentation as a header before the list of all - * related classes + * related classes */ virtual QCString trRelatedFunctionDocumentation() - { return "Friends og relateret funktions-dokumentation"; } //?? - + { return "Dokumentation af friends og af relaterede funktioner"; } + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// @@ -630,9 +643,9 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 switch(compType) { case ClassDef::Class: result+=" Klasse-"; break; - case ClassDef::Struct: result+=" Struktur-"; break; + case ClassDef::Struct: result+=" Datastruktur-"; break; case ClassDef::Union: result+=" Union-"; break; - case ClassDef::Interface: result+=" Interface-"; break; + case ClassDef::Interface: result+=" Grænseflade-"; break; case ClassDef::Exception: result+=" Exception-"; break; } if (isTemplate) result+="template-"; @@ -644,7 +657,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trFileReference(const char *fileName) { QCString result=fileName; - result+=" Fil-reference"; + result+=" filreference"; return result; } @@ -652,31 +665,31 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trNamespaceReference(const char *namespaceName) { QCString result=namespaceName; - result+=" Namespace-reference"; + result+=" namespace-reference"; return result; } - + virtual QCString trPublicMembers() - { return "Public Methods"; } + { return "Offentlige metoder"; } virtual QCString trPublicSlots() - { return "Public Slots"; } + { return "Offentlige slots"; } virtual QCString trSignals() - { return "Signals"; } + { return "Signaler"; } virtual QCString trStaticPublicMembers() - { return "Static Public Methods"; } + { return "Statiske, offentlige metoder"; } virtual QCString trProtectedMembers() - { return "Protected Methods"; } + { return "Beskyttede metoder"; } virtual QCString trProtectedSlots() - { return "Protected Slots"; } + { return "Beskyttede slots"; } virtual QCString trStaticProtectedMembers() - { return "Static Protected Methods"; } + { return "Statiske, beskyttede metoder"; } virtual QCString trPrivateMembers() - { return "Private Methods"; } + { return "Private metoder"; } virtual QCString trPrivateSlots() - { return "Private Slots"; } + { return "Private slots"; } virtual QCString trStaticPrivateMembers() - { return "Static Private Methods"; } - + { return "Statiske, private metoder"; } + /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. */ @@ -685,29 +698,27 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 QCString result; int i; // the inherits list contain `numEntries' classes - for (i=0;i<numEntries;i++) - { + for (i=0;i<numEntries;i++) { // use generateMarker to generate placeholders for the class links! - result+=generateMarker(i); // generate marker for entry i in the list + result+=generateMarker(i); // generate marker for entry i in the list // (order is left to right) - - if (i!=numEntries-1) // not the last entry, so we need a separator - { - if (i<numEntries-2) // not the fore last entry + + if (i!=numEntries-1) { // not the last entry, so we need a separator + if (i<numEntries-2) // not the fore last entry result+=", "; else // the fore last entry - result+=", and "; + result+=" og "; } } - return result; + return result; } - + /*! used in class documentation to produce a list of base classes, * if class diagrams are disabled. */ virtual QCString trInheritsList(int numEntries) { - return "Inherits "+trWriteList(numEntries)+"."; + return "Nedarver "+trWriteList(numEntries)+"."; } /*! used in class documentation to produce a list of super classes, @@ -715,10 +726,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 */ virtual QCString trInheritedByList(int numEntries) { - return "Inherited by "+trWriteList(numEntries)+"."; + return "Nedarvet af "+trWriteList(numEntries)+"."; } - /*! used in member documentation blocks to produce a list of + /*! used in member documentation blocks to produce a list of * members that are hidden by this one. */ virtual QCString trReimplementedFromList(int numEntries) @@ -731,7 +742,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 */ virtual QCString trReimplementedInList(int numEntries) { - return "Reimplemented in "+trWriteList(numEntries)+"."; + return "Reimplementeret i "+trWriteList(numEntries)+"."; } /*! This is put above each page as a link to all members of namespaces. */ @@ -740,27 +751,27 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) - { + { QCString result="Her er en liste over alle "; if (!extractAll) result+="dokumenterede "; result+="namespace-medlemmer med links til "; - if (extractAll) + if (extractAll) result+="namespace-dokumentationen for hvert medlem:"; - else - result+="de namespaces, de hører til:"; + else + result+="det namespace, de hører til:"; return result; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all namespaces. */ virtual QCString trNamespaceIndex() - { return "Namespace Index"; } + { return "Namespace-indeks"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all namespaces. */ virtual QCString trNamespaceDocumentation() - { return "Namespace Dokumentation"; } + { return "Namespace-dokumentation"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990522 @@ -783,17 +794,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 bool single) { // here s is one of " Class", " Struct" or " Union" // single is true implies a single file - QCString result=(QCString)"The documentation for this "; + QCString result=(QCString)"Dokumentationen for denne "; switch(compType) { - case ClassDef::Class: result+="class"; break; - case ClassDef::Struct: result+="struct"; break; + case ClassDef::Class: result+="klasse"; break; + case ClassDef::Struct: result+="datastruktur"; break; case ClassDef::Union: result+="union"; break; - case ClassDef::Interface: result+="interface"; break; + case ClassDef::Interface: result+="grænseflade"; break; case ClassDef::Exception: result+="exception"; break; } - result+=" was generated from the following file"; - if (single) result+=":"; else result+="s:"; + result+=" blev genereret ud fra følgende fil"; + if (single) result+=":"; else result+="er:"; return result; } @@ -816,7 +827,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trMainPage() { return "Hovedside"; } - /*! This is used in references to page that are put in the LaTeX + /*! This is used in references to page that are put in the LaTeX * documentation. It should be an abbreviation of the word page. */ virtual QCString trPageAbbreviation() @@ -828,7 +839,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trSources() { - return "Sources"; + return "Kilder"; //?? } virtual QCString trDefinedAtLineInSourceFile() { @@ -845,7 +856,8 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trDeprecated() { - return "Deprecated"; + return "Frarådes - fortidslevn"; // ?? - What is the context? + // "Ugleset" :) } ////////////////////////////////////////////////////////////////////////// @@ -865,7 +877,8 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return "Constructor & Destructor dokumentation"; + return "Dokumentation af konstruktører og destruktører"; + // "Constructor & Destructor dokumentation"; } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() @@ -880,12 +893,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! Text for the \\pre command */ virtual QCString trPrecondition() { - return "Precondition"; + return "Forudsætninger (precondition)"; } /*! Text for the \\post command */ virtual QCString trPostcondition() { - return "Postcondition"; + return "Resultat (postcondition)"; } /*! Text for the \\invariant command */ virtual QCString trInvariant() @@ -900,11 +913,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! Text used the source code in the file index */ virtual QCString trCode() { - return "code"; + return "kildekode"; } virtual QCString trGraphicalHierarchy() { - return "Grafiske klassehierarki"; + return "Grafisk klassehierarki"; } virtual QCString trGotoGraphicalHierarchy() { @@ -916,59 +929,56 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 } virtual QCString trPageIndex() { - return "Page Index"; + return "Sideindeks"; } ////////////////////////////////////////////////////////////////////////// // new since 1.1.0 ////////////////////////////////////////////////////////////////////////// - + virtual QCString trNote() { return "Note"; } virtual QCString trPublicTypes() { - return "Public Typer"; + return "Offentlige typer"; } virtual QCString trPublicAttribs() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Datafelter"; - } - else - { - return "Public Attributes"; + } else { + return "Offentlige attributter"; } } virtual QCString trStaticPublicAttribs() { - return "Static Public Attributes"; + return "Statiske, offentlige attributter"; } virtual QCString trProtectedTypes() { - return "Protected Typer"; + return "Beskyttede typer"; } virtual QCString trProtectedAttribs() { - return "Protected Attributes"; + return "Beskyttede attributter"; } virtual QCString trStaticProtectedAttribs() { - return "Static Protected Attributes"; + return "Statiske, beskyttede attributter"; } virtual QCString trPrivateTypes() { - return "Private Types"; + return "Private typer"; } virtual QCString trPrivateAttribs() { - return "Private Attributes"; + return "Private attributter"; } virtual QCString trStaticPrivateAttribs() { - return "Static Private Attributes"; + return "Statiske, private attributter"; } ////////////////////////////////////////////////////////////////////////// @@ -983,7 +993,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! Used as the header of the todo list */ virtual QCString trTodoList() { - return "Todo List"; + return "Todo-liste"; } ////////////////////////////////////////////////////////////////////////// @@ -1000,18 +1010,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 } virtual QCString trAttention() { - return "Attention"; + return "OBS"; } virtual QCString trInclByDepGraph() { - return "Denne graf viser, hvilke filer der direkte eller " - "indirekte inkluderer denne fil:"; + return + "Denne graf viser, hvilke filer der direkte eller " + "indirekte inkluderer denne fil:"; } virtual QCString trSince() { return "Siden"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.1.5 ////////////////////////////////////////////////////////////////////////// @@ -1022,60 +1033,71 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 return "Graf-forklaring"; } /*! page explaining how the dot graph's should be interpreted */ - virtual QCString trLegendDocs() + virtual QCString trLegendDocs() //TODO { - return - "Denne side forklarer, hvordan man skal fortolke de grafer, " - "der genereres af doxygen.<p>\n" - "Consider the following example:\n" + return + "Denne side forklarer, hvordan man skal fortolke de grafer, " + "der genereres af doxygen.<p>\n" + "Tag følgende eksempel:\n" "\\code\n" - "/*! Invisible class because of truncation */\n" + "/*! Klasse der er usynlig pg.a. beskæring */\n" "class Invisible { };\n\n" - "/*! Truncated class, inheritance relation is hidden */\n" + "/*! Beskåret klasse: nedarvningsrelation er skjult */\n" "class Truncated : public Invisible { };\n\n" - "/* Class not documented with doxygen comments */\n" + "/* Klasse der ikke er dokumenteret med doxygen-kommentarer */\n" "class Undocumented { };\n\n" - "/*! Class that is inherited using public inheritance */\n" + "/*! Klasse der nedarves fra offentligt */\n" "class PublicBase : public Truncated { };\n\n" - "/*! Class that is inherited using protected inheritance */\n" + "/*! En template-klasse */\n" + "template<class T> class Templ { };\n\n" + "/*! Klasse der nedarves fra beskyttet */\n" "class ProtectedBase { };\n\n" - "/*! Class that is inherited using private inheritance */\n" + "/*! Klasse der nedarves fra privat */\n" "class PrivateBase { };\n\n" - "/*! Class that is used by the Inherited class */\n" + "/*! Klasse der bruges af Inherited-klassen */\n" "class Used { };\n\n" - "/*! Super class that inherits a number of other classes */\n" + "/*! Klasse der nedarver en masse andre klasser */\n" "class Inherited : public PublicBase,\n" " protected ProtectedBase,\n" " private PrivateBase,\n" " public Undocumented\n" + " public Templ<int>\n" "{\n" " private:\n" " Used *m_usedClass;\n" "};\n" "\\endcode\n" - "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " - "is set to 200 this will result in the following graph:" + "Hvis \\c MAX_DOT_GRAPH_HEIGHT i konfigurationsfilen " + "er sat til 240, vil dette resultere i følgende graf:" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" - "The boxes in the above graph have the following meaning:\n" + "De forskellige slags kasser i ovenstående graf har følgende " + "betydninger:\n" "<ul>\n" - "<li>A filled black box represents the struct or class for which the " - "graph is generated.\n" - "<li>A box with a black border denotes a documented struct or class.\n" - "<li>A box with a grey border denotes an undocumented struct or class.\n" - "<li>A box with a red border denotes a documented struct or class for\n" - "which not all inheritance/containment relations are shown. A graph is " - "truncated if it does not fit within the specified boundaries." + "<li>%En udfyldt sort kasse repræsenterer den datastruktur eller " + "klasse, grafen er genereret for.\n" + "<li>%En kasse med sort kant betegner en dokumenteret datastruktur " + " eller klasse.\n" + "<li>%En kasse med grå kant betegner en udokumenteret datastruktur " + " eller klasse.\n" + "<li>%En kasse med rød kant betegner en dokumenteret datastruktur " + " eller klasse, for hvilken ikke alle " + "nedarvnings- og indeholdelses-relationer er vist. " + "%Grafer beskæres, hvis de fylder mere end de specificerede dimensioner.\n " "</ul>\n" - "The arrows have the following meaning:\n" + "Pilene har følgende betydninger:\n" "<ul>\n" - "<li>A dark blue arrow is used to visualize a public inheritance " - "relation between two classes.\n" - "<li>A dark green arrow is used for protected inheritance.\n" - "<li>A dark red arrow is used for private inheritance.\n" - "<li>A purple dashed arrow is used if a class is contained or used " - "by another class. The arrow is labeled with the variable(s) " - "through which the pointed class or struct is accessible. \n" + "<li>%En mørkeblå pil viser en offentlig nedarvningsrelation " + "mellem to klasser.\n" + "<li>%En mørkegrøn pil viser en beskyttet nedarvningsrelation.\n" + "<li>%En mørkerød pil viser en privat nedarvningsrelation.\n" + "<li>%En lilla, stiplet pil bruges, når en klasse er indeholdt i " + "eller benyttes af en anden klasse. " + "Ved pilen står navnet på den eller de variable, gennem hvilke(n) " + "den klasse, pilen peger på, er tilgængelig.\n" + "<li>%En gul, stiplet pil viser forholdet mellem en template-instans " + "og den template-klasse, den er instantieret fra." + "Ved pilen står template-parametrene brugt ved instantieringen.\n" "</ul>\n"; } /*! text for the link to the legend page */ @@ -1083,11 +1105,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 { return "forklaring til graf"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.2.0 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a test item */ virtual QCString trTest() { @@ -1116,12 +1138,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! Used as a section header for IDL properties */ virtual QCString trProperties() { - return "Properties"; + return "Egenskaber"; } /*! Used as a section header for IDL property documentation */ virtual QCString trPropertyDocumentation() { - return "Property-dokumentation"; + return "Egenskabsdokumentation"; } ////////////////////////////////////////////////////////////////////////// @@ -1131,17 +1153,14 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! Used for Java interfaces in the summary section of Java packages */ virtual QCString trInterfaces() { - return "Interfaces"; + return "Grænseflader"; } /*! Used for Java classes in the summary section of Java packages */ virtual QCString trClasses() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Datastrukturer"; - } - else - { + } else { return "Klasser"; } } @@ -1153,37 +1172,39 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! Title of the package index page */ virtual QCString trPackageList() { - return "Pakkeliste"; + return "Pakkeoversigt"; } /*! The description of the package index page */ virtual QCString trPackageListDescription() { - return "Here are the packages with brief descriptions (if available):"; + return + "Her er en liste over pakkerne, med korte beskrivelser " + "(hvor en sådan findes):"; } /*! The link name in the Quick links header for each page */ virtual QCString trPackages() { - return "Packages"; + return "Pakker"; } /*! Used as a chapter title for Latex & RTF output */ virtual QCString trPackageDocumentation() { - return "Package Dokumentation"; + return "Pakke-dokumentation"; } /*! Text shown before a multi-line define */ virtual QCString trDefineValue() { return "Værdi:"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.2.5 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a \\bug item */ virtual QCString trBug() { - return "Fejl"; + return "Kendte fejl"; } /*! Used as the header of the bug list */ virtual QCString trBugList() @@ -1195,12 +1216,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 // new since 1.2.6 ////////////////////////////////////////////////////////////////////////// - /*! Used as ansicpg for RTF file */ + /*! Used as ansicpg for RTF file + * (used table extract:) + * <pre> + * Charset Name Charset Value(hex) Codepage number + * ------------------------------------------------------ + * ANSI_CHARSET 0 (x00) 1252 + * </pre> + */ virtual QCString trRTFansicp() { return "1252"; } - + /*! Used as ansicpg for RTF fcharset */ virtual QCString trRTFCharSet() { @@ -1212,96 +1240,204 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 { return "Indeks"; } - + /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trClass(bool first_capital, bool singular) - { - QCString result((first_capital ? "Klasse" : "klasse")); - if (first_capital) toupper(result.at(0)); - if (!singular) result+="r"; - return result; + { + //QCString result(first_capital ? "Klasse" : "klasse"); + //if (first_capital) result.at(0) = toupper(result.at(0)); + //if (!singular) result+="r"; + //return result; + return createNoun(first_capital, singular, "klasse", "r"); } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trFile(bool first_capital, bool singular) - { - QCString result((first_capital ? "Fil" : "fil")); - if (!singular) result+="er"; - return result; + { + //QCString result((first_capital ? "Fil" : "fil")); + //if (!singular) result+="er"; + //return result; + return createNoun(first_capital, singular, "fil", "er"); } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trNamespace(bool first_capital, bool singular) - { - QCString result((first_capital ? "Namespace" : "namespace")); - if (!singular) result+="s"; - return result; + { + //QCString result((first_capital ? "Namespace" : "namespace")); + //if (!singular) result+="s"; + //return result; + return createNoun(first_capital, singular, "namespace", "s"); } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trGroup(bool first_capital, bool singular) - { - QCString result((first_capital ? "Gruppe" : "gruppe")); - if (!singular) result+="r"; - return result; + { + //QCString result((first_capital ? "Gruppe" : "gruppe")); + //if (!singular) result+="r"; + //return result; + return createNoun(first_capital, singular, "gruppe", "r"); } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trPage(bool first_capital, bool singular) - { - QCString result((first_capital ? "Side" : "side")); - if (!singular) result+="r"; - return result; + { + //QCString result((first_capital ? "Side" : "side")); + //if (!singular) result+="r"; + //return result; + return createNoun(first_capital, singular, "side", "r"); } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trMember(bool first_capital, bool singular) - { - QCString result((first_capital ? "Medlem" : "medlem")); - if (!singular) result+="mer"; - return result; + { + //QCString result((first_capital ? "Medlem" : "medlem")); + //if (!singular) result+="mer"; + //return result; + return createNoun(first_capital, singular, "medlem", "mer"); } - + /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trField(bool first_capital, bool singular) - { - QCString result((first_capital ? "Felt" : "felt")); - if (!singular) result+="er"; - return result; + { + //QCString result((first_capital ? "Felt" : "felt")); + //if (!singular) result+="er"; + //return result; + return createNoun(first_capital, singular, "felt", "er"); } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trGlobal(bool first_capital, bool singular) - { - QCString result((first_capital ? "Global" : "global")); - if (!singular) result+="e"; - return result; + { + //QCString result((first_capital ? "Global" : "global")); + //if (!singular) result+="e"; + //return result; + return createNoun(first_capital, singular, "global", "e"); } - + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.7 +////////////////////////////////////////////////////////////////////////// + + /*! This text is generated when the \\author command is used and + * for the author section in man pages. */ + virtual QCString trAuthor(bool first_capital, bool singular) + { + //QCString result((first_capital ? "Forfatter" : "forfatter")); + //if (!singular) result+="e"; + //return result; + return createNoun(first_capital, singular, "forfatter", "e"); + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.11 +////////////////////////////////////////////////////////////////////////// + + /*! This text is put before the list of members referenced by a member + */ + virtual QCString trReferences() + { + return "Referencer"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + + /*! used in member documentation blocks to produce a list of + * members that are implemented by this one. + */ + virtual QCString trImplementedFromList(int numEntries) + { + return "Implementerer "+trWriteList(numEntries)+"."; + } + + /*! used in member documentation blocks to produce a list of + * all members that implement this abstract member. + */ + virtual QCString trImplementedInList(int numEntries) + { + return "Implementeret i "+trWriteList(numEntries)+"."; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Indholdsfortegnelse"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.17 +////////////////////////////////////////////////////////////////////////// + + /*! Used as the header of the list of item that have been + * flagged deprecated + */ + virtual QCString trDeprecatedList() + { + return "Liste over fortidslevn, hvis brug frarådes"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return "Begivenheder"; + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return "Begivenhedsdokumentation"; + } + + +/*---------- For internal use: ----------------------------------------*/ + protected: + /*! For easy flexible-noun implementation. + * \internal + */ + QCString createNoun(bool first_capital, bool singular, + const char* base, const char* plurSuffix) + { + QCString result(base); + if (first_capital) result.at(0) = toupper(result.at(0)); + if (!singular) result+=plurSuffix; + return result; + } }; #endif diff --git a/src/translator_fr.h b/src/translator_fr.h index 9934f8f..2641bb7 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -41,11 +41,13 @@ * -------------+------------------------------------------------------------ * 2002-10-22 | Update for new since 1.2.18 * -------------+------------------------------------------------------------ + * 2003-02-04 | Corrected typo. Thanks to Bertrand M. :) + * -------------+------------------------------------------------------------ */ #ifndef TRANSLATOR_FR_H #define TRANSLATOR_FR_H -class TranslatorFrench : public TranslatorAdapter_1_2_17 +class TranslatorFrench : public Translator { public: QCString idLanguage() @@ -205,7 +207,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17 /*! This is an introduction to the annotated compound list. */ QCString trCompoundListDescription() - { return "Liste des classes, des strutures et des unions " + { return "Liste des classes, des structures et des unions " "avec une brève description :"; } @@ -384,7 +386,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17 * of documentation blocks for enumeration types */ QCString trEnumerationTypeDocumentation() - { return "Documentation du type de l'énumeration"; } + { 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 @@ -959,13 +961,13 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17 "</ul>\n" "Les flèches ont la signification suivante:\n" "<ul>\n" - "<li>Une flèche bleu foncé est utilisée pour visuliser une relation d'héritage public " + "<li>Une flèche bleu foncé est utilisée pour visualiser une relation d'héritage public " "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'acceder à la classe ou structure pointée. \n" + "qui permettent d'accéder à la classe ou structure pointée. \n" "</ul>\n"; } /*! text for the link to the legend page */ diff --git a/src/treeview.h b/src/treeview.h deleted file mode 100644 index 9cbcccd..0000000 --- a/src/treeview.h +++ /dev/null @@ -1,500 +0,0 @@ -"//**************************************************************** \n" -"// You are free to copy the \"Folder-Tree\" script as long as you \n" -"// keep this copyright notice: \n" -"// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ \n" -"// Author: Marcelino Alves Martins (martins@hks.com) December '97. \n" -"//**************************************************************** \n" -" \n" -"//Log of changes: \n" -"// 17 Feb 98 - Fix initialization flashing problem with Netscape\n" -"// \n" -"// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS; \n" -"// make the ftien4 a js file \n" -"// \n" -"// DvH: Dec 2000 - Made some minor changes to support external \n" -"// references\n" -" \n" -"// Definition of class Folder \n" -"// ***************************************************************** \n" -" \n" -"function Folder(folderDescription, tagName, hreference) //constructor \n" -"{ \n" -" //constant data \n" -" this.desc = folderDescription \n" -" this.tagName = tagName\n" -" this.hreference = hreference \n" -" this.id = -1 \n" -" this.navObj = 0 \n" -" this.iconImg = 0 \n" -" this.nodeImg = 0 \n" -" this.isLastNode = 0 \n" -" \n" -" //dynamic data \n" -" this.isOpen = true \n" -" this.iconSrc = \"ftv2folderopen.png\" \n" -" this.children = new Array \n" -" this.nChildren = 0 \n" -" \n" -" //methods \n" -" this.initialize = initializeFolder \n" -" this.setState = setStateFolder \n" -" this.addChild = addChild \n" -" this.createIndex = createEntryIndex \n" -" this.hide = hideFolder \n" -" this.display = display \n" -" this.renderOb = drawFolder \n" -" this.totalHeight = totalHeight \n" -" this.subEntries = folderSubEntries \n" -" this.outputLink = outputFolderLink \n" -"} \n" -" \n" -"function setStateFolder(isOpen) \n" -"{ \n" -" var subEntries \n" -" var totalHeight \n" -" var fIt = 0 \n" -" var i=0 \n" -" \n" -" if (isOpen == this.isOpen) \n" -" return \n" -" \n" -" if (browserVersion == 2) \n" -" { \n" -" totalHeight = 0 \n" -" for (i=0; i < this.nChildren; i++) \n" -" totalHeight = totalHeight + this.children[i].navObj.clip.height \n" -" subEntries = this.subEntries() \n" -" if (this.isOpen) \n" -" totalHeight = 0 - totalHeight \n" -" for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) \n" -" indexOfEntries[fIt].navObj.moveBy(0, totalHeight) \n" -" } \n" -" this.isOpen = isOpen \n" -" propagateChangesInState(this) \n" -"} \n" -" \n" -"function propagateChangesInState(folder) \n" -"{ \n" -" var i=0 \n" -" \n" -" if (folder.isOpen) \n" -" { \n" -" if (folder.nodeImg) \n" -" if (folder.isLastNode) \n" -" folder.nodeImg.src = \"ftv2mlastnode.png\" \n" -" else \n" -" folder.nodeImg.src = \"ftv2mnode.png\" \n" -" folder.iconImg.src = \"ftv2folderopen.png\" \n" -" for (i=0; i<folder.nChildren; i++) \n" -" folder.children[i].display() \n" -" } \n" -" else \n" -" { \n" -" if (folder.nodeImg) \n" -" if (folder.isLastNode) \n" -" folder.nodeImg.src = \"ftv2plastnode.png\" \n" -" else \n" -" folder.nodeImg.src = \"ftv2pnode.png\" \n" -" folder.iconImg.src = \"ftv2folderclosed.png\" \n" -" for (i=0; i<folder.nChildren; i++) \n" -" folder.children[i].hide() \n" -" } \n" -"} \n" -" \n" -"function hideFolder() \n" -"{ \n" -" if (browserVersion == 1 || browserVersion == 3) { \n" -" if (this.navObj.style.display == \"none\") \n" -" return \n" -" this.navObj.style.display = \"none\" \n" -" } else { \n" -" if (this.navObj.visibility == \"hidden\") \n" -" return \n" -" this.navObj.visibility = \"hidden\" \n" -" } \n" -" \n" -" this.setState(0) \n" -"} \n" -" \n" -"function initializeFolder(level, lastNode, leftSide) \n" -"{ \n" -"var j=0 \n" -"var i=0 \n" -"var numberOfFolders \n" -"var numberOfDocs \n" -"var nc \n" -" \n" -" nc = this.nChildren \n" -" \n" -" this.createIndex() \n" -" \n" -" var auxEv = \"\" \n" -" \n" -" if (browserVersion > 0) \n" -" auxEv = \"<a href='javascript:clickOnNode(\"+this.id+\")'>\" \n" -" else \n" -" auxEv = \"<a>\" \n" -" \n" -" if (level>0) \n" -" if (lastNode) //the last 'brother' in the children array \n" -" { \n" -" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mlastnode.png' width=16 height=22 border=0></a>\") \n" -" leftSide = leftSide + \"<img src='ftv2blank.png' width=16 height=22>\" \n" -" this.isLastNode = 1 \n" -" } \n" -" else \n" -" { \n" -" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mnode.png' width=16 height=22 border=0></a>\") \n" -" leftSide = leftSide + \"<img src='ftv2vertline.png' width=16 height=22>\" \n" -" this.isLastNode = 0 \n" -" } \n" -" else \n" -" this.renderOb(\"\") \n" -" \n" -" if (nc > 0) \n" -" { \n" -" level = level + 1 \n" -" for (i=0 ; i < this.nChildren; i++) \n" -" { \n" -" if (i == this.nChildren-1) \n" -" this.children[i].initialize(level, 1, leftSide) \n" -" else \n" -" this.children[i].initialize(level, 0, leftSide) \n" -" } \n" -" } \n" -"} \n" -" \n" -"function drawFolder(leftSide) \n" -"{ \n" -" if (browserVersion == 2) { \n" -" if (!doc.yPos) \n" -" doc.yPos=8 \n" -" doc.write(\"<layer id='folder\" + this.id + \"' top=\" + doc.yPos + \" visibility=hidden>\") \n" -" } \n" -" if (browserVersion == 3) \n" -" {\n" -" doc.write(\"<div id='folder\" + this.id + \"' style='visibility:hide;'>\") \n" -" }\n" -" \n" -" doc.write(\"\\n<table \") \n" -" if (browserVersion == 1) \n" -" doc.write(\" id='folder\" + this.id + \"' style='position:block;' \") \n" -" doc.write(\" border=0 cellspacing=0 cellpadding=0>\") \n" -" doc.write(\"\\n<tr><td>\") \n" -" doc.write(leftSide) \n" -" this.outputLink() \n" -" doc.write(\"<img name='folderIcon\" + this.id + \"' \") \n" -" doc.write(\"src='\" + this.iconSrc+\"' border=0></a>\") \n" -" doc.write(\"</td>\\n<td valign=middle nowrap>\") \n" -" if (USETEXTLINKS) \n" -" { \n" -" this.outputLink() \n" -" doc.write(this.desc + \"</a>\") \n" -" } \n" -" else \n" -" doc.write(this.desc) \n" -" if (this.tagName!=\"\")\n" -" {\n" -" doc.write(\" [external]\")\n" -" }\n" -" doc.write(\"</td>\") \n" -" doc.write(\"\\n</table>\\n\") \n" -" \n" -" if (browserVersion == 2) { \n" -" doc.write(\"</layer>\") \n" -" } \n" -" if (browserVersion == 3) { \n" -" doc.write(\"</div>\") \n" -" } \n" -" \n" -" if (browserVersion == 1) { \n" -" this.navObj = doc.all[\"folder\"+this.id] \n" -" this.iconImg = doc.all[\"folderIcon\"+this.id] \n" -" this.nodeImg = doc.all[\"nodeIcon\"+this.id] \n" -" } else if (browserVersion == 2) { \n" -" this.navObj = doc.layers[\"folder\"+this.id] \n" -" this.iconImg = this.navObj.document.images[\"folderIcon\"+this.id] \n" -" this.nodeImg = this.navObj.document.images[\"nodeIcon\"+this.id] \n" -" doc.yPos=doc.yPos+this.navObj.clip.height \n" -" } else if (browserVersion == 3) {\n" -" this.navObj = doc.getElementById(\"folder\"+this.id)\n" -" this.iconImg = doc.images.namedItem(\"folderIcon\"+this.id)\n" -" this.nodeImg = doc.images.namedItem(\"nodeIcon\"+this.id)\n" -" }\n" -"} \n" -" \n" -"function outputFolderLink() \n" -"{ \n" -" if (this.hreference) \n" -" { \n" -" doc.write(\"<a \")\n" -" if (this.tagName)\n" -" {\n" -" doc.write(\"doxygen='\" + this.tagName + \"' \");\n" -" }\n" -" doc.write(\"href='\" + this.hreference + \"' TARGET=\\\"basefrm\\\" \") \n" -" if (browserVersion > 0) \n" -" doc.write(\"onClick='javascript:clickOnFolder(\"+this.id+\")'\") \n" -" doc.write(\">\") \n" -" } \n" -" else \n" -" doc.write(\"<a>\") \n" -"} \n" -" \n" -"function addChild(childNode) \n" -"{ \n" -" this.children[this.nChildren] = childNode \n" -" this.nChildren++ \n" -" return childNode \n" -"} \n" -" \n" -"function folderSubEntries() \n" -"{ \n" -" var i = 0 \n" -" var se = this.nChildren \n" -" \n" -" for (i=0; i < this.nChildren; i++){ \n" -" if (this.children[i].children) //is a folder \n" -" se = se + this.children[i].subEntries() \n" -" } \n" -" \n" -" return se \n" -"} \n" -" \n" -" \n" -"// Definition of class Item (a document or link inside a Folder) \n" -"// ************************************************************* \n" -" \n" -"function Item(itemDescription, tagName, itemLink) // Constructor \n" -"{ \n" -" // constant data \n" -" this.desc = itemDescription \n" -" this.tagName = tagName\n" -" this.link = itemLink \n" -" this.id = -1 //initialized in initalize() \n" -" this.navObj = 0 //initialized in render() \n" -" this.iconImg = 0 //initialized in render() \n" -" this.iconSrc = \"ftv2doc.png\" \n" -" \n" -" // methods \n" -" this.initialize = initializeItem \n" -" this.createIndex = createEntryIndex \n" -" this.hide = hideItem \n" -" this.display = display \n" -" this.renderOb = drawItem \n" -" this.totalHeight = totalHeight \n" -"} \n" -" \n" -"function hideItem() \n" -"{ \n" -" if (browserVersion == 1 || browserVersion == 3) { \n" -" if (this.navObj.style.display == \"none\") \n" -" return \n" -" this.navObj.style.display = \"none\" \n" -" } else { \n" -" if (this.navObj.visibility == \"hidden\") \n" -" return \n" -" this.navObj.visibility = \"hidden\" \n" -" } \n" -"} \n" -" \n" -"function initializeItem(level, lastNode, leftSide) \n" -"{ \n" -" this.createIndex() \n" -" \n" -" if (level>0) \n" -" if (lastNode) //the last 'brother' in the children array \n" -" { \n" -" this.renderOb(leftSide + \"<img src='ftv2lastnode.png' width=16 height=22>\") \n" -" leftSide = leftSide + \"<img src='ftv2blank.png' width=16 height=22>\" \n" -" } \n" -" else \n" -" { \n" -" this.renderOb(leftSide + \"<img src='ftv2node.png' width=16 height=22>\") \n" -" leftSide = leftSide + \"<img src='ftv2vertline.png' width=16 height=22>\" \n" -" } \n" -" else \n" -" this.renderOb(\"\") \n" -"} \n" -" \n" -"function drawItem(leftSide) \n" -"{ \n" -" if (browserVersion == 2) \n" -" doc.write(\"<layer id='item\" + this.id + \"' top=\" + doc.yPos + \" visibility=hidden>\") \n" -" if (browserVersion == 3) \n" -" doc.write(\"<div id='item\" + this.id + \"' style='display:block;'>\") \n" -" \n" -" doc.write(\"\\n<table \") \n" -" if (browserVersion == 1) \n" -" doc.write(\" id='item\" + this.id + \"' style='position:block;' \") \n" -" doc.write(\" border=0 cellspacing=0 cellpadding=0>\\n\") \n" -" doc.write(\"<tr><td>\") \n" -" doc.write(leftSide) \n" -" if (this.link!=\"\")\n" -" {\n" -" doc.write(\"<a href=\" + this.link + \">\") \n" -" }\n" -" doc.write(\"<img id='itemIcon\"+this.id+\"' \") \n" -" doc.write(\"src='\"+this.iconSrc+\"' border=0>\") \n" -" if (this.link!=\"\")\n" -" {\n" -" doc.write(\"</a>\")\n" -" } \n" -" doc.write(\"</td>\\n<td valign=middle nowrap>\") \n" -" if (USETEXTLINKS && this.link!=\"\") \n" -" doc.write(\"<a href=\" + this.link + \">\" + this.desc + \"</a>\") \n" -" else \n" -" doc.write(this.desc) \n" -" if (this.tagName!=\"\")\n" -" {\n" -" doc.write(\" [external]\");\n" -" }\n" -" doc.write(\"\\n</table>\\n\") \n" -" \n" -" if (browserVersion == 2) \n" -" doc.write(\"</layer>\") \n" -" if (browserVersion == 3) \n" -" doc.write(\"</div>\")\n" -" \n" -" if (browserVersion == 1) { \n" -" this.navObj = doc.all[\"item\"+this.id] \n" -" this.iconImg = doc.all[\"itemIcon\"+this.id] \n" -" } else if (browserVersion == 2) { \n" -" this.navObj = doc.layers[\"item\"+this.id] \n" -" this.iconImg = this.navObj.document.images[\"itemIcon\"+this.id] \n" -" doc.yPos=doc.yPos+this.navObj.clip.height \n" -" } else if (browserVersion == 3) {\n" -" this.navObj = doc.getElementById(\"item\"+this.id)\n" -" this.iconImg = doc.images.namedItem(\"itemIcon\"+this.id)\n" -" }\n" -"} \n" -" \n" -" \n" -"// Methods common to both objects (pseudo-inheritance) \n" -"// ******************************************************** \n" -" \n" -"function display() \n" -"{ \n" -" if (browserVersion == 1 || browserVersion == 3) \n" -" this.navObj.style.display = \"block\" \n" -" else \n" -" this.navObj.visibility = \"show\" \n" -"} \n" -" \n" -"function createEntryIndex() \n" -"{ \n" -" this.id = nEntries \n" -" indexOfEntries[nEntries] = this \n" -" nEntries++ \n" -"} \n" -" \n" -"// total height of subEntries open \n" -"function totalHeight() //used with browserVersion == 2 \n" -"{ \n" -" var h = this.navObj.clip.height \n" -" var i = 0 \n" -" \n" -" if (this.isOpen) //is a folder and _is_ open \n" -" for (i=0 ; i < this.nChildren; i++) \n" -" h = h + this.children[i].totalHeight() \n" -" \n" -" return h \n" -"} \n" -" \n" -" \n" -"// Events \n" -"// ********************************************************* \n" -" \n" -"function clickOnFolder(folderId) \n" -"{ \n" -" var clicked = indexOfEntries[folderId] \n" -" \n" -" if (!clicked.isOpen) \n" -" clickOnNode(folderId) \n" -" \n" -" return \n" -" \n" -" if (clicked.isSelected) \n" -" return \n" -"} \n" -" \n" -"function clickOnNode(folderId) \n" -"{ \n" -" var clickedFolder = 0 \n" -" var state = 0 \n" -" \n" -" clickedFolder = indexOfEntries[folderId] \n" -" state = clickedFolder.isOpen \n" -" \n" -" clickedFolder.setState(!state) //open<->close \n" -"} \n" -" \n" -"function initializeDocument() \n" -"{ \n" -" doc = document;\n" -" if (doc.all) \n" -" browserVersion = 1 //IE4 \n" -" else \n" -" if (doc.layers) \n" -" browserVersion = 2 //NS4 \n" -" else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)\n" -" browserVersion = 3 //mozilla\n" -" else \n" -" browserVersion = 0 //other \n" -"\n" -" foldersTree.initialize(0, 1, \"\") \n" -" foldersTree.display()\n" -" \n" -" if (browserVersion > 0) \n" -" { \n" -" if(browserVersion != 3)\n" -" doc.write(\"<layer top=\"+indexOfEntries[nEntries-1].navObj.top+\"> </layer>\") \n" -" \n" -" // close the whole tree \n" -" clickOnNode(0) \n" -" // open the root folder \n" -" clickOnNode(0) \n" -" } \n" -"} \n" -" \n" -"// Auxiliary Functions for Folder-Treee backward compatibility \n" -"// ********************************************************* \n" -" \n" -"function gFld(description, tagName, hreference) \n" -"{ \n" -" folder = new Folder(description, tagName, hreference) \n" -" return folder \n" -"} \n" -" \n" -"function gLnk(description, tagName, linkData) \n" -"{ \n" -" fullLink = \"\" \n" -" \n" -" if (linkData!=\"\")\n" -" {\n" -" fullLink = \"'\"+linkData+\"' target=\\\"basefrm\\\"\" \n" -" } \n" -" \n" -" linkItem = new Item(description, tagName, fullLink) \n" -" return linkItem \n" -"} \n" -" \n" -"function insFld(parentFolder, childFolder) \n" -"{ \n" -" return parentFolder.addChild(childFolder) \n" -"} \n" -" \n" -"function insDoc(parentFolder, document) \n" -"{ \n" -" parentFolder.addChild(document) \n" -"} \n" -" \n" -"// Global variables \n" -"// **************** \n" -" \n" -"USETEXTLINKS = 1\n" -"indexOfEntries = new Array \n" -"nEntries = 0 \n" -"doc = document \n" -"browserVersion = 0 \n" -"selectedFolder=0\n" diff --git a/src/treeview.js b/src/treeview.js deleted file mode 100644 index 6b5ef51..0000000 --- a/src/treeview.js +++ /dev/null @@ -1,500 +0,0 @@ -//**************************************************************** -// You are free to copy the "Folder-Tree" script as long as you -// keep this copyright notice: -// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ -// Author: Marcelino Alves Martins (martins@hks.com) December '97. -//**************************************************************** - -//Log of changes: -// 17 Feb 98 - Fix initialization flashing problem with Netscape -// -// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS; -// make the ftien4 a js file -// -// DvH: Dec 2000 - Made some minor changes to support external -// references - -// Definition of class Folder -// ***************************************************************** - -function Folder(folderDescription, tagName, hreference) //constructor -{ - //constant data - this.desc = folderDescription - this.tagName = tagName - this.hreference = hreference - this.id = -1 - this.navObj = 0 - this.iconImg = 0 - this.nodeImg = 0 - this.isLastNode = 0 - - //dynamic data - this.isOpen = true - this.iconSrc = "ftv2folderopen.png" - this.children = new Array - this.nChildren = 0 - - //methods - this.initialize = initializeFolder - this.setState = setStateFolder - this.addChild = addChild - this.createIndex = createEntryIndex - this.hide = hideFolder - this.display = display - this.renderOb = drawFolder - this.totalHeight = totalHeight - this.subEntries = folderSubEntries - this.outputLink = outputFolderLink -} - -function setStateFolder(isOpen) -{ - var subEntries - var totalHeight - var fIt = 0 - var i=0 - - if (isOpen == this.isOpen) - return - - if (browserVersion == 2) - { - totalHeight = 0 - for (i=0; i < this.nChildren; i++) - totalHeight = totalHeight + this.children[i].navObj.clip.height - subEntries = this.subEntries() - if (this.isOpen) - totalHeight = 0 - totalHeight - for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) - indexOfEntries[fIt].navObj.moveBy(0, totalHeight) - } - this.isOpen = isOpen - propagateChangesInState(this) -} - -function propagateChangesInState(folder) -{ - var i=0 - - if (folder.isOpen) - { - if (folder.nodeImg) - if (folder.isLastNode) - folder.nodeImg.src = "ftv2mlastnode.png" - else - folder.nodeImg.src = "ftv2mnode.png" - folder.iconImg.src = "ftv2folderopen.png" - for (i=0; i<folder.nChildren; i++) - folder.children[i].display() - } - else - { - if (folder.nodeImg) - if (folder.isLastNode) - folder.nodeImg.src = "ftv2plastnode.png" - else - folder.nodeImg.src = "ftv2pnode.png" - folder.iconImg.src = "ftv2folderclosed.png" - for (i=0; i<folder.nChildren; i++) - folder.children[i].hide() - } -} - -function hideFolder() -{ - if (browserVersion == 1 || browserVersion == 3) { - if (this.navObj.style.display == "none") - return - this.navObj.style.display = "none" - } else { - if (this.navObj.visibility == "hidden") - return - this.navObj.visibility = "hidden" - } - - this.setState(0) -} - -function initializeFolder(level, lastNode, leftSide) -{ -var j=0 -var i=0 -var numberOfFolders -var numberOfDocs -var nc - - nc = this.nChildren - - this.createIndex() - - var auxEv = "" - - if (browserVersion > 0) - auxEv = "<a href='javascript:clickOnNode("+this.id+")'>" - else - auxEv = "<a>" - - if (level>0) - if (lastNode) //the last 'brother' in the children array - { - this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>") - leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>" - this.isLastNode = 1 - } - else - { - this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>") - leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" - this.isLastNode = 0 - } - else - this.renderOb("") - - if (nc > 0) - { - level = level + 1 - for (i=0 ; i < this.nChildren; i++) - { - if (i == this.nChildren-1) - this.children[i].initialize(level, 1, leftSide) - else - this.children[i].initialize(level, 0, leftSide) - } - } -} - -function drawFolder(leftSide) -{ - if (browserVersion == 2) { - if (!doc.yPos) - doc.yPos=8 - doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hidden>") - } - if (browserVersion == 3) - { - doc.write("<div id='folder" + this.id + "' style='visibility:hide;'>") - } - - doc.write("\n<table ") - if (browserVersion == 1) - doc.write(" id='folder" + this.id + "' style='position:block;' ") - doc.write(" border=0 cellspacing=0 cellpadding=0>") - doc.write("\n<tr><td>") - doc.write(leftSide) - this.outputLink() - doc.write("<img name='folderIcon" + this.id + "' ") - doc.write("src='" + this.iconSrc+"' border=0></a>") - doc.write("</td>\n<td valign=middle nowrap>") - if (USETEXTLINKS) - { - this.outputLink() - doc.write(this.desc + "</a>") - } - else - doc.write(this.desc) - if (this.tagName!="") - { - doc.write(" [external]") - } - doc.write("</td>") - doc.write("\n</table>\n") - - if (browserVersion == 2) { - doc.write("</layer>") - } - if (browserVersion == 3) { - doc.write("</div>") - } - - if (browserVersion == 1) { - this.navObj = doc.all["folder"+this.id] - this.iconImg = doc.all["folderIcon"+this.id] - this.nodeImg = doc.all["nodeIcon"+this.id] - } else if (browserVersion == 2) { - this.navObj = doc.layers["folder"+this.id] - this.iconImg = this.navObj.document.images["folderIcon"+this.id] - this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] - doc.yPos=doc.yPos+this.navObj.clip.height - } else if (browserVersion == 3) { - this.navObj = doc.getElementById("folder"+this.id) - this.iconImg = doc.images.namedItem("folderIcon"+this.id) - this.nodeImg = doc.images.namedItem("nodeIcon"+this.id) - } -} - -function outputFolderLink() -{ - if (this.hreference) - { - doc.write("<a ") - if (this.tagName) - { - doc.write("doxygen='" + this.tagName + "' "); - } - doc.write("href='" + this.hreference + "' TARGET=\"basefrm\" ") - if (browserVersion > 0) - doc.write("onClick='javascript:clickOnFolder("+this.id+")'") - doc.write(">") - } - else - doc.write("<a>") -} - -function addChild(childNode) -{ - this.children[this.nChildren] = childNode - this.nChildren++ - return childNode -} - -function folderSubEntries() -{ - var i = 0 - var se = this.nChildren - - for (i=0; i < this.nChildren; i++){ - if (this.children[i].children) //is a folder - se = se + this.children[i].subEntries() - } - - return se -} - - -// Definition of class Item (a document or link inside a Folder) -// ************************************************************* - -function Item(itemDescription, tagName, itemLink) // Constructor -{ - // constant data - this.desc = itemDescription - this.tagName = tagName - this.link = itemLink - this.id = -1 //initialized in initalize() - this.navObj = 0 //initialized in render() - this.iconImg = 0 //initialized in render() - this.iconSrc = "ftv2doc.png" - - // methods - this.initialize = initializeItem - this.createIndex = createEntryIndex - this.hide = hideItem - this.display = display - this.renderOb = drawItem - this.totalHeight = totalHeight -} - -function hideItem() -{ - if (browserVersion == 1 || browserVersion == 3) { - if (this.navObj.style.display == "none") - return - this.navObj.style.display = "none" - } else { - if (this.navObj.visibility == "hidden") - return - this.navObj.visibility = "hidden" - } -} - -function initializeItem(level, lastNode, leftSide) -{ - this.createIndex() - - if (level>0) - if (lastNode) //the last 'brother' in the children array - { - this.renderOb(leftSide + "<img src='ftv2lastnode.png' width=16 height=22>") - leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>" - } - else - { - this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>") - leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" - } - else - this.renderOb("") -} - -function drawItem(leftSide) -{ - if (browserVersion == 2) - doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hidden>") - if (browserVersion == 3) - doc.write("<div id='item" + this.id + "' style='display:block;'>") - - doc.write("\n<table ") - if (browserVersion == 1) - doc.write(" id='item" + this.id + "' style='position:block;' ") - doc.write(" border=0 cellspacing=0 cellpadding=0>\n") - doc.write("<tr><td>") - doc.write(leftSide) - if (this.link!="") - { - doc.write("<a href=" + this.link + ">") - } - doc.write("<img id='itemIcon"+this.id+"' ") - doc.write("src='"+this.iconSrc+"' border=0>") - if (this.link!="") - { - doc.write("</a>") - } - doc.write("</td>\n<td valign=middle nowrap>") - if (USETEXTLINKS && this.link!="") - doc.write("<a href=" + this.link + ">" + this.desc + "</a>") - else - doc.write(this.desc) - if (this.tagName!="") - { - doc.write(" [external]"); - } - doc.write("\n</table>\n") - - if (browserVersion == 2) - doc.write("</layer>") - if (browserVersion == 3) - doc.write("</div>") - - if (browserVersion == 1) { - this.navObj = doc.all["item"+this.id] - this.iconImg = doc.all["itemIcon"+this.id] - } else if (browserVersion == 2) { - this.navObj = doc.layers["item"+this.id] - this.iconImg = this.navObj.document.images["itemIcon"+this.id] - doc.yPos=doc.yPos+this.navObj.clip.height - } else if (browserVersion == 3) { - this.navObj = doc.getElementById("item"+this.id) - this.iconImg = doc.images.namedItem("itemIcon"+this.id) - } -} - - -// Methods common to both objects (pseudo-inheritance) -// ******************************************************** - -function display() -{ - if (browserVersion == 1 || browserVersion == 3) - this.navObj.style.display = "block" - else - this.navObj.visibility = "show" -} - -function createEntryIndex() -{ - this.id = nEntries - indexOfEntries[nEntries] = this - nEntries++ -} - -// total height of subEntries open -function totalHeight() //used with browserVersion == 2 -{ - var h = this.navObj.clip.height - var i = 0 - - if (this.isOpen) //is a folder and _is_ open - for (i=0 ; i < this.nChildren; i++) - h = h + this.children[i].totalHeight() - - return h -} - - -// Events -// ********************************************************* - -function clickOnFolder(folderId) -{ - var clicked = indexOfEntries[folderId] - - if (!clicked.isOpen) - clickOnNode(folderId) - - return - - if (clicked.isSelected) - return -} - -function clickOnNode(folderId) -{ - var clickedFolder = 0 - var state = 0 - - clickedFolder = indexOfEntries[folderId] - state = clickedFolder.isOpen - - clickedFolder.setState(!state) //open<->close -} - -function initializeDocument() -{ - doc = document; - if (doc.all) - browserVersion = 1 //IE4 - else - if (doc.layers) - browserVersion = 2 //NS4 - else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1) - browserVersion = 3 //mozilla - else - browserVersion = 0 //other - - foldersTree.initialize(0, 1, "") - foldersTree.display() - - if (browserVersion > 0) - { - if(browserVersion != 3) - doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+"> </layer>") - - // close the whole tree - clickOnNode(0) - // open the root folder - clickOnNode(0) - } -} - -// Auxiliary Functions for Folder-Treee backward compatibility -// ********************************************************* - -function gFld(description, tagName, hreference) -{ - folder = new Folder(description, tagName, hreference) - return folder -} - -function gLnk(description, tagName, linkData) -{ - fullLink = "" - - if (linkData!="") - { - fullLink = "'"+linkData+"' target=\"basefrm\"" - } - - linkItem = new Item(description, tagName, fullLink) - return linkItem -} - -function insFld(parentFolder, childFolder) -{ - return parentFolder.addChild(childFolder) -} - -function insDoc(parentFolder, document) -{ - parentFolder.addChild(document) -} - -// Global variables -// **************** - -USETEXTLINKS = 1 -indexOfEntries = new Array -nEntries = 0 -doc = document -browserVersion = 0 -selectedFolder=0 diff --git a/src/util.cpp b/src/util.cpp index f7da9b5..94cf56e 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -98,7 +98,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile) if (command==0) return 1; -//#ifdef _OS_SOLARIS_ +#ifdef _OS_SOLARIS // for Solaris we use vfork since it is more memory efficient // on Solaris fork() duplicates the memory usage // so we use vfork instead @@ -131,38 +131,36 @@ int iSystem(const char *command,const char *args,bool isBatchFile) } return status; -//#else /* Other unices where clients do copy on demand for the parent's pages -// * when forked. -// */ -// -// pid = fork(); -// if (pid==-1) return -1; -// if (pid==0) -// { -// char buf[4096]; -// strcpy(buf,command); -// strcat(buf," "); -// strcat(buf,args); -// const char * argv[4]; -// argv[0] = "sh"; -// argv[1] = "-c"; -// argv[2] = buf; -// argv[3] = 0; -// execve("/bin/sh",(char * const *)argv,environ); -// exit(127); -// } -// for (;;) -// { -// if (waitpid(pid,&status,0)==-1) -// { -// if (errno!=EINTR) return -1; -// } -// else -// { -// return status; -// } -// } -//#endif +#else // Other Unices just use fork + + pid = fork(); + if (pid==-1) return -1; + if (pid==0) + { + char buf[4096]; + strcpy(buf,command); + strcat(buf," "); + strcat(buf,args); + const char * argv[4]; + argv[0] = "sh"; + argv[1] = "-c"; + argv[2] = buf; + argv[3] = 0; + execve("/bin/sh",(char * const *)argv,environ); + exit(127); + } + for (;;) + { + if (waitpid(pid,&status,0)==-1) + { + if (errno!=EINTR) return -1; + } + else + { + return status; + } + } +#endif // _OS_SOLARIS #else if (isBatchFile) diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index c5f6d46..9c90234 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -510,10 +510,17 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ArgumentList *al = md->argumentList(); t << " const=\""; if (al && al->constSpecifier) t << "yes"; else t << "no"; - t << "\" volatile=\""; + t << "\""; + } + + if (md->memberType() == MemberDef::Variable) + { + ArgumentList *al = md->argumentList(); + t << " volatile=\""; if (al && al->volatileSpecifier) t << "yes"; else t << "no"; t << "\""; } + t << ">" << endl; if (md->memberType()!=MemberDef::Define && |