From 89f2e4c8f026df987fab492c050e43011ef96871 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Tue, 5 Oct 2004 18:06:58 +0000 Subject: Release-1.3.9 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- doc/language.doc | 40 +++++------ doc/maintainers.txt | 2 +- doc/translator.py | 108 ++++++++++++++++++++++++++-- doc/translator_report.txt | 174 +++------------------------------------------- packages/rpm/doxygen.spec | 2 +- src/code.l | 8 ++- src/doxygen.cpp | 16 ++++- src/entry.h | 16 +++-- src/htmlgen.cpp | 82 ++++++++++++++++++++-- src/htmlgen.h | 4 +- src/latexgen.cpp | 5 +- src/latexgen.h | 4 +- src/mangen.h | 4 +- src/memberdef.cpp | 15 ++-- src/memberdef.h | 2 + src/outputgen.h | 4 +- src/outputlist.h | 8 ++- src/rtfgen.h | 4 +- src/scanner.l | 19 ++++- src/translator_br.h | 53 +++++++++++++- src/translator_es.h | 19 ----- src/translator_fi.h | 24 ------- src/translator_fr.h | 62 ++++++++++++++++- src/translator_gr.h | 15 ++-- 27 files changed, 419 insertions(+), 281 deletions(-) diff --git a/INSTALL b/INSTALL index b021333..5e1a6b0 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.3.8-20040928 +DOXYGEN Version 1.3.9 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (28 September 2004) +Dimitri van Heesch (05 October 2004) diff --git a/README b/README index b06c141..20f8995 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3.8_20040928 +DOXYGEN Version 1.3.9 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) (28 September 2004) +Dimitri van Heesch (dimitri@stack.nl) (05 October 2004) diff --git a/VERSION b/VERSION index 414daa2..d4c4950 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.8-20040928 +1.3.9 diff --git a/doc/language.doc b/doc/language.doc index a56a419..7281318 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other than English (the default). The output language is chosen through the configuration file (with default name and known as Doxyfile). -Currently (version 1.3.8-20040913), 30 languages +Currently (version 1.3.9), 30 languages are supported (sorted alphabetically): Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, @@ -59,8 +59,8 @@ when the translator was updated. Brazilian Portuguese Fabio "FJTC" Jun Takada Chino - chino at icmc dot sc dot usp dot br - 1.3.9 + jun-chino at uol dot com dot br + up-to-date Catalan @@ -72,7 +72,7 @@ when the translator was updated. Chinese Li Daobing
Wei Liu lidaobing at gmail dot com
liuwei at asiainfo dot com - 1.3.9 + up-to-date Chinese Traditional @@ -84,7 +84,7 @@ when the translator was updated. Croatian Boris Bralo boris.bralo at zg dot htnet dot hr - 1.3.9 + up-to-date Czech @@ -120,13 +120,13 @@ when the translator was updated. French Xavier Outhier xouthier at yahoo dot fr - 1.3.8 + up-to-date German Jens Seidel jensseidel at users dot sf dot net - 1.3.9 + up-to-date Greek @@ -138,13 +138,13 @@ when the translator was updated. Hungarian Földvári György
Ákos Kiss foldvari lost at cyberspace
akiss at users dot sourceforge dot net - 1.3.9 + up-to-date Italian Alessandro Falappa
Ahmed Aldo Faisal alessandro at falappa dot net
aaf23 at cam dot ac dot uk - 1.3.9 + up-to-date Japanese @@ -204,7 +204,7 @@ when the translator was updated. Russian Alexandr Chelpanov cav at cryptopro dot ru - 1.3.9 + up-to-date Serbian @@ -234,7 +234,7 @@ when the translator was updated. Swedish Mikael Hallin mikaelhallin at yahoo dot se - 1.3.8 + up-to-date Ukrainian @@ -259,17 +259,17 @@ when the translator was updated. \hline Afrikaans & Johan Prinsloo & {\tt\tiny johan@zippysnoek.com} & 1.3.9 \\ \hline - Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny chino@icmc.sc.usp.br} & 1.3.9 \\ + Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & up-to-date \\ \hline Catalan & Albert Mora & {\tt\tiny amora@iua.upf.es} & 1.2.17 \\ \hline - Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & 1.3.9 \\ + Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & up-to-date \\ ~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\ \hline Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\ ~ & Gary Lee & {\tt\tiny garylee@ecosine.com.tw} & ~ \\ \hline - Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & 1.3.9 \\ + Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\ \hline Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\ \hline @@ -281,16 +281,16 @@ when the translator was updated. \hline Finnish & Olli Korhonen & {\tt\tiny olli.korhonen lost@cyberspace} & obsolete \\ \hline - French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\ + French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & up-to-date \\ \hline - German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & 1.3.9 \\ + German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & up-to-date \\ \hline Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\ \hline - Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & 1.3.9 \\ + Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & up-to-date \\ ~ & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & ~ \\ \hline - Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & 1.3.9 \\ + Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\ \hline Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & 1.3.9 \\ @@ -316,7 +316,7 @@ when the translator was updated. \hline Romanian & Alexandru Iosup & {\tt\tiny aiosup@yahoo.com} & 1.2.16 \\ \hline - Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & 1.3.9 \\ + Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & up-to-date \\ \hline Serbian & Dejan Milosavljevic & {\tt\tiny dmilos@email.com} & 1.3.8 \\ \hline @@ -326,7 +326,7 @@ when the translator was updated. \hline Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\ \hline - Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.8 \\ + Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & up-to-date \\ \hline Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@parcs.de} & 1.2.11 \\ \hline diff --git a/doc/maintainers.txt b/doc/maintainers.txt index 82275f5..4122e39 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -13,7 +13,7 @@ TranslatorAfrikaans Johan Prinsloo: johan@zippysnoek.com TranslatorBrazilian -Fabio "FJTC" Jun Takada Chino: chino@icmc.sc.usp.br +Fabio "FJTC" Jun Takada Chino: jun-chino@uol.com.br TranslatorCatalan Albert Mora: amora@iua.upf.es diff --git a/doc/translator.py b/doc/translator.py index 1c32b5a..81c2fe6 100644 --- a/doc/translator.py +++ b/doc/translator.py @@ -43,6 +43,7 @@ when the report is not restricted to selected languages explicitly via script arguments. 2004/07/26 - Better reporting of not-needed adapters. + 2004/10/04 - Reporting of not called translator methods added. """ from __future__ import generators @@ -1160,7 +1161,7 @@ class Transl: class TrManager: """Collects basic info and builds subordinate Transl objects.""" - def __init__(self): + def __init__(self): """Determines paths, creates and initializes structures. The arguments of the script may explicitly say what languages should @@ -1355,7 +1356,84 @@ class TrManager: tim = tr.getmtime() if tim > self.lastModificationTime: self.lastModificationTime = tim - + + + def __getNoTrSourceFilesLst(self): + """Returns the list of sources to be checked. + + All .cpp files and also .h files that do not declare and define + the translator methods are included in the list. The file names + are searched in doxygen directory recursively.""" + lst = [] + for path, dirs, files in os.walk(self.doxy_path): + + # Files in doxygen/src should be processed first. + if path == self.doxy_path: + dirs.remove('src') + dirs.insert(0, 'src') + + # Search for names with .cpp extension (case independent) + # and append them to the output list. + for fname in files: + name, ext = os.path.splitext(fname) + ext = ext.lower() + if ext == '.cpp' or (ext == '.h' and name.find('translator') == -1): + lst.append(os.path.join(path, fname)) + + return lst + + + def __removeUsedInFiles(self, fname, dic): + """Removes items for method identifiers that are found in fname. + + The method reads the content of the file as one string and searches + for all identifiers from dic. The identifiers that were found in + the file are removed from the dictionary. + + Note: If more files is to be checked, the files where most items are + probably used should be checked first and the resulting reduced + dictionary should be used for checking the next files (speed up). + """ + lst_in = dic.keys() # identifiers to be searched for + + # Read content of the file as one string. + assert os.path.isfile(fname) + f = file(fname) + cont = f.read() + f.close() + + # Remove the items for identifiers that were found in the file. + while lst_in: + item = lst_in.pop(0) + if cont.find(item) != -1: + del dic[item] + + + def __checkForNotUsedTrMethods(self): + """Returns the dictionary of not used translator methods. + + The method can be called only after self.requiredMethodsDic has been + built. The stripped prototypes are the values, the method identifiers + are the keys. + """ + # Build the dictionary of the required method prototypes with + # method identifiers used as keys. + trdic = {} + for prototype in self.requiredMethodsDic.keys(): + ri = prototype.split('(')[0] + identifier = ri.split()[1].strip() + trdic[identifier] = prototype + + # Build the list of source files where translator method identifiers + # can be used. + files = self.__getNoTrSourceFilesLst() + + # Loop through the files and reduce the dictionary of id -> proto. + for fname in files: + self.__removeUsedInFiles(fname, trdic) + + # Return the dictionary of not used translator methods. + return trdic def generateTranslatorReport(self): @@ -1478,6 +1556,27 @@ class TrManager: f.write(' -- ' + obj.note) f.write('\n') + # Check for not used translator methods and generate warning if found. + # The check is rather time consuming, so it is not done when report + # is restricted to explicitly given language identifiers. + if not self.script_argLst: + dic = self.__checkForNotUsedTrMethods() + if dic: + s = '''WARNING FOR DEVELOPERS: The following translator + methods are declared in the Translator class but their + identifiers do not appear in source files. The situation + should be checked. The .cpp files and .h files excluding + the 'translator*.h' files were simply searched for + occurence of the method identifiers:''' + f.write('\n' + '=' * 70 + '\n') + f.write(fill(s) + '\n\n') + + keys = dic.keys() + keys.sort() + for key in keys: + f.write(' ' + dic[key] + '\n') + f.write('\n') + # Write the details for the translators. f.write('\n' + '=' * 70) f.write('\nDetails for translators (classes sorted alphabetically):\n') @@ -1494,8 +1593,6 @@ class TrManager: f.close() - - def __loadMaintainers(self): """Load and process the file with the maintainers. @@ -1545,7 +1642,8 @@ class TrManager: assert(len(lst) == 2) t = (lst[0].strip(), lst[1].strip()) self.__maintainersDic[classId].append(t) - f.close() + f.close() + def generateLanguageDoc(self): """Checks the modtime of files and generates language.doc.""" diff --git a/doc/translator_report.txt b/doc/translator_report.txt index 924252f..2c73b00 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -1,4 +1,4 @@ -(1.3.8-20040913) +(1.3.9) Doxygen supports the following 30 languages (sorted alphabetically): @@ -8,7 +8,7 @@ German, Greek, Hungarian, Italian, Japanese (+En), Korean (+En), Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. -Of them, 4 translators are up-to-date, 26 translators are based on +Of them, 13 translators are up-to-date, 17 translators are based on some adapter class, and 2 are English based. ---------------------------------------------------------------------- @@ -17,10 +17,19 @@ alphabetically). This means that they derive from the Translator class and they implement all 201 of the required methods. Anyway, there still may be some details listed even for them: + TranslatorBrazilian + TranslatorChinese + TranslatorCroatian TranslatorCzech TranslatorDutch TranslatorEnglish + TranslatorFrench + TranslatorGerman + TranslatorHungarian + TranslatorItalian TranslatorPolish + TranslatorRussian + TranslatorSwedish ---------------------------------------------------------------------- The following translator classes need some maintenance (the most @@ -28,23 +37,14 @@ obsolete at the end). The other info shows the estimation of Doxygen version when the class was last updated and number of methods that must be implemented to become up-to-date: - TranslatorRussian 1.3.9 6 methods to implement TranslatorNorwegian 1.3.9 6 methods to implement TranslatorJapanese 1.3.9 6 methods to implement - TranslatorItalian 1.3.9 6 methods to implement - TranslatorHungarian 1.3.9 6 methods to implement - TranslatorGerman 1.3.9 6 methods to implement TranslatorDanish 1.3.9 6 methods to implement - TranslatorCroatian 1.3.9 6 methods to implement - TranslatorChinese 1.3.9 6 methods to implement - TranslatorBrazilian 1.3.9 6 methods to implement TranslatorAfrikaans 1.3.9 6 methods to implement - TranslatorSwedish 1.3.8 7 methods to implement TranslatorSpanish 1.3.8 7 methods to implement TranslatorSerbian 1.3.8 7 methods to implement TranslatorLithuanian 1.3.8 7 methods to implement TranslatorKorean 1.3.8 7 methods to implement - TranslatorFrench 1.3.8 7 methods to implement TranslatorChinesetraditional 1.3.8 7 methods to implement TranslatorPortuguese 1.3.3 11 methods to implement TranslatorSlovak 1.2.18 20 methods to implement @@ -84,21 +84,6 @@ TranslatorAfrikaans (TranslatorAdapter_1_3_9) 6 methods to implement virtual QCString trDir(bool first_capital, bool singular) -TranslatorBrazilian (TranslatorAdapter_1_3_9) 6 methods to implement -------------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorCatalan (TranslatorAdapter_1_2_17) 21 methods to implement ----------------- @@ -129,21 +114,6 @@ TranslatorCatalan (TranslatorAdapter_1_2_17) 21 methods to implement virtual QCString trAll() -TranslatorChinese (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorChinesetraditional (TranslatorAdapter_1_3_8) 7 methods to implement ---------------------------- @@ -160,21 +130,6 @@ TranslatorChinesetraditional (TranslatorAdapter_1_3_8) 7 methods to implement virtual QCString trDir(bool first_capital, bool singular) -TranslatorCroatian (TranslatorAdapter_1_3_9) 6 methods to implement ------------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorDanish (TranslatorAdapter_1_3_9) 6 methods to implement ---------------- @@ -298,44 +253,9 @@ TranslatorFinnish (TranslatorEnglish) 98 methods to implement Obsolete methods (should be removed, never used): - QCString trGeneratedFrom(const char * s, bool single) - QCString trVerbatimText(const char * f) QCString trFiles() virtual QCString updateNeededMessage() QCString trAuthors() - QCString latexBabelPackage() - QCString trAuthor() - - -TranslatorFrench (TranslatorAdapter_1_3_8) 7 methods to implement ----------------- - - Implements 194 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trSourceFile(QCString & filename) - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - -TranslatorGerman (TranslatorAdapter_1_3_9) 6 methods to implement ----------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) TranslatorGreek (TranslatorAdapter_1_2_11) 25 methods to implement @@ -371,40 +291,6 @@ TranslatorGreek (TranslatorAdapter_1_2_11) 25 methods to implement virtual QCString trAll() virtual QCString trRTFTableOfContents() - Obsolete methods (should be removed, never used): - - virtual QCString latexBabelPackage() - - -TranslatorHungarian (TranslatorAdapter_1_3_9) 6 methods to implement -------------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - -TranslatorItalian (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - TranslatorJapanese (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ @@ -547,21 +433,6 @@ TranslatorRomanian (TranslatorAdapter_1_2_16) 22 methods to implement virtual QCString trRTFTableOfContents() -TranslatorRussian (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorSerbian (TranslatorAdapter_1_3_8) 7 methods to implement ----------------- @@ -653,29 +524,6 @@ TranslatorSpanish (TranslatorAdapter_1_3_8) 7 methods to implement virtual QCString trDirReference(const char * dirName) virtual QCString trDir(bool first_capital, bool singular) - Obsolete methods (should be removed, never used): - - virtual QCString trVerbatimText(const char * f) - virtual QCString trFiles() - virtual QCString trAuthors() - virtual QCString latexBabelPackage() - - -TranslatorSwedish (TranslatorAdapter_1_3_8) 7 methods to implement ------------------ - - Implements 194 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trSourceFile(QCString & filename) - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - TranslatorUkrainian (TranslatorAdapter_1_2_11) 25 methods to implement ------------------- diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index d71a65d..ab7eccd 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.8_20040928 +Version: 1.3.9 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/src/code.l b/src/code.l index a343058..fd47652 100644 --- a/src/code.l +++ b/src/code.l @@ -1807,6 +1807,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'")) g_code->codify(yytext); g_curlyCount++; g_inClass=TRUE; + if (YY_START==ClassVar) + { + g_curClassName = g_name.copy(); + } if (g_searchingForBody) { g_searchingForBody=FALSE; @@ -2397,12 +2401,12 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'")) BEGIN( SkipInits ); } } -("const"|"volatile")({BN}+("const"|"volatile"))*{BN}*/";" { +("const"|"volatile")({BN}+("const"|"volatile"))*{BN}*/[;=] { startFontClass("keyword"); codifyLines(yytext); endFontClass(); } -("const"|"volatile")*({BN}+("const"|"volatile"))*"{" { +("const"|"volatile")*({BN}+("const"|"volatile"))*{BN}*"{" { if (g_insideBody) { g_theVarContext.pushScope(); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 6419935..00d4dde 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -4453,6 +4453,20 @@ static void findMember(Entry *root, } scopeName=stripTemplateSpecifiersFromScope( removeRedundantWhiteSpace(scopeName),FALSE,&funcSpec); + + // funcSpec contains the last template specifiers of the given scope. + // If this method does not have any template arguments or they are + // empty while funcSpec is not empty we assume this is a + // specialization of a method. If not, we clear the funcSpec and treat + // this as a normal method of a template class. + if (!(root->tArgLists && + root->tArgLists->count()>0 && + root->tArgLists->first()->count()==0 + ) + ) + { + funcSpec.resize(0); + } // split scope into a namespace and a class part extractNamespaceName(scopeName,className,namespaceName,TRUE); @@ -4897,7 +4911,7 @@ static void findMember(Entry *root, } else { - //printf("Specialized member %s of unknown scope %s%s found!\n", + //printf("*** Specialized member %s of unknown scope %s%s found!\n", // scopeName.data(),funcName.data(),funcArgs.data()); } } diff --git a/src/entry.h b/src/entry.h index 1c7a0ee..16aef94 100644 --- a/src/entry.h +++ b/src/entry.h @@ -235,13 +235,15 @@ class Entry }; enum MemberSpecifier { - Inline = 0x01, - Explicit = 0x02, - Mutable = 0x04, - Settable = 0x08, - Gettable = 0x10, - Readable = 0x20, - Writable = 0x40 + Inline = 0x0001, + Explicit = 0x0002, + Mutable = 0x0004, + Settable = 0x0008, + Gettable = 0x0010, + Readable = 0x0020, + Writable = 0x0040, + Final = 0x0080, + Abstract = 0x0100, }; Entry(); diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 53e2520..87b168d 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -189,7 +189,7 @@ static const char *defaultStyleSheet = "}\n" ".mdescLeft {\n" " padding: 0px 8px 4px 8px;\n" -" font-size: 14px;\n" +" font-size: 12px;\n" " font-style: italic;\n" " background-color: #FAFAFA;\n" " border-top: 1px none #E0E0E0;\n" @@ -200,7 +200,7 @@ static const char *defaultStyleSheet = "}\n" ".mdescRight {\n" " padding: 0px 8px 4px 8px;\n" -" font-size: 14px;\n" +" font-size: 12px;\n" " font-style: italic;\n" " background-color: #FAFAFA;\n" " border-top: 1px none #E0E0E0;\n" @@ -216,11 +216,11 @@ static const char *defaultStyleSheet = " border-right-width: 1px;\n" " border-bottom-width: 1px;\n" " border-left-width: 1px;\n" -" border-top-style: solid;\n" " border-top-color: #E0E0E0;\n" " border-right-color: #E0E0E0;\n" " border-bottom-color: #E0E0E0;\n" " border-left-color: #E0E0E0;\n" +" border-top-style: solid;\n" " border-right-style: none;\n" " border-bottom-style: none;\n" " border-left-style: none;\n" @@ -234,17 +234,72 @@ static const char *defaultStyleSheet = " border-right-width: 1px;\n" " border-bottom-width: 1px;\n" " border-left-width: 1px;\n" +" border-top-color: #E0E0E0;\n" +" border-right-color: #E0E0E0;\n" +" border-bottom-color: #E0E0E0;\n" +" border-left-color: #E0E0E0;\n" " border-top-style: solid;\n" +" border-right-style: none;\n" +" border-bottom-style: none;\n" +" border-left-style: none;\n" +" background-color: #FAFAFA;\n" +" font-size: 13px;\n" +"}\n" +".memTemplItemLeft {\n" +" padding: 1px 0px 0px 8px;\n" +" margin: 4px;\n" +" border-top-width: 1px;\n" +" border-right-width: 1px;\n" +" border-bottom-width: 1px;\n" +" border-left-width: 1px;\n" +" border-top-color: #E0E0E0;\n" +" border-right-color: #E0E0E0;\n" +" border-bottom-color: #E0E0E0;\n" +" border-left-color: #E0E0E0;\n" +" border-top-style: none;\n" +" border-right-style: none;\n" +" border-bottom-style: none;\n" +" border-left-style: none;\n" +" background-color: #FAFAFA;\n" +" font-size: 12px;\n" +"}\n" +".memTemplItemRight {\n" +" padding: 1px 8px 0px 8px;\n" +" margin: 4px;\n" +" border-top-width: 1px;\n" +" border-right-width: 1px;\n" +" border-bottom-width: 1px;\n" +" border-left-width: 1px;\n" " border-top-color: #E0E0E0;\n" " border-right-color: #E0E0E0;\n" " border-bottom-color: #E0E0E0;\n" " border-left-color: #E0E0E0;\n" +" border-top-style: none;\n" " border-right-style: none;\n" " border-bottom-style: none;\n" " border-left-style: none;\n" " background-color: #FAFAFA;\n" " font-size: 13px;\n" "}\n" +".memTemplParams {\n" +" padding: 1px 0px 0px 8px;\n" +" margin: 4px;\n" +" border-top-width: 1px;\n" +" border-right-width: 1px;\n" +" border-bottom-width: 1px;\n" +" border-left-width: 1px;\n" +" border-top-color: #E0E0E0;\n" +" border-right-color: #E0E0E0;\n" +" border-bottom-color: #E0E0E0;\n" +" border-left-color: #E0E0E0;\n" +" border-top-style: solid;\n" +" border-right-style: none;\n" +" border-bottom-style: none;\n" +" border-left-style: none;\n" +" color: #606060;\n" +" background-color: #FAFAFA;\n" +" font-size: 12px;\n" +"}\n" ".search { color: #003399;\n" " font-weight: bold;\n" "}\n" @@ -866,7 +921,8 @@ void HtmlGenerator::startMemberItem(int annoType) { case 0: t << ""; break; case 1: t << ""; break; - default: t << ""; break; + case 2: t << ""; break; + default: t << ""; break; } } else @@ -885,13 +941,27 @@ void HtmlGenerator::endMemberItem() t << endl; } +void HtmlGenerator::startMemberTemplateParams() +{ +} + +void HtmlGenerator::endMemberTemplateParams() +{ + if (Config_getBool("HTML_ALIGN_MEMBERS")) + { + t << "" << endl; + t << ""; + } +} + -void HtmlGenerator::insertMemberAlign() +void HtmlGenerator::insertMemberAlign(bool templ) { DBG_HTML(t << "" << endl) if (Config_getBool("HTML_ALIGN_MEMBERS")) { - t << " "; + QCString className = templ ? "memTemplItemRight" : "memItemRight"; + t << " "; } } diff --git a/src/htmlgen.h b/src/htmlgen.h index a58d986..ee2112a 100644 --- a/src/htmlgen.h +++ b/src/htmlgen.h @@ -100,6 +100,8 @@ class HtmlGenerator : public OutputGenerator void endAnonTypeScope(int) {} void startMemberItem(int); void endMemberItem(); + void startMemberTemplateParams(); + void endMemberTemplateParams(); void startMemberGroupHeader(bool); void endMemberGroupHeader(); @@ -108,7 +110,7 @@ class HtmlGenerator : public OutputGenerator void startMemberGroup(); void endMemberGroup(bool); - void insertMemberAlign(); + void insertMemberAlign(bool); void startMemberDescription(); void endMemberDescription(); diff --git a/src/latexgen.cpp b/src/latexgen.cpp index fed312d..0554b19 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -159,7 +159,7 @@ void LatexGenerator::init() QTextStream t(&file); if (!Config_getBool("USE_PDFLATEX")) // use plain old latex { - t << "all: refman.dvi" << endl + t << "all clean: refman.dvi" << endl << endl << "ps: refman.ps" << endl << endl @@ -208,7 +208,7 @@ void LatexGenerator::init() } else // use pdflatex for higher quality output { - t << "all: refman.pdf" << endl << endl; + t << "all clean: refman.pdf" << endl << endl; t << "refman.pdf: refman.tex" << endl; t << "\tpdflatex refman.tex" << endl; t << "\tmakeindex refman.idx" << endl; @@ -1391,6 +1391,7 @@ void LatexGenerator::endMemberDescription() else { t << "}\\\\"; + m_indent=0; } } diff --git a/src/latexgen.h b/src/latexgen.h index 6506794..7b2be4f 100644 --- a/src/latexgen.h +++ b/src/latexgen.h @@ -98,6 +98,8 @@ class LatexGenerator : public OutputGenerator void endAnonTypeScope(int); void startMemberItem(int); void endMemberItem(); + void startMemberTemplateParams() {} + void endMemberTemplateParams() {} void startMemberGroupHeader(bool); void endMemberGroupHeader(); @@ -106,7 +108,7 @@ class LatexGenerator : public OutputGenerator void startMemberGroup(); void endMemberGroup(bool); - void insertMemberAlign() {} + void insertMemberAlign(bool) {} void writeRuler() { t << endl << endl; /*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */ } void writeAnchor(const char *fileName,const char *name); diff --git a/src/mangen.h b/src/mangen.h index ac5bbe5..ddc5adb 100644 --- a/src/mangen.h +++ b/src/mangen.h @@ -93,7 +93,7 @@ class ManGenerator : public OutputGenerator void endMemberSections() {} void startMemberHeader(); void endMemberHeader(); - void insertMemberAlign() {} + void insertMemberAlign(bool) {} void startMemberSubtitle() {} void endMemberSubtitle() {} void writeListItem(); @@ -103,6 +103,8 @@ class ManGenerator : public OutputGenerator void endAnonTypeScope(int); void startMemberItem(int); void endMemberItem(); + void startMemberTemplateParams() {} + void endMemberTemplateParams() {} void startMemberGroupHeader(bool); void endMemberGroupHeader(); diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 4d505f4..b5e40af 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -178,7 +178,7 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd, } if (!a->name.isEmpty() || (a->name.isEmpty() && a->type=="...")) // argument has a name { - if (!hasFuncPtrType); + if (!hasFuncPtrType) { ol.docify(" "); } @@ -886,8 +886,9 @@ void MemberDef::writeDeclaration(OutputList &ol, ClassDef *annoClassDef=getClassDefOfAnonymousType(); // start a new member declaration + bool isAnonymous = annoClassDef || annMemb || annEnumType; ///printf("startMemberItem for %s\n",name().data()); - ol.startMemberItem((annoClassDef || annMemb || annEnumType) ? 1 : 0); + ol.startMemberItem( isAnonymous ? 1 : tArgList ? 3 : 0); // If there is no detailed description we need to write the anchor here. bool detailsVisible = isDetailedSectionLinkable(); @@ -915,8 +916,9 @@ void MemberDef::writeDeclaration(OutputList &ol, if (tArgList) { + if (!isAnonymous) ol.startMemberTemplateParams(); writeTemplatePrefix(ol,tArgList); - //ol.lineBreak(); + if (!isAnonymous) ol.endMemberTemplateParams(); } QCString ltype(type); @@ -1001,7 +1003,7 @@ void MemberDef::writeDeclaration(OutputList &ol, } else { - ol.insertMemberAlign(); + ol.insertMemberAlign(tArgList!=0); } // write name @@ -1433,7 +1435,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, isMutable() || (isInline() && Config_getBool("INLINE_INFO")) || isSignal() || isSlot() || isStatic() || (classDef && classDef!=container) || - isSettable() || isGettable() || isReadable() || isWritable() + isSettable() || isGettable() || isReadable() || isWritable() || + isFinal() || isAbstract() ) ) { @@ -1455,6 +1458,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, if (isSettable()) sl.append("set"); if (isReadable()) sl.append("read"); if (isWritable()) sl.append("write"); + if (isFinal()) sl.append("final"); + if (isAbstract()) sl.append("abstract"); if (protection()==Protected) sl.append("protected"); else if (protection()==Private) sl.append("private"); else if (protection()==Package) sl.append("package"); diff --git a/src/memberdef.h b/src/memberdef.h index b7dbf46..5456e98 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -132,6 +132,8 @@ class MemberDef : public Definition bool isSettable() const { return (memSpec&Entry::Settable)!=0; } bool isReadable() const { return (memSpec&Entry::Readable)!=0; } bool isWritable() const { return (memSpec&Entry::Writable)!=0; } + bool isFinal() const { return (memSpec&Entry::Final)!=0; } + bool isAbstract() const { return (memSpec&Entry::Abstract)!=0; } bool isImplementation() const { return m_implOnly; } bool isExternal() const { return explExt; } bool isTemplateSpecialization() const { return tspec; } diff --git a/src/outputgen.h b/src/outputgen.h index 214ffaf..8d02b82 100644 --- a/src/outputgen.h +++ b/src/outputgen.h @@ -307,13 +307,15 @@ class OutputGenerator : public BaseOutputDocInterface virtual void endAnonTypeScope(int) = 0; virtual void startMemberItem(int) = 0; virtual void endMemberItem() = 0; + virtual void startMemberTemplateParams() = 0; + virtual void endMemberTemplateParams() = 0; virtual void startMemberGroupHeader(bool) = 0; virtual void endMemberGroupHeader() = 0; virtual void startMemberGroupDocs() = 0; virtual void endMemberGroupDocs() = 0; virtual void startMemberGroup() = 0; virtual void endMemberGroup(bool) = 0; - virtual void insertMemberAlign() = 0; + virtual void insertMemberAlign(bool) = 0; virtual void startMemberDoc(const char *,const char *, const char *,const char *) = 0; virtual void endMemberDoc(bool) = 0; diff --git a/src/outputlist.h b/src/outputlist.h index ffd4c51..a4be838 100644 --- a/src/outputlist.h +++ b/src/outputlist.h @@ -170,6 +170,10 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::startMemberItem,i1); } void endMemberItem() { forall(&OutputGenerator::endMemberItem); } + void startMemberTemplateParams() + { forall(&OutputGenerator::startMemberTemplateParams); } + void endMemberTemplateParams() + { forall(&OutputGenerator::endMemberTemplateParams); } void startMemberGroupHeader(bool b) { forall(&OutputGenerator::startMemberGroupHeader,b); } void endMemberGroupHeader() @@ -182,8 +186,8 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::startMemberGroup); } void endMemberGroup(bool last) { forall(&OutputGenerator::endMemberGroup,last); } - void insertMemberAlign() - { forall(&OutputGenerator::insertMemberAlign); } + void insertMemberAlign(bool templ=FALSE) + { forall(&OutputGenerator::insertMemberAlign,templ); } void writeRuler() { forall(&OutputGenerator::writeRuler); } void writeAnchor(const char *fileName,const char *name) diff --git a/src/rtfgen.h b/src/rtfgen.h index 8cfbed5..b4c1dac 100644 --- a/src/rtfgen.h +++ b/src/rtfgen.h @@ -106,9 +106,11 @@ class RTFGenerator : public OutputGenerator void endAnonTypeScope(int) {} void startMemberItem(int); void endMemberItem(); + void startMemberTemplateParams() {} + void endMemberTemplateParams() {} //void memberGroupSpacing(bool) {} //void memberGroupSeparator() {} - void insertMemberAlign() {} + void insertMemberAlign(bool) {} void writeRuler() { rtfwriteRuler_thin(); } diff --git a/src/scanner.l b/src/scanner.l index 3260974..870590c 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -1209,8 +1209,12 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] if (!insidePHP) { current->type += " abstract "; + current->virt = Pure; + } + else + { + current->memSpec|=Entry::Abstract; } - current->virt = Pure; lineCount(); } {B}*"inline"{BN}+ { current->memSpec|=Entry::Inline; @@ -3295,6 +3299,19 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] } } //printf("Adding entry `%s'\n",current->name.data()); + if ( insidePHP) + { + if (current->type.left(6) == "final " ) + { + current->type = current->type.mid(6); + current->memSpec |= Entry::Final; + } + if (current->type.left(9) == "abstract " ) + { + current->type = current->type.mid(9); + current->memSpec |= Entry::Abstract; + } + } if ( insidePHP && current->type.left(8) != "function" ) { initEntry(); diff --git a/src/translator_br.h b/src/translator_br.h index 4ebccad..576b6a3 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -15,6 +15,8 @@ * Version: 1.3.8 (2004/06/30) * * History: + * 1.3.9 + * - Updated to Doxygen 1.3.9 * 1.3.8 * - Updated to Doxygen 1.3.8 * 1.3.3: @@ -32,7 +34,7 @@ #ifndef TRANSLATOR_BR_H #define TRANSLATOR_BR_H -class TranslatorBrazilian : public TranslatorAdapter_1_3_9 +class TranslatorBrazilian : public Translator { public: @@ -1547,6 +1549,53 @@ class TranslatorBrazilian : public TranslatorAdapter_1_3_9 { return "Código-Fonte de " + filename; } - + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.9 +////////////////////////////////////////////////////////////////////////// + + /*! This is used as the name of the chapter containing the directory + * hierarchy. + */ + virtual QCString trDirIndex() + { return "Hierarquia de Diretórios"; } + + /*! This is used as the name of the chapter containing the documentation + * of the directories. + */ + virtual QCString trDirDocumentation() + { return "Documentação do Directório"; } + + /*! This is used as the title of the directory index and also in the + * Quick links of a HTML page, to link to the directory hierarchy. + */ + virtual QCString trDirectories() + { return "Diretórios"; } + + /*! This returns a sentences that introduces the directory hierarchy. + * and the fact that it is sorted alphabetically per level + */ + virtual QCString trDirDescription() + { return "Esta Hierarquia de Diretórios está parcialmente ordenada (ordem alfabética)"; } + + /*! This returns the title of a directory page. The name of the + * directory is passed via \a dirName. + */ + virtual QCString trDirReference(const char *dirName) + { + QCString result = "Referência do diretório "; + result += dirName; + return result; + } + + /*! This returns the word directory with or without starting capital + * (\a first_capital) and in sigular or plural form (\a singular). + */ + virtual QCString trDir(bool first_capital, bool singular) + { + QCString result((first_capital ? "Diretório" : "diretório")); + if (!singular) result+="s"; + return result; + } }; #endif diff --git a/src/translator_es.h b/src/translator_es.h index d6f4b48..6baad28 100644 --- a/src/translator_es.h +++ b/src/translator_es.h @@ -30,9 +30,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_8 public: virtual QCString idLanguage() { return "spanish"; } - /*! returns the name of the package that is included by LaTeX */ - virtual QCString latexBabelPackage() - { return ""; } /*! Used to get the LaTeX command(s) for the language support. * This method should return string with commands that switch @@ -129,12 +126,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_8 virtual QCString trDefinedIn() { return "definido en"; } - /*! put as in introduction in the verbatim header file of a class. - * parameter f is the name of the include file. - */ - virtual QCString trVerbatimText(const char *f) - { return (QCString)"Este es el texto al pie de la letra del archivo "+f+" adjunto."; } - // quick reference sections /*! This is put above each page as a link to the list of all groups of @@ -412,12 +403,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_8 virtual QCString trCompounds() { return "Clases"; } - /*! This is used in the documentation of a group before the list of - * links to documented files - */ - virtual QCString trFiles() - { return "Archivos"; } - /*! This is used in the standard footer of each page and indicates when * the page was generated */ @@ -465,10 +450,6 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_8 virtual QCString trDate() { return "Fecha"; } - /*! this text is generated when the \\author command is used. */ - virtual QCString trAuthors() - { return "Autor(es)"; } - /*! this text is generated when the \return command is used. */ virtual QCString trReturns() { return "Devuelve"; } diff --git a/src/translator_fi.h b/src/translator_fi.h index 19d4b62..053e45c 100644 --- a/src/translator_fi.h +++ b/src/translator_fi.h @@ -90,9 +90,6 @@ class TranslatorFinnish : public TranslatorEnglish QCString idLanguage() { return "finnish"; } - QCString latexBabelPackage() - // returns the name of the package that is included by LaTeX - { return "finnish"; } QCString trRelatedFunctions() // used in the compound documentation before a list of related functions. @@ -124,18 +121,6 @@ class TranslatorFinnish : public TranslatorEnglish // header that is put before the list of member attributes. { return "Jäsen Datan Dokumentaatio"; } // "Member Data Documentation" - QCString trGeneratedFrom(const char *s,bool single) - { // here s is one of " Class", " Struct" or " Union" - // single is true implies a single file - QCString result=(QCString)"Tämän "+s+ // "The documentation for this"+s+ - " dokumentaatio on generoitu ";// " was generated from the following file"; - if (single) - result+="seuraavasta tiedostosta:"; - else - result+="seuraavista tiedostoista:"; - return result; - } - QCString trMore() // this is the text of a link put after brief descriptions. { return "Lisää..."; } // "More..." @@ -180,11 +165,6 @@ class TranslatorFinnish : public TranslatorEnglish // put after an undocumented member in the list of all members { return "määritelty"; } // "defined in" - QCString trVerbatimText(const char *f) - // put as in introduction in the verbatim header file of a class. - // parameter f is the name of the include file. - { return (QCString)"Tämä on lyhennetty esitys "+f+" include tiedostosta."; } // "This is the verbatim text of the "+f+" include file." - // quick reference sections QCString trModules() // This is put above each page as a link to the list of all groups of @@ -349,10 +329,6 @@ class TranslatorFinnish : public TranslatorEnglish // list of (global) variables { return "Enumeraation arvot"; } // "Enumeration values" - QCString trAuthor() - // This is used in man pages as the author section. - { return "Tekijä"; } // "Author" - QCString trDefineDocumentation() // This is used in the documentation of a file before the list of // documentation blocks for defines diff --git a/src/translator_fr.h b/src/translator_fr.h index 0fb4c12..7b32cb9 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -85,7 +85,7 @@ // Translator class (by the local maintainer) when the localized // translator is made up-to-date again. -class TranslatorFrench : public TranslatorAdapter_1_3_8 +class TranslatorFrench : public Translator { public: @@ -1590,6 +1590,66 @@ class TranslatorFrench : public TranslatorAdapter_1_3_8 return "Correspondances:"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.3.8 +////////////////////////////////////////////////////////////////////////// + + /*! This is used in HTML as the title of page with source code for file filename + */ + virtual QCString trSourceFile(QCString& filename) + { + return " Fichier source de " + filename; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.9 +////////////////////////////////////////////////////////////////////////// + + /*! This is used as the name of the chapter containing the directory + * hierarchy. + */ + virtual QCString trDirIndex() + { return "Hiérarchie de répertoires"; } + + /*! This is used as the name of the chapter containing the documentation + * of the directories. + */ + virtual QCString trDirDocumentation() + { return "Documentation des répertoires"; } + + /*! This is used as the title of the directory index and also in the + * Quick links of a HTML page, to link to the directory hierarchy. + */ + virtual QCString trDirectories() + { return "Répertoires"; } + + /*! This returns a sentences that introduces the directory hierarchy. + * and the fact that it is sorted alphabetically per level + */ + virtual QCString trDirDescription() + { return "Cette hiérarchie de répertoire est triée approximativement, " + "mais pas complètement, par ordre alphabétique:"; + } + + /*! This returns the title of a directory page. The name of the + * directory is passed via \a dirName. + */ + virtual QCString trDirReference(const char *dirName) + { + QCString result="Répertoire de référence de "; result+=dirName; + return result; + } + + /*! This returns the word directory with or without starting capital + * (\a first_capital) and in sigular or plural form (\a singular). + */ + virtual QCString trDir(bool first_capital, bool singular) + { + QCString result((first_capital ? "Répertoire" : "répertoire")); + if (singular) result+=""; else result+="s"; + return result; + } + }; #endif diff --git a/src/translator_gr.h b/src/translator_gr.h index 3e39781..dbe373a 100644 --- a/src/translator_gr.h +++ b/src/translator_gr.h @@ -37,15 +37,12 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11 */ virtual QCString idLanguage() { return "greek"; } - virtual QCString latexBabelPackage() - { - return "greek"; - } - virtual QCString latexLanguageSupportCommand() - { - return "\\usepackage[greek,english]{babel}\n\\usepackage[iso-8859-7]{inputenc}\n"; - } - + + virtual QCString latexLanguageSupportCommand() + { + return "\\usepackage[greek,english]{babel}\n\\usepackage[iso-8859-7]{inputenc}\n"; + } + /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() { -- cgit v0.12