From 80108293f1f4808c02d28d2d1620563437433a56 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 15 Jun 2003 18:25:48 +0000 Subject: Release-1.3.2 --- Doxyfile | 1 + INSTALL | 4 +- README | 4 +- VERSION | 2 +- doc/config.doc | 4 +- doc/external.doc | 6 +-- doc/faq.doc | 10 ++--- doc/language.doc | 22 +++++------ packages/rpm/doxygen.spec | 2 +- src/code.l | 25 +++++++++---- src/config.l | 4 +- src/docparser.cpp | 43 +++++++-------------- src/docparser.h | 1 + src/htmlgen.cpp | 8 ++-- src/index.cpp | 94 +++++++++++++++++++++++++--------------------- src/scanner.l | 4 +- src/translator_cz.h | 44 ++++++++++++---------- src/translator_fr.h | 33 +++++++++++++--- src/translator_it.h | 20 +++++++++- src/translator_pt.h | 95 ++++++++++++++++++++++++++++++++++++++++++----- src/util.cpp | 73 +++++++++++++++--------------------- 21 files changed, 306 insertions(+), 193 deletions(-) diff --git a/Doxyfile b/Doxyfile index 8ac0802..ba591a7 100644 --- a/Doxyfile +++ b/Doxyfile @@ -72,6 +72,7 @@ EXCLUDE = src/code.cpp \ src/suffixtree.h \ src/searchindex.cpp \ src/searchindex.h \ + src/commentcnv.cpp EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = diff --git a/INSTALL b/INSTALL index c36d7f4..fe5f44d 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.3.1-20030609 +DOXYGEN Version 1.3.2 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (09 June 2003) +Dimitri van Heesch (15 June 2003) diff --git a/README b/README index 02b4378..883f692 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3.1_20030609 +DOXYGEN Version 1.3.2 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) (09 June 2003) +Dimitri van Heesch (dimitri@stack.nl) (15 June 2003) diff --git a/VERSION b/VERSION index 8d76dc2..1892b92 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.1-20030609 +1.3.2 diff --git a/doc/config.doc b/doc/config.doc index b86d145..5087d35 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -1411,9 +1411,9 @@ TAGFILES = file1=loc1 "file2 = loc2" ... If the \c CLASS_DIAGRAMS tag is set to \c YES (the default) doxygen will generate a class diagram (in HTML and \f$\mbox{\LaTeX}\f$) for classes with base or super classes. Setting the tag to \c NO turns the diagrams off. - Note that this option is superseded by the HAVE_DOT option below. + Note that this option is superceded by the HAVE_DOT option below. This is only a fallback. It is recommended to install and use dot, - since it yield more powerful graphs. + since it yields more powerful graphs. \anchor cfg_have_dot
\c HAVE_DOT
diff --git a/doc/external.doc b/doc/external.doc index 6e92d2d..9f21593 100644 --- a/doc/external.doc +++ b/doc/external.doc @@ -41,7 +41,7 @@ reasons to not include all sources for these with every run of doxygen: copy of it with your project's documentation. When the author forbids redistribution, this is necessary. If the author requires compliance with some license condition as a precondition of redistribution, and - you do now want to be bound by those conditions, referring to their + you do not want to be bound by those conditions, referring to their copy of their documentation is preferable to including a copy. @@ -126,8 +126,8 @@ if you want to create a tag file for the Qt documentation. The tool \c doxytag depends on the particular structure of the generated output and on some special markers that are generated by -doxygen. Since this type of extraction is brittle and error prone I -suggest you to only use this approach if there is no alternative. The +doxygen. Since this type of extraction is brittle and error-prone I +suggest you only use this approach if there is no alternative. The doxytag tool may even become obsolete in the future. \htmlonly diff --git a/doc/faq.doc b/doc/faq.doc index 74dc805..d9f3f6d 100644 --- a/doc/faq.doc +++ b/doc/faq.doc @@ -195,15 +195,15 @@ remove the % and keep the word unlinked. No, not as such; doxygen needs to understand the structure of what it reads. If you don't mind spending some time on it, there are several options: -- If the grammer of X is close to C or C++, then it is probably not too hard to +- If the grammar of X is close to C or C++, then it is probably not too hard to tweak src/scanner.l a bit so the language is supported. This is done for all other languages directly supported by doxygen (i.e. Java, IDL, C#, PHP). -- If the grammer of X is somewhat different than you can write an input +- If the grammar of X is somewhat different than you can write an input filter that translates X into something similar enough to C/C++ for doxygen to understand (this approach is taken for VB, Object Pascal, and Javascript, see http://www.stack.nl/~dimitri/doxygen/download.html#helpers). -- If the grammer is completely different one could write a parser for X and +- If the grammar is completely different one could write a parser for X and write a backend that produces a similar syntax tree as is done by src/scanner.l (and also by src/tagreader.cpp while reading tag files). @@ -218,8 +218,8 @@ where this might happen is if you have lines in your code with more than 16K characters. If you have run into such a case and want me to fix it, you -should send me a code fragment that triggers the message. The workaround -the problem put some line-breaks into your file, split it up into smaller +should send me a code fragment that triggers the message. To work around +the problem, put some line-breaks into your file, split it up into smaller parts, or exclude it from the input using EXCLUDE.
  • When running make in the latex dir I get "TeX capacity exceeded". Now what? diff --git a/doc/language.doc b/doc/language.doc index bb6cc00..69bf6eb 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-20030430), 28 languages +Currently (version 1.3.1-20030609), 28 languages are supported (sorted alphabetically): Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, @@ -55,7 +55,7 @@ when the translator was updated. Brazilian Portuguese Fabio "FJTC" Jun Takada Chino chino@NOSPAM.icmc.sc.usp.br - up-to-date + 1.3.1 Catalan @@ -79,7 +79,7 @@ when the translator was updated. Croatian Boris Bralo boris.bralo@NOSPAM.zg.tel.hr - up-to-date + 1.3.1 Czech @@ -115,13 +115,13 @@ when the translator was updated. French Xavier Outhier xouthier@NOSPAM.yahoo.fr - up-to-date + 1.3.1 German Jens Seidel jensseidel@NOSPAM.users.sf.net - up-to-date + 1.3.1 Greek @@ -169,7 +169,7 @@ when the translator was updated. Portuguese Rui Godinho Lopes ruiglopes@NOSPAM.yahoo.com - 1.2.18 + 1.3.1 Romanian @@ -230,7 +230,7 @@ when the translator was updated. {\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\ \hline \hline - Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} & up-to-date \\ + Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} & 1.3.1 \\ \hline Catalan & Albert Mora & {\tt amora@iua.upf.es} & 1.2.17 \\ \hline @@ -239,7 +239,7 @@ when the translator was updated. \hline Chinese Traditional & Gary Lee & {\tt garylee@ecosine.com.tw} & 1.2.16 \\ \hline - Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & up-to-date \\ + Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & 1.3.1 \\ \hline Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & up-to-date \\ \hline @@ -251,9 +251,9 @@ when the translator was updated. \hline Finnish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} & obsolete \\ \hline - French & Xavier Outhier & {\tt xouthier@yahoo.fr} & up-to-date \\ + French & Xavier Outhier & {\tt xouthier@yahoo.fr} & 1.3.1 \\ \hline - German & Jens Seidel & {\tt jensseidel@users.sf.net} & up-to-date \\ + German & Jens Seidel & {\tt jensseidel@users.sf.net} & 1.3.1 \\ \hline Greek & Harry Kalogirou & {\tt harkal@rainbow.cs.unipi.gr} & 1.2.11 \\ \hline @@ -272,7 +272,7 @@ when the translator was updated. Polish & Piotr Kaminski & {\tt Piotr.Kaminski@ctm.gdynia.pl} & strange \\ & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} & \\ \hline - Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & 1.2.18 \\ + Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & 1.3.1 \\ \hline Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.16 \\ \hline diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 471f071..4e87265 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.1_20030609 +Version: 1.3.2 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/src/code.l b/src/code.l index 09fe71b..f2732ee 100644 --- a/src/code.l +++ b/src/code.l @@ -41,8 +41,9 @@ //#define DBG_CTX(x) fprintf x #define DBG_CTX(x) do { } while(0) -#define SCOPEBLOCK (int *)4 -#define INNERBLOCK (int *)8 +#define CLASSBLOCK (int *)4 +#define SCOPEBLOCK (int *)8 +#define INNERBLOCK (int *)12 /* ----------------------------------------------------------------- * statics @@ -525,7 +526,7 @@ static ClassDef *stripClassName(const char *s) static MemberDef *setCallContextForVar(const QCString &name) { if (name.isEmpty()) return 0; - //printf("setCallContextForVar(%s)\n",name.data()); + //printf("setCallContextForVar(%s) g_classScope=%s\n",name.data(),g_classScope.data()); int scopeEnd = name.findRev("::"); if (scopeEnd!=-1) // name with explicit scope @@ -550,6 +551,7 @@ static MemberDef *setCallContextForVar(const QCString &name) ClassDef *mcd = g_theVarContext.findVariable(name); if (mcd) // local variable { + //printf("local variable\n"); if (mcd!=VariableContext::dummyContext) { //printf("local var `%s' mcd=%s\n",name.data(),mcd->name().data()); @@ -565,7 +567,11 @@ static MemberDef *setCallContextForVar(const QCString &name) MemberDef *md=mcd->getMemberByName(name); if (md) { - g_theCallContext.setClass(stripClassName(md->typeString())); + if (g_scopeStack.top()!=CLASSBLOCK) + { + //printf("class member `%s' mcd=%s\n",name.data(),mcd->name().data()); + g_theCallContext.setClass(stripClassName(md->typeString())); + } return md; } } @@ -1146,7 +1152,8 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" "}" { g_theVarContext.popScope(); - if (g_scopeStack.pop()==SCOPEBLOCK) + int *scope = g_scopeStack.pop(); + if (scope==SCOPEBLOCK || scope==CLASSBLOCK) { popScope(); } @@ -1221,7 +1228,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" if (g_insideBody) g_bodyCurlyCount++; if (!g_curClassName.isEmpty()) // valid class name { - g_scopeStack.push(SCOPEBLOCK); + g_scopeStack.push(CLASSBLOCK); pushScope(g_curClassName); //printf("***** g_curClassName=%s\n",g_curClassName.data()); if (getResolvedClass(g_currentDefinition,g_curClassName)==0) @@ -1509,7 +1516,10 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" g_saveType = g_type.copy(); if (!g_type.isEmpty()) { - g_theVarContext.addVariable(g_type,g_name); + if (g_scopeStack.top()!=CLASSBLOCK) + { + g_theVarContext.addVariable(g_type,g_name); + } g_name.resize(0); } if (*yytext==';') @@ -1903,6 +1913,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" } } <*>"//"[!/][^\n]*\n { // strip special one-line comment + if (YY_START==SkipComment) REJECT; if (Config_getBool("STRIP_CODE_COMMENTS")) { char c[2]; c[0]='\n'; c[1]=0; diff --git a/src/config.l b/src/config.l index 03119c0..8a57707 100644 --- a/src/config.l +++ b/src/config.l @@ -2433,8 +2433,8 @@ void Config::create() "If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will \n" "generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or \n" "super classes. Setting the tag to NO turns the diagrams off. Note that this \n" - "option is superseded by the HAVE_DOT option below. This is only a fallback. It is \n" - "recommended to install and use dot, since it yield more powerful graphs. \n", + "option is superceded by the HAVE_DOT option below. This is only a fallback. It is \n" + "recommended to install and use dot, since it yields more powerful graphs. \n", TRUE ); cb = addBool( diff --git a/src/docparser.cpp b/src/docparser.cpp index f69a0c9..7d26e04 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -3435,6 +3435,13 @@ void DocPara::handleSection(const QString &cmdName) doctokenizerYYsetStatePara(); } +int DocPara::handleHtmlHeader(const HtmlAttribList &tagHtmlAttribs,int level) +{ + DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,level); + m_children.append(header); + int retval = header->parse(); + return (retval==RetVal_OK) ? TK_NEWPARA : retval; +} int DocPara::handleCommand(const QString &cmdName) { @@ -3930,46 +3937,22 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag } break; case HTML_H1: - { - DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,1); - m_children.append(header); - retval = header->parse(); - } + retval=handleHtmlHeader(tagHtmlAttribs,1); break; case HTML_H2: - { - DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,2); - m_children.append(header); - retval = header->parse(); - } + retval=handleHtmlHeader(tagHtmlAttribs,2); break; case HTML_H3: - { - DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,3); - m_children.append(header); - retval = header->parse(); - } + retval=handleHtmlHeader(tagHtmlAttribs,3); break; case HTML_H4: - { - DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,4); - m_children.append(header); - retval = header->parse(); - } + retval=handleHtmlHeader(tagHtmlAttribs,4); break; case HTML_H5: - { - DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,5); - m_children.append(header); - retval = header->parse(); - } + retval=handleHtmlHeader(tagHtmlAttribs,5); break; case HTML_H6: - { - DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,6); - m_children.append(header); - retval = header->parse(); - } + retval=handleHtmlHeader(tagHtmlAttribs,6); break; case HTML_IMG: { diff --git a/src/docparser.h b/src/docparser.h index 0c5a599..895043d 100644 --- a/src/docparser.h +++ b/src/docparser.h @@ -940,6 +940,7 @@ class DocPara : public CompAccept, public DocNode void handleLink(const QString &cmdName,bool isJavaLink); void handleRef(const QString &cmdName); void handleSection(const QString &cmdName); + int handleHtmlHeader(const HtmlAttribList &tagHtmlAttribs,int level); int handleLanguageSwitch(); private: diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 1471638..7e79ca8 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -48,20 +48,20 @@ static const char *defaultStyleSheet = "}\n" "CAPTION { font-weight: bold }\n" "DIV.qindex { width: 100%;\n" -" background-color: #ddddee;\n" -" border: 4px solid #ddddee;\n" +" background-color: #eeeeff;\n" +" border: 4px solid #eeeeff;\n" " text-align: center;\n" " margin-bottom: 2px\n" "}\n" "A.qindex { text-decoration: none; font-weight: bold; }\n" -"A.qindex:hover { text-decoration: none; background-color: #ccccee }\n" +"A.qindex:hover { text-decoration: none; background-color: #ddddff }\n" "A.qindexHL { text-decoration: none; font-weight: bold;\n" " background-color: #6666cc;\n" " color: #ffffff\n" " }\n" "A.qindexHL:hover { text-decoration: none; background-color: #6666cc }\n" "A.qindexRef { text-decoration: none; font-weight: bold; }\n" -"A.qindexRef:hover { text-decoration: none; background-color: #ccccee }\n" +"A.qindexRef:hover { text-decoration: none; background-color: #ddddff }\n" "A.qindexRefHL { text-decoration: none; font-weight: bold;\n" " background-color: #6666cc;\n" " color: #ffffff\n" diff --git a/src/index.cpp b/src/index.cpp index af8f119..d24f2fe 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -358,7 +358,7 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA ol.parseText(fixSpaces(theTranslator->trNamespaceMembers())); endQuickIndexItem(ol); } - if (documentedClassMembers>0) + if (documentedClassMembers[CMHL_All]>0) { if (!compact) ol.writeListItem(); startQuickIndexItem(ol,extLink,"functions"+Doxygen::htmlFileExtension, @@ -1900,29 +1900,31 @@ static void writeMemberIndexFiltered(OutputList &ol, ol.writeString(fixSpaces(theTranslator->trRelatedFunctions())); endQuickIndexItem(ol); } - ol.writeString("

    \n"); - - + ol.writeString("\n"); bool quickIndex = documentedClassMembers[hl]>maxItemsBeforeQuickIndex; if (quickIndex) { writeQuickMemberIndex(ol,g_memberIndexLetterUsed[hl]); } - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - HtmlHelp *htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"functions"); - } - if (hasFtvHelp) + ol.newParagraph(); + if (hl==CMHL_All) { - FTVHelp *ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(FALSE,0,"functions",0,ftvHelpTitle); + bool &generateHtml = Config_getBool("GENERATE_HTML") ; + bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); + bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); + if (hasHtmlHelp) + { + HtmlHelp *htmlHelp = HtmlHelp::getInstance(); + htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"functions"); + } + if (hasFtvHelp) + { + FTVHelp *ftvHelp = FTVHelp::getInstance(); + ftvHelp->addContentsItem(FALSE,0,"functions",0,ftvHelpTitle); + } + ol.parseText(theTranslator->trCompoundMembersDescription(Config_getBool("EXTRACT_ALL"))); } - if (hl==CMHL_All) ol.parseText(theTranslator->trCompoundMembersDescription(Config_getBool("EXTRACT_ALL"))); writeMemberList(ol,quickIndex,hl); endFile(ol); ol.popGeneratorState(); @@ -2262,7 +2264,7 @@ static void writeFileMemberIndexFiltered(OutputList &ol, ol.writeString(fixSpaces(theTranslator->trDefines())); endQuickIndexItem(ol); } - ol.writeString("

    \n"); + ol.writeString("\n"); bool quickIndex = documentedFileMembers[hl]>maxItemsBeforeQuickIndex; @@ -2270,20 +2272,24 @@ static void writeFileMemberIndexFiltered(OutputList &ol, { writeQuickMemberIndex(ol,g_fileIndexLetterUsed[hl]); } - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - HtmlHelp *htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"globals"); - } - if (hasFtvHelp) + ol.newParagraph(); + if (hl==FMHL_All) { - FTVHelp *ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(FALSE,0,"globals",0,ftvHelpTitle); + bool &generateHtml = Config_getBool("GENERATE_HTML") ; + bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); + bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); + if (hasHtmlHelp) + { + HtmlHelp *htmlHelp = HtmlHelp::getInstance(); + htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"globals"); + } + if (hasFtvHelp) + { + FTVHelp *ftvHelp = FTVHelp::getInstance(); + ftvHelp->addContentsItem(FALSE,0,"globals",0,ftvHelpTitle); + } + ol.parseText(theTranslator->trFileMembersDescription(Config_getBool("EXTRACT_ALL"))); } - if (hl==FMHL_All) ol.parseText(theTranslator->trFileMembersDescription(Config_getBool("EXTRACT_ALL"))); writeFileMemberList(ol,quickIndex,hl); endFile(ol); ol.popGeneratorState(); @@ -2363,27 +2369,31 @@ static void writeNamespaceMemberIndexFiltered(OutputList &ol, ol.writeString(fixSpaces(theTranslator->trEnumerationValues())); endQuickIndexItem(ol); } - ol.writeString("

    \n"); + ol.writeString("\n"); bool quickIndex = documentedNamespaceMembers[hl]>maxItemsBeforeQuickIndex; if (quickIndex) { writeQuickMemberIndex(ol,g_namespaceIndexLetterUsed[hl]); } - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - HtmlHelp *htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"namespacemembers"); - } - if (hasFtvHelp) + ol.newParagraph(); + if (hl==NMHL_All) { - FTVHelp *ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,ftvHelpTitle); + bool &generateHtml = Config_getBool("GENERATE_HTML") ; + bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); + bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); + if (hasHtmlHelp) + { + HtmlHelp *htmlHelp = HtmlHelp::getInstance(); + htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"namespacemembers"); + } + if (hasFtvHelp) + { + FTVHelp *ftvHelp = FTVHelp::getInstance(); + ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,ftvHelpTitle); + } + ol.parseText(theTranslator->trNamespaceMemberDescription(Config_getBool("EXTRACT_ALL"))); } - if (hl==NMHL_All) ol.parseText(theTranslator->trNamespaceMemberDescription(Config_getBool("EXTRACT_ALL"))); writeNamespaceMemberList(ol,quickIndex,hl); endFile(ol); ol.popGeneratorState(); diff --git a/src/scanner.l b/src/scanner.l index 4cf55d0..5c87275 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -3367,14 +3367,14 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] current->groupDocType = Entry::GROUPDOC_NORMAL; BEGIN( GroupDocArg1 ); } -{B}*{CMD}"addtogroup"{B}+ { +{B}*{CMD}"addtogroup"{B}+ { current->section = Entry::GROUPDOC_SEC; current->fileName = yyFileName; current->startLine = yyLineNr; current->groupDocType = Entry::GROUPDOC_ADD; BEGIN( GroupDocArg1 ); } -{B}*{CMD}"weakgroup"{B}+ { +{B}*{CMD}"weakgroup"{B}+ { current->section = Entry::GROUPDOC_SEC; current->fileName = yyFileName; current->startLine = yyLineNr; diff --git a/src/translator_cz.h b/src/translator_cz.h index a0db49b..f826808 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -20,18 +20,9 @@ // The first translation from English to Czech was started by -// Vlastimil Havran. He wrote: -// -// "In the cases where are more translations possible I hope -// that I have selected the most reasonable text. If not, please, -// mail the comments and text proposals to -// -// havran@fel.cvut.cz, 1999/04/11" -// -// The prototype version of Czech strings with diacritics was -// implemented by Petr Prikryl (prikrylp@skil.cz), 2000/06/20. As -// Vlastimil was quite busy at the time, he agreed that Petr be the -// maintainer for a while (from 2000/06/20). +// Vlastimil Havran (1999--2000). The prototype version of Czech strings +// with diacritics was implemented by Petr Prikryl (prikrylp@skil.cz), +// 2000/06/20. Vlastimil agreed that Petr be the new maintainer. // // Updates: // -------- @@ -144,12 +135,10 @@ // 2002/07/29 // - The new trDeprecatedList() implemented. // -// 2002/10/15 -// - The new trEvents() and trEventDocumentation() implemented. -// -// 2003/04/28 -// - The five new methods "since 1.3" implemented. -// +// 2002/10/15 - The new trEvents() and trEventDocumentation() implemented. +// 2003/04/28 - Five new methods "since 1.3" implemented. +// 2003/06/10 - Two new methods "since 1.3.1" implemented. + // Todo // ---- // - The trReimplementedFromList() should pass the kind of the @@ -168,7 +157,7 @@ // Windows version. The version which does not call the function is // probably slightly faster. -class TranslatorCzech : public TranslatorAdapter_1_3_1 +class TranslatorCzech : public Translator { private: /*! The decode() inline assumes the source written in the @@ -1602,6 +1591,23 @@ class TranslatorCzech : public TranslatorAdapter_1_3_1 return decode("Statické atributy balíku"); } +////////////////////////////////////////////////////////////////////////// +// new since 1.3.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used in the quick index of a class/file/namespace member list page + * to link to the unfiltered list of all members. + */ + virtual QCString trAll() + { + return decode("Vše"); + } + /*! Put in front of the call graph for a function. */ + virtual QCString trCallGraph() + { + return decode("Graf volání této funkce:"); + } + }; #endif // TRANSLATOR_CZ_H diff --git a/src/translator_fr.h b/src/translator_fr.h index 82b22b2..ce136a0 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -16,8 +16,7 @@ * The translation into French was provided by * Christophe Bordeux (bordeux@lig.di.epfl.ch) * and after version 1.2.0 by Xavier Outhier (xouthier@yahoo.fr) - * member of the non for profit association D2SET (http://www.d2set.org, - * d2set@d2set.org). + * member of the non for profit association D2SET (http://d2set.free.fr) */ /****************************************************************************** @@ -45,11 +44,17 @@ * -------------+------------------------------------------------------------ * 2003-03-29 | Update for new since 1.3 * -------------+------------------------------------------------------------ + * 2003-03-29 | Changed fonction into méthode. + * -------------+------------------------------------------------------------ + * 2003-06-06 | Fixed code page problem appeared between 1.42 and 1.43 in CVS + * -------------+------------------------------------------------------------ + * 2003-06-10 | Update for new since 1.3.1 + * -------------+------------------------------------------------------------ */ #ifndef TRANSLATOR_FR_H #define TRANSLATOR_FR_H -class TranslatorFrench : public TranslatorAdapter_1_3_1 +class TranslatorFrench : public Translator { public: QCString idLanguage() @@ -1320,14 +1325,14 @@ class TranslatorFrench : public TranslatorAdapter_1_3_1 */ virtual QCString trPackageMembers() { - return "Fonctions de paquetage"; + return "Méthodes de paquetage"; } /*! Used as a heading for a list of static Java class functions with * package scope. */ virtual QCString trStaticPackageMembers() { - return "Fonctions statiques de paquetage"; + return "Méthodes statiques de paquetage"; } /*! Used as a heading for a list of Java class variables with package * scope. @@ -1343,7 +1348,23 @@ class TranslatorFrench : public TranslatorAdapter_1_3_1 { return "Attributs statiques de paquetage"; } - + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used in the quick index of a class/file/namespace member list page + * to link to the unfiltered list of all members. + */ + virtual QCString trAll() + { + return "Tout"; + } + /*! Put in front of the call graph for a function. */ + virtual QCString trCallGraph() + { + return "Voici le graphique d'appel pour cette fonction:"; + } }; diff --git a/src/translator_it.h b/src/translator_it.h index 406ce4b..cebfd3d 100644 --- a/src/translator_it.h +++ b/src/translator_it.h @@ -19,6 +19,7 @@ * * Revision history * + * 2003/06: translated new items used since version 1.3.1 * 2003/04: translated new items used since version 1.3 * 2002/11: translated new items used since version 1.2.18 * 2002/08: translated new items used since version 1.2.17 @@ -68,7 +69,7 @@ #ifndef TRANSLATOR_IT_H #define TRANSLATOR_IT_H -class TranslatorItalian : public TranslatorAdapter_1_3_1 +class TranslatorItalian : public Translator { public: @@ -1430,6 +1431,23 @@ class TranslatorItalian : public TranslatorAdapter_1_3_1 return "Attributi statici con visibilità di package"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.3.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used in the quick index of a class/file/namespace member list page + * to link to the unfiltered list of all members. + */ + virtual QCString trAll() + { + return "Tutto"; + } + /*! Put in front of the call graph for a function. */ + virtual QCString trCallGraph() + { + return "Questo è il grafo delle chiamate per questa funzione:"; + } + }; #endif diff --git a/src/translator_pt.h b/src/translator_pt.h index 47733b2..7444a10 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -19,6 +19,8 @@ * * VERSION HISTORY * --------------- + * 007 09 june 2003 + * ! Updated for doxygen v1.3.1 * 006 30 july 2002 * ! Updated for doxygen v1.2.17 * 005 10 july 2002 @@ -38,7 +40,7 @@ #ifndef TRANSLATOR_PT_H #define TRANSLATOR_PT_H -class TranslatorPortuguese : public TranslatorAdapter_1_2_18 +class TranslatorPortuguese : public TranslatorAdapter_1_3_1 { public: @@ -127,7 +129,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_18 /*! this is the first part of a sentence that is followed by a class name */ QCString trThisIsTheListOfAllMembers() - { return "Esta é a lista completa dos membros de "; } + { return "Lista completa de todos os membros de "; } /*! this is the remainder of the sentence after the class name */ QCString trIncludingInheritedMembers() @@ -268,7 +270,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_18 { result+=" documentadas"; } - result+=" com links para "; + result+=" com referência para "; if (!extractAll) { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) @@ -297,20 +299,20 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_18 /*! This is an introduction to the page with all file members. */ QCString trFileMembersDescription(bool extractAll) { - QCString result="Lista de todas as "; + QCString result="Lista de "; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result+="funções, variáveis, definições, enumerações e definições de tipo "; + result+="todas as funções, variáveis, definições, enumerações e definições de tipo "; if (!extractAll) result+="documentadas "; } else { - result+="ficheiros membro"; + result+="todos os ficheiros membro "; if (!extractAll) result+="documentados "; } - result+="com links para "; + result+="com referência para "; if (extractAll) - result+="os ficheiro a que pertecem:"; + result+="o ficheiro a que pertecem:"; else result+="a respectiva documentação:"; return result; @@ -416,7 +418,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_18 * list of defines */ QCString trDefines() - { return "Definição de macros"; } + { return "Macros"; } /*! This is used in the documentation of a file as a header before the * list of function prototypes @@ -740,7 +742,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_18 QCString result="Lista "; if (extractAll) result+="de todos os "; else result+="de toda a documentação dos "; - result+="membros do namespace com links para "; + result+="membros do namespace com referência para "; if (extractAll) result+="a documentação de cada membro:"; else @@ -1396,6 +1398,79 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_18 return "Lista de Deprecados"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return "Eventos"; + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return "Documentação dos eventos"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a heading for a list of Java class types with package scope. + */ + virtual QCString trPackageTypes() + { + return "Tipos do Pacote"; + } + /*! Used as a heading for a list of Java class functions with package + * scope. + */ + virtual QCString trPackageMembers() + { + return "Funções do Pacote"; + } + /*! Used as a heading for a list of static Java class functions with + * package scope. + */ + virtual QCString trStaticPackageMembers() + { + return "Funções Estáticas do Pacote"; + } + /*! Used as a heading for a list of Java class variables with package + * scope. + */ + virtual QCString trPackageAttribs() + { + return "Atributos do Pacote"; + } + /*! Used as a heading for a list of static Java class variables with + * package scope. + */ + virtual QCString trStaticPackageAttribs() + { + return "Atributos Estáticos do Pacote"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used in the quick index of a class/file/namespace member list page + * to link to the unfiltered list of all members. + */ + virtual QCString trAll() + { + return "Tudo"; + } + /*! Put in front of the call graph for a function. */ + virtual QCString trCallGraph() + { + return "Grafo de chamadas desta função:"; + } + }; #endif diff --git a/src/util.cpp b/src/util.cpp index c654cb7..e43e7c1 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -757,7 +757,7 @@ bool leftScopeMatch(const QCString &scope, const QCString &name) void linkifyText(const TextGeneratorIntf &out,Definition *scope,const char * /*name*/,const char *text,bool autoBreak,bool external) { - //printf("scope=`%s' name=`%s' Text: `%s'\n",scName,name,text); + //printf("`%s'\n",text); static QRegExp regExp("[a-z_A-Z][a-z_A-Z0-9:]*"); QCString txtStr=text; QCString scopeName; @@ -774,6 +774,13 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,const char * /*n { // add non-word part to the result floatingIndex+=newIndex-skipIndex; + bool insideString=FALSE; + int i; + for (i=index;i30 && floatingIndex>25 && autoBreak) // try to insert a split point { QCString splitText = txtStr.mid(skipIndex,newIndex-skipIndex); @@ -800,41 +807,35 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,const char * /*n } // get word from string QCString word=txtStr.mid(newIndex,matchLen); - ClassDef *cd=0; - FileDef *fd=0; - MemberDef *md=0; - NamespaceDef *nd=0; - GroupDef *gd=0; - - //QCString searchName=name; - //printf("word=`%s' scope=`%s'\n", - // word.data(),scope ? scope->name().data() : "" - // ); - Definition *curScope = scope; - // check if `word' is a documented class name - if ( - 1 - /* !rightScopeMatch(word,searchName) && - !rightScopeMatch(scopeName,word) */ - ) + bool found=FALSE; + if (!insideString) { + ClassDef *cd=0; + FileDef *fd=0; + MemberDef *md=0; + NamespaceDef *nd=0; + GroupDef *gd=0; + + //QCString searchName=name; + //printf("word=`%s' scope=`%s'\n", + // word.data(),scope ? scope->name().data() : "" + // ); + Definition *curScope = scope; + // check if `word' is a documented class name //printf("Searching...\n"); //int scopeOffset=scopeName.length(); - bool found=FALSE; do // for each scope (starting with full scope and going to empty scope) { QCString fullName = word; QCString prefix; replaceNamespaceAliases(fullName,fullName.length()); //if (scopeOffset>0) - if (curScope) + if (curScope && curScope!=Doxygen::globalScope) { - //prefix = scopeName.left(scopeOffset); prefix = curScope->name(); replaceNamespaceAliases(prefix,prefix.length()); fullName.prepend(prefix+"::"); } - //printf("Trying class %s\n",fullName.data()); bool isTypeDef=FALSE; if ((cd=getResolvedClass(scope,fullName,&isTypeDef))) @@ -842,7 +843,6 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,const char * /*n // add link to the result if (external ? cd->isLinkable() : cd->isLinkableInProject()) { - //ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),0,word); out.writeLink(cd->getReference(),cd->getOutputFileBase(),0,word); found=TRUE; } @@ -851,24 +851,16 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,const char * /*n { goto endloop; } - - //if (scopeOffset==0) - //{ - // scopeOffset=-1; - //} - //else if ((scopeOffset=scopeName.findRev("::",scopeOffset-1))==-1) - //{ - // scopeOffset=0; - //} + if (curScope) curScope = curScope->getOuterScope(); } //while (!found && scopeOffset>=0); while (!found && curScope); endloop: if (scope && - (scope->definitionType()==Definition::TypeClass || - scope->definitionType()==Definition::TypeNamespace - ) + (scope->definitionType()==Definition::TypeClass || + scope->definitionType()==Definition::TypeNamespace + ) ) { scopeName=scope->name(); @@ -890,18 +882,13 @@ endloop: //ol.writeObjectLink(d->getReference(),d->getOutputFileBase(), // md->anchor(),word); out.writeLink(d->getReference(),d->getOutputFileBase(), - md->anchor(),word); + md->anchor(),word); found=TRUE; } } - - if (!found) // add word to the result - { - //ol.docify(word); - out.writeString(word); - } } - else + + if (!found) // add word to the result { //ol.docify(word); out.writeString(word); -- cgit v0.12