From 6ac75f5093a2ac447626579cfbda2d1a8af6d86e Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 23 Feb 2003 20:49:55 +0000 Subject: Doxygen-1.3-rc3-20030223 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- doc/index.doc | 8 +- doc/language.doc | 10 +- packages/rpm/doxygen.spec | 2 +- src/cmdmapper.cpp | 2 + src/cmdmapper.h | 4 +- src/code.l | 4 +- src/config.l | 27 ++- src/docparser.cpp | 22 +-- src/docparser.h | 3 +- src/doctokenizer.l | 2 +- src/doxygen.cpp | 29 ++- src/doxygen.h | 1 + src/doxygen.pro.in | 2 +- src/htmldocvisitor.cpp | 7 + src/index.cpp | 4 + src/latexdocvisitor.cpp | 65 ++----- src/latexgen.cpp | 3 +- src/libdoxygen.t | 2 +- src/mandocvisitor.cpp | 4 +- src/memberdef.cpp | 4 + src/perlmodgen.cpp | 4 +- src/printdocvisitor.h | 6 + src/rtfdocvisitor.cpp | 2 + src/scanner.l | 186 ++++++++++++++----- src/translator_de.h | 2 +- src/translator_kr.h | 441 +++++++++++++++++++++++++++------------------- src/util.cpp | 14 +- src/xmldocvisitor.cpp | 2 + src/xmlgen.cpp | 42 +++-- 32 files changed, 571 insertions(+), 343 deletions(-) diff --git a/INSTALL b/INSTALL index daab954..e8371e3 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.3-rc3-20030215 +DOXYGEN Version 1.3-rc3-20030223 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (15 February 2003) +Dimitri van Heesch (23 February 2003) diff --git a/README b/README index 7205f82..1d7e062 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3_rc3_20030215 +DOXYGEN Version 1.3_rc3_20030223 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) (15 February 2003) +Dimitri van Heesch (dimitri@stack.nl) (23 February 2003) diff --git a/VERSION b/VERSION index 4a07d6d..1772d13 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3-rc3-20030215 +1.3-rc3-20030223 diff --git a/doc/index.doc b/doc/index.doc index 2e54c0e..19b305e 100644 --- a/doc/index.doc +++ b/doc/index.doc @@ -39,10 +39,10 @@ It can help you in three ways: The documentation is extracted directly from the sources, which makes it much easier to keep the documentation consistent with the source code. -
  • Doxygen can be configured to extract the code structure - from undocumented source files. This can be very useful to quickly +
  • You can configure doxygen to extract the code structure + from undocumented source files. This is very useful to quickly find your way in large source distributions. - The relations between the various elements are be visualized + You can also visualize the relations between the various elements by means of include dependency graphs, inheritance diagrams, and collaboration diagrams, which are all generated automatically.
  • You can even `abuse' doxygen for creating normal documentation (as I did @@ -183,7 +183,7 @@ 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 for donating money. + Walter Wartenweiler, Jeff Garbers and David Harris 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 be7b3ba..d14bd7e 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.2.14-20020317), 28 languages +Currently (version 1.3-rc3-20030215), 28 languages are supported (sorted alphabetically): Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, @@ -91,7 +91,7 @@ when the translator was updated. Danish Erik Søe Sørensen erik@NOSPAM.mail.nu - 1.2.7 + up-to-date Dutch @@ -115,7 +115,7 @@ when the translator was updated. French Xavier Outhier xouthier@NOSPAM.yahoo.fr - 1.2.17 + up-to-date German @@ -243,7 +243,7 @@ when the translator was updated. \hline Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & up-to-date \\ \hline - Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\ + Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & up-to-date \\ \hline Dutch & Dimitri van Heesch & {\tt dimitri@stack.nl} & up-to-date \\ \hline @@ -251,7 +251,7 @@ when the translator was updated. \hline Finnish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} & obsolete \\ \hline - French & Xavier Outhier & {\tt xouthier@yahoo.fr} & 1.2.17 \\ + French & Xavier Outhier & {\tt xouthier@yahoo.fr} & up-to-date \\ \hline German & Jens Seidel & {\tt jensseidel@users.sf.net} & up-to-date \\ \hline diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index b55ba8c..ec6f3fe 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_20030215 +Version: 1.3_rc3_20030223 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp index 50f72af..8724d53 100644 --- a/src/cmdmapper.cpp +++ b/src/cmdmapper.cpp @@ -181,6 +181,8 @@ CommandMap htmlTagMap[] = { "h4", HTML_H4 }, { "h5", HTML_H5 }, { "h6", HTML_H6 }, + { "span", HTML_SPAN }, + { "div", HTML_DIV }, { 0, 0 } }; diff --git a/src/cmdmapper.h b/src/cmdmapper.h index c69acb9..989111a 100644 --- a/src/cmdmapper.h +++ b/src/cmdmapper.h @@ -137,7 +137,9 @@ enum HtmlTagType HTML_H3 = 27, HTML_H4 = 28, HTML_H5 = 29, - HTML_H6 = 30 + HTML_H6 = 30, + HTML_SPAN = 31, + HTML_DIV = 32 }; class CmdMapper diff --git a/src/code.l b/src/code.l index 63fccbd..4a2b80a 100644 --- a/src/code.l +++ b/src/code.l @@ -1389,8 +1389,8 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" } "("{B}*("*"{B}*)*{SCOPENAME}*{B}*")"/{B}* { // (*p)->func() g_code->codify(yytext); - int s=0;while (!isId(yytext[s])) s++; - int e=yyleng-1;while (!isId(yytext[e])) e--; + int s=0;while (s=0 && !isId(yytext[e])) e--; QCString varname = ((QCString)yytext).mid(s,e-s+1); addType(); g_name=varname; diff --git a/src/config.l b/src/config.l index fcc2f5b..dfc763f 100644 --- a/src/config.l +++ b/src/config.l @@ -104,14 +104,26 @@ void ConfigOption::writeStringValue(QTextStream &t,QCString &s) { const char *p=s.data(); char c; - bool hasBlanks=FALSE; + bool needsEscaping=FALSE; if (p) { - while ((c=*p++)!=0 && !hasBlanks) hasBlanks = (c==' ' || c=='\n' || c=='\t'); - if (hasBlanks) - t << "\"" << s << "\""; + while ((c=*p++)!=0 && !needsEscaping) + needsEscaping = (c==' ' || c=='\n' || c=='\t' || c=='"'); + if (needsEscaping) + { + t << "\""; + p=s.data(); + while (*p) + { + if (*p=='"') t << "\\"; // escape quotes + t << *p++; + } + t << "\""; + } else + { t << s; + } } } @@ -121,13 +133,10 @@ void ConfigOption::writeStringList(QTextStream &t,QStrList &l) bool first=TRUE; while (p) { - char c; - const char *s=p; - bool hasBlanks=FALSE; - while ((c=*p++)!=0 && !hasBlanks) hasBlanks = (c==' ' || c=='\n' || c=='\t'); + QCString s=p; if (!first) t << " "; first=FALSE; - if (hasBlanks) t << "\"" << s << "\""; else t << s; + writeStringValue(t,s); p = l.next(); if (p) t << " \\" << endl; } diff --git a/src/docparser.cpp b/src/docparser.cpp index 05dd5bd..4657ae5 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -664,6 +664,8 @@ const char *DocStyleChange::styleString() const case DocStyleChange::Subscript: return "subscript"; case DocStyleChange::Superscript: return "superscript"; case DocStyleChange::Preformatted: return "pre"; + case DocStyleChange::Div: return "div"; + case DocStyleChange::Span: return "span"; } return ""; } @@ -883,6 +885,12 @@ reparsetoken: { switch (HtmlTagMapper::map(tokenName)) { + case HTML_DIV: + warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: found
    tag in heading\n"); + break; + case HTML_PRE: + warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: found
     tag in heading\n");
    +            break;
               case HTML_BOLD:
                 if (!g_token->endTag)
                 {
    @@ -893,20 +901,6 @@ reparsetoken:
                   handleStyleLeave(parent,children,DocStyleChange::Bold,tokenName);
                 }
                 break;
    -          case HTML_PRE:
    -            if (!g_token->endTag)
    -            {
    -              handleStyleEnter(parent,children,DocStyleChange::Preformatted,&g_token->attribs);
    -              parent->setInsidePreformatted(TRUE);
    -              //doctokenizerYYsetInsidePre(TRUE);
    -            }
    -            else
    -            {
    -              handleStyleLeave(parent,children,DocStyleChange::Preformatted,tokenName);
    -              parent->setInsidePreformatted(FALSE);
    -              //doctokenizerYYsetInsidePre(FALSE);
    -            }
    -            break;
               case HTML_CODE:
                 if (!g_token->endTag)
                 {
    diff --git a/src/docparser.h b/src/docparser.h
    index 23e9465..e8e9403 100644
    --- a/src/docparser.h
    +++ b/src/docparser.h
    @@ -275,7 +275,8 @@ class DocStyleChange : public DocNode
     {
       public:
         enum Style { Bold, Italic, Code, Center, Small, 
    -                 Subscript, Superscript, Preformatted
    +                 Subscript, Superscript, Preformatted,
    +                 Span, Div
                    };
         DocStyleChange(DocNode *parent,uint position,Style s,bool enable,
                        const HtmlAttribList *attribs=0) : 
    diff --git a/src/doctokenizer.l b/src/doctokenizer.l
    index d55e015..70a66f5 100644
    --- a/src/doctokenizer.l
    +++ b/src/doctokenizer.l
    @@ -379,7 +379,7 @@ LABELID   [a-z_A-Z][a-z_A-Z0-9\-]*
     			 g_token->isEMailAddr=FALSE;
     			 return TK_URL;
                            }
    -[a-z_A-Z0-9.-]+"@"[a-z_A-Z0-9-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]+ { // Mail address
    +[a-z_A-Z0-9.+-]+"@"[a-z_A-Z0-9-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]+ { // Mail address
                              g_token->name=yytext;
     			 g_token->isEMailAddr=TRUE;
     			 return TK_URL;
    diff --git a/src/doxygen.cpp b/src/doxygen.cpp
    index 686bfff..ebd8182 100644
    --- a/src/doxygen.cpp
    +++ b/src/doxygen.cpp
    @@ -108,6 +108,7 @@ QDict    Doxygen::expandAsDefinedDict(257); // all macros that should be e
     QIntDict Doxygen::memGrpInfoDict(1009); // dictionary of the member groups heading
     
     PageInfo      *Doxygen::mainPage = 0;           
    +bool           Doxygen::insideMainPage = FALSE; // are we generating docs for the main page?
     QTextStream    Doxygen::tagFile;
     NamespaceDef  *Doxygen::globalScope = new NamespaceDef("",1,"");
       
    @@ -2548,14 +2549,24 @@ static void transferFunctionDocumentation()
     
     
                   // copy group info.
    -              //if (mdec->getGroupDef()==0 && mdef->getGroupDef()!=0)
    -              //{
    -              //  mdef->setGroupDef(mdec->getGroupDef(),mdec->getGroupPri(),mdec->docFile(),mdec->docLine(),mdec->hasDocumentation());
    -              //}
    -              //else if (mdef->getGroupDef()==0 && mdec->getGroupDef()!=0)
    -              //{
    -              //  mdec->setGroupDef(mdef->getGroupDef(),mdef->getGroupPri(),mdef->docFile(),mdef->docLine(),mdef->hasDocumentation());
    -              //}
    +              if (mdec->getGroupDef()==0 && mdef->getGroupDef()!=0)
    +              {
    +                mdec->setGroupDef(mdef->getGroupDef(),
    +                                  mdef->getGroupPri(),
    +                                  mdef->docFile(),
    +                                  mdef->docLine(),
    +                                  mdef->hasDocumentation()
    +                                 );
    +              }
    +              else if (mdef->getGroupDef()==0 && mdec->getGroupDef()!=0)
    +              {
    +                mdef->setGroupDef(mdec->getGroupDef(),
    +                                  mdec->getGroupPri(),
    +                                  mdec->docFile(),
    +                                  mdec->docLine(),
    +                                  mdec->hasDocumentation()
    +                                 );
    +              }
     
                   mdec->mergeRefItems(mdef);
                   mdef->mergeRefItems(mdec);
    @@ -7850,7 +7861,6 @@ void parseInput()
     
       msg("Building member list...\n"); // using class info only !
       buildFunctionList(root);
    -  transferFunctionDocumentation();
     
       msg("Searching for friends...\n");
       findFriends();
    @@ -7884,6 +7894,7 @@ void parseInput()
       msg("Searching for member function documentation...\n");
       findMemberDocumentation(root); // may introduce new members !
       transferRelatedFunctionDocumentation();
    +  transferFunctionDocumentation();
       
       msg("Searching for members imported via using declarations...\n");
       findUsingDeclImports(root);
    diff --git a/src/doxygen.h b/src/doxygen.h
    index ce69f94..5f0f311 100644
    --- a/src/doxygen.h
    +++ b/src/doxygen.h
    @@ -65,6 +65,7 @@ class Doxygen
         static PageSDict                *exampleSDict;
         static PageSDict                *pageSDict;
         static PageInfo                 *mainPage;
    +    static bool                      insideMainPage;
         static FileNameDict             *includeNameDict;
         static FileNameDict             *exampleNameDict;
         static FileNameDict             *inputNameDict;
    diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in
    index 237d22d..d397106 100644
    --- a/src/doxygen.pro.in
    +++ b/src/doxygen.pro.in
    @@ -26,7 +26,7 @@ win32-msvc:TMAKE_LFLAGS    += /LIBPATH:..\lib
     win32-borland:LIBS         += qtools.lib png.lib doxygen.lib doxycfg.lib shell32.lib 
     win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk
     win32:TMAKE_CXXFLAGS       += -DQT_NODLL
    -win32-g++:LIBS             = -L../lib -ldoxygen -ldoxycfg -lqtools -lpng.dll
    +win32-g++:LIBS             = -L../lib -ldoxygen -ldoxycfg -lqtools -lpng
     win32-g++:TMAKE_CXXFLAGS   += -fno-exceptions -fno-rtti
     INCLUDEPATH                += ../qtools ../libpng .
     win32-g++:INCLUDEPATH      -= ../libpng
    diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
    index 3f52ee2..d58d4d2 100644
    --- a/src/htmldocvisitor.cpp
    +++ b/src/htmldocvisitor.cpp
    @@ -169,6 +169,13 @@ void HtmlDocVisitor::visit(DocStyleChange *s)
             m_insidePre=FALSE;
             m_t << "
    "; } + case DocStyleChange::Div: + if (s->enable()) m_t << "attribs()) << ">"; else m_t << "
    "; + break; + case DocStyleChange::Span: + if (s->enable()) m_t << "attribs()) << ">"; else m_t << ""; + break; + } } diff --git a/src/index.cpp b/src/index.cpp index 42a0452..f039e1d 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -2755,6 +2755,7 @@ void writeIndex(OutputList &ol) if (Doxygen::mainPage) { + Doxygen::insideMainPage=TRUE; ol.parseDoc(defFileName,defLine,0,0,Doxygen::mainPage->doc,FALSE); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) @@ -2776,6 +2777,7 @@ void writeIndex(OutputList &ol) Doxygen::mainPage->writeDocAnchorsToTagFile(); Doxygen::tagFile << " " << endl; } + Doxygen::insideMainPage=FALSE; } endFile(ol); @@ -2912,6 +2914,7 @@ void writeIndex(OutputList &ol) if (Doxygen::mainPage) { + Doxygen::insideMainPage=TRUE; ol.disable(OutputGenerator::Man); startFile(ol,Doxygen::mainPage->name,0,Doxygen::mainPage->title); //SectionInfo *si=0; @@ -2927,6 +2930,7 @@ void writeIndex(OutputList &ol) ol.endTextBlock(); endFile(ol); ol.enable(OutputGenerator::Man); + Doxygen::insideMainPage=FALSE; } ol.popGeneratorState(); diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index 937252a..cdbea1b 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -44,6 +44,18 @@ static QString escapeLabelName(const char *s) return result; } +const int maxLevels=5; +static const char *secLabels[maxLevels] = + { "section","subsection","subsubsection","paragraph","subparagraph" }; + +static const char *getSectionName(int level) +{ + int l = level; + if (Config_getBool("COMPACT_LATEX")) l++; + if (Doxygen::insideMainPage) l--; + return secLabels[QMIN(maxLevels-1,l)]; +} + QString LatexDocVisitor::escapeMakeIndexChars(const char *s) { QString result; @@ -187,13 +199,13 @@ void LatexDocVisitor::visit(DocStyleChange *s) switch (s->style()) { case DocStyleChange::Bold: - if (s->enable()) m_t << "{\\bf "; else m_t << "} "; + if (s->enable()) m_t << "{\\bf "; else m_t << "}"; break; case DocStyleChange::Italic: - if (s->enable()) m_t << "{\\em "; else m_t << "} "; + if (s->enable()) m_t << "{\\em "; else m_t << "\\/}"; break; case DocStyleChange::Code: - if (s->enable()) m_t << "{\\tt "; else m_t << "} "; + if (s->enable()) m_t << "{\\tt "; else m_t << "}"; break; case DocStyleChange::Subscript: if (s->enable()) m_t << "$_{\\mbox{"; else m_t << "}}$ "; @@ -219,6 +231,8 @@ void LatexDocVisitor::visit(DocStyleChange *s) m_t << "\\end{alltt}\\normalsize " << endl; } break; + case DocStyleChange::Div: /* HTML only */ break; + case DocStyleChange::Span: /* HTML only */ break; } } @@ -476,26 +490,7 @@ void LatexDocVisitor::visitPre(DocSection *s) { m_t << "\\hypertarget{" << s->file() << "_" << s->anchor() << "}{}"; } - if (Config_getBool("COMPACT_LATEX")) - { - switch(s->level()) - { - case 1: m_t << "\\subsubsection{"; break; - case 2: m_t << "\\paragraph{"; break; - case 3: m_t << "\\subparagraph{"; break; - case 4: m_t << "\\subparagraph{"; break; - } - } - else - { - switch(s->level()) - { - case 1: m_t << "\\subsection{"; break; - case 2: m_t << "\\subsubsection{"; break; - case 3: m_t << "\\paragraph{"; break; - case 4: m_t << "\\subparagraph{"; break; - } - } + m_t << "\\" << getSectionName(s->level()) << "{"; filter(s->title()); m_t << "}\\label{" << s->anchor() << "}" << endl; } @@ -667,27 +662,7 @@ void LatexDocVisitor::visitPost(DocHRef *) void LatexDocVisitor::visitPre(DocHtmlHeader *header) { if (m_hide) return; - if (Config_getBool("COMPACT_LATEX")) - { - switch(header->level()) - { - case 1: m_t << "\\subsection*{"; break; - case 2: m_t << "\\subsubsection*{"; break; - case 3: m_t << "\\paragraph*{"; break; - default: m_t << "\\subparagraph*{"; break; - } - } - else - { - switch(header->level()) - { - case 1: m_t << "\\section*{"; break; - case 2: m_t << "\\subsection*{"; break; - case 3: m_t << "\\subsubsection*{"; break; - case 4: m_t << "\\paragraph*{"; break; - default: m_t << "\\subparagraph*{"; break; - } - } + m_t << "\\" << getSectionName(header->level()) << "*{"; } void LatexDocVisitor::visitPost(DocHtmlHeader *) @@ -835,7 +810,6 @@ void LatexDocVisitor::visitPost(DocRef *) { if (m_hide) return; endLink(); - m_t << " "; } void LatexDocVisitor::visitPre(DocSecRefItem *) @@ -968,7 +942,6 @@ void LatexDocVisitor::visitPost(DocInternalRef *) { if (m_hide) return; endLink(); - m_t << " "; } void LatexDocVisitor::visitPre(DocCopy *) diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 7c9e136..7a348d8 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -257,6 +257,7 @@ static void writeDefaultHeaderPart1(QTextStream &t) << " colorlinks=true," << endl << " linkcolor=blue" << endl << " ]{hyperref}" << endl + << "\\usepackage{pspicture}" << endl << "\\else" << endl << "\\usepackage[pdftex," << endl << " pagebackref=true," << endl @@ -287,7 +288,7 @@ static void writeDefaultHeaderPart1(QTextStream &t) } t << "\\makeindex\n" "\\setcounter{tocdepth}{1}\n" - "\\setlength{\\footrulewidth}{0.4pt}\n" + "\\renewcommand{\\footrulewidth}{0.4pt}\n" "\\begin{document}\n"; if (theTranslator->idLanguage()=="greek") t << "\\selectlanguage{greek}\n"; t << "\\begin{titlepage}\n" diff --git a/src/libdoxygen.t b/src/libdoxygen.t index d11df87..237c5dd 100644 --- a/src/libdoxygen.t +++ b/src/libdoxygen.t @@ -19,7 +19,7 @@ LEX = flex YACC = bison PERL = perl -INCBUFSIZE = $(PERL) -n -e "s/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;" +INCBUFSIZE = $(PERL) -n -e 's/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;' #${ sub GenerateDep { diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp index be61553..903d6e0 100644 --- a/src/mandocvisitor.cpp +++ b/src/mandocvisitor.cpp @@ -168,7 +168,9 @@ void ManDocVisitor::visit(DocStyleChange *s) m_t << ".PP" << endl; m_firstCol=TRUE; } - break; + break; + case DocStyleChange::Div: /* HTML only */ break; + case DocStyleChange::Span: /* HTML only */ break; } } diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 50354fb..3479db0 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -465,6 +465,10 @@ QCString MemberDef::getOutputFileBase() const { return nspace->getOutputFileBase(); } + //else if (group) + //{ + // return group->getOutputFileBase(); + //} else if (fileDef) { return fileDef->getOutputFileBase(); diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index 9589370..b11d85c 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -574,7 +574,7 @@ void PerlModDocVisitor::visit(DocSymbol *sy) void PerlModDocVisitor::visit(DocURL *u) { openItem("url"); - m_output.addQuoted(u->url()); + m_output.addFieldQuotedString("content", u->url()); closeItem(); } @@ -594,6 +594,8 @@ void PerlModDocVisitor::visit(DocStyleChange *s) case DocStyleChange::Center: style = "center"; break; case DocStyleChange::Small: style = "small"; break; case DocStyleChange::Preformatted: style = "preformatted"; break; + case DocStyleChange::Div: style = "div"; break; + case DocStyleChange::Span: style = "span"; break; } openItem("style"); diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h index 684dd74..dfdaf6f 100644 --- a/src/printdocvisitor.h +++ b/src/printdocvisitor.h @@ -124,6 +124,12 @@ class PrintDocVisitor : public DocVisitor case DocStyleChange::Preformatted: if (s->enable()) printf("
    "); else printf("
    "); break; + case DocStyleChange::Div: + if (s->enable()) printf("
    "); else printf("
    "); + break; + case DocStyleChange::Span: + if (s->enable()) printf(""); else printf(""); + break; } } void visit(DocVerbatim *s) diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp index f741aed..3d1a127 100644 --- a/src/rtfdocvisitor.cpp +++ b/src/rtfdocvisitor.cpp @@ -277,6 +277,8 @@ void RTFDocVisitor::visit(DocStyleChange *s) m_t << "}" << endl; } break; + case DocStyleChange::Div: /* HTML only */ break; + case DocStyleChange::Span: /* HTML only */ break; } } diff --git a/src/scanner.l b/src/scanner.l index 0240316..a82597d 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -121,11 +121,10 @@ static QCString baseName; static QCString* specName; static QCString formulaText; static bool useOverrideCommands = FALSE; -static bool insideIDL = FALSE; -static bool insideJava = FALSE; -static bool insideCS = FALSE; -static bool insidePHP = FALSE; -static bool insidePHPCode = FALSE; +static bool insideIDL = FALSE; //!< processing IDL code? +static bool insideJava = FALSE; //!< processing Java code? +static bool insideCS = FALSE; //!< processing C# code? +static bool insidePHP = FALSE; //!< processing PHP code? static bool insideCppQuote = FALSE; static int argRoundCount; @@ -451,7 +450,7 @@ static void setContext() insideJava = fileName.right(5)==".java"; insideCS = fileName.right(3)==".cs"; insidePHP = fileName.right(4)==".php" || fileName.right(5)==".php4" || - fileName.right(4)==".inc"; + fileName.right(4)==".inc" || fileName.right(6)==".phtml"; if ( insidePHP ) { useOverrideCommands = TRUE; @@ -536,6 +535,7 @@ OL [oO][lL] DL [dD][lL] TITLE [tT][iI][tT][lL][eE] CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) +PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] %option noyywrap @@ -670,6 +670,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) %x JavaImport %x CSAccessorDecl %x PreLineCtrl +%x DefinePHP +%x DefinePHPEnd %% @@ -755,16 +757,22 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN( FindMembers ); } ". { // Non-PHP code text, ignore } "?>" { // PHP code end - insidePHPCode = FALSE; - BEGIN( FindMembersPHP ); + if (insidePHP) + BEGIN( FindMembersPHP ); + else + REJECT; } +{PHPKW} { if (insidePHP) + BEGIN( NextSemi ); + else + REJECT; + } {B}*("properties"|"__property"){BN}*":"{BN}* { // IDL or Borland C++ builder property current->mtype = mtype = Property; current->protection = protection = Public ; @@ -1263,12 +1271,17 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) current->name+=*yytext; // *currentTemplateSpec+=*yytext; } +"define"{BN}*"("{BN}*["'] { + if (insidePHP) + { + current->bodyLine = yyLineNr; + BEGIN( DefinePHP ); + } + else + REJECT; + } {SCOPENAME} { lineCount(); -// if ( insidePHP && strcmp(yytext,"define")==0) -// { -// BEGIN(DefinePHP); -// } if (insideIDL && yyleng==9 && strcmp(yytext,"cpp_quote")==0) { BEGIN(CppQuote); @@ -1362,10 +1375,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) insideCppQuote=FALSE; BEGIN(FindMembers); } -{B}*"#" { lastCPPContext = YY_START; - BEGIN( SkipCPP ) ; +{B}*"#" { if (insidePHP) + REJECT; + lastCPPContext = YY_START; + BEGIN( SkipCPP ) ; } -{B}*"#"{B}*"define" { +{B}*"#"{B}*"define" { if (insidePHP) + REJECT; current->bodyLine = yyLineNr; BEGIN( Define ); } @@ -1428,6 +1444,20 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) initEntry(); BEGIN(FindMembers); } +";" { + //printf("End define\n"); + current->fileName = yyFileName; + current->startLine = yyLineNr; + current->type.resize(0); + current->args = current->args.simplifyWhiteSpace(); + current->name = current->name.stripWhiteSpace(); + current->section = Entry::ENUM_SEC; //HACK! + current_root->addSubEntry(current); + current = new Entry ; + initEntry(); + BEGIN(FindMembers); + } +. \\[\r]?\n { yyLineNr++; } @@ -1443,7 +1473,19 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } } . - +{ID}["']{BN}*","{BN}* { + current->name = yytext; + current->name = current->name.stripWhiteSpace(); + current->name = current->name.left(current->name.length()-1).stripWhiteSpace(); + current->name = current->name.left(current->name.length()-1); + current->args = "("; + current->bodyLine = yyLineNr; + lastRoundContext = DefinePHPEnd; + pCopyRoundString = ¤t->args; + roundCount = 0; + BEGIN( CopyRound ); + } + [*&]+ { current->name += yytext ; addType( current ); } @@ -1864,6 +1906,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) */ [^\r\n\#{}"'/]* { current->program += yytext ; } "//".* { current->program += yytext ; } +"#".* { if (! insidePHP) + REJECT; + current->program += yytext ; + } \" { current->program += yytext ; pCopyQuotedString = ¤t->program; lastStringContext=YY_START; @@ -2242,7 +2288,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) /*- Function argument reading rules ---------------------------------------*/ -[^ \/\r\t\n\)\(\"\']+ { *copyArgString+=yytext; +[^ \/\r\t\n\)\(\"\'#]+ { *copyArgString+=yytext; fullArgString+=yytext; } [^\n\\\"\']+ { *copyArgString+=yytext; @@ -2301,6 +2347,21 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN( CopyArgComment ); } } + /* a non-special comment */ +"/*" { + lastCContext = YY_START; + BEGIN( SkipComment ); + } +"//" { + lastCContext = YY_START; + BEGIN( SkipCxxComment ); + } +"#" { + if (! insidePHP) + REJECT; + lastCContext = YY_START; + BEGIN( SkipCxxComment ); + } /* `)' followed by a special comment */ ")"{BN}*("/*"[*!]|"//"[/!])"<" { lineCount(); @@ -2432,7 +2493,9 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN( FuncQual ) ; } /* -"#" { lastCPPContext = YY_START; +"#" { if (insidePHP) + REJECT; + lastCPPContext = YY_START; BEGIN(SkipCPP); } */ @@ -2525,7 +2588,9 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) roundCount=0; BEGIN( FuncRound ) ; } -"#" { lastCPPContext = YY_START; +"#" { if (insidePHP) + REJECT; + lastCPPContext = YY_START; BEGIN(SkipCPP); } ":" { @@ -2709,8 +2774,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN( SkipString ); } ^{B}*"#" { + if (insidePHP) + REJECT; //addToBody(yytext); - BEGIN( SkipCurlyCpp ); + BEGIN( SkipCurlyCpp ); } \n { yyLineNr++; @@ -2746,6 +2813,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ); BEGIN( FindMembers ); } +"#" { + if (! insidePHP) + REJECT; + //addToBody(yytext); + lastCContext = YY_START; + BEGIN(SkipCxxComment); + } . { //addToBody(yytext); } @@ -3704,26 +3778,66 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) current->doc+=yytext; BEGIN(AnchorLabel); } -("\\\\"|"@@")"verbatim"/[^a-z_A-Z0-9] { +("\\\\"|"@@")("verbatim"|"latexonly"|"htmlonly")/[^a-z_A-Z0-9] { current->doc+="\\\\verbatim"; } +("\\\\"|"@@")("verbatim"|"latexonly"|"htmlonly")/[^a-z_A-Z0-9] { + current->brief+="\\\\verbatim"; + } {CMD}"verbatim"/[^a-z_A-Z0-9] { lastVerbState=YY_START; current->doc+="\\verbatim"; BEGIN(SkipVerbatim); } +{CMD}"verbatim"/[^a-z_A-Z0-9] { + lastVerbState=YY_START; + current->brief+="\\verbatim"; + BEGIN(SkipVerbatim); + } +{CMD}"latexonly"/[^a-z_A-Z0-9] { + lastVerbState=YY_START; + current->doc+="\\latexonly"; + BEGIN(SkipVerbatim); + } +{CMD}"latexonly"/[^a-z_A-Z0-9] { + lastVerbState=YY_START; + current->brief+="\\latexonly"; + BEGIN(SkipVerbatim); + } +{CMD}"htmlonly"/[^a-z_A-Z0-9] { + lastVerbState=YY_START; + current->doc+="\\htmlonly"; + BEGIN(SkipVerbatim); + } +{CMD}"htmlonly"/[^a-z_A-Z0-9] { + lastVerbState=YY_START; + current->brief+="\\htmlonly"; + BEGIN(SkipVerbatim); + } {CMD}"addindex"{B}+[^\n]+ { current->doc+=yytext; } +{CMD}"addindex"{B}+[^\n]+ { + current->brief+=yytext; + } ("\\\\"|"@@")"code"/[^a-z_A-Z0-9] { current->doc+="\\\\code"; } +("\\\\"|"@@")"code"/[^a-z_A-Z0-9] { + current->brief+="\\\\code"; + } {CMD}"code"/[^a-z_A-Z0-9] { lastCodeState=YY_START; current->doc+="\\code"; pSkipDoc=¤t->doc; BEGIN(SkipCode); } +{CMD}"code"/[^a-z_A-Z0-9] { + lastCodeState=YY_START; + current->brief+="\\code"; + pSkipDoc=¤t->brief; + BEGIN(SkipCode); + } "<"{PRE}{ATTR}">" { lastCodeState=YY_START; current->doc+="
    ";
    @@ -3736,27 +3850,7 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
     					  pSkipDoc=¤t->brief;
     					  BEGIN(SkipCode);
       					}
    -("\\\\"|"@@")"verbatim"/[^a-z_A-Z0-9] {
    -					  current->brief+="\\\\verbatim";
    -					}
    -{CMD}"verbatim"/[^a-z_A-Z0-9] 	{
    -					  lastVerbState=YY_START;
    -					  current->brief+="\\verbatim";
    -  					  BEGIN(SkipVerbatim);
    -  					}
    -{CMD}"addindex"{B}+[^\n]+ 	{
    -  					  current->brief+=yytext;
    -  					}
    -("\\\\"|"@@")"code"/[^a-z_A-Z0-9] {
    -  					  current->brief+="\\\\code";
    -  					}
    -{CMD}"code"/[^a-z_A-Z0-9] 	{
    -  					  lastCodeState=YY_START;
    -					  current->brief+="\\code";
    -					  pSkipDoc=¤t->brief;
    -					  BEGIN(SkipCode);
    -					}
    -{CMD}"endverbatim"/[^a-z_A-Z0-9] {
    +{CMD}("endverbatim"|"endlatexonly"|"endhtmlonly")/[^a-z_A-Z0-9] {
       					  current->doc+=yytext;
       					  BEGIN(lastVerbState);
       					}
    @@ -4581,6 +4675,12 @@ CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
     					    BEGIN(EndCppQuote);
     					  }
     					}
    +<*>"#"				        {	
    +  					  if (! insidePHP)
    +  					    REJECT;
    +  					  lastCContext = YY_START ;
    +					  BEGIN( SkipCxxComment ) ;
    +					}
     <*>.
     "//"|"/*"
     <*>"/*"					{ lastCContext = YY_START ;
    diff --git a/src/translator_de.h b/src/translator_de.h
    index 03d54cd..186d087 100644
    --- a/src/translator_de.h
    +++ b/src/translator_de.h
    @@ -100,7 +100,7 @@ class TranslatorGerman : public Translator
         virtual QCString latexLanguageSupportCommand()
         {
           QCString result="\\usepackage{ngerman}\n";
    -      result+="\\usepackage{t1enc}% Trennung verbessern bei Umlauten\n";
    +      result+="\\usepackage[latin1]{inputenc}\n";
           //result+="%\\usepackage[latin1]{inputenc}% Kodierung (cp850,latin1,ansinew)\n";
           return result;
         }
    diff --git a/src/translator_kr.h b/src/translator_kr.h
    index 6d14a25..d9a2b44 100644
    --- a/src/translator_kr.h
    +++ b/src/translator_kr.h
    @@ -2,7 +2,7 @@
      *
      * 
      *
    - * Copyright (C) 1997-2003 by Dimitri van Heesch.
    + * Copyright (C) 1997-2002 by Dimitri van Heesch.
      *
      * Permission to use, copy, modify, and distribute this software and its
      * documentation under the terms of the GNU General Public License is hereby 
    @@ -18,9 +18,7 @@
     #ifndef TRANSLATOR_KR_H
     #define TRANSLATOR_KR_H
     
    -#include "translator_adapter.h"
    -
    -class TranslatorKorean : public TranslatorAdapter_1_2_13
    +class TranslatorKorean : public Translator
     {
       public:
     
    @@ -66,7 +64,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
     
         /*! used in the compound documentation before a list of related functions. */
         virtual QCString trRelatedFunctions()
    -    { return "°ü·ÃµÈ ÇÔ¼öµé"; }
    +    { return "°ü·ÃµÈ ÇÔ¼ö"; }
     
         /*! subscript for the related functions. */
         virtual QCString trRelatedSubscript()
    @@ -74,7 +72,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
     
         /*! header that is put before the detailed description of files, classes and namespaces. */
         virtual QCString trDetailedDescription()
    -    { return "»ó¼¼ÇÑ ³»¿ë"; }
    +    { return "¼¼ºÎ »çÇ×"; }
     
         /*! header that is put before the list of typedefs. */
         virtual QCString trMemberTypedefDocumentation()
    @@ -82,7 +80,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
         
         /*! header that is put before the list of enumerations. */
         virtual QCString trMemberEnumerationDocumentation()
    -    { return "±¸¼º¿ø(member) ¿­°Å ¹®¼­È­"; }
    +    { return "¸â¹ö ¿­°ÅÇü ¹®¼­È­"; }
         
         /*! header that is put before the list of member functions. */
         virtual QCString trMemberFunctionDocumentation()
    @@ -94,33 +92,33 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
           if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
           {
               // TODO: This need to be translated. -ryk11/22/01.
    -          return "¸â¼­ µ¥ÀÌŸ ¹®¼­È­"; 
    +          return "¸â¹ö º¯¼ö ¹®¼­È­"; 
           }
           else
           {
    -          return "¸â¼­ µ¥ÀÌŸ ¹®¼­È­"; 
    +          return "¸â¹ö º¯¼ö ¹®¼­È­"; 
           }
         }
     
         /*! this is the text of a link put after brief descriptions. */
         virtual QCString trMore()
    -    { return "More..."; }
    +    { return "¼¼ºÎ »çÇ× º¸±â"; }
     
         /*! put in the class documentation */
         virtual QCString trListOfAllMembers()
    -    { return "¸ðµç ±¸¼º¿øµé(members)ÀÇ ¸í´Ü"; }
    +    { return "Àüü ¸â¹ö ¸ñ·Ï º¸±â"; }
     
         /*! used as the title of the "list of all members" page of a class */
         virtual QCString trMemberList()
    -    { return "±¸¼º¿ø(member) ¸í´Ü"; }
    +    { return "¸â¹ö(¸â¹öÇÔ¼ö, ¸â¹öº¯¼ö µî) ¸ñ·Ï"; }
     
         /*! this is the first part of a sentence that is followed by a class name */
         virtual QCString trThisIsTheListOfAllMembers()
    -    { return "¿ÏÀüÇÑ ±¸¼º¿øµé(members)ÀÇ ¸í´Ü " ; }
    +    { return "¸ðµç ¸â¹ö(¸â¹öÇÔ¼ö, ¸â¹öº¯¼ö µî) ¸ñ·Ï " ; }
     
         /*! this is the remainder of the sentence after the class name */
         virtual QCString trIncludingInheritedMembers()
    -    { return ", »ó¼Ó¹ÞÀº ¸ðµç ±¸¼º¿ø(members)µéµµ Æ÷ÇÔ"; }
    +    { return ", »ó¼Ó¹ÞÀº ¸ðµç ¸â¹öµµ Æ÷ÇÔ"; }
         
         /*! this is put at the author sections at the bottom of man pages.
          *  parameter s is name of the project name.
    @@ -128,21 +126,21 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
         virtual QCString trGeneratedAutomatically(const char *s)
         { QCString result="";
           if (s) result+=(QCString)s+"¿¡ ";
    -      result += "source ÄÚµå·Î ºÎÅÍ Doxygen¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î »ý¼º";
    +      result += "source ÄÚµå·Î ºÎÅÍ Doxygen¿¡ ÀÇÇØ ÀÚµ¿À¸·Î »ý¼º";
           return result;
         }
     
         /*! put after an enum name in the list of all members */
         virtual QCString trEnumName()
    -    { return "¿­°Åü À̸§"; }
    +    { return "¿­°ÅÇü À̸§"; }
         
         /*! put after an enum value in the list of all members */
         virtual QCString trEnumValue()
    -    { return "¿­°Åü °ª"; }
    +    { return "¿­°ÅÇü °ª"; }
         
         /*! put after an undocumented member in the list of all members */
         virtual QCString trDefinedIn()
    -    { return "¿¡¼­ Á¤ÀǵÈ"; }
    +    { return "¿¡¼­ Á¤ÀÇ"; }
     
         // quick reference sections
     
    @@ -150,11 +148,11 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
          *  compounds or files (see the \\group command).
          */
         virtual QCString trModules()
    -    { return "¸ðµâµé"; }
    +    { return "¸ðµâ"; }
         
         /*! This is put above each page as a link to the class hierarchy */
         virtual QCString trClassHierarchy()
    -    { return "Ŭ·¡½º °èÃþ(µµ)"; } // "Ŭ·¡½º Á¶Á÷" or "Ŭ·¡½º ºÐ·ùü°è"
    +    { return "Ŭ·¡½º °èÅëµµ"; } // "Ŭ·¡½º Á¶Á÷" or "Ŭ·¡½º ºÐ·ùü°è"
         
         /*! This is put above each page as a link to the list of annotated classes */
         virtual QCString trCompoundList()
    @@ -162,12 +160,12 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
             if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
             {
                 //Alternate text: "È¥ÇÕ ¸ñ·Ï", "ÇÕ¼º(ÁýÇÕ) ¸í´Ü(¸®½ºÆ®)"
    -            return "È¥ÇÕ ¸ñ·Ï";
    +            return "º¹ÇÕ±¸Á¶(Ŭ·¡½º, ±¸Á¶Ã¼, °ø¿ëü)";
             }
             else
             {
                 //TODO: This needs to be translated. -ryk11/22/01.
    -            return "È¥ÇÕ ¸ñ·Ï";
    +            return "º¹ÇÕ±¸Á¶(Ŭ·¡½º, ±¸Á¶Ã¼, °ø¿ëü)";
             }
         } 
         
    @@ -177,7 +175,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
     
         /*! This is put above each page as a link to the list of all verbatim headers */
         virtual QCString trHeaderFiles()
    -    { return "Çì´õ ÆÄÀϵé"; }
    +    { return "Çì´õ ÆÄÀÏ"; }
     
         /*! This is put above each page as a link to all members of compounds. */
         virtual QCString trCompoundMembers()
    @@ -185,12 +183,12 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
             if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
             {
                 // TODO: This need to be translated. -ryk11/22/01.
    -            return "È¥ÇÕ ¸â¹öµé";
    +            return "º¹ÇÕ±¸Á¶(Ŭ·¡½º, ±¸Á¶Ã¼, °ø¿ëü) ¸â¹ö";
             }
             else
             {
                 // Alternate text: "ÇÕ¼º(ÁýÇÕ) ¸í´Ü(¸â¹öµé)"
    -            return "È¥ÇÕ ¸â¹öµé";
    +            return "º¹ÇÕ±¸Á¶(Ŭ·¡½º, ±¸Á¶Ã¼, °ø¿ëü) ¸â¹ö";
             }
         }
     
    @@ -200,21 +198,21 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
             if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
             {
                 // TODO: This needs to be translated. -ryk11/22/01.
    -            return "ÆÄÀÏ ¸â¹öµé";
    +            return "ÆÄÀÏ ¸â¹ö";
             }
             else
             {
    -            return "ÆÄÀÏ ¸â¹öµé";
    +            return "ÆÄÀÏ ¸â¹ö";
             }
         }
     
         /*! This is put above each page as a link to all related pages. */
         virtual QCString trRelatedPages()
    -    { return "°ü·ÃµÈ ÆäÀÌÁöµé"; }
    +    { return "°ü·ÃµÈ ÆäÀÌÁö"; }
     
         /*! This is put above each page as a link to all examples. */
         virtual QCString trExamples()
    -    { return "¿¹Á¦µé"; }
    +    { return "¿¹Á¦"; }
     
         /*! This is put above each page as a link to the search engine. */
         virtual QCString trSearch()
    @@ -222,14 +220,14 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
     
         /*! This is an introduction to the class hierarchy. */
         virtual QCString trClassHierarchyDescription()
    -    { return "ÀÌ »ó¼Ó ¸ñ·ÏÀº ¿ÏÀüÇÏÁö´Â ¾ÊÁö¸¸ ¾ËÆĺª¼øÀ¸·Î ºÐ·ùµÇ¾ú½À´Ï´Ù.";}
    +    { return "ÀÌ »ó¼Ó ¸ñ·ÏÀº ¾ËÆĺª ¼øÀ¸·Î Á¤·ÄµÇ¾îÀÖ½À´Ï´Ù. (¿ÏÀüÇÏÁö´Â ¾ÊÀ½)";}
     
         /*! This is an introduction to the list with all files. */
         virtual QCString trFileListDescription(bool extractAll)
         {
    -      QCString result="ÀÌ°ÍÀº °£·«ÇÑ ¼³¸íÀ» °¡Áø ¸ðµç ";
    +      QCString result="´ÙÀ½Àº °£·«ÇÑ ¼³¸íÀ» °¡Áø ";
           if (!extractAll) result+="¹®¼­È­µÈ ";
    -      result+="ÆÄÀϵ鿡 ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù.";
    +      result+="¸ðµç ÆÄÀÏ¿¡ ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù.";
           return result;
         }
     
    @@ -239,20 +237,20 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
             if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
             {
                 // TODO: This needs to be translated. -ryk11/22/01.
    -            return "ÀÌ°ÍÀº °£·«ÇÑ ¼³¸íÀ» °¡Áø Ŭ·¡½ºµé, "
    -                "±¸Á¶Ã¼µé, °ø¿ëüµé, ±×¸®°í ÀÎÅÍÆäÀ̽ºµéÀÔ´Ï´Ù.";
    +            return "´ÙÀ½Àº °£·«ÇÑ ¼³¸íÀ» °¡Áø Ŭ·¡½º, "
    +                "±¸Á¶Ã¼, °ø¿ëü, ÀÎÅÍÆäÀ̽ºÀÇ ¸ñ·ÏÀÔ´Ï´Ù.";
             }
             else
             {
    -            return "ÀÌ°ÍÀº °£·«ÇÑ ¼³¸íÀ» °¡Áø Ŭ·¡½ºµé, "
    -                "±¸Á¶Ã¼µé, °ø¿ëüµé, ±×¸®°í ÀÎÅÍÆäÀ̽ºµéÀÔ´Ï´Ù.";
    +            return "´ÙÀ½Àº °£·«ÇÑ ¼³¸íÀ» °¡Áø Ŭ·¡½º, "
    +                "±¸Á¶Ã¼, °ø¿ëü, ÀÎÅÍÆäÀ̽ºÀÇ ¸ñ·ÏÀÔ´Ï´Ù.";
             }
         }
     
         /*! This is an introduction to the page with all class members. */
         virtual QCString trCompoundMembersDescription(bool extractAll)
         {
    -      QCString result="ÀÌ°÷¿¡ ¸ðµç ¸®½ºÆ®°¡ ÀÖ½À´Ï´Ù";
    +      QCString result="´ÙÀ½Àº ¹®¼­È­µÈ ¸ðµç Ŭ·¡½º, ±¸Á¶Ã¼, °ø¿ëü ¸â¹ö¿¡ ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù. ";
           if (!extractAll)
           {
               result+="¹®¼­È­µÈ ";
    @@ -260,47 +258,47 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
           if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
           {
               // TODO: This need to be translated. -ryk11/22/01.
    -          result+="¸µÅ©°¡ µÈ Ŭ·¡½º ¸â¹öµé ";
    +          result+="¸µÅ© µÈ Ŭ·¡½º ¸â¹ö´Â ";
           }
           else
           {
    -          result+="¸µÅ©°¡ µÈ Ŭ·¡½º ¸â¹öµé ";
    +          result+="¸µÅ© µÈ Ŭ·¡½º ¸â¹ö´Â ";
           }
           if (extractAll) 
    -          result+="°¢°¢ÀÇ ¸â¹ö¸¦ À§ÇÑ Å¬·¡½º ¹®¼­:";
    +          result+="±× ¸â¹ö¿¡ ´ëÇÑ Å¬·¡½º ¹®¼­È­·Î °©´Ï´Ù.";
           else 
    -          result+="ÀÌÇÏ·Î ¼ÓÇÑ Å¬·¡½ºµé:";            
    +          result+="ÀÌÇÏ·Î ¼ÓÇÑ Å¬·¡½º:";            
           return result;
         }
     
         /*! This is an introduction to the page with all file members. */
         virtual QCString trFileMembersDescription(bool extractAll)
         {
    -      QCString result="ÀÌ°÷¿¡ ¸ðµç ¸®½ºÆ®°¡ ÀÖ½À´Ï´Ù";
    +      QCString result="´ÙÀ½Àº ¹®¼­È­µÈ ¸ðµç ÆÄÀÏ¿¡ ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù. ";
           if (!extractAll) result+="¹®¼­È­µÈ ";
    -      result+="¸µÅ©°¡ µÈ ÆÄÀÏ ¸â¹öµé ";
    +      result+="¸µÅ© µÈ ÆÄÀÏ ¸â¹ö´Â ";
           if (extractAll) 
    -        result+="°¢ ¸â¹öµé¿¡ ´ëÇÑ ÆÄÀÏ ¹®¼­È­";
    +        result+="±× ¸â¹ö¿¡ ´ëÇÑ ÆÄÀÏ ¹®¼­È­·Î °©´Ï´Ù.";
           else 
    -        result+="±×°ÍµéÀÌ ¼ÓÇØÀÖ´Â ÆÄÀϵé";
    +        result+="±×µéÀÌ ¼ÓÇØÀÖ´Â ÆÄÀÏ·Î °©´Ï´Ù.";
           return result;
         }
     
         /*! This is an introduction to the page with the list of all header files. */
         virtual QCString trHeaderFilesDescription()
    -    { return "ÀÌ°ÍÀº API¸¦ ±¸¼ºÇÏ´Â Çì´õ ÆÄÀϵéÀÔ´Ï´Ù."; }
    +    { return "´ÙÀ½Àº API¸¦ ±¸¼ºÇÏ´Â Çì´õ ÆÄÀÏÀÔ´Ï´Ù."; }
     
         /*! This is an introduction to the page with the list of all examples */
         virtual QCString trExamplesDescription()
    -    { return "ÀÌ°ÍÀº ¸ðµç ¿¹Á¦µéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; }
    +    { return "´ÙÀ½Àº ¸ðµç ¿¹Á¦ÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; }
     
         /*! This is an introduction to the page with the list of related pages */
         virtual QCString trRelatedPagesDescription()
    -    { return "ÀÌ°ÍÀº ¸ðµç °ü·ÃµÈ ¹®¼­È­ ÆäÀÌÁöµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; }
    +    { return "´ÙÀ½Àº ¸ðµç °ü·ÃµÈ ¹®¼­È­ ÆäÀÌÁöÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; }
     
         /*! This is an introduction to the page with the list of class/file groups */
         virtual QCString trModulesDescription()
    -    { return "ÀÌ°ÍÀº ¸ðµç ¸ðµâµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; }
    +    { return "´ÙÀ½Àº ¸ðµç ¸ðµâÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; }
     
         /*! This sentences is used in the annotated class/file lists if no brief
          * description is given. 
    @@ -331,7 +329,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
          * annotated compound index.
          */
         virtual QCString trCompoundIndex()
    -    { return "ÇÕ¼º À妽º"; }
    +    { return "º¹ÇÕ±¸Á¶(Ŭ·¡½º, ±¸Á¶Ã¼, °ø¿ëü) »öÀÎ"; }
     
         /*! This is used in LaTeX as the title of the chapter with the
          * list of all files.
    @@ -377,49 +375,49 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
          *  list of defines
          */
         virtual QCString trDefines()
    -    { return "Á¤Àǵé"; }
    +    { return "¸ÅÅ©·Î, #define"; }
     
         /*! This is used in the documentation of a file as a header before the 
          *  list of function prototypes
          */
         virtual QCString trFuncProtos()
    -    { return "ÇÔ¼ö ¿øÇüµé"; }
    +    { return "ÇÔ¼ö ¿øÇü"; }
     
         /*! This is used in the documentation of a file as a header before the 
          *  list of typedefs
          */
         virtual QCString trTypedefs()
    -    { return "ŸÀÔ Á¤Àǵé"; }
    +    { return "ŸÀÔ Á¤ÀÇ"; }
     
         /*! This is used in the documentation of a file as a header before the 
          *  list of enumerations
          */
         virtual QCString trEnumerations()
    -    { return "Enumerations"; }
    +    { return "¿­°ÅÇü"; }
     
         /*! This is used in the documentation of a file as a header before the 
          *  list of (global) functions
          */
         virtual QCString trFunctions()
    -    { return "ÇÔ¼öµé"; }
    +    { return "ÇÔ¼ö"; }
     
         /*! This is used in the documentation of a file as a header before the 
          *  list of (global) variables
          */
         virtual QCString trVariables()
    -    { return "º¯¼öµé"; }
    +    { return "º¯¼ö"; }
     
         /*! This is used in the documentation of a file as a header before the 
          *  list of (global) variables
          */
         virtual QCString trEnumerationValues()
    -    { return "¿­°Åü °ªµé"; }
    +    { return "¿­°ÅÇü °ª"; }
         
         /*! This is used in the documentation of a file before the list of
          *  documentation blocks for defines
          */
         virtual QCString trDefineDocumentation()
    -    { return "Á¤ÀÇ ¹®¼­È­"; }
    +    { return "#define ¹®¼­È­"; }
     
         /*! This is used in the documentation of a file/namespace before the list 
          *  of documentation blocks for function prototypes
    @@ -437,13 +435,13 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
          *  of documentation blocks for enumeration types
          */
         virtual QCString trEnumerationTypeDocumentation()
    -    { return "¿­°Åü ŸÀÔ ¹®¼­È­"; }
    +    { return "¿­°ÅÇü ŸÀÔ ¹®¼­È­"; }
     
         /*! This is used in the documentation of a file/namespace before the list 
          *  of documentation blocks for enumeration values
          */
         virtual QCString trEnumerationValueDocumentation()
    -    { return "¿­°Åü °ª ¹®¼­È­"; }
    +    { return "¿­°ÅÇü °ª ¹®¼­È­"; }
     
         /*! This is used in the documentation of a file/namespace before the list 
          *  of documentation blocks for functions
    @@ -461,7 +459,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
          *  the list of links to documented compounds
          */
         virtual QCString trCompounds()
    -    { return "È¥ÇÕµé"; }
    +    { return "º¹ÇÕ±¸Á¶"; }
     
         /*! This is used in the standard footer of each page and indicates when 
          *  the page was generated 
    @@ -469,8 +467,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
         virtual QCString trGeneratedAt(const char *date,const char *projName)
         { 
           QCString result="";
    -      if (projName) result+=(QCString)projName+"¿¡ ´ëÇØ ";
    -      result += (QCString)date+" »ý¼º by";
    +      if (projName) result+=(QCString)projName+" ¹®¼­È­. ";
    +      result += "»ý¼ºÀϽà : " +(QCString)date+" by";
           return result;
         }
         /*! This is part of the sentence used in the standard footer of each page.
    @@ -492,7 +490,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
     
         /*! this text is generated when the \\reimp command is used. */
         virtual QCString trReimplementedForInternalReasons()
    -    { return "³»ºÎÀû ÀÌÀ¯¸¦ À§ÇØ À籸ÇöµÈ: API°¡ ¿µÇâÀ» ¹ÞÁö¾Ê¾Ò´Ù."; }
    +    { return "³»ºÎÀû ÀÌÀ¯·Î ÀÎÇØ À籸ÇöµÈ: API°¡ ¿µÇâÀ» ¹ÞÁö¾Ê¾Ò´Ù."; }
     
         /*! this text is generated when the \\warning command is used. */
         virtual QCString trWarning()
    @@ -500,7 +498,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
     
         /*! this text is generated when the \\bug command is used. */
         virtual QCString trBugsAndLimitations()
    -    { return "¹ö±×µé°ú ÇÑ°èµé"; }
    +    { return "¹ö±×¿Í ÇÑ°è"; }
     
         /*! this text is generated when the \\version command is used. */
         virtual QCString trVersion()
    @@ -512,19 +510,19 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
     
         /*! this text is generated when the \\return command is used. */
         virtual QCString trReturns()
    -    { return "¹Ýȯ"; }
    +    { return "¹Ýȯ°ª"; }
     
         /*! this text is generated when the \\sa command is used. */
         virtual QCString trSeeAlso()
    -    { return "ÂüÁ¶ÇϽÿä"; }
    +    { return "ÂüÁ¶"; }
     
         /*! this text is generated when the \\param command is used. */
         virtual QCString trParameters()
    -    { return "¸Å°³º¯¼öµé"; }
    +    { return "¸Å°³º¯¼ö"; }
     
         /*! this text is generated when the \\exception command is used. */
         virtual QCString trExceptions()
    -    { return "¿¹¿Üµé"; }
    +    { return "¿¹¿Ü"; }
         
         /*! this text is used in the title page of a LaTeX document. */
         virtual QCString trGeneratedBy()
    @@ -536,14 +534,14 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
         
         /*! used as the title of page containing all the index of all namespaces. */
         virtual QCString trNamespaceList()
    -    { return "À̸§°ø°£ ¸ñ·Ï"; }
    +    { return "namespace ¸ñ·Ï"; }
     
         /*! used as an introduction to the namespace list */
         virtual QCString trNamespaceListDescription(bool extractAll)
         {
    -      QCString result="ÀÌ°ÍÀº ¸ðµç °£·«ÇÑ ¼³¸íÀ» °¡Áø ";
    +      QCString result="´ÙÀ½Àº °£·«ÇÑ ¼³¸íÀ» °¡Áø ";
           if (!extractAll) result+="¹®¼­È­µÈ ";
    -      result+="À̸§°ø°£ÀÇ ¸ñ·ÏÀÔ´Ï´Ù:";
    +      result+="namespaceÀÇ ¸ñ·ÏÀÔ´Ï´Ù.";
           return result;
         }
     
    @@ -551,7 +549,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
          *  friends of a class
          */
         virtual QCString trFriends()
    -    { return "ÇÁ·»µå"; }
    +    { return "friend"; }
         
     //////////////////////////////////////////////////////////////////////////
     // new since 0.49-990405
    @@ -561,7 +559,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
          * related classes 
          */
         virtual QCString trRelatedFunctionDocumentation()
    -    { return "ÇÁ·»µå, ±×¸®°í °ü·ÃµÈ ÇÔ¼ö ¹®¼­È­"; }
    +    { return "friend, ±×¸®°í °ü·ÃµÈ ÇÔ¼ö ¹®¼­È­"; }
         
     //////////////////////////////////////////////////////////////////////////
     // new since 0.49-990425
    @@ -598,30 +596,30 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
         virtual QCString trNamespaceReference(const char *namespaceName)
         {
           QCString result=namespaceName;
    -      result+=" À̸§ °ø°£ ÂüÁ¶";
    +      result+=" namespace ÂüÁ¶";
           return result;
         }
         
         virtual QCString trPublicMembers()
    -    { return "°ø¿ë ¸Þ¼Òµå"; }
    +    { return "public ¸Þ¼Òµå"; }
         virtual QCString trPublicSlots()
    -    { return "°ø¿ë Slots"; }
    +    { return "public slots"; }
         virtual QCString trSignals()
         { return "½ÅÈ£"; }
         virtual QCString trStaticPublicMembers()
    -    { return "Á¤Àû °ø¿ë ¸Þ¼Òµå"; }
    +    { return "static public ¸Þ¼Òµå"; }
         virtual QCString trProtectedMembers()
    -    { return "ÇÁ·ÎÅØƼµå ¸Þ¼Òµå"; }
    +    { return "protected ¸Þ¼Òµå"; }
         virtual QCString trProtectedSlots()
    -    { return "Protected Slots"; }
    +    { return "protected slots"; }
         virtual QCString trStaticProtectedMembers()
    -    { return "Á¤Àû ÇÁ·ÎÅØƼµå ¸Þ¼Òµå"; }
    +    { return "static protected ¸Þ¼Òµå"; }
         virtual QCString trPrivateMembers()
    -    { return "ÇÁ¶óÀ̺£ÀÌÆ® ¸Þ¼Òµå"; }
    +    { return "private ¸Þ¼Òµå"; }
         virtual QCString trPrivateSlots()
    -    { return "Private Slots"; }
    +    { return "private slots"; }
         virtual QCString trStaticPrivateMembers()
    -    { return "Á¤Àû ÇÁ¶óÀ̺£ÀÌÆ® ¸Þ¼Òµå"; }
    +    { return "static private ¸Þ¼Òµå"; }
         
         /*! this function is used to produce a comma-separated list of items.
          *  use generateMarker(i) to indicate where item i should be put.
    @@ -642,7 +640,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
               if (i\n"
    -        "Consider the following example:\n"
    +		"Doxygen¿¡ ÀÇÇØ »ý¼ºµÈ µµÇ¥¸¦ º¸±âÀ§ÇÑ ¼³¸íÀÔ´Ï´Ù.

    \n" + //"This page explains how to interpret the graphs that are generated " + //"by doxygen.

    \n" + "´ÙÀ½ÀÇ ¿¹Á¦¸¦ Âü°íÇϼ¼¿ä.\n" + //"Consider the following example:\n" "\\code\n" "/*! Invisible class because of truncation */\n" "class Invisible { };\n\n" @@ -1008,38 +1008,53 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 " Used *m_usedClass;\n" "};\n" "\\endcode\n" - "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " - "is set to 240 this will result in the following graph:" + "¼³Á¤ ÆÄÀÏÀÇ MAX_DOT_GRAPH_HEIGHT Ç÷¡±×°¡ 240À¸·Î ¼³Á¤µÇ¾ú´Ù¸é ´ÙÀ½ÀÇ ±×·¡ÇÁ°¡ ³ª¿Ã °ÍÀÌ´Ù." + //"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " + //"is set to 240 this will result in the following graph:" "

    \n" "

    \n" - "The boxes in the above graph have the following meaning:\n" + "¹Ú½º¿¡´Â ´ÙÀ½À» ¶æÇÑ´Ù.\n" + //"The boxes in the above graph have the following meaning:\n" "

      \n" - "
    • %A filled black box represents the struct or class for which the " - "graph is generated.\n" - "
    • %A box with a black border denotes a documented struct or class.\n" - "
    • %A box with a grey border denotes an undocumented struct or class.\n" - "
    • %A box with a red border denotes a documented struct or class for" - "which not all inheritance/containment relations are shown. %A graph is " - "truncated if it does not fit within the specified boundaries.\n" + "
    • %°ËÀº »óÀÚ´Â ±×·¡ÇÁ¸¦ »êÃâÇÑ ±¸Á¶Ã¼³ª Ŭ·¡½º¸¦ ¸»ÇÑ´Ù.\n" + //"
    • %A filled black box represents the struct or class for which the " + //"graph is generated.\n" + "
    • %°ËÀº¼±À¸·ÎµÈ »óÀÚ´Â ¹®¼­È­µÈ ±¸Á¶Ã¼³ª Ŭ·¡½º¸¦ Ç¥½ÃÇÑ´Ù.\n" + //"
    • %A box with a black border denotes a documented struct or class.\n" + "
    • %ȸ»ö¼±À¸·ÎµÈ »óÀÚ´Â ¹®¼­È­µÇÁö ¾ÊÀº ±¸Á¶Ã¼³ª Ŭ·¡½º¸¦ Ç¥½ÃÇÑ´Ù.\n" + //"
    • %A box with a grey border denotes an undocumented struct or class.\n" + "
    • %»¡°£¼±À¸·ÎµÈ »óÀÚ´Â ¸ðµç »ó¼Ó/containment °ü°è¸¦ º¸ÀÌÁö ¾ÊÀº ¹®¼­È­µÈ ±¸Á¶Ã¼³ª Ŭ·¡½º¸¦ ³ªÅ¸³½´Ù. " + "ÁöÁ¤µÈ °æ°è¾È¿¡ µé¾î°¡Áö ¾ÊÀ¸¸é ±×·¡ÇÁ´Â ©·ÁÁø´Ù.\n" + //"
    • %A box with a red border denotes a documented struct or class for" + //"which not all inheritance/containment relations are shown. %A graph is " + //"truncated if it does not fit within the specified boundaries.\n" "
    \n" - "The arrows have the following meaning:\n" + "È­»ìÇ¥´Â ´ÙÀ½À» ¶æÇÑ´Ù.\n" + //"The arrows have the following meaning:\n" "
      \n" - "
    • %A dark blue arrow is used to visualize a public inheritance " - "relation between two classes.\n" - "
    • %A dark green arrow is used for protected inheritance.\n" - "
    • %A dark red arrow is used for private inheritance.\n" - "
    • %A purple dashed arrow is used if a class is contained or used " - "by another class. The arrow is labeled with the variable(s) " - "through which the pointed class or struct is accessible.\n" - "
    • %A yellow dashed arrow denotes a relation between a template instance and " - "the template class it was instantiated from. The arrow is labeled with " - "the template parameters of the instance.\n" + "
    • %¾îµÎ¿î ÆĶõ È­»ìÇ¥´Â µÎ Ŭ·¡½º°£ÀÇ public »ó¼Ó°ü°è¸¦ ³ªÅ¸³½´Ù.\n" + //"
    • %A dark blue arrow is used to visualize a public inheritance " + //"relation between two classes.\n" + "
    • %¾îµÎ¿î ³ì»ö È­»ìÇ¥´Â protected »ó¼Ó°ü°è¸¦ ³ªÅ¸³½´Ù.\n" + //"
    • %A dark green arrow is used for protected inheritance.\n" + "
    • %¾îµÎ¿î »¡°­ È­»ìÇ¥´Â private »ó¼Ó°ü°è¸¦ ³ªÅ¸³½´Ù.\n" + //"
    • %A dark red arrow is used for private inheritance.\n" + "
    • %¹àÀº ÀÚÁÖ»ö È­»ìÇ¥´Â Ŭ·¡½º¿¡ ÀÇÇØ Æ÷ÇԵǴõ³ª »ç¿ëµÈ Ŭ·¡½º¸¦ ³ªÅ¸³½´Ù. " + "ÀÌ È­»ìÇ¥ÀÇ ¶óº§Àº Á¢±Ù °¡´ÉÇÑ º¯¼ö¸íÀ» ³ªÅ¸³½´Ù.\n" + //"
    • %A purple dashed arrow is used if a class is contained or used " + //"by another class. The arrow is labeled with the variable(s) " + //"through which the pointed class or struct is accessible.\n" + "
    • %¹àÀº ³ë¶û»ö È­»ìÇ¥´Â ÅÛÇø´ ÀνºÅϽº¿Í ÅÛÇø´ Ŭ·¡½º¸¦ ³ªÅ¸³½´Ù. " + "ÀÌ È­»ìÇ¥ÀÇ ¶óº§Àº ±× ÀνºÅϽºÀÇ ÅÛÇø´ ¸Å°³º¯¼ö¸¦ ³ªÅ¸³½´Ù.\n" + //"
    • %A yellow dashed arrow denotes a relation between a template instance and " + //"the template class it was instantiated from. The arrow is labeled with " + //"the template parameters of the instance.\n" "
    \n"; } /*! text for the link to the legend page */ virtual QCString trLegend() { - return "legend"; // TODO: Need to be translated. -ryk11/22/01. + return "¼³¸í"; // TODO: Need to be translated. -ryk11/22/01. } ////////////////////////////////////////////////////////////////////////// @@ -1049,12 +1064,12 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 /*! Used as a marker that is put before a test item */ virtual QCString trTest() { - return "Test"; // TODO: Need to be translated. -ryk11/22/01. + return "Å×½ºÆ®"; // TODO: Need to be translated. -ryk11/22/01. } /*! Used as the header of the test list */ virtual QCString trTestList() { - return "Test List"; // TODO: Need to be translated. -ryk11/22/01. + return "Å×½ºÆ® ¸ñ·Ï"; // TODO: Need to be translated. -ryk11/22/01. } ////////////////////////////////////////////////////////////////////////// @@ -1064,7 +1079,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 /*! Used as a section header for KDE-2 IDL methods */ virtual QCString trDCOPMethods() { - return "DCOP Methods"; // TODO: Need to be translated. -ryk11/22/01. + return "DCOP ¸Þ¼Òµå"; // TODO: Need to be translated. -ryk11/22/01. } ////////////////////////////////////////////////////////////////////////// @@ -1074,12 +1089,12 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 /*! Used as a section header for IDL properties */ virtual QCString trProperties() { - return "Properties"; // TODO: Need to be translated. -ryk11/22/01. + return "properties"; // TODO: Need to be translated. -ryk11/22/01. } /*! Used as a section header for IDL property documentation */ virtual QCString trPropertyDocumentation() { - return "Property Documentation"; // TODO: Need to be translated. -ryk11/22/01. + return "property ¹®¼­È­"; // TODO: Need to be translated. -ryk11/22/01. } ////////////////////////////////////////////////////////////////////////// @@ -1089,49 +1104,50 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 /*! Used for Java interfaces in the summary section of Java packages */ virtual QCString trInterfaces() { - return "Interfaces"; // TODO: Need to be translated. -ryk11/22/01. + return "ÀÎÅÍÆäÀ̽º"; // TODO: Need to be translated. -ryk11/22/01. } /*! Used for Java classes in the summary section of Java packages */ virtual QCString trClasses() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Data Structures"; // TODO: Need to be translated. -ryk11/22/01. + return "µ¥ÀÌÅÍ ±¸Á¶"; // TODO: Need to be translated. -ryk11/22/01. } else { - return "Classes"; // TODO: Need to be translated. -ryk11/22/01. + return "Ŭ·¡½º"; // TODO: Need to be translated. -ryk11/22/01. } } /*! Used as the title of a Java package */ virtual QCString trPackage(const char *name) { - return (QCString)"Package "+name; // TODO: Need to be translated. -ryk11/22/01. + return (QCString)"ÆÐÅ°Áö "+name; // TODO: Need to be translated. -ryk11/22/01. } /*! Title of the package index page */ virtual QCString trPackageList() { - return "Package List"; // TODO: Need to be translated. -ryk11/22/01. + return "ÆÐÅ°Áö ¸ñ·Ï"; // TODO: Need to be translated. -ryk11/22/01. } /*! The description of the package index page */ virtual QCString trPackageListDescription() { - return "Here are the packages with brief descriptions (if available):"; // TODO: Need to be translated. -ryk11/22/01. + //Here are the packages with brief descriptions (if available):"; // TODO: Need to be translated. -ryk11/22/01. + return "´ÙÀ½Àº °£·«ÇÑ ¼³¸íÀ» °¡Áø ÆÐÅ°ÁöÀÌ´Ù."; } /*! The link name in the Quick links header for each page */ virtual QCString trPackages() { - return "Packages"; // TODO: Need to be translated. -ryk11/22/01. + return "ÆÐÅ°Áö"; // TODO: Need to be translated. -ryk11/22/01. } /*! Used as a chapter title for Latex & RTF output */ virtual QCString trPackageDocumentation() { - return "Package Documentation"; // TODO: Need to be translated. -ryk11/22/01. + return "ÆÐÅ°Áö ¹®¼­È­"; // TODO: Need to be translated. -ryk11/22/01. } /*! Text shown before a multi-line define */ virtual QCString trDefineValue() { - return "Value:"; // TODO: Need to be translated. -ryk11/22/01. + return "°ª:"; // TODO: Need to be translated. -ryk11/22/01. } ////////////////////////////////////////////////////////////////////////// @@ -1141,12 +1157,12 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 /*! Used as a marker that is put before a \\bug item */ virtual QCString trBug() { - return "Bug"; // TODO: Need to be translated. -ryk11/22/01. + return "¹ö±×"; // TODO: Need to be translated. -ryk11/22/01. } /*! Used as the header of the bug list */ virtual QCString trBugList() { - return "Bug List"; // TODO: Need to be translated. -ryk11/22/01. + return "¹ö±× ¸ñ·Ï"; // TODO: Need to be translated. -ryk11/22/01. } ////////////////////////////////////////////////////////////////////////// @@ -1195,7 +1211,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 /*! Used as header RTF general index */ virtual QCString trRTFGeneralIndex() { - return "Index"; // TODO: Need to be translated. -ryk11/22/01. + return "À妽º"; // TODO: Need to be translated. -ryk11/22/01. } /*! This is used for translation of the word that will possibly @@ -1204,8 +1220,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 */ virtual QCString trClass(bool first_capital, bool singular) { - QCString result((first_capital ? "Class" : "class")); - if (!singular) result+="es"; + QCString result((first_capital ? "Ŭ·¡½º" : "Ŭ·¡½º")); + if (!singular) result+="µé"; return result; // TODO: Need to be translated. -ryk11/22/01. } @@ -1215,8 +1231,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 */ virtual QCString trFile(bool first_capital, bool singular) { - QCString result((first_capital ? "File" : "file")); - if (!singular) result+="s"; + QCString result((first_capital ? "ÆÄÀÏ" : "ÆÄÀÏ")); + if (!singular) result+="µé"; return result; // TODO: Need to be translated. -ryk11/22/01. } @@ -1237,8 +1253,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 */ virtual QCString trGroup(bool first_capital, bool singular) { - QCString result((first_capital ? "Group" : "group")); - if (!singular) result+="s"; + QCString result((first_capital ? "±×·ì" : "±×·ì")); + if (!singular) result+="µé"; return result; // TODO: Need to be translated. -ryk11/22/01. } @@ -1248,8 +1264,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 */ virtual QCString trPage(bool first_capital, bool singular) { - QCString result((first_capital ? "Page" : "page")); - if (!singular) result+="s"; + QCString result((first_capital ? "ÆäÀÌÁö" : "ÆäÀÌÁö")); + if (!singular) result+="µé"; return result; // TODO: Need to be translated. -ryk11/22/01. } @@ -1259,8 +1275,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 */ virtual QCString trMember(bool first_capital, bool singular) { - QCString result((first_capital ? "Member" : "member")); - if (!singular) result+="s"; + QCString result((first_capital ? "¸â¹ö" : "¸â¹ö")); + if (!singular) result+="µé"; return result; // TODO: Need to be translated. -ryk11/22/01. } @@ -1270,8 +1286,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 */ virtual QCString trField(bool first_capital, bool singular) { - QCString result((first_capital ? "Field" : "field")); - if (!singular) result+="s"; + QCString result((first_capital ? "Çʵå" : "Çʵå")); + if (!singular) result+="µé"; return result; // TODO: Need to be translated. -ryk11/22/01. } @@ -1294,8 +1310,8 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 * for the author section in man pages. */ virtual QCString trAuthor(bool first_capital, bool singular) { - QCString result((first_capital ? "Author" : "author")); - if (!singular) result+="s"; + QCString result((first_capital ? "ÀÛ¼ºÀÚ" : "ÀÛ¼ºÀÚ")); + if (!singular) result+="µé"; return result; // TODO: Need to be translated. -ryk11/22/01. } @@ -1307,7 +1323,70 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 */ virtual QCString trReferences() { - return "References"; // TODO: Need to be translated. -ryk11/22/01. + return "ÂüÁ¶"; // TODO: Need to be translated. -ryk11/22/01. + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + + /*! used in member documentation blocks to produce a list of + * members that are implemented by this one. + */ + virtual QCString trImplementedFromList(int numEntries) + { + //return "Implements "+trWriteList(numEntries)+"."; + return trWriteList(numEntries)+" ±¸Çö."; + } + + /*! used in member documentation blocks to produce a list of + * all members that implement this abstract member. + */ + virtual QCString trImplementedInList(int numEntries) + { + //return "Implemented in "+trWriteList(numEntries)+"."; + return trWriteList(numEntries)+"¿¡ ±¸ÇöµÇ¾ú´Ù."; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "¸ñÂ÷"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.17 +////////////////////////////////////////////////////////////////////////// + + /*! Used as the header of the list of item that have been + * flagged deprecated + */ + virtual QCString trDeprecatedList() + { + return "Deprecated ¸ñ·Ï"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return "À̺¥Æ®"; + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return "À̺¥Æ® ¹®¼­È­"; } }; diff --git a/src/util.cpp b/src/util.cpp index 94cf56e..98657a8 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -691,7 +691,10 @@ QCString removeRedundantWhiteSpace(const QCString &s) { result+=" >"; // insert extra space for layouting (nested) templates } - else if (i>0 && i0 && c==',' && !isspace(s.at(i-1)) + && ((i0 && i' || s.at(i-1)==']') && - isId(s.at(i+1)) + (isId(s.at(i-1)) || s.at(i-1)==')' || s.at(i-1)==',' || s.at(i-1)=='>' || s.at(i-1)==']') + && (isId(s.at(i+1)) || (i0 && (isId(result.at(rl-1)) || result.at(rl-1)=='>')) result+=' '; @@ -2432,7 +2436,7 @@ bool resolveRef(/* in */ const char *scName, ClassDef *cd=0; NamespaceDef *nd=0; - if (scopePos==-1 && isLowerCase(tsName)) + if (!inSeeBlock && scopePos==-1 && isLowerCase(tsName)) { // link to lower case only name => do not try to autolink return FALSE; } diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index a8d1d91..bcb4082 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -155,6 +155,8 @@ void XmlDocVisitor::visit(DocStyleChange *s) m_insidePre=FALSE; } break; + case DocStyleChange::Div: /* HTML only */ break; + case DocStyleChange::Span: /* HTML only */ break; } } diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 9c90234..25ca501 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -450,6 +450,9 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De // enum values are written as part of the enum if (md->memberType()==MemberDef::EnumValue) return; + // group members are only visible in their group + //if (def->definitionType()!=Definition::TypeGroup && md->getGroupDef()) return; + QCString memType; bool isFunc=FALSE; switch (md->memberType()) @@ -482,18 +485,16 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De t << " getOutputFileBase() - << "_1" // encoded `:' character (see util.cpp:convertNameToFile) - << md->anchor(); - t << "\""; - t << " virt=\""; - switch (md->virtualness()) + if (md->getGroupDef() && def->definitionType()==Definition::TypeGroup) { - case Normal: t << "normal"; break; - case Virtual: t << "virtual"; break; - case Pure: t << "pure-virtual"; break; - default: ASSERT(0); + t << md->getGroupDef()->getOutputFileBase(); } + else + { + t << md->getOutputFileBase(); + } + t << "_1" // encoded `:' character (see util.cpp:convertNameToFile) + << md->anchor(); t << "\" prot=\""; switch(md->protection()) { @@ -503,6 +504,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De } t << "\" static=\""; if (md->isStatic()) t << "yes"; else t << "no"; + t << "\""; if (isFunc) @@ -510,6 +512,22 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ArgumentList *al = md->argumentList(); t << " const=\""; if (al && al->constSpecifier) t << "yes"; else t << "no"; + + t << "\" explicit=\""; + if (md->isExplicit()) t << "yes"; else t << "no"; + + t << "\" inline=\""; + if (md->isInline()) t << "yes"; else t << "no"; + + t << "\" virt=\""; + switch (md->virtualness()) + { + case Normal: t << "normal"; break; + case Virtual: t << "virtual"; break; + case Pure: t << "pure-virtual"; break; + default: ASSERT(0); + } + t << "\""; } @@ -518,6 +536,10 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ArgumentList *al = md->argumentList(); t << " volatile=\""; if (al && al->volatileSpecifier) t << "yes"; else t << "no"; + + t << "\" mutable=\""; + if (md->isMutable()) t << "yes"; else t << "no"; + t << "\""; } -- cgit v0.12