diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-03-10 16:02:35 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-03-10 16:02:35 (GMT) |
commit | 57a81b6ed2c1f626c57c20f143468730322856da (patch) | |
tree | 6db5f7392588f3b8c9d05ab7d2651803bc00c4c1 /src | |
parent | c7bc295f92f56d1dea369663e058933f550a0187 (diff) | |
download | Doxygen-57a81b6ed2c1f626c57c20f143468730322856da.zip Doxygen-57a81b6ed2c1f626c57c20f143468730322856da.tar.gz Doxygen-57a81b6ed2c1f626c57c20f143468730322856da.tar.bz2 |
Release-1.2.14-20020310
Diffstat (limited to 'src')
-rw-r--r-- | src/config.l | 5 | ||||
-rw-r--r-- | src/doc.l | 34 | ||||
-rw-r--r-- | src/doxygen.cpp | 96 | ||||
-rw-r--r-- | src/htmlgen.cpp | 18 | ||||
-rw-r--r-- | src/index.cpp | 15 | ||||
-rw-r--r-- | src/latexgen.cpp | 14 | ||||
-rw-r--r-- | src/pngenc.cpp | 2 | ||||
-rw-r--r-- | src/scanner.l | 2 | ||||
-rw-r--r-- | src/translator_cz.h | 5 | ||||
-rw-r--r-- | src/translator_pt.h | 27 | ||||
-rw-r--r-- | src/util.cpp | 18 | ||||
-rw-r--r-- | src/util.h | 3 | ||||
-rw-r--r-- | src/xmlgen.cpp | 6 |
13 files changed, 187 insertions, 58 deletions
diff --git a/src/config.l b/src/config.l index 810287e..fe32174 100644 --- a/src/config.l +++ b/src/config.l @@ -881,9 +881,10 @@ void Config::check() if (p) { char c; - while ((c=*p++)) + while ((c=*p)) { - if (c=='\\') c='/'; + if (c=='\\') *p='/'; + p++; } } QCString path = sfp; @@ -752,13 +752,30 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type) else { warn(yyFileName,yyLineNr, - "Warning: could not write output image %s",outputFile.data()); + "Warning: could not write output image %s",outputFile.data()); } } else { warn(yyFileName,yyLineNr, - "Warning: could not open image %s",fileName); + "Warning: could not open image %s",fileName); + } + + if (type==IT_Latex && Config_getBool("USE_PDFLATEX") && + fd->name().right(4)==".eps" + ) + { // we have an .eps image in pdflatex mode => convert it to a pdf. + QCString outputDir = Config_getString("LATEX_OUTPUT"); + QCString baseName = fd->name().left(fd->name().length()-4); + QCString epstopdfArgs(4096); + epstopdfArgs.sprintf("\"%s/%s.eps\" --outfile=\"%s/%s.pdf\"", + outputDir.data(), baseName.data(), + outputDir.data(), baseName.data()); + if (iSystem("epstopdf",epstopdfArgs,TRUE)!=0) + { + err("Error: Problems running epstopdf. Check your TeX installation!\n"); + } + return baseName; } } else if (ambig) @@ -1202,13 +1219,13 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) <DocScan>{CMD}"link"/{BN} { BEGIN( DocLink ); } <DocScan>"{"{CMD}"link"{BN}+ { BEGIN( DocJavaLink ); } <DocSkipWord>[a-z_A-Z0-9.:()]+ { BEGIN( DocScan ); } -<DocLink>[a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+ { // TODO: support operators as well! +<DocLink>[a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? { // TODO: support operators as well! linkRef = stripKnownExtensions(yytext); linkText = ""; BEGIN( DocLinkText ); } <DocJavaLink>([a-z_A-Z0-9]+".")+ { /* Skip scope prefix (TODO: fix) */ } -<DocJavaLink>([a-z_A-Z0-9]*"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,:~&*()\[\]]*")")? { // TODO: support operators as well! +<DocJavaLink>([a-z_A-Z0-9]*"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,:~&*()\[\]]*")")?({B}*("const"|"volatile"))? { // TODO: support operators as well! linkRef = yytext; linkText = ""; BEGIN( DocJavaLinkText ); @@ -2076,7 +2093,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) } BEGIN(DocScan); } -<DocScan,DocRefName>{SCOPEMASK}"("[a-z_A-Z0-9,:\<\> \t\*\&]+")" { +<DocScan,DocRefName>{SCOPEMASK}"("[a-z_A-Z0-9,:\<\> \t\*\&]+")"({B}*("const"|"volatile"))? { if (!insideHtmlLink) { generateRef(*outDoc,className,yytext,inSeeBlock); @@ -2087,7 +2104,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) } BEGIN(DocScan); } -<DocScan,DocRefName>{SCOPEMASK}("()")? { +<DocScan,DocRefName>{SCOPEMASK}("()"({B}*("const"|"volatile"))?)? { if (!insideHtmlLink) { generateRef(*outDoc,className,yytext,inSeeBlock); @@ -2617,7 +2634,10 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) { outDoc->newParagraph(); } - if (ib) endBlock(); + if (ib && currentListIndent.top()=="P") + { // inside paragraph block + endBlock(); + } } } <DocScan>{BN}+/\n { diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 1363348..f420437 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -3909,7 +3909,8 @@ static void findMember(Entry *root, int count=0; MemberNameIterator mni(*mn); MemberDef *md; - for (mni.toFirst();(md=mni.current());++mni) + bool memFound=FALSE; + for (mni.toFirst();!memFound && (md=mni.current());++mni) { ClassDef *cd=md->getClassDef(); Debug::print(Debug::FindMembers,0, @@ -3993,13 +3994,64 @@ static void findMember(Entry *root, bool ambig; FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); - // list of namespaces using in the file that this member definition is part of - NamespaceList *nl = 0; - if (nd) nl = nd->getUsedNamespaces(); - else if (fd) nl = fd->getUsedNamespaces(); - ClassList *cl = 0; - if (nd) cl = nd->getUsedClasses(); - else if (fd) cl = fd->getUsedClasses(); + + // list of namespaces using in the file/namespace that this + // member definition is part of + NamespaceList *nl = new NamespaceList; + if (nd) + { + NamespaceList *nnl = nd->getUsedNamespaces(); + if (nnl) + { + NamespaceDef *nnd = nnl->first(); + while (nnd) + { + nl->append(nnd); + nnd = nnl->next(); + } + } + } + if (fd) + { + NamespaceList *fnl = fd->getUsedNamespaces(); + if (fnl) + { + NamespaceDef *fnd = fnl->first(); + while (fnd) + { + nl->append(fnd); + fnd = fnl->next(); + } + } + } + + ClassList *cl = new ClassList; + if (nd) + { + ClassList *ncl = nd->getUsedClasses(); + if (ncl) + { + ClassDef *ncd = ncl->first(); + while (ncd) + { + cl->append(ncd); + ncd = ncl->next(); + } + } + } + if (fd) + { + ClassList *fcl = fd->getUsedClasses(); + if (fcl) + { + ClassDef *fcd = fcl->first(); + while (fcd) + { + cl->append(fcd); + fcd = fcl->next(); + } + } + } bool matching= md->isVariable() || md->isTypedef() || // needed for function pointers @@ -4038,8 +4090,10 @@ static void findMember(Entry *root, // root->inLine,md->isInline()); addMemberDocs(root,md,funcDecl,0,overloaded,nl); count++; - break; + memFound=TRUE; } + delete cl; + delete nl; } } if (count==0 && !(isFriend && funcType=="class")) @@ -6565,13 +6619,19 @@ void readConfiguration(int argc, char **argv) else { Config::instance()->init(); - setTranslator("English"); } if (optind+3>=argc) { err("Error: option \"-w html\" does not have enough arguments\n"); exit(1); } + + QCString outputLanguage=Config_getEnum("OUTPUT_LANGUAGE"); + if (!setTranslator(outputLanguage)) + { + err("Error: Output language %s not supported! Using English instead.\n", outputLanguage.data()); + } + QFile f; if (openOutputFile(argv[optind+1],f)) { @@ -6605,13 +6665,19 @@ void readConfiguration(int argc, char **argv) else // use default config { Config::instance()->init(); - setTranslator("English"); } if (optind+2>=argc) { - err("Error: option \"-w html\" does not have enough arguments\n"); + err("Error: option \"-w latex\" does not have enough arguments\n"); exit(1); } + + QCString outputLanguage=Config_getEnum("OUTPUT_LANGUAGE"); + if (!setTranslator(outputLanguage)) + { + err("Error: Output language %s not supported! Using English instead.\n", outputLanguage.data()); + } + QFile f; if (openOutputFile(argv[optind+1],f)) { @@ -6713,7 +6779,7 @@ void readConfiguration(int argc, char **argv) Config::instance()->check(); initWarningFormat(); QCString outputLanguage=Config_getEnum("OUTPUT_LANGUAGE"); - if (!outputLanguage.isEmpty() && !setTranslator(outputLanguage)) + if (!setTranslator(outputLanguage)) { err("Error: Output language %s not supported! Using English instead.\n", outputLanguage.data()); @@ -7335,13 +7401,13 @@ void generateOutput() theTranslator->trGeneratedAt(dateToString(TRUE),Config_getString("PROJECT_NAME")) ); outputList->writeStyleInfo(1); // write second part - parseText(*outputList,theTranslator->trWrittenBy()); + //parseText(*outputList,theTranslator->trWrittenBy()); outputList->writeStyleInfo(2); // write third part parseText(*outputList, theTranslator->trGeneratedAt(dateToString(TRUE),Config_getString("PROJECT_NAME")) ); outputList->writeStyleInfo(3); // write fourth part - parseText(*outputList,theTranslator->trWrittenBy()); + //parseText(*outputList,theTranslator->trWrittenBy()); outputList->writeStyleInfo(4); // write last part outputList->enableAll(); diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index af01a96..4f971c2 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -181,14 +181,16 @@ void HtmlGenerator::writeHeaderFile(QFile &file) void HtmlGenerator::writeFooterFile(QFile &file) { QTextStream t(&file); - t << "<hr><address><small>\n"; + t << "<hr><address align=\"right\"><small>\n"; t << theTranslator->trGeneratedAt( "$datetime", "$projectname" ); t << " <a href=\"http://www.doxygen.org/index.html\">\n" << "<img src=\"doxygen.png\" alt=\"doxygen\" " << "align=\"middle\" border=0 width=110 height=53>\n" - << "</a> $doxygenversion " << theTranslator->trWrittenBy() - << " <a href=\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>,\n" - << " © 1997-2002</small></address>\n" + << "</a> $doxygenversion"; + // << " " << theTranslator->trWrittenBy() + // << " <a href=\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>,\n" + // << " © 1997-2002" + t << "</small></address>\n" << "</body>\n" << "</html>\n"; } @@ -255,7 +257,7 @@ void HtmlGenerator::writeFooter(int part,bool external) { case 0: if (g_footer.isEmpty()) - t << "<hr><address><small>"; + t << "<hr><address align=\"right\"><small>"; else t << substituteKeywords(g_footer,convertToHtml(lastTitle)); break; @@ -280,8 +282,10 @@ void HtmlGenerator::writeFooter(int part,bool external) break; default: if (g_footer.isEmpty()) - t << " <a href=\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>,\n © " - "1997-2002</small></address>\n</body>\n</html>\n"; + { + //t << " <a href=\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>,\n © 1997-2002"; + t << "</small></address>\n</body>\n</html>\n"; + } break; } diff --git a/src/index.cpp b/src/index.cpp index 9b20b51..47bdaab 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -340,10 +340,10 @@ void endFile(OutputList &ol,bool external) )); } ol.writeFooter(1,external); // write the link to the picture - if (Config_getString("HTML_FOOTER").isEmpty()) - { - parseText(ol,theTranslator->trWrittenBy()); - } + //if (Config_getString("HTML_FOOTER").isEmpty()) + //{ + // parseText(ol,theTranslator->trWrittenBy()); + //} ol.writeFooter(2,external); // end the footer ol.popGeneratorState(); ol.endFile(); @@ -2228,7 +2228,10 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) ftvHelp = FTVHelp::getInstance(); } - if (!gd->visited && (!gd->isASubGroup() || level>0)) + /* Some groups should appear twice under different parent-groups. + * That is why we should not check if it was visited + */ + if (/*!gd->visited &&*/ (!gd->isASubGroup() || level>0)) { //printf("gd->name()=%s #members=%d\n",gd->name().data(),gd->countMembers()); // write group info @@ -2503,7 +2506,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) if (htmlHelp) htmlHelp->decContentsDepth(); if (ftvHelp) ftvHelp->decContentsDepth(); - gd->visited=TRUE; + //gd->visited=TRUE; } } diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 4604a58..c02428c 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -407,12 +407,14 @@ void LatexGenerator::writeStyleSheetFile(QFile &f) QCString &projectName = Config_getString("PROJECT_NAME"); t << theTranslator->trGeneratedAt( dateToString(TRUE), projectName ); - t << " doxygen " << theTranslator->trWrittenBy() << " "; - t << "Dimitri van Heesch \\copyright~1997-2002"; + t << " doxygen"; + //t << " " << theTranslator->trWrittenBy() << " "; + //t << "Dimitri van Heesch \\copyright~1997-2002"; writeDefaultStyleSheetPart2(t); t << theTranslator->trGeneratedAt( dateToString(TRUE), projectName ); - t << " doxygen " << theTranslator->trWrittenBy() << " "; - t << "Dimitri van Heesch \\copyright~1997-2002"; + t << " doxygen"; + //t << " << theTranslator->trWrittenBy() << " "; + //t << "Dimitri van Heesch \\copyright~1997-2002"; writeDefaultStyleSheetPart3(t); } @@ -824,14 +826,14 @@ void LatexGenerator::writeStyleInfo(int part) break; case 2: { - t << " Dimitri van Heesch \\copyright~1997-2002"; + //t << " Dimitri van Heesch \\copyright~1997-2002"; t << "}]{}\n"; writeDefaultStyleSheetPart2(t); } break; case 4: { - t << " Dimitri van Heesch \\copyright~1997-2002"; + //t << " Dimitri van Heesch \\copyright~1997-2002"; writeDefaultStyleSheetPart3(t); endPlainFile(); } diff --git a/src/pngenc.cpp b/src/pngenc.cpp index 438b4b5..b7e54f4 100644 --- a/src/pngenc.cpp +++ b/src/pngenc.cpp @@ -99,7 +99,7 @@ void PngEncoder::write(const char *name) png_palette[i].green = palette[i].green; png_palette[i].blue = palette[i].blue; } - png_set_PLTE(png_ptr, info_ptr, png_palette, PNG_MAX_PALETTE_LENGTH); + png_set_PLTE(png_ptr, info_ptr, png_palette, numOfColors); png_set_IHDR( png_ptr, info_ptr, width, height, bit_depth, PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE diff --git a/src/scanner.l b/src/scanner.l index e558eb1..ab08498 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2859,7 +2859,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) current->brief+=' '; lineCount(); } -<JavaDoc>".\\"/[ \t\r\n] { +<JavaDoc,AfterDocBrief>".\\"/[ \t\r\n] { current->brief+="."; } <JavaDoc>"."[ \t\r\n] { diff --git a/src/translator_cz.h b/src/translator_cz.h index e785da4..07941bb 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -135,6 +135,9 @@ // - trImplementedFromList() and trImplementedInList() implemented // (new since 1.2.13) // +// 2002/03/05 +// - ... forgot to replace TranslatorAdapter... base class by Translator. +// // Todo // ---- // - The trReimplementedFromList() should pass the kind of the @@ -154,7 +157,7 @@ // probably slightly faster. -class TranslatorCzech : public TranslatorAdapter_1_2_13 +class TranslatorCzech : public Translator { private: /*! The decode() inline assumes the source written in the diff --git a/src/translator_pt.h b/src/translator_pt.h index 232eecb..6d73bbd 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -15,9 +15,12 @@ * * The translation into Portuguese was provided by * Rui Godinho Lopes <ruiglopes@yahoo.com> + * http://www.ruilopes.com * * VERSION HISTORY * --------------- + * 004 03 march 2002 + * ! Updated for doxygen v1.2.14 * 003 23 november 2001 * - Removed some obsolete methods (latexBabelPackage, trAuthor, trAuthors and trFiles) * 002 19 november 2001 @@ -31,7 +34,7 @@ #ifndef TRANSLATOR_PT_H #define TRANSLATOR_PT_H -class TranslatorPortuguese : public TranslatorAdapter_1_2_13 +class TranslatorPortuguese : public Translator { public: @@ -1048,7 +1051,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_13 "\\endcode\n" "Se no ficheiro de configuração estiver a tag \\c MAX_DOT_GRAPH_HEIGHT " "com o valor de 200 então o seguinte grafo será gerado:" - "<p><center><img src=\"graph_legend.png\"></center>\n" + "<p><center><img src=\"graph_legend.gif\"></center>\n" "<p>\n" "As caixas no grafo anterior têm as seguintes interpretações:\n" "<ul>\n" @@ -1345,6 +1348,26 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_13 return "Referências"; } +////////////////////////////////////////////////////////////////////////// +// 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 "Implementa "+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 "Implementado em "+trWriteList(numEntries)+"."; + } + }; #endif diff --git a/src/util.cpp b/src/util.cpp index ed55620..c99b1bd 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1999,7 +1999,8 @@ bool getDefs(const QCString &scName,const QCString &memberName, MemberDef *&md, ClassDef *&cd, FileDef *&fd, NamespaceDef *&nd, GroupDef *&gd, bool forceEmptyScope, - FileDef *currentFile + FileDef *currentFile, + bool checkCV ) { fd=0, md=0, cd=0, nd=0, gd=0; @@ -2076,7 +2077,7 @@ bool getDefs(const QCString &scName,const QCString &memberName, if (mmd->isLinkable()) { bool match=args==0 || - matchArguments(mmd->argumentList(),argList,className,0,FALSE); + matchArguments(mmd->argumentList(),argList,className,0,checkCV); //printf("match=%d\n",match); if (match) { @@ -2187,7 +2188,7 @@ bool getDefs(const QCString &scName,const QCString &memberName, argList=new ArgumentList; stringToArgumentList(args,argList); match=matchArguments(mmd->argumentList(),argList,0, - namespaceName,FALSE); + namespaceName,checkCV); } if (match) { @@ -2247,7 +2248,7 @@ bool getDefs(const QCString &scName,const QCString &memberName, { argList=new ArgumentList; stringToArgumentList(args,argList); - match=matchArguments(md->argumentList(),argList); + match=matchArguments(md->argumentList(),argList,0,0,checkCV); delete argList; argList=0; } if (match) @@ -2489,8 +2490,13 @@ bool generateRef(OutputDocInterface &od,const char *scName, // scopeStr.data(),nameStr.data(),argsStr.data()); // check if nameStr is a member or global. - if (getDefs(scopeStr,nameStr,argsStr,md,cd,fd,nd,gd, - scopePos==0 && !memberScopeFirst)) + if (getDefs(scopeStr,nameStr,argsStr, + md,cd,fd,nd,gd, + scopePos==0 && !memberScopeFirst, + 0, + TRUE + ) + ) { //printf("after getDefs md=%p cd=%p fd=%p nd=%p gd=%p\n",md,cd,fd,nd,gd); QCString anchor; @@ -86,7 +86,8 @@ extern bool getDefs(const QCString &scopeName, NamespaceDef *&nd, GroupDef *&gd, bool forceEmptyScope=FALSE, - FileDef *currentFile=0 + FileDef *currentFile=0, + bool checkCV=FALSE ); extern bool generateRef(OutputDocInterface &od,const char *, diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 9273f63..c5b1fb0 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -1309,7 +1309,7 @@ static void writeTemplateLists(Definition *d,QTextStream &t) } } -static void writeListOfAllMember(ClassDef *cd,QTextStream &t) +static void writeListOfAllMembers(ClassDef *cd,QTextStream &t) { t << " <listofallmembers>" << endl; MemberNameInfoSDict::Iterator mnii(*cd->memberNameInfoSDict()); @@ -1365,7 +1365,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) // + list of direct sub classes // + list of inner classes // + collaboration diagram - // - list of all members + // + list of all members // + user defined member sections // + standard member sections // + detailed member documentation @@ -1459,7 +1459,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) } } writeTemplateLists(cd,t); - writeListOfAllMember(cd,t); + writeListOfAllMembers(cd,t); MemberGroupSDict::Iterator mgli(*cd->memberGroupSDict); MemberGroup *mg; for (;(mg=mgli.current());++mgli) |