diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/classdef.cpp | 6 | ||||
-rw-r--r-- | src/classdef.h | 2 | ||||
-rw-r--r-- | src/doc.l | 22 | ||||
-rw-r--r-- | src/dot.cpp | 29 | ||||
-rw-r--r-- | src/dot.h | 4 | ||||
-rw-r--r-- | src/doxygen.cpp | 8 | ||||
-rw-r--r-- | src/htmlgen.cpp | 10 | ||||
-rw-r--r-- | src/latexgen.cpp | 10 | ||||
-rw-r--r-- | src/mangen.cpp | 1 | ||||
-rw-r--r-- | src/rtfgen.cpp | 117 | ||||
-rw-r--r-- | src/translator_br.h | 18 | ||||
-rw-r--r-- | src/translator_cz.h | 19 | ||||
-rw-r--r-- | src/translator_de.h | 16 | ||||
-rw-r--r-- | src/translator_fr.h | 18 | ||||
-rw-r--r-- | src/translator_hr.h | 14 | ||||
-rw-r--r-- | src/translator_it.h | 18 | ||||
-rw-r--r-- | src/translator_jp.h | 12 | ||||
-rw-r--r-- | src/translator_pt.h | 16 | ||||
-rw-r--r-- | src/translator_ru.h | 14 | ||||
-rw-r--r-- | src/util.cpp | 27 |
20 files changed, 280 insertions, 101 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index 0f7672b..0185d47 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -580,9 +580,10 @@ static void writeInheritanceSpecifier(OutputList &ol,BaseClassDef *bcd) } } -void ClassDef::setIncludeFile(FileDef *fd,const char *includeName,bool local) +void ClassDef::setIncludeFile(FileDef *fd, + const char *includeName,bool local, bool force) { - //printf("ClassDef::setInclude(%p,%s,%d)\n",fd,includeName,local); + //printf("ClassDef::setIncludeFile(%p,%s,%d,%d)\n",fd,includeName,local,force); if (!m_incInfo) m_incInfo=new IncludeInfo; if ((includeName && m_incInfo->includeName.isEmpty()) || (fd!=0 && m_incInfo->fileDef==0) @@ -593,6 +594,7 @@ void ClassDef::setIncludeFile(FileDef *fd,const char *includeName,bool local) m_incInfo->includeName = includeName; m_incInfo->local = local; } + if (force && includeName) m_incInfo->includeName = includeName; } // TODO: fix this: a nested template class can have multiple outer templates diff --git a/src/classdef.h b/src/classdef.h index fd7c1b4..1c5ce25 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -247,7 +247,7 @@ class ClassDef : public Definition */ void insertBaseClass(ClassDef *,const char *name,Protection p,Specifier s,const char *t=0); void insertSubClass(ClassDef *,Protection p,Specifier s,const char *t=0); - void setIncludeFile(FileDef *fd,const char *incName,bool local); + void setIncludeFile(FileDef *fd,const char *incName,bool local,bool force); void insertMember(MemberDef *); void insertUsedFile(const char *); void computeAnchors(); @@ -2254,17 +2254,21 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? <DocScan>{CMD}"skipline"{BN}+ { BEGIN( DocSkiplineKey ); firstLine=TRUE; } <DocScan>{CMD}"line"{BN}+ { BEGIN( DocLineKey ); firstLine=TRUE; } <DocScan>{CMD}"until"{BN}+ { BEGIN( DocUntilKey ); firstLine=TRUE; } -<DocSkipKey>[^ \t\r\n]+ { +<DocSkipKey>[^\r\n]+ { if (includeFileLength>0) - skipUntil(yytext); + { + QCString pattern=yytext; + skipUntil(pattern.stripWhiteSpace()); + } BEGIN( DocScan ); } -<DocLineKey>[^ \t\r\n]+ { +<DocLineKey>[^\r\n]+ { if (includeFileLength>0) { + QCString pattern=yytext; if (firstLine) outDoc->startCodeFragment(); firstLine=FALSE; - showLine(*outDoc,yytext); + showLine(*outDoc,pattern.stripWhiteSpace()); BEGIN( DocKeyEnd ); } else @@ -2272,12 +2276,13 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? BEGIN( DocScan ); } } -<DocSkiplineKey>[^ \t\r\n]+ { +<DocSkiplineKey>[^\r\n]+ { if (includeFileLength>0) { + QCString pattern=yytext; if (firstLine) outDoc->startCodeFragment(); firstLine=FALSE; - skipLine(*outDoc,yytext); + skipLine(*outDoc,pattern.stripWhiteSpace()); BEGIN( DocKeyEnd ); } else @@ -2285,12 +2290,13 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? BEGIN( DocScan ); } } -<DocUntilKey>[^ \t\r\n]+ { +<DocUntilKey>[^\r\n]+ { if (includeFileLength>0) { + QCString pattern=yytext; if (firstLine) outDoc->startCodeFragment(); firstLine=FALSE; - showUntil(*outDoc,yytext); + showUntil(*outDoc,pattern.stripWhiteSpace()); BEGIN( DocKeyEnd ); } else diff --git a/src/dot.cpp b/src/dot.cpp index f3533b5..a5ad72b 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -1745,9 +1745,32 @@ void generateGraphLegend(const char *path) } -void writeDotGraphFromFile(const char *inFile,const char *outFile, - GraphOutputFormat format) +void writeDotGraphFromFile(const char *inFile,const char *outDir, + const char *outFile,GraphOutputFormat format) { + QCString absOutFile = outDir; +#ifdef _WIN32 + absOutFile+='\\'; +#else + absOutFile+='/'; +#endif + absOutFile+=outFile; + + // chdir to the output dir, so dot can find the font file. + QCString oldDir = convertToQCString(QDir::currentDirPath()); + // go to the html output directory (i.e. path) + QDir::setCurrent(outDir); + + //{ // copy input file to output dir. + // QFile inf(inFile,IO_ReadOnly); + // QFileInfo infinfo(inf); + // uint s = infinfo.size(); + // QByteArray a(s); + // inf.readBlock(a.data(),s); + // QFile outf(outDir,IO_WriteOnly); + // outf.writeBlock(a.data(),s); + //} + QCString dotArgs(4096); QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); QCString imgName = (QCString)outFile+"."+imgExt; @@ -1779,5 +1802,7 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile, } if (format==BITMAP) checkDotResult(imgName); + + QDir::setCurrent(oldDir); } @@ -168,6 +168,6 @@ class DotInclDepGraph }; void generateGraphLegend(const char *path); -void writeDotGraphFromFile(const char *inFile,const char *outFile, - GraphOutputFormat format); +void writeDotGraphFromFile(const char *inFile,const char *outDir, + const char *outFile,GraphOutputFormat format); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 90b1ab2..36c86c3 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -424,11 +424,11 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) } if (fd->generateSourceFile()) // generate code for header { - cd->setIncludeFile(fd,iName,local); + cd->setIncludeFile(fd,iName,local,!root->includeName.isEmpty()); } else // put #include in the class documentation without link { - cd->setIncludeFile(0,iName,local); + cd->setIncludeFile(0,iName,local,FALSE); } } } @@ -6408,7 +6408,7 @@ static void readFiles(BufStr &output) bool multiLineIsBrief = Config_getBool("MULTILINE_CPP_IS_BRIEF"); BufStr tempBuf(10000); - BufStr *bufPtr = multiLineIsBrief ? &tempBuf : &output; + BufStr *bufPtr = multiLineIsBrief ? &output : &tempBuf; // add begin filename marker bufPtr->addChar(0x06); @@ -6431,7 +6431,7 @@ static void readFiles(BufStr &output) bufPtr->addChar('\n'); /* to prevent problems under Windows ? */ - if (multiLineIsBrief) + if (!multiLineIsBrief) { convertCppComments(&tempBuf,&output); } diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index b165408..cdacaaa 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -919,14 +919,8 @@ void HtmlGenerator::startDotFile(const char *name,bool hasCaption) { baseName=baseName.right(baseName.length()-i-1); } - QCString outName = Config_getString("HTML_OUTPUT")+ -#ifdef _WIN32 - "\\" -#else - "/" -#endif - +baseName; - writeDotGraphFromFile(name,outName,BITMAP); + QCString outDir = Config_getString("HTML_OUTPUT"); + writeDotGraphFromFile(name,outDir,baseName,BITMAP); t << "<div align=\"center\">" << endl; t << "<img src=\"" << baseName << "." << Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\"" diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 90b8bc4..fa6a104 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -1795,14 +1795,8 @@ void LatexGenerator::startDotFile(const char *name,bool hasCaption) { baseName=baseName.right(baseName.length()-i-1); } - QCString outName = Config_getString("LATEX_OUTPUT")+ -#ifdef _WIN32 - "\\" -#else - "/" -#endif - +baseName; - writeDotGraphFromFile(name,outName,EPS); + QCString outDir = Config_getString("LATEX_OUTPUT"); + writeDotGraphFromFile(name,outDir,baseName,EPS); if (hasCaption) { t << "\\begin{figure}[H]" << endl; diff --git a/src/mangen.cpp b/src/mangen.cpp index 8812387..ec3eff1 100644 --- a/src/mangen.cpp +++ b/src/mangen.cpp @@ -118,6 +118,7 @@ static QCString buildFileName(const char *name) case '~': case '%': case '+': + case '/': fileName+="_"; break; default: diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index 04ce7f4..7e813f9 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -60,37 +60,42 @@ static QCString documentType; static QCString documentId; static QCString keywords; -// it is undocumented as far as I know, but -// "."'s in a bookmarkname are converted to "_"'s -// when an RTF file is read in... +static QCString g_nextTag( "AAAAAAAAAA" ); +static QDict<QCString> g_tagDict( 5003 ); + static QCString formatBmkStr(const char *name) { - QCString result=name; - if (!result.isEmpty()) - { - char c; - char *p=result.data(); - while ((c=*p)) - { - switch(c) - { - case '.': - // fall through - case ':': - *p='_'; - break; - default: - break; - } - p++; - } - // Word doesn't like bookmarks that do not start with a alphabetical char - if (!isalpha(result.at(0))) - { - result.prepend("BM"); - } - } - return result; + // To overcome the 40-character tag limitation, we + // substitute a short arbitrary string for the name + // supplied, and keep track of the correspondence + // between names and strings. + QCString key( name ); + QCString* tag = g_tagDict.find( key ); + if ( !tag ) + { + // This particular name has not yet been added + // to the list. Add it, associating it with the + // next tag value, and increment the next tag. + tag = new QCString( g_nextTag.copy() ); // Make sure to use a deep copy! + g_tagDict.insert( key, tag ); + + // This is the increment part + char* nxtTag = g_nextTag.data() + g_nextTag.length() - 1; + for ( unsigned int i = 0; i < g_nextTag.length(); ++i, --nxtTag ) + { + if ( ( ++(*nxtTag) ) > 'Z' ) + { + (*nxtTag) = 'A'; + } + else + { + // Since there was no carry, we can stop now + break; + } + } + } + + return *tag; } static QCString dateToRTFDateString() @@ -723,6 +728,8 @@ void RTFGenerator::init() } Rtf_Style.setAutoDelete(TRUE); + g_tagDict.setAutoDelete(TRUE); + // first duplicate strings of Rtf_Style_Default const struct Rtf_Style_Default* def = Rtf_Style_Default; while(def->reference != 0) @@ -1413,6 +1420,7 @@ void RTFGenerator::startIndexList() incrementIndentLevel(); t << Rtf_Style_Reset << Rtf_LCList_DepthStyle() << endl; newParagraph(); + m_omitParagraph = TRUE; } void RTFGenerator::endIndexList() @@ -1421,6 +1429,7 @@ void RTFGenerator::endIndexList() newParagraph(); t << "}"; decrementIndentLevel(); + m_omitParagraph = TRUE; } /*! start bullet list */ @@ -1439,6 +1448,7 @@ void RTFGenerator::endItemList() DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl) t << "}"; decrementIndentLevel(); + m_omitParagraph = TRUE; } /*! start enumeration list */ @@ -1458,6 +1468,7 @@ void RTFGenerator::endEnumList() DBG_RTF(t << "{\\comment (endEnumList)}" << endl) t << "}"; decrementIndentLevel(); + m_omitParagraph = TRUE; } /*! write bullet or enum item */ @@ -1476,6 +1487,7 @@ void RTFGenerator::writeListItem() { t << Rtf_BList_DepthStyle() << endl; } + m_omitParagraph = TRUE; } void RTFGenerator::writeIndexItem(const char *ref,const char *fn, @@ -1495,6 +1507,7 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn, t << endl; } newParagraph(); + m_omitParagraph = TRUE; } //void RTFGenerator::writeIndexFileItem(const char *,const char *text) @@ -2052,6 +2065,7 @@ void RTFGenerator::endDescList() DBG_RTF(t << "{\\comment (endDescList)}" << endl) newParagraph(); decrementIndentLevel(); + m_omitParagraph = TRUE; t << "}"; } @@ -2271,13 +2285,23 @@ void RTFGenerator::endMemberItem(bool) void RTFGenerator::writeAnchor(const char *fileName,const char *name) { - DBG_RTF(t <<"{\\comment writeAncheor }" << endl) - t << "{\\bkmkstart "; - if (fileName) t << formatBmkStr(fileName); - if (fileName && name) t << "_"; - if (name) t << formatBmkStr(name); - t << "}" << endl; - t << "{\\bkmkend " << formatBmkStr(name) << "}" << endl; + QCString anchor; + if (fileName) + { + anchor+=fileName; + } + if (fileName && name) + { + anchor+='_'; + } + if (name) + { + anchor+=name; + } + + DBG_RTF(t <<"{\\comment writeAncheor (" << anchor << ")}" << endl) + t << "{\\bkmkstart " << formatBmkStr(anchor) << "}" << endl; + t << "{\\bkmkend " << formatBmkStr(anchor) << "}" << endl; } void RTFGenerator::WriteRTFReference(const char *label) @@ -2303,6 +2327,7 @@ void RTFGenerator::endCodeFragment() //t << Rtf_Style_Reset << styleStack.top() << endl; DBG_RTF(t << "{\\comment (endCodeFragment) }" << endl) t << "}" << endl; + m_omitParagraph = TRUE; } void RTFGenerator::writeNonBreakableSpace(int) @@ -2356,19 +2381,13 @@ void RTFGenerator::startDotFile(const char *name,bool) { baseName=baseName.right(baseName.length()-i-1); } - QCString outName = Config_getString("RTF_OUTPUT")+ -#ifdef _WIN32 - "\\" -#else - "/" -#endif - +baseName; - writeDotGraphFromFile(name,outName,BITMAP); + QCString outDir = Config_getString("RTF_OUTPUT"); + writeDotGraphFromFile(name,outDir,baseName,BITMAP); newParagraph(); t << "{" << endl; t << Rtf_Style_Reset << endl; t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE "; - t << outName; + t << outDir << "\\" << baseName; t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl; t << "}" << endl; } @@ -2413,13 +2432,14 @@ void RTFGenerator::endDescTableTitle() void RTFGenerator::startDescTableData() { DBG_RTF(t << "{\\comment (startDescTableData) }" << endl) - m_omitParagraph=FALSE; + m_omitParagraph = FALSE; } void RTFGenerator::endDescTableData() { DBG_RTF(t << "{\\comment (endDescTableData) }" << endl) newParagraph(); + m_omitParagraph = TRUE; } // a style for list formatted as a "bulleted list" @@ -2504,14 +2524,14 @@ void RTFGenerator::endTextBlock() newParagraph(); DBG_RTF(t << "{\\comment endTextBlock}" << endl) t << "}" << endl; + m_omitParagraph = TRUE; } void RTFGenerator::newParagraph() { DBG_RTF(t << "{\\comment (newParagraph)}" << endl) if (!m_omitParagraph) t << "\\par" << endl; - // Suppress multiple paragraphs in a row - m_omitParagraph = TRUE; + m_omitParagraph = FALSE; } void RTFGenerator::startMemberSubtitle() @@ -2938,6 +2958,7 @@ void RTFGenerator::endParamList() DBG_RTF(t << "{\\comment (endParamList)}" << endl) newParagraph(); decrementIndentLevel(); + m_omitParagraph = TRUE; t << "}"; } diff --git a/src/translator_br.h b/src/translator_br.h index eaf4cb2..ad51e49 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -13,9 +13,11 @@ * Brazilian Portuguese version by * Fabio "FJTC" Jun Takada Chino <chino@icmc.sc.usp.br> * http://www.icmc.sc.usp.br/~chino - * Version: 1.2.13.2 (2002/05/10) + * Version: 1.2.17 (2002/07/10) * * History: + * 1.2.17 (2002/07/10): + * - Updated to Doxygen 1.2.17. * 1.2.13.2 (2002/05/10): * - Latex Babel package language name fixed. * - "Estrura" bug identified and fixed (Thanks to Jorge Ramos). @@ -23,7 +25,7 @@ #ifndef TRANSLATOR_BR_H #define TRANSLATOR_BR_H -class TranslatorBrazilian: public TranslatorAdapter_1_2_16 +class TranslatorBrazilian: public Translator { public: @@ -1334,5 +1336,17 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_16 return "Implementado em "+trWriteList(numEntries)+"."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Conteúdo"; + } + }; #endif diff --git a/src/translator_cz.h b/src/translator_cz.h index 74e2ac2..d5b5f27 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -138,6 +138,9 @@ // 2002/03/05 // - ... forgot to replace TranslatorAdapter... base class by Translator. // +// 2002/07/08 (my birthday! ;) +// - The new trRTFTableOfContents() implemented. +// // Todo // ---- // - The trReimplementedFromList() should pass the kind of the @@ -157,7 +160,7 @@ // probably slightly faster. -class TranslatorCzech : public TranslatorAdapter_1_2_16 +class TranslatorCzech : public Translator { private: /*! The decode() inline assumes the source written in the @@ -1502,7 +1505,19 @@ class TranslatorCzech : public TranslatorAdapter_1_2_16 */ virtual QCString trImplementedInList(int numEntries) { - return "Implementováno v "+trWriteList(numEntries)+"."; + return decode("Implementováno v "+trWriteList(numEntries)+"."); + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Obsah"; } }; diff --git a/src/translator_de.h b/src/translator_de.h index 11fb085..c818fdd 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -58,10 +58,13 @@ // - trCompoundReference(), trLegendDocs() updated // - Removed some TODO's // -// 2002/02/13 Oliver Brandt (o.brandt@tu-bs.de) +// 2001/02/13 Oliver Brandt (o.brandt@tu-bs.de) // - Updated for "new since 1.2.13" version // - Removed some TODO's // +// 2002-07-08 Oliver Brandt (o.brandt@tu-bs.de) +// - Updated for "new since 1.2.16" version +// // Todo: // - see FIXME @@ -1392,6 +1395,17 @@ class TranslatorGerman : public TranslatorAdapter_1_2_16 return "Implementiert in " + trWriteList(numEntries) + "."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /* used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Inhaltsverzeichnis"; + } }; #endif diff --git a/src/translator_fr.h b/src/translator_fr.h index 59119d4..f8ffa45 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -35,11 +35,13 @@ * -------------+------------------------------------------------------------ * 2002-01-23 | Update for new since 1.2.13 * -------------+------------------------------------------------------------ + * 2002-07-11 | Update for new since 1.2.16 + * -------------+------------------------------------------------------------ */ #ifndef TRANSLATOR_FR_H #define TRANSLATOR_FR_H -class TranslatorFrench : public TranslatorAdapter_1_2_16 +class TranslatorFrench : public Translator { public: QCString idLanguage() @@ -1254,5 +1256,19 @@ class TranslatorFrench : public TranslatorAdapter_1_2_16 return "Implémenté dans "+trWriteList(numEntries)+"."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Table des matières"; + } + + + }; #endif diff --git a/src/translator_hr.h b/src/translator_hr.h index baff5d5..f6081db 100644 --- a/src/translator_hr.h +++ b/src/translator_hr.h @@ -50,7 +50,7 @@ #ifndef TRANSLATOR_HR_H #define TRANSLATOR_HR_H -class TranslatorCroatian : public TranslatorAdapter_1_2_16 +class TranslatorCroatian : public Translator { private: /*! to avoid macro redefinition from translator_cz.h */ @@ -1040,6 +1040,18 @@ class TranslatorCroatian : public TranslatorAdapter_1_2_16 { return "Implementirano u "+trWriteList(numEntries)+"."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return decode("Sadr¾aj"); + } + }; #endif diff --git a/src/translator_it.h b/src/translator_it.h index 35f96d8..a24f381 100644 --- a/src/translator_it.h +++ b/src/translator_it.h @@ -19,7 +19,8 @@ * * Revision history * - * 2002/07: modified trRelatedPagesDescription() method + * 2002/07: translated new items used since version 1.2.16 + * 2002/06: modified trRelatedPagesDescription() method * correct typo in trInclByDepGraph() method * 2002/01: translated new items used since version 1.2.13 * updated e-mail address @@ -64,7 +65,7 @@ #ifndef TRANSLATOR_IT_H #define TRANSLATOR_IT_H -class TranslatorItalian : public TranslatorAdapter_1_2_16 +class TranslatorItalian : public Translator { public: @@ -1344,6 +1345,19 @@ class TranslatorItalian : public TranslatorAdapter_1_2_16 { return "Implementato in "+trWriteList(numEntries)+"."; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Sommario"; + } + }; #endif diff --git a/src/translator_jp.h b/src/translator_jp.h index 2275ea8..0f81f01 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -61,7 +61,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish } }; -class TranslatorJapanese : public TranslatorAdapter_1_2_16 +class TranslatorJapanese : public Translator { private: /*! The decode() can change euc into sjis */ @@ -1364,7 +1364,17 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_16 { return trWriteList(numEntries)+decode("¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹")+"."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return decode("Ìܼ¡"); + } }; #endif diff --git a/src/translator_pt.h b/src/translator_pt.h index 3754517..7ebc4fa 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -19,6 +19,8 @@ * * VERSION HISTORY * --------------- + * 005 10 july 2002 + * ! Updated for doxygen v1.2.16 * 004 03 march 2002 * ! Updated for doxygen v1.2.14 * 003 23 november 2001 @@ -34,7 +36,7 @@ #ifndef TRANSLATOR_PT_H #define TRANSLATOR_PT_H -class TranslatorPortuguese : public TranslatorAdapter_1_2_16 +class TranslatorPortuguese : public Translator { public: @@ -1368,6 +1370,18 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_16 return "Implementado em "+trWriteList(numEntries)+"."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Índice"; + } + }; #endif diff --git a/src/translator_ru.h b/src/translator_ru.h index d40f064..dafc470 100644 --- a/src/translator_ru.h +++ b/src/translator_ru.h @@ -50,7 +50,7 @@ #ifndef TRANSLATOR_RU_H #define TRANSLATOR_RU_H -class TranslatorRussian : public TranslatorAdapter_1_2_16 +class TranslatorRussian : public Translator { private: /*! The Decode() inline assumes the source written in the @@ -1394,6 +1394,18 @@ class TranslatorRussian : public TranslatorAdapter_1_2_16 return decode("úÁÍÅÝÁÅÔÓÑ × ")+trWriteList(numEntries)+"."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return decode("ïÇÌÁ×ÌÅÎÉÅ"); + } + }; #endif diff --git a/src/util.cpp b/src/util.cpp index 8af87d8..4ca7d8e 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -363,7 +363,7 @@ int guessSection(const char *name) QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, Definition **typedefContext) { - //printf("resolveTypeDef(%s,%s)\n", + //printf("<<resolveTypeDef(%s,%s)\n", // context ? context->name().data() : "<none>",qualifiedName.data()); QCString result; if (qualifiedName.isEmpty()) return result; @@ -399,7 +399,7 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, while ((is=getScopeFragment(resScopeName,ps,&l))!=-1) { QCString qualScopePart = resScopeName.mid(is,l); - QCString tmp = resolveTypeDef(context,qualScopePart); + QCString tmp = resolveTypeDef(mContext,qualScopePart); if (!tmp.isEmpty()) qualScopePart=tmp; resScope = resScope->findInnerCompound(qualScopePart); //printf("qualScopePart=`%s' resScope=%p\n",qualScopePart.data(),resScope); @@ -444,7 +444,7 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, // step 3: get the member's type if (md) { - //printf("Found typedef name `%s' in scope `%s' value=`%s'\n", + //printf(">>resolveTypeDef: Found typedef name `%s' in scope `%s' value=`%s'\n", // qualifiedName.data(),context->name().data(),md->typeString() // ); result=md->typeString(); @@ -452,13 +452,14 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName, } else { - //printf("Typedef `%s' not found in scope `%s'!\n", + //printf(">>resolveTypeDef: Typedef `%s' not found in scope `%s'!\n", // qualifiedName.data(),context ? context->name().data() : "<global>"); } return result; } + /*! Get a class definition given its name. * Returns 0 if the class is not found. */ @@ -517,6 +518,7 @@ ClassDef *getResolvedClass( { //printf(" typedef value=%s typedefScope=%s\n",subst.data(), // typedefScope?typedefScope->qualifiedName().data():0); + // strip * and & from n int ip=subst.length()-1; while (ip>=0 && (subst.at(ip)=='*' || subst.at(ip)=='&' || subst.at(ip)==' ')) ip--; @@ -533,11 +535,12 @@ ClassDef *getResolvedClass( int count=0; // recursion detection guard QCString newSubst; QCString typeName = subst; + //printf( "---> subst=%s\n",subst.data()); - //if (index!=-1) typeName.prepend(name.left(index)+"::"); while (!(newSubst=resolveTypeDef(typedefScope,typeName)).isEmpty() && count<10) { + //printf( "---> newSubst=%s\n",newSubst.data()); if (typeName==newSubst) { cd = Doxygen::classSDict.find(subst); // for breaking typedef struct A A; @@ -649,7 +652,10 @@ QCString removeRedundantWhiteSpace(const QCString &s) { result+=", "; } - else if (i>0 && isId(s.at(i)) && s.at(i-1)==')') + else if (i>0 && + (isId(s.at(i)) && s.at(i-1)==')') || + (s.at(i)=='\'' && s.at(i-1)==' ') + ) { result+=' '; result+=s.at(i); @@ -1105,6 +1111,14 @@ QCString dateToString(bool includeTime) //return dtString; } +QCString yearToString() +{ + const QDate &d=QDate::currentDate(); + QCString result; + result.sprintf("%d", d.year()); + return result; +} + //---------------------------------------------------------------------- // recursive function that returns the number of branches in the @@ -2719,6 +2733,7 @@ QCString substituteKeywords(const QCString &s,const char *title) if (title) result = substitute(result,"$title",title); result = substitute(result,"$datetime",dateToString(TRUE)); result = substitute(result,"$date",dateToString(FALSE)); + result = substitute(result,"$year",yearToString()); result = substitute(result,"$doxygenversion",versionString); result = substitute(result,"$projectname",Config_getString("PROJECT_NAME")); result = substitute(result,"$projectnumber",Config_getString("PROJECT_NUMBER")); |