summaryrefslogtreecommitdiffstats
path: root/Tests/JavaExportImport/BuildExport
Commit message (Expand)AuthorAgeFilesLines
* Tests: Test namespaces with exported JARsMatthew Woehlke2017-04-211-1/+4
* Tests: Add test for exported JARsMatthew Woehlke2016-06-072-0/+21
'/oss-git/Doxygen.git/patch/?id=5f3d8499c05e9eb512b72d296073041ac4da6f4d'>patch) tree0653bda058f25d9420dd6ddcaf4edc28781a8aa4 parenta0924f7d469a42ab962763ce34ea5fabc73da9d7 (diff)downloadDoxygen-5f3d8499c05e9eb512b72d296073041ac4da6f4d.zip
Doxygen-5f3d8499c05e9eb512b72d296073041ac4da6f4d.tar.gz
Doxygen-5f3d8499c05e9eb512b72d296073041ac4da6f4d.tar.bz2
Release-1.5.8-20090129
Diffstat
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--addon/doxywizard/doxywizard.pro.in4
-rwxr-xr-xconfigure2
-rw-r--r--src/classdef.cpp17
-rw-r--r--src/config.xml3
-rw-r--r--src/doxygen.cpp109
-rw-r--r--src/entry.h11
-rw-r--r--src/htmlgen.cpp2
-rw-r--r--src/htmlhelp.cpp41
-rw-r--r--src/memberlist.cpp10
-rw-r--r--src/portable.cpp4
-rw-r--r--src/rtfgen.cpp5
-rw-r--r--src/scanner.l2
-rw-r--r--src/translator_de.h17
-rw-r--r--src/translator_en.h5
-rw-r--r--src/translator_fi.h61
-rw-r--r--src/translator_hr.h26
-rw-r--r--src/translator_kr.h5
-rw-r--r--src/translator_ro.h651
-rw-r--r--src/util.cpp5
-rw-r--r--src/vhdlcode.l9
-rw-r--r--src/vhdldocgen.cpp6
-rw-r--r--src/vhdlscanner.l7
24 files changed, 623 insertions, 387 deletions
diff --git a/INSTALL b/INSTALL
index 1388ba7..3ae9eda 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.5.8
+DOXYGEN Version 1.5.8-20090129
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (27 December 2008)
+Dimitri van Heesch (29 January 2009)
diff --git a/README b/README
index 69c939b..3ae756e 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.5.8
+DOXYGEN Version 1.5.8_20090129
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) (27 December 2008)
+Dimitri van Heesch (dimitri@stack.nl) (29 January 2009)
diff --git a/addon/doxywizard/doxywizard.pro.in b/addon/doxywizard/doxywizard.pro.in
index 2967d29..b9f8f70 100644
--- a/addon/doxywizard/doxywizard.pro.in
+++ b/addon/doxywizard/doxywizard.pro.in
@@ -14,6 +14,10 @@ MOC_DIR = moc
RCC_DIR = rcc
DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
+macx-g++ {
+ CONFIG += x86 ppc
+}
+
# Input
HEADERS += doxywizard.h version.h expert.h config.h helplabel.h \
inputbool.h inputstring.h inputint.h inputstrlist.h wizard.h
diff --git a/configure b/configure
index 4d33df2..75e4f0d 100755
--- a/configure
+++ b/configure
@@ -543,7 +543,7 @@ EOF
EOF
fi
fi
-if test "$f_platform" = "hpux-g++"; then
+if test "$f_platform" = "hpux-g++" -o "$f_platform" = "linux-g++"; then
cat >> .tmakeconfig <<EOF
TMAKE_CXXFLAGS += -D_LARGEFILE_SOURCE
EOF
diff --git a/src/classdef.cpp b/src/classdef.cpp
index c62a7de..b20a222 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -133,7 +133,7 @@ class ClassDefImpl
/*! The class this class is an instance of. */
ClassDef *templateMaster;
- /*! class name with outer class scope, but without namespace scope. */
+ /*! local class name which could be a typedef'ed alias name. */
QCString className;
/*! If this class is a Objective-C category, then this points to the
@@ -209,8 +209,8 @@ void ClassDefImpl::init(const char *defFileName, const char *name,
membersMerged = FALSE;
categoryOf = 0;
usedOnly = FALSE;
- QCString ns;
- extractNamespaceName(name,className,ns);
+ //QCString ns;
+ //extractNamespaceName(name,className,ns);
//printf("m_name=%s m_className=%s ns=%s\n",m_name.data(),m_className.data(),ns.data());
if (((QCString)defFileName).right(5)!=".java" &&
@@ -3025,7 +3025,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
if (!scName.isEmpty()) scName+=scopeSeparator;
}
- scName+=m_impl->className;
+ scName+=className();
ArgumentList *al=0;
bool isSpecialization = localName().find('<')!=-1;
if (templateArguments())
@@ -3052,7 +3052,14 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
QCString ClassDef::className() const
{
- return m_impl->className;
+ if (m_impl->className.isEmpty())
+ {
+ return localName();
+ }
+ else
+ {
+ return m_impl->className;
+ }
};
void ClassDef::setClassName(const char *name)
diff --git a/src/config.xml b/src/config.xml
index 90b77b2..83a3701 100644
--- a/src/config.xml
+++ b/src/config.xml
@@ -225,7 +225,8 @@ The format is ext=language, where ext is a file extension, and language is one o
the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
.inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
-use: inc=Fortran f=C
+use: inc=Fortran f=C. Note that for custom extensions you also need to set
+FILE_PATTERNS otherwise the files are not read by doxygen.
'>
</option>
<option type='bool' id='BUILTIN_STL_SUPPORT' docs='
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 5a33891..125cd99 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -8617,6 +8617,7 @@ static QCString resolveSymlink(QCString path)
QDict<void> nonSymlinks;
QDict<void> known;
QCString result = path;
+ QCString oldPrefix = "/";
do
{
#ifdef WIN32
@@ -8637,7 +8638,7 @@ static QCString resolveSymlink(QCString path)
QString target = fi.readLink();
if (QFileInfo(target).isRelative())
{
- target = QDir::cleanDirPath(prefix+"/"+target.data());
+ target = QDir::cleanDirPath(oldPrefix+"/"+target.data());
}
if (sepPos!=-1)
{
@@ -8656,6 +8657,7 @@ static QCString resolveSymlink(QCString path)
{
nonSymlinks.insert(prefix,(void*)0x8);
}
+ oldPrefix = prefix;
}
}
while (sepPos!=-1);
@@ -8698,69 +8700,72 @@ int readDir(QFileInfo *fi,
//printf("killDict=%p count=%d\n",killDict,killDict->count());
const QFileInfoList *list = dir.entryInfoList();
- QFileInfoListIterator it( *list );
- QFileInfo *cfi;
-
- while ((cfi=it.current()))
+ if (list)
{
- if (exclDict==0 || exclDict->find(cfi->absFilePath())==0)
- { // file should not be excluded
- //printf("killDict->find(%s)\n",cfi->absFilePath().data());
- if (!cfi->exists() || !cfi->isReadable())
- {
- if (errorIfNotExist)
+ QFileInfoListIterator it( *list );
+ QFileInfo *cfi;
+
+ while ((cfi=it.current()))
+ {
+ if (exclDict==0 || exclDict->find(cfi->absFilePath())==0)
+ { // file should not be excluded
+ //printf("killDict->find(%s)\n",cfi->absFilePath().data());
+ if (!cfi->exists() || !cfi->isReadable())
{
- err("Warning: source %s is not a readable file or directory... skipping.\n",cfi->absFilePath().data());
+ if (errorIfNotExist)
+ {
+ err("Warning: source %s is not a readable file or directory... skipping.\n",cfi->absFilePath().data());
+ }
}
- }
- else if (cfi->isFile() &&
- (!Config_getBool("EXCLUDE_SYMLINKS") || !cfi->isSymLink()) &&
- (patList==0 || patternMatch(cfi,patList)) &&
- !patternMatch(cfi,exclPatList) &&
- (killDict==0 || killDict->find(cfi->absFilePath())==0)
- )
- {
- totalSize+=cfi->size()+cfi->absFilePath().length()+4;
- QCString name=convertToQCString(cfi->fileName());
- //printf("New file %s\n",name.data());
- if (fnDict)
+ else if (cfi->isFile() &&
+ (!Config_getBool("EXCLUDE_SYMLINKS") || !cfi->isSymLink()) &&
+ (patList==0 || patternMatch(cfi,patList)) &&
+ !patternMatch(cfi,exclPatList) &&
+ (killDict==0 || killDict->find(cfi->absFilePath())==0)
+ )
{
- FileDef *fd=new FileDef(cfi->dirPath()+"/",name);
- FileName *fn=0;
- if (!name.isEmpty() && (fn=(*fnDict)[name]))
+ totalSize+=cfi->size()+cfi->absFilePath().length()+4;
+ QCString name=convertToQCString(cfi->fileName());
+ //printf("New file %s\n",name.data());
+ if (fnDict)
{
- fn->append(fd);
+ FileDef *fd=new FileDef(cfi->dirPath()+"/",name);
+ FileName *fn=0;
+ if (!name.isEmpty() && (fn=(*fnDict)[name]))
+ {
+ fn->append(fd);
+ }
+ else
+ {
+ fn = new FileName(cfi->absFilePath(),name);
+ fn->append(fd);
+ if (fnList) fnList->inSort(fn);
+ fnDict->insert(name,fn);
+ }
}
- else
+ QCString *rs=0;
+ if (resultList || resultDict)
{
- fn = new FileName(cfi->absFilePath(),name);
- fn->append(fd);
- if (fnList) fnList->inSort(fn);
- fnDict->insert(name,fn);
+ rs=new QCString(cfi->absFilePath());
}
+ if (resultList) resultList->append(rs);
+ if (resultDict) resultDict->insert(cfi->absFilePath(),rs);
+ if (killDict) killDict->insert(cfi->absFilePath(),(void *)0x8);
}
- QCString *rs=0;
- if (resultList || resultDict)
+ else if (recursive &&
+ (!Config_getBool("EXCLUDE_SYMLINKS") || !cfi->isSymLink()) &&
+ cfi->isDir() && cfi->fileName()!="." &&
+ !patternMatch(cfi,exclPatList) &&
+ cfi->fileName()!="..")
{
- rs=new QCString(cfi->absFilePath());
+ cfi->setFile(cfi->absFilePath());
+ totalSize+=readDir(cfi,fnList,fnDict,exclDict,
+ patList,exclPatList,resultList,resultDict,errorIfNotExist,
+ recursive,killDict);
}
- if (resultList) resultList->append(rs);
- if (resultDict) resultDict->insert(cfi->absFilePath(),rs);
- if (killDict) killDict->insert(cfi->absFilePath(),(void *)0x8);
- }
- else if (recursive &&
- (!Config_getBool("EXCLUDE_SYMLINKS") || !cfi->isSymLink()) &&
- cfi->isDir() && cfi->fileName()!="." &&
- !patternMatch(cfi,exclPatList) &&
- cfi->fileName()!="..")
- {
- cfi->setFile(cfi->absFilePath());
- totalSize+=readDir(cfi,fnList,fnDict,exclDict,
- patList,exclPatList,resultList,resultDict,errorIfNotExist,
- recursive,killDict);
}
+ ++it;
}
- ++it;
}
return totalSize;
}
@@ -10472,7 +10477,7 @@ void generateOutput()
QCString const qhpFileName = Qhp::getQhpFileName();
QCString const qchFileName = getQchFileName();
- QCString const args = QCString().sprintf("%s -o %s", qhpFileName.data(), qchFileName.data());
+ QCString const args = QCString().sprintf("%s -o \"%s\"", qhpFileName.data(), qchFileName.data());
QString const oldDir = QDir::currentDirPath();
QDir::setCurrent(Config_getString("HTML_OUTPUT"));
if (portable_system(Config_getString("QHG_LOCATION"), args.data(), FALSE))
diff --git a/src/entry.h b/src/entry.h
index 10c3319..bf3ed40 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -191,17 +191,8 @@ class Entry
/*! Kind of entries that are supported */
enum Sections {
CLASS_SEC = 0x00000001,
- //STRUCT_SEC = 0x00000002,
- //UNION_SEC = 0x00000004,
- //EXCEPTION_SEC = 0x00000008,
NAMESPACE_SEC = 0x00000010,
- //INTERFACE_SEC = 0x00000020,
- //PROTOCOL_SEC = 0x00000040,
- //CATEGORY_SEC = 0x00000080,
- COMPOUND_MASK = CLASS_SEC //| STRUCT_SEC | UNION_SEC |
- //INTERFACE_SEC | EXCEPTION_SEC |
- //PROTOCOL_SEC | CATEGORY_SEC
- ,
+ COMPOUND_MASK = CLASS_SEC,
SCOPE_MASK = COMPOUND_MASK | NAMESPACE_SEC,
CLASSDOC_SEC = 0x00000800,
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index 9aa8174..12213f7 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -916,7 +916,7 @@ void HtmlGenerator::writeObjectLink(const char *ref,const char *f,
t << "href=\"";
if (ref)
{
- if ((dest=Doxygen::tagDestinationDict[ref])) t << relPath << *dest << "/";
+ if ((dest=Doxygen::tagDestinationDict[ref])) t << *dest << "/";
}
else
{
diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp
index 2a48662..d11d16d 100644
--- a/src/htmlhelp.cpp
+++ b/src/htmlhelp.cpp
@@ -372,6 +372,23 @@ void HtmlHelp::initialize()
0x412 Korean
0x804 Chinese (PRC)
0x404 Chinese (Taiwan)
+
+ New LCIDs:
+ 0x421 Indonesian
+ 0x41A Croatian
+ 0x418 Romanian
+ 0x424 Slovenian
+ 0x41B Slovak
+ 0x422 Ukrainian
+ 0x81A Serbian (Serbia, Latin)
+ 0x403 Catalan
+ 0x427 Lithuanian
+ 0x436 Afrikaans
+ 0x42A Vietnamese
+ 0x429 Persian (Iran)
+ 0xC01 Arabic (Egypt) - I don't know which version of arabic is used inside translator_ar.h ,
+ so I have chosen Egypt at random
+
*/
s_languageDict.setAutoDelete(TRUE);
s_languageDict.clear();
@@ -381,22 +398,38 @@ void HtmlHelp::initialize()
s_languageDict.insert("finnish", new QCString("0x40B Finnish"));
s_languageDict.insert("french", new QCString("0x40C French"));
s_languageDict.insert("german", new QCString("0x407 German"));
- s_languageDict.insert("greece", new QCString("0x408 Greece"));
+ s_languageDict.insert("greek", new QCString("0x408 Greece"));
s_languageDict.insert("hungarian", new QCString("0x40E Hungarian"));
s_languageDict.insert("italian", new QCString("0x410 Italian"));
s_languageDict.insert("norwegian", new QCString("0x814 Norwegian"));
s_languageDict.insert("polish", new QCString("0x415 Polish"));
- s_languageDict.insert("portugese", new QCString("0x816 Portuguese(Portugal)"));
+ s_languageDict.insert("portuguese", new QCString("0x816 Portuguese(Portugal)"));
s_languageDict.insert("brazil", new QCString("0x416 Portuguese(Brazil)"));
s_languageDict.insert("russian", new QCString("0x419 Russian"));
- s_languageDict.insert("spanish", new QCString("0x40A Spannish(Traditional Sort)"));
+ s_languageDict.insert("spanish", new QCString("0x40A Spanish(Traditional Sort)"));
s_languageDict.insert("swedish", new QCString("0x41D Swedish"));
- s_languageDict.insert("turkey", new QCString("0x41F Turkey"));
+ s_languageDict.insert("turkish", new QCString("0x41F Turkey"));
s_languageDict.insert("japanese", new QCString("0x411 Japanese"));
s_languageDict.insert("japanese-en", new QCString("0x411 Japanese"));
s_languageDict.insert("korean", new QCString("0x412 Korean"));
+ s_languageDict.insert("korean-en", new QCString("0x412 Korean"));
s_languageDict.insert("chinese", new QCString("0x804 Chinese (PRC)"));
s_languageDict.insert("chinese-traditional", new QCString("0x404 Chinese (Taiwan)"));
+
+ // new LCIDs
+ s_languageDict.insert("indonesian", new QCString("0x412 Indonesian"));
+ s_languageDict.insert("croatian", new QCString("0x41A Croatian"));
+ s_languageDict.insert("romanian", new QCString("0x418 Romanian"));
+ s_languageDict.insert("slovene", new QCString("0x424 Slovenian"));
+ s_languageDict.insert("slovak", new QCString("0x41B Slovak"));
+ s_languageDict.insert("ukrainian", new QCString("0x422 Ukrainian"));
+ s_languageDict.insert("serbian", new QCString("0x81A Serbian (Serbia, Latin)"));
+ s_languageDict.insert("catalan", new QCString("0x403 Catalan"));
+ s_languageDict.insert("lithuanian", new QCString("0x427 Lithuanian"));
+ s_languageDict.insert("afrikaans", new QCString("0x436 Afrikaans"));
+ s_languageDict.insert("vietnamese", new QCString("0x42A Vietnamese"));
+ s_languageDict.insert("persian", new QCString("0x429 Persian (Iran)"));
+ s_languageDict.insert("arabic", new QCString("0xC01 Arabic (Egypt)"));
}
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index 32bbfd6..8e8c93c 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -280,10 +280,12 @@ void MemberList::writePlainDeclarations(OutputList &ol,
}
case MemberDef::EnumValue:
{
- if (!m_inGroup) return;
- printf("EnumValue!\n");
- if (first) ol.startMemberList(),first=FALSE;
- md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup);
+ if (m_inGroup)
+ {
+ //printf("EnumValue!\n");
+ if (first) ol.startMemberList(),first=FALSE;
+ md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup);
+ }
}
break;
}
diff --git a/src/portable.cpp b/src/portable.cpp
index 7bbe33f..03d5366 100644
--- a/src/portable.cpp
+++ b/src/portable.cpp
@@ -180,7 +180,7 @@ static char **last_environ;
void portable_setenv(const char *name,const char *value)
{
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
SetEnvironmentVariable(name,value);
#else
register char **ep = 0;
@@ -259,7 +259,7 @@ void portable_setenv(const char *name,const char *value)
void portable_unsetenv(const char *variable)
{
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
SetEnvironmentVariable(variable,0);
#else
/* Some systems don't have unsetenv(), so we do it ourselves */
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index 615d4d2..e97c041 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2619,7 +2619,10 @@ void RTFGenerator::postProcess(QByteArray &a)
for (i=0;i<a.size();i++)
{
unsigned char c = (unsigned char)a.at(i);
- if (c>0x80 || mbFlag)
+
+ // treat characters > 0x80 as multibyte characters, except when they
+ // are control characters
+ if (c>0x80 || (mbFlag && c!='\\' && c!='{' && c!='}'))
{
char s[10];
sprintf(s,"\\'%X",c);
diff --git a/src/scanner.l b/src/scanner.l
index dc36a8a..5ec6b54 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -3998,7 +3998,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
int tempArg=current->name.find('<');
QCString tempName;
if (tempArg==-1) tempName=current->name; else tempName=current->name.left(tempArg);
- if (current->type.isEmpty() &&
+ if (!current->type.isEmpty() &&
(current->type.find(re,0)!=-1 || current->type.left(8)=="typedef "))
{
//printf("Scanner.l: found in class variable: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data());
diff --git a/src/translator_de.h b/src/translator_de.h
index c3aa248..e9f55f6 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h