From 91ac89e271d81507ce5d8bf5b821d80aedd6ec3e Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sat, 8 Mar 2003 14:22:15 +0000 Subject: Release-1.3-rc3-20030308 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- doc/commands.doc | 4 +- doc/config.doc | 25 +++- doc/index.doc | 3 +- doc/language.doc | 14 +- doc/starting.doc | 7 + packages/rpm/doxygen.spec | 2 +- src/config.l | 25 +++- src/docparser.cpp | 18 ++- src/doctokenizer.l | 5 +- src/doxygen.cpp | 118 ++++++++++------ src/ftvhelp.cpp | 24 +++- src/ftvhelp.h | 4 +- src/htmldocvisitor.cpp | 2 +- src/index.cpp | 2 +- src/latexgen.cpp | 95 ++++++------- src/memberdef.cpp | 2 +- src/pre.l | 23 +++- src/scanner.l | 5 +- src/translator_cz.h | 22 +-- src/translator_hr.h | 49 +++++-- src/translator_jp.h | 35 +++-- src/translator_pl.h | 332 ++++++++++++++++++++++++++-------------------- src/translator_ru.h | 43 +++--- src/util.cpp | 46 ++++--- src/util.h | 1 + 28 files changed, 563 insertions(+), 353 deletions(-) diff --git a/INSTALL b/INSTALL index e8371e3..d180f72 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.3-rc3-20030223 +DOXYGEN Version 1.3-rc3-20030308 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (23 February 2003) +Dimitri van Heesch (08 March 2003) diff --git a/README b/README index 1d7e062..61794a9 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3_rc3_20030223 +DOXYGEN Version 1.3_rc3_20030308 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) (23 February 2003) +Dimitri van Heesch (dimitri@stack.nl) (08 March 2003) diff --git a/VERSION b/VERSION index 1772d13..93f4cc2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3-rc3-20030223 +1.3-rc3-20030308 diff --git a/doc/commands.doc b/doc/commands.doc index 14fd61f..e478a3e 100644 --- a/doc/commands.doc +++ b/doc/commands.doc @@ -1763,7 +1763,7 @@ ALIASES = "english=\if english" \ to documented entities.
-\section cmdlt \\< +\section cmdlt \< \addindex \\\< This command writes the \< character to the HTML and @@ -1771,7 +1771,7 @@ ALIASES = "english=\if english" \ character has to be escaped because it has a special meaning in HTML.
-\section cmdgt \\> +\section cmdgt \> \addindex \\\> This command writes the \> character to the HTML and diff --git a/doc/config.doc b/doc/config.doc index 2dbd644..e704dd1 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -146,6 +146,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_latex_batchmode LATEX_BATCHMODE \refitem cfg_latex_cmd_name LATEX_CMD_NAME \refitem cfg_latex_header LATEX_HEADER +\refitem cfg_latex_hide_indices LATEX_HIDE_INDICES \refitem cfg_latex_output LATEX_OUTPUT \refitem cfg_macro_expansion MACRO_EXPANSION \refitem cfg_makeindex_cmd_name MAKEINDEX_CMD_NAME @@ -193,6 +194,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_template_relations TEMPLATE_RELATIONS \refitem cfg_toc_expand TOC_EXPAND \refitem cfg_treeview_width TREEVIEW_WIDTH +\refitem cfg_use_windows_encoding USE_WINDOWS_ENCODING \refitem cfg_verbatim_headers VERBATIM_HEADERS \refitem cfg_warn_format WARN_FORMAT \refitem cfg_warn_if_doc_error WARN_IF_DOC_ERROR @@ -240,6 +242,17 @@ followed by the descriptions of the tags grouped by category. German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish and Swedish. +\anchor cfg_use_windows_encoding +
\c USE_WINDOWS_ENCODING
+ \addindex USE_WINDOWS_ENCODING + This tag can be used to specify the encoding used in the generated output. + The encoding is not always determined by the language that is chosen, + but also whether or not the output is meant for Windows or non-Windows users. + In case there is a difference, setting the \c USE_WINDOWS_ENCODING tag to \c YES + forces the Windows enconding, (this is the default for the Windows binary), + whereas setting the tag to \c NO uses a Unix-style encoding (the default for the + all platforms other than Windows). + \anchor cfg_extract_all
\c EXTRACT_ALL
\addindex EXTRACT_ALL @@ -953,8 +966,8 @@ function's detailed documentation block. If the \c GENERATE_TREEVIEW tag is set to YES, a side pannel will be generated containing a tree-like index structure (just like the one that is generated for HTML Help). For this to work a browser that supports - JavaScript and frames is required (for instance Netscape 4.0+ - or Internet explorer 4.0+). + JavaScript and frames is required (for instance Mozilla 1.0+, Netscape 6.0+ + or Internet explorer 5.0+ or Konqueror). \anchor cfg_treeview_width
\c TREEVIEW_WIDTH
@@ -1077,6 +1090,14 @@ EXTRA_PACKAGES = times asking the user for help. This option is also used when generating formulas in HTML. +\anchor cfg_latex_hide_indices +
\c LATEX_HIDE_INDICES
+ \addindex LATEX_HIDE_INDICES + + If \c LATEX_HIDE_INDICES is set to \c YES then doxygen will not + include the index chapters (such as File Index, Compound Index, etc.) + in the output. + \section rtf_output RTF related options \anchor cfg_generate_rtf diff --git a/doc/index.doc b/doc/index.doc index 19b305e..97d5d5f 100644 --- a/doc/index.doc +++ b/doc/index.doc @@ -183,7 +183,8 @@ Thanks go to: Roddy, Paul Schwartz, Charles Duffy, Vadym Voznyuk, Philip Walton, Dwight Browne, Andreas Fredriksson, Karel Lindveld, Ivan Lee, Albert Vernon, Adam McKee, Vijapurapu Anatharac, Ben Hunsberger and - Walter Wartenweiler, Jeff Garbers and David Harris for donating money. + Walter Wartenweiler, Jeff Garbers, David Harris and Terry Brown + for donating money.
  • The Comms group of Symbian for donating an ultra cool Revo plus organizer! diff --git a/doc/language.doc b/doc/language.doc index d14bd7e..149686f 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-20030215), 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, @@ -79,7 +79,7 @@ when the translator was updated. Croatian Boris Bralo boris.bralo@NOSPAM.zg.tel.hr - 1.2.18 + up-to-date Czech @@ -151,7 +151,7 @@ when the translator was updated. Korean Richard Kim ryk@NOSPAM.dspwiz.com - 1.2.13 + up-to-date Norwegian @@ -163,7 +163,7 @@ when the translator was updated. Polish Piotr Kaminski
    Grzegorz Kowal Piotr.Kaminski@NOSPAM.ctm.gdynia.pl
    g_kowal@NOSPAM.poczta.onet.pl - 1.2.17 + up-to-date Portuguese @@ -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} & 1.2.18 \\ + Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & up-to-date \\ \hline Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & up-to-date \\ \hline @@ -265,11 +265,11 @@ when the translator was updated. Japanese & Ryunosuke Satoh & {\tt sun594@hotmail.com} & up-to-date \\ & Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & \\ \hline - Korean & Richard Kim & {\tt ryk@dspwiz.com} & 1.2.13 \\ + Korean & Richard Kim & {\tt ryk@dspwiz.com} & up-to-date \\ \hline Norwegian & Lars Erik Jordet & {\tt lej@circuitry.no} & 1.2.2 \\ \hline - Polish & Piotr Kaminski & {\tt Piotr.Kaminski@ctm.gdynia.pl} & 1.2.17 \\ + Polish & Piotr Kaminski & {\tt Piotr.Kaminski@ctm.gdynia.pl} & up-to-date \\ & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} & \\ \hline Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & 1.2.18 \\ diff --git a/doc/starting.doc b/doc/starting.doc index a765128..efce614 100644 --- a/doc/starting.doc +++ b/doc/starting.doc @@ -95,6 +95,13 @@ To omit all \c test directories from a source tree for instance, one could use: \verbatim EXCLUDE_PATTERNS = */test/* \endverbatim +Doxygen normally parses files if they are C or C++ sources. If a file +has a .idl or .odl extension it is treated as an +IDL file. If it has a .java extension it is treated as a file +written in Java. Files ending with .cs are treated as C# files. +Finally, files with the extensions .php, .php4, +.inc or .phtml are treated as PHP sources. + If you start using doxygen for an existing project (thus without any documentation that doxygen is aware of), you can still get an idea of what the documented result would be. To do so, you must set diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index ec6f3fe..570e5e2 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_20030223 +Version: 1.3_rc3_20030308 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/src/config.l b/src/config.l index dfc763f..67b1f62 100644 --- a/src/config.l +++ b/src/config.l @@ -1362,6 +1362,21 @@ void Config::create() ce->addValue("Ukrainian"); #endif cb = addBool( + "USE_WINDOWS_ENCODING", + "This tag can be used to specify the encoding used in the generated output. \n" + "The encoding is not always determined by the language that is chosen, \n" + "but also whether or not the output is meant for Windows or non-Windows users. \n" + "In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES \n" + "forces the Windows enconding, (this is the default for the Windows binary), \n" + "whereas setting the tag to NO uses a Unix-style encoding (the default for the \n" + "all platforms other than Windows).\n", +#if defined(_WIN32) || defined(__CYGWIN__) + TRUE +#else + FALSE +#endif + ); + cb = addBool( "EXTRACT_ALL", "If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in \n" "documentation are documented, even if no documentation was available. \n" @@ -1975,7 +1990,7 @@ void Config::create() "If the GENERATE_TREEVIEW tag is set to YES, a side panel will be\n" "generated containing a tree-like index structure (just like the one that \n" "is generated for HTML Help). For this to work a browser that supports \n" - "JavaScript, DHTML, CSS and frames is required (for instance Mozilla, \n" + "JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, \n" "Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \n" "probably better off using the HTML help feature. \n", FALSE @@ -2087,6 +2102,14 @@ void Config::create() FALSE ); cb->addDependency("GENERATE_LATEX"); + cb = addBool( + "LATEX_HIDE_INDICES", + "If LATEX_HIDE_INDICES is set to YES then doxygen will not \n" + "include the index chapters (such as File Index, Compound Index, etc.) \n" + "in the output. \n", + FALSE + ); + cb->addDependency("GENERATE_LATEX"); //----------------------------------------------------------------------------------------------- addInfo( "RTF","configuration options related to the RTF output"); //----------------------------------------------------------------------------------------------- diff --git a/src/docparser.cpp b/src/docparser.cpp index 4657ae5..846d19c 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -562,11 +562,11 @@ static int handleStyleArgument(DocNode *parent,QList &children, { case TK_COMMAND: warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Illegal command \\%s as the argument of a \\%s command", - tokenName.data(),cmdName.data()); + g_token->name.data(),cmdName.data()); break; case TK_SYMBOL: warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found", - tokenName.data()); + g_token->name.data()); break; default: warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s", @@ -688,8 +688,7 @@ static void handleLinkedWord(DocNode *parent,QList &children) { Definition *compound=0; MemberDef *member=0; - QString name = g_token->name; - if (name.at(0)=='#') name=name.right(name.length()-1); + QString name = linkToText(g_token->name); if (resolveRef(g_context,g_token->name,g_inSeeBlock,&compound,&member)) { if (member) // member link @@ -1615,7 +1614,7 @@ DocRef::DocRef(DocNode *parent,const QString &target) : } else if (resolveLink(g_context,target,TRUE,&compound,&pageInfo,anchor)) { - m_text = target; + m_text = linkToText(target); m_anchor = anchor; if (pageInfo) // ref to page { @@ -3526,7 +3525,14 @@ int DocPara::handleCommand(const QString &cmdName) { doctokenizerYYsetStateCode(); retval = doctokenizerYYlex(); - m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::Code,g_isExample,g_fileName)); + // search for the first non-whitespace line, index is stored in li + int i=0,li=0,l=g_token->verb.length(); + while (iverb.at(i)==' ' || g_token->verb.at(i)=='\n') + { + if (g_token->verb.at(i)=='\n') li=i+1; + i++; + } + m_children.append(new DocVerbatim(this,g_context,g_token->verb.mid(li),DocVerbatim::Code,g_isExample,g_fileName)); if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: code section ended without end marker"); doctokenizerYYsetStatePara(); } diff --git a/src/doctokenizer.l b/src/doctokenizer.l index 70a66f5..f8f363a 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -487,7 +487,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]* return TK_NEWPARA; } } -{CMD}"endcode" { +{WS}*{CMD}"endcode" { return RetVal_OK; } [^\\@\n]+ | @@ -603,11 +603,12 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]* return 0; } -({ID}[.-])*{ID} { +("#"|"::")?({ID}[.#:-])*{ID} { g_token->name=yytext; return TK_WORD; } {BLANK}+ { + unput(' '); return 0; } {BLANK}+"\"" { diff --git a/src/doxygen.cpp b/src/doxygen.cpp index ebd8182..f25adf4 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -235,83 +235,110 @@ static void addRelatedPage(Entry *root) } -static void buildGroupList(Entry *root) +static void buildGroupListFiltered(Entry *root,bool additional) { if (root->section==Entry::GROUPDOC_SEC && !root->name.isEmpty()) { - //printf("Found group %s title=`%s'\n",root->name.data(),root->type.data()); - - GroupDef *gd; + //printf("Found group %s title=`%s type=%d'\n", + // root->name.data(),root->type.data(),root->groupDocType); - if ((gd=Doxygen::groupSDict[root->name])) + if ((root->groupDocType==Entry::GROUPDOC_NORMAL && !additional) || + (root->groupDocType!=Entry::GROUPDOC_NORMAL && additional)) { - if ( root->groupDocType==Entry::GROUPDOC_NORMAL ) + GroupDef *gd; + + if ((gd=Doxygen::groupSDict[root->name])) { - warn(root->fileName,root->startLine, - "Warning: group %s already documented. " - "Skipping documentation.", - root->name.data()); + if ( root->groupDocType==Entry::GROUPDOC_NORMAL ) + { + warn(root->fileName,root->startLine, + "Warning: group %s already documented. " + "Skipping documentation.", + root->name.data()); + } + else + { + if ( !gd->hasGroupTitle() ) + gd->setGroupTitle( root->type ); + else if ( root->type.length() > 0 && root->name != root->type && gd->groupTitle() != root->type ) + warn( root->fileName,root->startLine, + "group %s: ignoring title \"%s\" that does not match old title \"%s\"\n", + root->name.data(), root->type.data(), gd->groupTitle() ); + if ( gd->briefDescription().isEmpty() ) + gd->setBriefDescription(root->brief,root->briefFile,root->briefLine); + if ( !root->doc.stripWhiteSpace().isEmpty() ) + gd->setDocumentation( gd->documentation().isEmpty() ? root->doc : + gd->documentation() + "\n\n" + root->doc, + root->docFile, root->docLine ); + gd->addSectionsToDefinition(root->anchors); + gd->setRefItems(root->sli); + //addGroupToGroups(root,gd); + } } else { - if ( !gd->hasGroupTitle() ) - gd->setGroupTitle( root->type ); - else if ( root->type.length() > 0 && root->name != root->type && gd->groupTitle() != root->type ) - warn( root->fileName,root->startLine, - "group %s: ignoring title \"%s\" that does not match old title \"%s\"\n", - root->name.data(), root->type.data(), gd->groupTitle() ); - if ( gd->briefDescription().isEmpty() ) - gd->setBriefDescription(root->brief,root->briefFile,root->briefLine); - if ( !root->doc.stripWhiteSpace().isEmpty() ) - gd->setDocumentation( gd->documentation().isEmpty() ? root->doc : - gd->documentation() + "\n\n" + root->doc, - root->docFile, root->docLine ); + gd = new GroupDef(root->fileName,root->startLine,root->name,root->type); + if (root->tagInfo) + { + gd->setReference(root->tagInfo->tagName); + } + gd->setBriefDescription(root->brief,root->briefFile,root->briefLine); + gd->setDocumentation(root->doc,root->docFile,root->docLine); gd->addSectionsToDefinition(root->anchors); + Doxygen::groupSDict.append(root->name,gd); gd->setRefItems(root->sli); - addGroupToGroups(root,gd); - } - } - else - { - gd = new GroupDef(root->fileName,root->startLine,root->name,root->type); - if (root->tagInfo) - { - gd->setReference(root->tagInfo->tagName); } - gd->setBriefDescription(root->brief,root->briefFile,root->briefLine); - gd->setDocumentation(root->doc,root->docFile,root->docLine); - gd->addSectionsToDefinition(root->anchors); - Doxygen::groupSDict.append(root->name,gd); - gd->setRefItems(root->sli); } } EntryListIterator eli(*root->sublist); Entry *e; for (;(e=eli.current());++eli) { - buildGroupList(e); + buildGroupListFiltered(e,additional); } } -static void organizeSubGroups(Entry *root) +static void buildGroupList(Entry *root) +{ + // first process the @defgroups blocks + buildGroupListFiltered(root,FALSE); + // then process the @addtogroup, @weakgroup blocks + buildGroupListFiltered(root,TRUE); +} + +static void organizeSubGroupsFiltered(Entry *root,bool additional) { if (root->section==Entry::GROUPDOC_SEC && !root->name.isEmpty()) { - GroupDef *gd; - - if ((gd=Doxygen::groupSDict[root->name])) + if ((root->groupDocType==Entry::GROUPDOC_NORMAL && !additional) || + (root->groupDocType!=Entry::GROUPDOC_NORMAL && additional)) { - addGroupToGroups(root,gd); + GroupDef *gd; + if ((gd=Doxygen::groupSDict[root->name])) + { + //printf("adding %s to group %s\n",root->name.data(),gd->name().data()); + addGroupToGroups(root,gd); + } } } EntryListIterator eli(*root->sublist); Entry *e; for (;(e=eli.current());++eli) { - organizeSubGroups(e); + organizeSubGroupsFiltered(e,additional); } } +static void organizeSubGroups(Entry *root) +{ + //printf("Defining groups\n"); + // first process the @defgroups blocks + organizeSubGroupsFiltered(root,FALSE); + //printf("Additional groups\n"); + // then process the @addtogroup, @weakgroup blocks + organizeSubGroupsFiltered(root,TRUE); +} + //---------------------------------------------------------------------- static void buildFileList(Entry *root) @@ -1599,6 +1626,7 @@ static bool isVarWithConstructor(Entry *root) static QRegExp idChars("[a-z_A-Z][a-z_A-Z0-9]*"); bool result=FALSE; bool typeIsClass; + QCString type; Definition *ctx = 0; FileDef *fd = 0; bool ambig; @@ -1620,7 +1648,9 @@ static bool isVarWithConstructor(Entry *root) goto done; } if (root->parent->name) ctx=Doxygen::namespaceSDict.find(root->parent->name); - typeIsClass=getResolvedClass(ctx,root->type)!=0; + type = root->type; + if (type.left(6)=="const ") type=type.right(type.length()-6); + typeIsClass=getResolvedClass(ctx,type)!=0; if (typeIsClass) // now we still have to check if the arguments are // types or values. Since we do not have complete type info // we need to rely on heuristics :-( diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp index 0ed9565..c010692 100644 --- a/src/ftvhelp.cpp +++ b/src/ftvhelp.cpp @@ -471,7 +471,7 @@ FTVHelp::FTVHelp() { /* initial depth */ //m_dc = 0; - m_cf = 0; + //m_cf = 0; m_indentNodes = new QList[MAX_INDENT]; m_indentNodes[0].setAutoDelete(TRUE); m_indent=0; @@ -495,6 +495,7 @@ FTVHelp *FTVHelp::getInstance() */ void FTVHelp::initialize() { +#if 0 /* open the contents file */ QCString fName = Config_getString("HTML_OUTPUT") + "/tree.js"; m_cf = new QFile(fName); @@ -519,6 +520,7 @@ void FTVHelp::initialize() m_cts << Config_getString("PROJECT_NAME"); } m_cts << "\", \"\", \"\")\n"; +#endif } /*! Finalizes the FTV help. This will finish and close the @@ -527,9 +529,9 @@ void FTVHelp::initialize() */ void FTVHelp::finalize() { - m_cts.unsetDevice(); - m_cf->close(); - delete m_cf; + //m_cts.unsetDevice(); + //m_cf->close(); + //delete m_cf; generateTreeView(); //generateFolderTreeViewData(); } @@ -690,6 +692,8 @@ void FTVHelp::generateIndent(QTextStream &t, FTVNode *n,int level) void FTVHelp::generateLink(QTextStream &t,FTVNode *n) { QCString *dest; + //printf("FTVHelp::generateLink(ref=%s,file=%s,anchor=%s\n", + // n->ref.data(),n->file.data(),n->anchor.data()); if (!n->ref.isEmpty()) // link to entity imported via tag file { t << "\n"; t << "
    \n"; - t << "

    Root

    \n"; + t << "

    "; + QCString &projName = Config_getString("PROJECT_NAME"); + if (projName.isEmpty()) + { + t << "Root"; + } + else + { + t << projName; + } + t << "

    \n"; t << "
    \n"; generateTree(t,m_indentNodes[0],0); diff --git a/src/ftvhelp.h b/src/ftvhelp.h index 57a18be..3bcd7b9 100644 --- a/src/ftvhelp.h +++ b/src/ftvhelp.h @@ -46,8 +46,8 @@ class FTVHelp void generateLink(QTextStream &t,FTVNode *n); FTVHelp(); ~FTVHelp(); - QFile *m_cf; - QTextStream m_cts; + //QFile *m_cf; + //QTextStream m_cts; //int m_dc; static FTVHelp *m_theInstance; QList *m_indentNodes; diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index d58d4d2..5193586 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -753,7 +753,7 @@ void HtmlDocVisitor::visitPost(DocRef *) { if (m_hide) return; endLink(); - m_t << " "; + //m_t << " "; } void HtmlDocVisitor::visitPre(DocSecRefItem *ref) diff --git a/src/index.cpp b/src/index.cpp index f039e1d..eac41e1 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -2208,7 +2208,7 @@ void writePageIndex(OutputList &ol) } ol.writeString("\n"); if (hasHtmlHelp) htmlHelp->addContentsItem(FALSE,pageTitle,pageName); - if (hasFtvHelp) ftvHelp->addContentsItem(FALSE,0,pageName,0,pageTitle); + if (hasFtvHelp) ftvHelp->addContentsItem(FALSE,pi->getReference(),pi->getOutputFileBase(),0,pageTitle); } } endIndexHierarchy(ol,0); diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 7a348d8..5bb5784 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -460,6 +460,7 @@ void LatexGenerator::startProjectNumber() void LatexGenerator::startIndexSection(IndexSections is) { bool &compactLatex = Config_getBool("COMPACT_LATEX"); + bool &hideIndex = Config_getBool("LATEX_HIDE_INDICES"); QCString &latexHeader = Config_getString("LATEX_HEADER"); switch (is) { @@ -491,44 +492,47 @@ void LatexGenerator::startIndexSection(IndexSections is) // t << "{"; //Package Index}\n" // break; case isModuleIndex: - if (compactLatex) t << "\\section"; else t << "\\chapter"; - t << "{"; //Module Index}\n" + if (!hideIndex) + { + if (compactLatex) t << "\\section"; else t << "\\chapter"; + t << "{"; //Module Index}\n" + } break; case isNamespaceIndex: - if (compactLatex) t << "\\section"; else t << "\\chapter"; - t << "{"; //Namespace Index}\" + if (!hideIndex) + { + if (compactLatex) t << "\\section"; else t << "\\chapter"; + t << "{"; //Namespace Index}\" + } break; case isClassHierarchyIndex: - if (compactLatex) t << "\\section"; else t << "\\chapter"; - t << "{"; //Hierarchical Index}\n" + if (!hideIndex) + { + if (compactLatex) t << "\\section"; else t << "\\chapter"; + t << "{"; //Hierarchical Index}\n" + } break; case isCompoundIndex: - if (compactLatex) t << "\\section"; else t << "\\chapter"; - t << "{"; //Annotated Compound Index}\n" + if (!hideIndex) + { + if (compactLatex) t << "\\section"; else t << "\\chapter"; + t << "{"; //Annotated Compound Index}\n" + } break; case isFileIndex: - if (compactLatex) t << "\\section"; else t << "\\chapter"; - t << "{"; //Annotated File Index}\n" + if (!hideIndex) + { + if (compactLatex) t << "\\section"; else t << "\\chapter"; + t << "{"; //Annotated File Index}\n" + } break; case isPageIndex: - if (compactLatex) t << "\\section"; else t << "\\chapter"; - t << "{"; //Annotated Page Index}\n" + if (!hideIndex) + { + if (compactLatex) t << "\\section"; else t << "\\chapter"; + t << "{"; //Annotated Page Index}\n" + } break; -// case isPackageDocumentation: -// { -// PackageSDict::Iterator pdi(Doxygen::packageDict); -// PackageDef *pd=pdi.toFirst(); -// bool found=FALSE; -// while (pd && !found) -// { -// if (compactLatex) t << "\\section"; else t << "\\chapter"; -// t << "{"; -// found=TRUE; -// ++pdi; -// pd=pdi.current(); -// } -// } -// break; case isModuleDocumentation: { GroupSDict::Iterator gli(Doxygen::groupSDict); @@ -622,6 +626,7 @@ void LatexGenerator::startIndexSection(IndexSections is) void LatexGenerator::endIndexSection(IndexSections is) { bool &compactLatex = Config_getBool("COMPACT_LATEX"); + bool &hideIndex = Config_getBool("LATEX_HIDE_INDICES"); QCString &latexHeader = Config_getString("LATEX_HEADER"); switch (is) { @@ -642,48 +647,24 @@ void LatexGenerator::endIndexSection(IndexSections is) t << "\\input{" << indexName << "}\n"; } break; - //case isPackageIndex: - // t << "}\n\\input{packages}\n"; - // break; case isModuleIndex: - t << "}\n\\input{modules}\n"; + if (!hideIndex) t << "}\n\\input{modules}\n"; break; case isNamespaceIndex: - t << "}\n\\input{namespaces}\n"; + if (!hideIndex) t << "}\n\\input{namespaces}\n"; break; case isClassHierarchyIndex: - t << "}\n\\input{hierarchy}\n"; + if (!hideIndex) t << "}\n\\input{hierarchy}\n"; break; case isCompoundIndex: - t << "}\n\\input{annotated}\n"; + if (!hideIndex) t << "}\n\\input{annotated}\n"; break; case isFileIndex: - t << "}\n\\input{files}\n"; + if (!hideIndex) t << "}\n\\input{files}\n"; break; case isPageIndex: - t << "}\n\\input{pages}\n"; + if (!hideIndex) t << "}\n\\input{pages}\n"; break; - //case isPackageDocumentation: - // { - // PackageSDict::Iterator pdi(Doxygen::packageDict); - // PackageDef *pd=pdi.toFirst(); - // bool found=FALSE; - // while (pd && !found) - // { - // t << "}\n\\input{" << pd->getOutputFileBase() << "}\n"; - // found=TRUE; - // ++pdi; - // pd=pdi.current(); - // } - // while (pd) - // { - // if (compactLatex) t << "\\input"; else t << "\\include"; - // t << "{" << pd->getOutputFileBase() << "}\n"; - // ++pdi; - // pd=pdi.current(); - // } - // } - // break; case isModuleDocumentation: { GroupSDict::Iterator gli(Doxygen::groupSDict); diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 3479db0..6cb6e71 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -981,7 +981,7 @@ bool MemberDef::isDetailedSectionLinkable() const ) || // has a multi-line initialization block //(initLines>0 && initLineshasDocumentation()); diff --git a/src/pre.l b/src/pre.l index 94ca9ef..7c85873 100644 --- a/src/pre.l +++ b/src/pre.l @@ -99,6 +99,7 @@ static bool g_nospaces; // add extra spaces during macro expansion static bool g_macroExpansion; // from the configuration static bool g_expandOnlyPredef; // from the configuration static int g_commentCount; +static bool g_insideComment; static void setFileName(const char *name) @@ -1534,6 +1535,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr; outputArray(tmp.data(),tmp.length()); g_quoteArg=FALSE; + g_insideComment=FALSE; BEGIN(DefineText); } {ID}/{B}*"\n" { @@ -1549,6 +1551,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) QCString tmp=(QCString)"#define "+g_defName; outputArray(tmp.data(),tmp.length()); g_quoteArg=FALSE; + g_insideComment=FALSE; BEGIN(DefineText); } else // define is a guard => hide @@ -1590,6 +1593,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr; outputArray(tmp.data(),tmp.length()); g_quoteArg=FALSE; + g_insideComment=FALSE; BEGIN(DefineText); } {ID}{B}*("..."?) { @@ -1608,6 +1612,12 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) "/**"|"/*!" { g_defText+=yytext; g_defLitText+=yytext; + g_insideComment=TRUE; + } +"*/" { + g_defText+=yytext; + g_defLitText+=yytext; + g_insideComment=FALSE; } "/*"|"/**<"|"/*!<" { outputArray(yytext,yyleng); @@ -1757,13 +1767,20 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) {B}* { g_defText += ' '; g_defLitText+=yytext; } {B}*"##"{B}* { g_defText += "##"; g_defLitText+=yytext; } "@" { g_defText += "@@"; g_defLitText+=yytext; } -\" { g_defText += *yytext; +\" { + g_defText += *yytext; g_defLitText+=yytext; - BEGIN(SkipDoubleQuote); + if (!g_insideComment) + { + BEGIN(SkipDoubleQuote); + } } \' { g_defText += *yytext; g_defLitText+=yytext; - BEGIN(SkipSingleQuote); + if (!g_insideComment) + { + BEGIN(SkipSingleQuote); + } } "//" { g_defText += yytext; g_defLitText+=yytext; } "/*" { g_defText += yytext; g_defLitText+=yytext; } diff --git a/src/scanner.l b/src/scanner.l index a82597d..d829cfd 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -194,6 +194,7 @@ static void initEntry() current->inside = memberGroupInside.copy(); if (!autoGroupStack.isEmpty()) { + //printf("Appending group %s\n",autoGroupStack.top()->groupname.data()); current->groups->append(new Grouping(*autoGroupStack.top())); } } @@ -534,7 +535,7 @@ UL [uU][lL] OL [oO][lL] DL [dD][lL] TITLE [tT][iI][tT][lL][eE] -CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) +CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'")) PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] %option noyywrap @@ -2594,7 +2595,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] BEGIN(SkipCPP); } ":" { - BEGIN(SkipInits); + if (!insidePHP) BEGIN(SkipInits); } [;{,] { current->name=current->name.simplifyWhiteSpace(); diff --git a/src/translator_cz.h b/src/translator_cz.h index 7d8f88a..d843e84 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -174,11 +174,14 @@ class TranslatorCzech : public Translator */ inline QCString decode(const QCString & sInput) { -#ifdef _WIN32 - return sInput; -#else - return Win1250ToISO88592(sInput); -#endif + if (Config_getBool("USE_WINDOWS_ENCONDING")) + { + return sInput; + } + else + { + return Win1250ToISO88592(sInput); + } } public: @@ -193,11 +196,14 @@ class TranslatorCzech : public Translator /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() { -#ifdef _WIN32 + if (Config_getBool("USE_WINDOWS_ENCONDING")) + { return "windows-1250"; -#else + } + else + { return "iso-8859-2"; -#endif + } } // --- Language translation methods ------------------- diff --git a/src/translator_hr.h b/src/translator_hr.h index b512626..25e483e 100644 --- a/src/translator_hr.h +++ b/src/translator_hr.h @@ -46,32 +46,43 @@ // // 2001/11/13 // - Added strings for 1.2.13 +// +// 2003/02/26 +// - Added strings for 1.2.18 #ifndef TRANSLATOR_HR_H #define TRANSLATOR_HR_H -class TranslatorCroatian : public TranslatorAdapter_1_2_18 +class TranslatorCroatian : public Translator { private: /*! to avoid macro redefinition from translator_cz.h */ inline QCString decode(const QCString& sInput) { -#ifdef _WIN32 - return ISO88592ToWin1250(sInput); -#else - return sInput; -#endif + if (Config_getBool("USE_WINDOWS_ENCODING")) + { + return ISO88592ToWin1250(sInput); + } + else + { + return sInput; + } } public: QCString idLanguage() { return "croatian"; } QCString idLanguageCharset() -#ifdef _WIN32 - { return "windows-1250"; } -#else - { return "iso-8859-2"; } -#endif + { + if (Config_getBool("USE_WINDOWS_ENCODING")) + { + return "windows-1250"; + } + else + { + return "iso-8859-2"; + } + } QCString latexLanguageSupportCommand() { return "\\usepackage[croatian]{babel}\n"; } QCString trRelatedFunctions() @@ -1062,6 +1073,22 @@ class TranslatorCroatian : public TranslatorAdapter_1_2_18 { return "Popis zastarjelih metoda"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return decode("Događaji"); + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return decode("Dokumentacija događaja"); + } }; #endif diff --git a/src/translator_jp.h b/src/translator_jp.h index e4b6445..33b4a60 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -41,11 +41,14 @@ class TranslatorJapaneseEn : public TranslatorEnglish /*! returns the name of the package that is included by LaTeX */ virtual QCString idLanguageCharset() { -#ifdef __CYGWIN__ - return "Shift_JIS"; -#else - return "euc-jp"; -#endif + if (Config_getBool("USE_WINDOWS_ENCONDING")) + { + return "Shift_JIS"; + } + else + { + return "euc-jp"; + } } virtual QCString trRTFansicp() { @@ -66,13 +69,16 @@ class TranslatorJapanese : public Translator private: /*! The decode() can change euc into sjis */ inline QCString decode(const QCString & sInput) + { + if (Config_getBool("USE_WINDOWS_ENCONDING")) { -#ifdef __CYGWIN__ return JapaneseEucToSjis(sInput); -#else + } + else + { return sInput; -#endif } + } public: virtual QCString idLanguage() { return "japanese"; } @@ -83,11 +89,14 @@ class TranslatorJapanese : public Translator /*! returns the name of the package that is included by LaTeX */ virtual QCString idLanguageCharset() { -#ifdef __CYGWIN__ - return "Shift_JIS"; -#else - return "euc-jp"; -#endif + if (Config_getBool("USE_WINDOWS_ENCONDING")) + { + return "Shift_JIS"; + } + else + { + return "euc-jp"; + } } /*! used in the compound documentation before a list of related functions. */ diff --git a/src/translator_pl.h b/src/translator_pl.h index e21a2f1..501b16b 100644 --- a/src/translator_pl.h +++ b/src/translator_pl.h @@ -13,17 +13,28 @@ * Documents produced by Doxygen are derivative works derived from the * input used in their production; they are not affected by this license. * - * Polish translation was updated to version 1.2.17 by + * Polish translation was updated to version 1.3 by * Piotr Kaminski (Piotr.Kaminski@ctm.gdynia.pl) */ #ifndef TRANSLATOR_PL_H #define TRANSLATOR_PL_H -#include "translator_adapter.h" - -class TranslatorPolish : public TranslatorAdapter_1_2_17 +class TranslatorPolish : public Translator { + private: + /*! to avoid macro redefinition from translator_pl.h */ + inline QCString decode(const QCString& sInput) + { + if (Config_getBool("USE_WINDOWS_ENCODING")) + { + return ISO88592ToWin1250(sInput); + } + else + { + return sInput; + } + } public: // --- Language control methods ------------------- @@ -52,58 +63,67 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() - { return "iso-8859-2"; } - + { + if (Config_getBool("USE_WINDOWS_ENCODING")) + { + return "windows-1250"; + } + else + { + return "iso-8859-2"; + } + } + // --- Language translation methods ------------------- /*! used in the compound documentation before a list of related functions. */ QCString trRelatedFunctions() - { return "Funkcje Powiązane"; } + { return decode("Funkcje powiązane"); } /*! subscript for the related functions. */ QCString trRelatedSubscript() - { return "(Zauważ, że to nie są metody klas.)"; } + { return decode("(Zauważ, że to nie są metody klas.)"); } /*! header that is put before the detailed description of files, classes and namespaces. */ QCString trDetailedDescription() - { return "Opis Szczegółowy"; } + { return decode("Opis szczegółowy"); } /*! header that is put before the list of typedefs. */ QCString trMemberTypedefDocumentation() - { return "Dokumentacja Składowych Definicji Typu"; } + { return decode("Dokumentacja składowych definicji typu"); } /*! header that is put before the list of enumerations. */ QCString trMemberEnumerationDocumentation() - { return "Dokumentacja Składowych Wyliczanych"; } + { return decode("Dokumentacja składowych wyliczanych"); } /*! header that is put before the list of member functions. */ QCString trMemberFunctionDocumentation() - { return "Dokumentacja Funkcji Składowych"; } + { return decode("Dokumentacja funkcji składowych"); } /*! header that is put before the list of member attributes. */ QCString trMemberDataDocumentation() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Dokumentacja Pól"; + return decode("Dokumentacja pól"); } else { - return "Dokumentacja Atrybutów Składowych"; + return decode("Dokumentacja atrybutów składowych"); } } /*! this is the text of a link put after brief descriptions. */ QCString trMore() - { return "Więcej..."; } + { return decode("Więcej..."); } /*! put in the class documentation */ QCString trListOfAllMembers() - { return "Lista wszystkich składowych."; } + { return decode("Lista wszystkich składowych."); } /*! used as the title of the "list of all members" page of a class */ QCString trMemberList() - { return "Lista Składowych"; } + { return decode("Lista składowych"); } /*! this is the first part of a sentence that is followed by a class name */ QCString trThisIsTheListOfAllMembers() @@ -111,13 +131,13 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! this is the remainder of the sentence after the class name */ QCString trIncludingInheritedMembers() - { return ", uwzględniająca wszystkie dziedziczone składowe."; } + { return decode(", uwzględniająca wszystkie dziedziczone składowe."); } /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. */ QCString trGeneratedAutomatically(const char *s) - { QCString result="Wygenerowano automatycznie z kodu źródłowego programem Doxygen"; + { QCString result=decode("Wygenerowano automatycznie z kodu źródłowego programem Doxygen"); if (s) result+=(QCString)" dla "+s; result+="."; return result; @@ -129,7 +149,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! put after an enum value in the list of all members */ QCString trEnumValue() - { return "wartość wyliczenia"; } + { return decode("wartość wyliczenia"); } /*! put after an undocumented member in the list of all members */ QCString trDefinedIn() @@ -139,7 +159,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * parameter f is the name of the include file. */ QCString trVerbatimText(const char *f) - { return (QCString)"Tutaj znajduje się zawartość pliku nagłówkowego "+f+"."; } + { return (QCString)decode("Tutaj znajduje się zawartość pliku nagłówkowego ")+f+"."; } // quick reference sections @@ -147,43 +167,43 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * compounds or files (see the \\group command). */ QCString trModules() - { return "Moduły"; } + { return decode("Moduły"); } /*! This is put above each page as a link to the class hierarchy */ QCString trClassHierarchy() - { return "Hierarchia Klas"; } + { return "Hierarchia klas"; } /*! This is put above each page as a link to the list of annotated classes */ QCString trCompoundList() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Struktury Danych"; + return "Struktury danych"; } else { - return "Lista Klas"; + return "Lista klas"; } } /*! This is put above each page as a link to the list of documented files */ QCString trFileList() - { return "Lista Plików"; } + { return decode("Lista plików"); } /*! This is put above each page as a link to the list of all verbatim headers */ QCString trHeaderFiles() - { return "Pliki Nagłówkowe"; } + { return decode("Pliki nagłówkowe"); } /*! This is put above each page as a link to all members of compounds. */ QCString trCompoundMembers() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Pola Danych"; + return "Pola danych"; } else { - return "Składowe Klas"; + return decode("Składowe klas"); } } @@ -196,17 +216,17 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 } else { - return "Składowe Plików"; + return decode("Składowe plików"); } } /*! This is put above each page as a link to all related pages. */ QCString trRelatedPages() - { return "Dodatkowe Strony"; } + { return "Dodatkowe strony"; } /*! This is put above each page as a link to all examples. */ QCString trExamples() - { return "Przykłady"; } + { return decode("Przykłady"); } /*! This is put above each page as a link to the search engine. */ QCString trSearch() @@ -214,8 +234,8 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! This is an introduction to the class hierarchy. */ QCString trClassHierarchyDescription() - { return "Ta lista dziedziczenia posortowana jest z grubsza, " - "choć nie całkowicie, alfabetycznie:"; + { return decode("Ta lista dziedziczenia posortowana jest z grubsza, " + "choć nie całkowicie, alfabetycznie:"); } /*! This is an introduction to the list with all files. */ @@ -224,7 +244,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 QCString result="Tutaj znajduje się lista wszystkich "; if (!extractAll) result+="udokumentowanych "; result+="plików z ich krótkimi opisami:"; - return result; + return decode(result); } /*! This is an introduction to the annotated compound list. */ @@ -233,12 +253,12 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Tutaj znajdują się struktury danych wraz z ich krótkimi opisami:"; + return decode("Tutaj znajdują się struktury danych wraz z ich krótkimi opisami:"); } else { - return "Tutaj znajdują się klasy, struktury, " - "unie i interfejsy wraz z ich krótkimi opisami:"; + return decode("Tutaj znajdują się klasy, struktury, " + "unie i interfejsy wraz z ich krótkimi opisami:"); } } @@ -281,7 +301,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 result+="klas, do których dana składowa należy:"; } } - return result; + return decode(result); } /*! This is an introduction to the page with all file members. */ @@ -302,24 +322,24 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 result+="plików, do których one należą:"; else result+="dokumentacji:"; - return result; + return decode(result); } /*! This is an introduction to the page with the list of all header files. */ QCString trHeaderFilesDescription() - { return "Tutaj znajdują się pliki nagłówkowe tworzące API:"; } + { return decode("Tutaj znajdują się pliki nagłówkowe tworzące API:"); } /*! This is an introduction to the page with the list of all examples */ QCString trExamplesDescription() - { return "Tutaj znajduje się lista wszystkich przykładów:"; } + { return decode("Tutaj znajduje się lista wszystkich przykładów:"); } /*! This is an introduction to the page with the list of related pages */ QCString trRelatedPagesDescription() - { return "Tutaj znajduje się lista wszystkich stron dokumentacji:"; } + { return decode("Tutaj znajduje się lista wszystkich stron dokumentacji:"); } /*! This is an introduction to the page with the list of class/file groups */ QCString trModulesDescription() - { return "Tutaj znajduje się lista wszystkich grup:"; } + { return decode("Tutaj znajduje się lista wszystkich grup:"); } /*! This sentences is used in the annotated class/file lists if no brief * description is given. @@ -338,13 +358,13 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * index of all groups. */ QCString trModuleIndex() - { return "Indeks Grup"; } + { return "Indeks grup"; } /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ QCString trHierarchicalIndex() - { return "Indeks Hierarchiczny"; } + { return "Indeks hierarchiczny"; } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. @@ -353,11 +373,11 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Indeks Struktur Danych"; + return "Indeks struktur danych"; } else { - return "Indeks Klas"; + return "Indeks klas"; } } @@ -365,13 +385,13 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * list of all files. */ QCString trFileIndex() - { return "Indeks Plików"; } + { return decode("Indeks plików"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. */ QCString trModuleDocumentation() - { return "Dokumentacja Grup"; } + { return "Dokumentacja grup"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. @@ -380,11 +400,11 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Dokumentacja Struktur Danych"; + return "Dokumentacja struktur danych"; } else { - return "Dokumentacja Klas"; + return "Dokumentacja klas"; } } @@ -392,23 +412,23 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * the documentation of all files. */ QCString trFileDocumentation() - { return "Dokumentacja Plików"; } + { return decode("Dokumentacja plików"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ QCString trExampleDocumentation() - { return "Dokumentacja Przykładów"; } + { return decode("Dokumentacja przykładów"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ QCString trPageDocumentation() - { return "Dokumentacja Stron"; } + { return "Dokumentacja stron"; } /*! This is used in LaTeX as the title of the document */ QCString trReferenceManual() - { return "Podręcznik Referencji"; } + { return decode("Podręcznik"); } /*! This is used in the documentation of a file as a header before the * list of defines @@ -420,13 +440,13 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * list of function prototypes */ QCString trFuncProtos() - { return "Prototypy Funkcji"; } + { return "Prototypy funkcji"; } /*! This is used in the documentation of a file as a header before the * list of typedefs */ QCString trTypedefs() - { return "Definicje Typów"; } + { return decode("Definicje typów"); } /*! This is used in the documentation of a file as a header before the * list of enumerations @@ -450,7 +470,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * list of (global) variables */ QCString trEnumerationValues() - { return "Wartości Wyliczeń"; } + { return decode("Wartości wyliczeń"); } /*! This is used in man pages as the author section. */ QCString trAuthor() @@ -460,43 +480,43 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * documentation blocks for defines */ QCString trDefineDocumentation() - { return "Dokumentacja Definicji"; } + { return "Dokumentacja definicji"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ QCString trFunctionPrototypeDocumentation() - { return "Dokumentacja Prototypów Funkcji"; } + { return decode("Dokumentacja prototypów funkcji"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ QCString trTypedefDocumentation() - { return "Dokumentacja Definicji Typów"; } + { return decode("Dokumentacja definicji typów"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ QCString trEnumerationTypeDocumentation() - { return "Dokumentacja Typów Wyliczanych"; } + { return decode("Dokumentacja typów wyliczanych"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ QCString trEnumerationValueDocumentation() - { return "Dokumentacja Wartości Wyliczanych"; } + { return decode("Dokumentacja wartości wyliczanych"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ QCString trFunctionDocumentation() - { return "Dokumentacja Funkcji"; } + { return "Dokumentacja funkcji"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ QCString trVariableDocumentation() - { return "Dokumentacja Zmiennych"; } + { return "Dokumentacja zmiennych"; } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds @@ -505,7 +525,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Struktury Danych"; + return "Struktury danych"; } else { @@ -544,19 +564,19 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! this text is generated when the \\internal command is used. */ QCString trForInternalUseOnly() - { return "Tylko do użytku wewnętrznego."; } + { return decode("Tylko do użytku wewnętrznego."); } /*! this text is generated when the \\reimp command is used. */ QCString trReimplementedForInternalReasons() - { return "Reimplementowana z wewnętrzych przyczyn; nie dotyczy API."; } + { return decode("Reimplementowana z wewnętrzych przyczyn; nie dotyczy API."); } /*! this text is generated when the \\warning command is used. */ QCString trWarning() - { return "Ostrzeżenie"; } + { return decode("Ostrzeżenie"); } /*! this text is generated when the \\bug command is used. */ QCString trBugsAndLimitations() - { return "Błędy i ograniczenia"; } + { return decode("Błędy i ograniczenia"); } /*! this text is generated when the \\version command is used. */ QCString trVersion() @@ -576,7 +596,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! this text is generated when the \\sa command is used. */ QCString trSeeAlso() - { return "Zobacz również"; } + { return decode("Zobacz również"); } /*! this text is generated when the \\param command is used. */ QCString trParameters() @@ -584,7 +604,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! this text is generated when the \\exception command is used. */ QCString trExceptions() - { return "Wyjątki"; } + { return decode("Wyjątki"); } /*! this text is used in the title page of a LaTeX document. */ QCString trGeneratedBy() @@ -594,7 +614,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! used as the title of page containing all the index of all namespaces. */ QCString trNamespaceList() - { return "Lista Przestrzeni Nazw"; } + { return "Lista przestrzeni nazw"; } /*! used as an introduction to the namespace list */ QCString trNamespaceListDescription(bool extractAll) @@ -602,7 +622,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 QCString result="Tutaj znajdują się wszystkie "; if (!extractAll) result+="udokumentowane "; result+="przestrzenie nazw wraz z ich krótkimi opisami:"; - return result; + return decode(result); } /*! used in the class documentation as a header before the list of all @@ -619,7 +639,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * related classes */ QCString trRelatedFunctionDocumentation() - { return "Dokumentacja Przyjaciół i Funkcji Związanych"; } + { return decode("Dokumentacja przyjaciół i funkcji związanych"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 @@ -631,14 +651,14 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 bool isTemplate) { QCString result="Dokumentacja"; - if (isTemplate) result+=" Szablonu"; + if (isTemplate) result+=" szablonu"; switch(compType) { - case ClassDef::Class: result+=" Klasy "; break; - case ClassDef::Struct: result+=" Struktury "; break; - case ClassDef::Union: result+=" Unii "; break; - case ClassDef::Interface: result+=" Interfejsu "; break; - case ClassDef::Exception: result+=" Wyjątku "; break; + case ClassDef::Class: result+=" klasy "; break; + case ClassDef::Struct: result+=" struktury "; break; + case ClassDef::Union: result+=" unii "; break; + case ClassDef::Interface: result+=" interfejsu "; break; + case ClassDef::Exception: result+=decode(" wyjątku "); break; } result+=(QCString)clName; return result; @@ -647,7 +667,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! used as the title of the HTML page of a file */ QCString trFileReference(const char *fileName) { - QCString result="Dokumentacja Pliku "; + QCString result="Dokumentacja pliku "; result+=fileName; return result; } @@ -655,32 +675,32 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! used as the title of the HTML page of a namespace */ QCString trNamespaceReference(const char *namespaceName) { - QCString result="Dokumentacja Przestrzeni Nazw "; + QCString result="Dokumentacja przestrzeni nazw "; result+=namespaceName; return result; } /* these are for the member sections of a class, struct or union */ QCString trPublicMembers() - { return "Metody Publiczne"; } + { return "Metody publiczne"; } QCString trPublicSlots() - { return "Sloty Publiczne"; } + { return "Sloty publiczne"; } QCString trSignals() - { return "Sygnały"; } + { return decode("Sygnały"); } QCString trStaticPublicMembers() - { return "Statyczne Metody Publiczne"; } + { return "Statyczne metody publiczne"; } QCString trProtectedMembers() - { return "Metody Chronione"; } + { return "Metody chronione"; } QCString trProtectedSlots() - { return "Sloty Chronione"; } + { return "Sloty chronione"; } QCString trStaticProtectedMembers() - { return "Statyczne Metody Chronione"; } + { return "Statyczne metody chronione"; } QCString trPrivateMembers() - { return "Metody Prywatne"; } + { return "Metody prywatne"; } QCString trPrivateSlots() - { return "Sloty Prywatne"; } + { return "Sloty prywatne"; } QCString trStaticPrivateMembers() - { return "Statyczne Metody Prywatne"; } + { return "Statyczne metody prywatne"; } /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. @@ -741,7 +761,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! This is put above each page as a link to all members of namespaces. */ QCString trNamespaceMembers() - { return "Składowe Przestrzeni Nazw"; } + { return decode("Składowe przestrzeni nazw"); } /*! This is an introduction to the page with all namespace members */ QCString trNamespaceMemberDescription(bool extractAll) @@ -753,19 +773,19 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 result+="dokumentacji przestrzeni nazw dla każdej składowej:"; else result+="przestrzeni nazw do których składowe te należą:"; - return result; + return decode(result); } /*! This is used in LaTeX as the title of the chapter with the * index of all namespaces. */ QCString trNamespaceIndex() - { return "Indeks Przestrzeni Nazw"; } + { return "Indeks przestrzeni nazw"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all namespaces. */ QCString trNamespaceDocumentation() - { return "Dokumentacja Przestrzeni Nazw"; } + { return "Dokumentacja przestrzeni nazw"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990522 @@ -775,7 +795,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 * namespaces in a file. */ QCString trNamespaces() - { return "Przestrzenie Nazw"; } + { return "Przestrzenie nazw"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990728 @@ -799,14 +819,14 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 } result+=" została wygenerowana z plik"; if (single) result+="u:"; else result+="ów:"; - return result; + return decode(result); } /*! This is in the (quick) index as a link to the alphabetical compound * list. */ QCString trAlphabeticalList() - { return "Lista Alfabetyczna"; } + { return "Lista alfabetyczna"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990901 @@ -814,12 +834,12 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! This is used as the heading text for the retval command. */ QCString trReturnValues() - { return "Zwracane wartości"; } + { return decode("Zwracane wartości"); } /*! This is in the (quick) index as a link to the main page (index.html) */ QCString trMainPage() - { return "Strona Główna"; } + { return decode("Strona główna"); } /*! This is used in references to page that are put in the LaTeX * documentation. It should be an abbreviation of the word page. @@ -833,7 +853,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 QCString trSources() { - return "Źródła"; + return decode("Źródła"); } QCString trDefinedAtLineInSourceFile() { @@ -860,68 +880,68 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! this text is put before a collaboration diagram */ QCString trCollaborationDiagram(const char *clName) { - return (QCString)"Diagram współpracy dla "+clName+":"; + return (QCString)decode("Diagram współpracy dla ")+clName+":"; } /*! this text is put before an include dependency graph */ QCString trInclDepGraph(const char *fName) { - return (QCString)"Wykres zależności załączania dla "+fName+":"; + return (QCString)decode("Wykres zależności załączania dla ")+fName+":"; } /*! header that is put before the list of constructor/destructors. */ QCString trConstructorDocumentation() { - return "Dokumentacja Konstruktora i Destruktora"; + return "Dokumentacja konstruktora i destruktora"; } /*! Used in the file documentation to point to the corresponding sources. */ QCString trGotoSourceCode() { - return "Idź do kodu źródłowego tego pliku."; + return decode("Idź do kodu źródłowego tego pliku."); } /*! Used in the file sources to point to the corresponding documentation. */ QCString trGotoDocumentation() { - return "Idź do dokumentacji tego pliku."; + return decode("Idź do dokumentacji tego pliku."); } /*! Text for the \\pre command */ QCString trPrecondition() { - return "Warunek wstępny"; + return decode("Warunek wstępny"); } /*! Text for the \\post command */ QCString trPostcondition() { - return "Warunek końcowy"; + return decode("Warunek końcowy"); } /*! Text for the \\invariant command */ QCString trInvariant() { - return "Inwariant"; + return "Niezmiennik"; } /*! Text shown before a multi-line variable/enum initialization */ QCString trInitialValue() { - return "Inicjalizator:"; + return decode("Wartość początkowa:"); } /*! Text used the source code in the file index */ QCString trCode() { - return "kod źródłowy"; + return decode("kod źródłowy"); } QCString trGraphicalHierarchy() { - return "Graficzna Hierarchia Klas"; + return "Graficzna hierarchia klas"; } QCString trGotoGraphicalHierarchy() { - return "Idź do graficznej hierarchi klas"; + return decode("Idź do graficznej hierarchi klas"); } QCString trGotoTextualHierarchy() { - return "Idź do tekstowej hierarchi klas"; + return decode("Idź do tekstowej hierarchi klas"); } QCString trPageIndex() { - return "Indeks Stron"; + return "Indeks stron"; } ////////////////////////////////////////////////////////////////////////// @@ -934,46 +954,46 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 } QCString trPublicTypes() { - return "Typy Publiczne"; + return "Typy publiczne"; } QCString trPublicAttribs() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Pola Danych"; + return "Pola danych"; } else { - return "Atrybuty Publiczne"; + return "Atrybuty publiczne"; } } QCString trStaticPublicAttribs() { - return "Statyczne Atrybuty Publiczne"; + return "Statyczne atrybuty publiczne"; } QCString trProtectedTypes() { - return "Typy Chronione"; + return "Typy chronione"; } QCString trProtectedAttribs() { - return "Atrybuty Chronione"; + return "Atrybuty chronione"; } QCString trStaticProtectedAttribs() { - return "Statyczne Atrybuty Chronione"; + return "Statyczne atrybuty chronione"; } QCString trPrivateTypes() { - return "Typy Prywatne"; + return "Typy prywatne"; } QCString trPrivateAttribs() { - return "Atrybuty Prywatne"; + return "Atrybuty prywatne"; } QCString trStaticPrivateAttribs() { - return "Statyczne Atrybuty Prywatne"; + return "Statyczne atrybuty prywatne"; } ////////////////////////////////////////////////////////////////////////// @@ -983,12 +1003,12 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! Used as a marker that is put before a todo item */ QCString trTodo() { - return "Do Zrobienia"; + return "Do zrobienia"; } /*! Used as the header of the todo list */ QCString trTodoList() { - return "Lista Do Zrobienia"; + return "Lista rzeczy do zrobienia"; } ////////////////////////////////////////////////////////////////////////// @@ -997,11 +1017,11 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 QCString trReferencedBy() { - return "Odwołania w"; + return decode("Odwołania w"); } QCString trRemarks() { - return "Spostrzeżenia"; + return decode("Spostrzeżenia"); } QCString trAttention() { @@ -1009,8 +1029,8 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 } QCString trInclByDepGraph() { - return "Ten wykres pokazuje, które pliki bezpośrednio lub " - "pośrednio załączają ten plik:"; + return decode("Ten wykres pokazuje, które pliki bezpośrednio lub " + "pośrednio załączają ten plik:"); } QCString trSince() { @@ -1024,12 +1044,12 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! title of the graph legend page */ QCString trLegendTitle() { - return "Legenda Wykresu"; + return "Legenda wykresu"; } /*! page explaining how the dot graph's should be interpreted */ QCString trLegendDocs() { - return + return decode( "Ta strona wyjaśnia jak interpretować wykresy, które są wygenerowane " "przez doxygen.

    \n" "Rozważ następujący przykład:\n" @@ -1081,7 +1101,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 "

  • Fioletowa przerywana strzałka jest używana jeśli klasa jest zawarta " "lub użyta przez inną klasę. Strzałka jest podpisana zmienną(ymi) " "przez które wskazywana klasa lub struktura jest dostępna. \n" - "\n"; + "\n"); } /*! text for the link to the legend page */ QCString trLegend() @@ -1101,7 +1121,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! Used as the header of the test list */ QCString trTestList() { - return "Lista Testu"; + return "Lista testu"; } ////////////////////////////////////////////////////////////////////////// // new since 1.2.1 @@ -1120,12 +1140,12 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 /*! Used as a section header for IDL properties */ virtual QCString trProperties() { - return "Właściwości"; + return decode("Właściwości"); } /*! Used as a section header for IDL property documentation */ virtual QCString trPropertyDocumentation() { - return "Dokumentacja Właściwości"; + return decode("Dokumentacja właściwości"); } ////////////////////////////////////////////////////////////////////////// // new since 1.2.4 @@ -1354,9 +1374,39 @@ class TranslatorPolish : public TranslatorAdapter_1_2_17 */ virtual QCString trRTFTableOfContents() { - return "Spis Treści"; + return "Spis treści"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.17 +////////////////////////////////////////////////////////////////////////// + + /*! Used as the header of the list of item that have been + * flagged deprecated + */ + virtual QCString trDeprecatedList() + { + return "Lista elementów do wycofania"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return "Zdarzenia"; + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return "Dokumentacja zdarzeń"; + } + + }; #endif diff --git a/src/translator_ru.h b/src/translator_ru.h index 2dbbaed..1329d88 100644 --- a/src/translator_ru.h +++ b/src/translator_ru.h @@ -56,11 +56,14 @@ class TranslatorRussian : public Translator */ inline QCString decode(const QCString & sInput) { -#ifdef _WIN32 - return Koi8RToWindows1251(sInput); -#else - return sInput; -#endif + if (Config_getBool("USE_WINDOWS_ENCODING")) + { + return Koi8RToWindows1251(sInput); + } + else + { + return sInput; + } } public: @@ -70,19 +73,29 @@ class TranslatorRussian : public Translator /* Used to get the command(s) for the language support. */ virtual QCString latexLanguageSupportCommand() -#ifdef _WIN32 - { return "\\usepackage[cp1251]{inputenc}\n\\usepackage[russian]{babel}\n"; } -#else - { return "\\usepackage[koi8-r]{inputenc}\n\\usepackage[russian]{babel}\n"; } -#endif + { + if (Config_getBool("USE_WINDOWS_ENCODING")) + { + return "\\usepackage[cp1251]{inputenc}\n\\usepackage[russian]{babel}\n"; + } + else + { + return "\\usepackage[koi8-r]{inputenc}\n\\usepackage[russian]{babel}\n"; + } + } /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() -#ifdef _WIN32 - { return "Windows-1251"; } -#else - { return "koi8-r"; } -#endif + { + if (Config_getBool("USE_WINDOWS_ENCODING")) + { + return "Windows-1251"; + } + else + { + return "koi8-r"; + } + } // --- Language translation methods ------------------- diff --git a/src/util.cpp b/src/util.cpp index 98657a8..de34491 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -2535,6 +2535,28 @@ bool resolveRef(/* in */ const char *scName, return FALSE; } +QCString linkToText(const char *link) +{ + QCString result=link; + if (!result.isEmpty()) + { + // replace # by :: + result=substitute(result,"#","::"); + // replace . by :: + result=substitute(result,".","::"); + // strip :: prefix if present + if (result.at(0)==':' && result.at(1)==':') + { + result=result.right(result.length()-2); + } + if (Config_getBool("OPTIMIZE_OUTPUT_JAVA")) + { + result=substitute(result,"::","."); + } + } + return result; +} + /*! * generate a reference to a class, namespace or member. * `scName' is the name of the scope that contains the documentation @@ -2563,17 +2585,7 @@ bool generateRef(OutputDocInterface &od,const char *scName, MemberDef *md; // create default link text - QCString linkText = rt; - if (linkText.isEmpty()) - { - linkText=substitute(name,"#","::"); - linkText=substitute(linkText,".","::"); - // strip :: prefix if present - if (linkText.at(0)==':' && linkText.at(1)==':') - { - linkText=linkText.right(linkText.length()-2); - } - } + QCString linkText = linkToText(rt); if (resolveRef(scName,name,inSeeBlock,&compound,&md)) { @@ -2699,17 +2711,7 @@ bool generateLink(OutputDocInterface &od,const char *clName, //printf("generateLink(clName=%s,lr=%s,lr=%s)\n",clName,lr,lt); Definition *compound; PageInfo *pageInfo; - QCString anchor,linkText=lt; - if (linkText.isEmpty()) - { - linkText=substitute(lr,"#","::"); - linkText=substitute(linkText,".","::"); - // strip :: prefix if present - if (linkText.at(0)==':' && linkText.at(1)==':') - { - linkText=linkText.right(linkText.length()-2); - } - } + QCString anchor,linkText=linkToText(lt); //printf("generateLink linkText=%s\n",linkText.data()); if (resolveLink(clName,lr,inSeeBlock,&compound,&pageInfo,anchor)) { diff --git a/src/util.h b/src/util.h index c35d437..81b512a 100644 --- a/src/util.h +++ b/src/util.h @@ -203,6 +203,7 @@ void filterLatexString(QTextStream &t,const char *str, bool insideTabbing=FALSE,bool insidePre=FALSE, bool insideItem=FALSE); QCString rtfFormatBmkStr(const char *name); +QCString linkToText(const char *link); #endif -- cgit v0.12