From a0758fd182732a710364bdf3ebf5c2fb87b0ff70 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Wed, 20 Dec 2000 19:54:07 +0000 Subject: Release-1.2.3-20001220 --- INSTALL | 4 ++-- README | 4 ++-- VERSION | 2 +- packages/rpm/doxygen.spec | 2 +- src/classdef.cpp | 3 +-- src/classdef.h | 5 ---- src/diagram.cpp | 4 ++-- src/dot.cpp | 8 +++---- src/doxygen.cpp | 36 +++++++++++++++------------- src/pre.l | 2 +- src/tagreader.cpp | 18 ++++++++++++++ src/tagreader.h | 18 ++++++++++++++ src/util.cpp | 61 ++++++++++++++++++++++++++++------------------- src/util.h | 2 +- 14 files changed, 107 insertions(+), 62 deletions(-) diff --git a/INSTALL b/INSTALL index 8041a58..babcf9e 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ -DOXYGEN Version 1.2.3-20001217 +DOXYGEN Version 1.2.3-20001220 Please read the installation section of the manual for instructions. -------- -Dimitri van Heesch (17 December 2000) +Dimitri van Heesch (20 December 2000) diff --git a/README b/README index 1e88e89..2e77ed5 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.2.3-20001217 +DOXYGEN Version 1.2.3-20001220 Please read INSTALL for compilation instructions. @@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at Enjoy, -Dimitri van Heesch (17 December 2000) +Dimitri van Heesch (20 December 2000) diff --git a/VERSION b/VERSION index a55b02d..37a34b5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.3-20001217 +1.2.3-20001220 diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 3ca27cb..8646581 100644 --- a/packages/rpm/doxygen.spec +++ b/packages/rpm/doxygen.spec @@ -1,5 +1,5 @@ Name: doxygen -Version: 1.2.3-20001217 +Version: 1.2.3-20001220 Summary: documentation system for C, C++ and IDL Release: 1 Source0: doxygen-%{version}.src.tar.gz diff --git a/src/classdef.cpp b/src/classdef.cpp index ac104eb..01bc655 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1665,7 +1665,6 @@ void ClassDef::mergeMembers() Specifier virt=mi->virt; if (mi->virt==Normal && bcd->virt!=Normal) virt=bcd->virt; MemberInfo *newMi=new MemberInfo(mi->memberDef,bcd->prot,virt); - //if (mi->memberDef->getClassDef()!=bClass) newMi->scopePath=bClass->name()+"::"+mi->scopePath; newMi->ambigClass=mi->ambigClass; newMi->ambiguityResolutionScope=mi->ambiguityResolutionScope.copy(); @@ -1674,7 +1673,7 @@ void ClassDef::mergeMembers() } // add it to the list and dictionary - dstMnl->inSort(newMni); + dstMnl->append(newMni); dstMnd->insert(newMni->memberName(),newMni); } } diff --git a/src/classdef.h b/src/classdef.h index 2bb6a66..f9c26dd 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -67,8 +67,6 @@ class ClassDef : public Definition void insertSuperClass(ClassDef *,Protection p,Specifier s,const char *t=0); BaseClassList *superClasses() { return inheritedBy; } void setIncludeFile(FileDef *fd,const char *incName,bool local); - //FileDef *includeFile() const { return incFile; } - //void setIncludeName(const char *n_) { incName=n_; } MemberNameInfoList *memberNameInfoList() { return allMemberNameInfoList; } MemberNameInfoDict *memberNameInfoDict() { return allMemberNameInfoDict; } void insertMember(MemberDef *); @@ -79,12 +77,9 @@ class ClassDef : public Definition void dumpMembers(); void writeDocumentation(OutputList &ol); void writeMemberList(OutputList &ol); - //void writeIncludeFile(OutputList &ol); - //void writeMembersToContents(); void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup); bool addExample(const char *anchor,const char *name, const char *file); bool hasExamples(); - //void writeExample(OutputList &ol); void setProtection(Protection p) { prot=p; } Protection protection() const { return prot; } bool isLinkableInProject(); diff --git a/src/diagram.cpp b/src/diagram.cpp index c60c44d..eed5cd2 100644 --- a/src/diagram.cpp +++ b/src/diagram.cpp @@ -1236,10 +1236,10 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path, if (Config::usePDFLatexFlag) { QCString epstopdfArgs(4096); - epstopdfArgs.sprintf("\"%s.eps\" -outfile=\"%s.pdf\"", + epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"", epsBaseName.data(),epsBaseName.data()); //printf("Converting eps using `%s'\n",epstopdfCmd.data()); - if (iSystem("epstopdf",epstopdfArgs)!=0) + if (iSystem("epstopdf",epstopdfArgs,TRUE)!=0) { err("Error: Problems running epstopdf. Check your TeX installation!\n"); return; diff --git a/src/dot.cpp b/src/dot.cpp index c03a31c..e4a3932 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -1160,9 +1160,9 @@ void DotClassGraph::writeGraph(QTextStream &out, if (Config::usePDFLatexFlag) { QCString epstopdfArgs(4096); - epstopdfArgs.sprintf("epstopdf \"%s.eps\" -outfile=\"%s.pdf\"", + epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"", baseName.data(),baseName.data()); - if (iSystem("epstopdf",epstopdfArgs)!=0) + if (iSystem("epstopdf",epstopdfArgs,TRUE)!=0) { err("Error: Problems running epstopdf. Check your TeX installation!\n"); QDir::setCurrent(oldDir); @@ -1357,9 +1357,9 @@ void DotInclDepGraph::writeGraph(QTextStream &out, if (Config::usePDFLatexFlag) { QCString epstopdfArgs(4096); - epstopdfArgs.sprintf("\"%s.eps\" -outfile=\"%s.pdf\"", + epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"", baseName.data(),baseName.data()); - if (iSystem("epstopdf",epstopdfArgs)!=0) + if (iSystem("epstopdf",epstopdfArgs,TRUE)!=0) { err("Error: Problems running epstopdf. Check your TeX installation!\n"); QDir::setCurrent(oldDir); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 3d7ea26..fb37b7e 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1219,7 +1219,7 @@ static MemberDef *addVariableToClass( mn->append(md); //printf("Adding memberName=%s\n",mn->memberName()); memberNameDict.insert(name,mn); - memberNameList.inSort(mn); + memberNameList.append(mn); // add the member to the class } cd->insertMember(md); @@ -1309,7 +1309,8 @@ static MemberDef *addVariableToFile( MemberDef *md; for (mni.toFirst();(md=mni.current());++mni) { - if ((nd==0 && root->fileName==md->getFileDef()->absFilePath()) + if ((nd==0 && md->getFileDef() && + root->fileName==md->getFileDef()->absFilePath()) || (nd!=0 && md->getNamespaceDef()==nd)) // variable already in the scope { @@ -1390,7 +1391,7 @@ static MemberDef *addVariableToFile( mn = new MemberName(name); mn->append(md); functionNameDict.insert(name,mn); - functionNameList.inSort(mn); + functionNameList.append(mn); } return md; } @@ -1777,7 +1778,7 @@ static void buildMemberList(Entry *root) mn->append(md); //printf("Adding memberName=%s\n",mn->memberName()); memberNameDict.insert(name,mn); - memberNameList.inSort(mn); + memberNameList.append(mn); } // add member to the class cd @@ -1975,7 +1976,7 @@ static void buildMemberList(Entry *root) mn = new MemberName(name); mn->append(md); functionNameDict.insert(name,mn); - functionNameList.inSort(mn); + functionNameList.append(mn); } addMemberToGroups(root,md); } @@ -3706,7 +3707,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl if (newMemberName) { //printf("Adding memberName=%s\n",mn->memberName()); - memberNameList.inSort(mn); + memberNameList.append(mn); memberNameDict.insert(funcName,mn); } } @@ -3977,7 +3978,7 @@ static void findEnums(Entry *root) mn = new MemberName(name); mn->append(md); mnd->insert(name,mn); - mnl->inSort(mn); + mnl->append(mn); //printf("add %s to new memberName. Now %d members\n", // name.data(),mn->count()); } @@ -4265,21 +4266,22 @@ static void computeClassImplUsageRelations() static void buildCompleteMemberLists() { ClassDef *cd; + // merge the member list of base classes into the inherited classes. ClassListIterator cli(classList); - for (;(cd=cli.current());++cli) + for (cli.toFirst();(cd=cli.current());++cli) { - //if (!cd->isReference()) printf("Building member for class %s\n",cd->name()); - //ClassListIterator vcli(classList); - //for (;(vcd=vcli.current());++vcli) vcd->flag = FALSE; if (!cd->isReference() && // not an external class cd->superClasses()->count()==0 && // is a root of the hierarchy cd->baseClasses()->count()>0) // and has at least one base class { cd->mergeMembers(); - //printf("merging members for class %s\n",cd->name()); - //mergeMembers(cd,cd->baseClasses()); } } + // now sort the member list of all classes. + for (cli.toFirst();(cd=cli.current());++cli) + { + cd->memberNameInfoList()->sort(); + } } //---------------------------------------------------------------------------- @@ -4600,7 +4602,7 @@ static void findDefineDocumentation(Entry *root) mn = new MemberName(root->name); mn->append(md); functionNameDict.insert(root->name,mn); - functionNameList.inSort(mn); + functionNameList.append(mn); } } MemberName *mn=functionNameDict[root->name]; @@ -6105,8 +6107,6 @@ int main(int argc,char **argv) msg("Searching for enumerations...\n"); findEnums(root); findEnumDocumentation(root); -// msg("Searching for function prototypes...\n"); -// findPrototypes(root); // may introduce new members ! msg("Searching for member function documentation...\n"); findMemberDocumentation(root); // may introduce new members ! @@ -6118,6 +6118,10 @@ int main(int argc,char **argv) msg("Search for main page...\n"); findMainPage(root); + msg("Sorting member lists...\n"); + memberNameList.sort(); + functionNameList.sort(); + msg("Freeing entry tree\n"); delete root; diff --git a/src/pre.l b/src/pre.l index 2c3c67b..e6103b8 100644 --- a/src/pre.l +++ b/src/pre.l @@ -828,7 +828,7 @@ void addDefine() if (mn==0) { mn = new MemberName(g_defName); - functionNameList.inSort(mn); + functionNameList.append(mn); functionNameDict.insert(g_defName,mn); } mn->append(md); diff --git a/src/tagreader.cpp b/src/tagreader.cpp index d01e4bd..c226320 100644 --- a/src/tagreader.cpp +++ b/src/tagreader.cpp @@ -1,3 +1,21 @@ +/****************************************************************************** + * + * + * + * + * Copyright (C) 1997-2000 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + #include "tagreader.h" #include diff --git a/src/tagreader.h b/src/tagreader.h index 1501274..1508009 100644 --- a/src/tagreader.h +++ b/src/tagreader.h @@ -1,3 +1,21 @@ +/****************************************************************************** + * + * + * + * + * Copyright (C) 1997-2000 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + #ifndef TAGREADER_H #define TAGREADER_H diff --git a/src/util.cpp b/src/util.cpp index dd04fde..45e1e07 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -114,9 +114,10 @@ void TextGeneratorXMLImpl::writeLink(const char *extRef,const char *file, /*! Implements an interruptable system call on Unix/Windows */ -int iSystem(const char *command,const char *args) +int iSystem(const char *command,const char *args,bool isBatchFile) { #ifndef _WIN32 + isBatchFile=isBatchFile; /*! taken from the system() manpage on my Linux box */ int pid,status; @@ -149,30 +150,40 @@ int iSystem(const char *command,const char *args) } } #else - SHELLEXECUTEINFO sInfo = { - sizeof(SHELLEXECUTEINFO), /* structure size */ - SEE_MASK_NOCLOSEPROCESS, /* leave the process running */ - NULL, /* window handle */ - NULL, /* action to perform: open */ - command, /* file to execute */ - args, /* argument list */ - NULL, /* use current working dir */ - SW_HIDE, /* minimize on start-up */ - 0, /* application instance handle */ - NULL, /* ignored: id list */ - NULL, /* ignored: class name */ - NULL, /* ignored: key class */ - 0, /* ignored: hot key */ - NULL, /* ignored: icon */ - NULL /* resulting application handle */ - }; - if (!ShellExecuteEx(&sInfo)) - { - return -1; - } - else if (sInfo.hProcess) /* executable was launched, wait for it to finish */ - { - WaitForSingleObject(sInfo.hProcess,INFINITE); + if (isBatchFile) + { + QCString fullCmd = command; + fullCmd += " "; + fullCmd += args; + return system(fullCmd); + } + else + { + SHELLEXECUTEINFO sInfo = { + sizeof(SHELLEXECUTEINFO), /* structure size */ + SEE_MASK_NOCLOSEPROCESS, /* leave the process running */ + NULL, /* window handle */ + NULL, /* action to perform: open */ + command, /* file to execute */ + args, /* argument list */ + NULL, /* use current working dir */ + SW_HIDE, /* minimize on start-up */ + 0, /* application instance handle */ + NULL, /* ignored: id list */ + NULL, /* ignored: class name */ + NULL, /* ignored: key class */ + 0, /* ignored: hot key */ + NULL, /* ignored: icon */ + NULL /* resulting application handle */ + }; + if (!ShellExecuteEx(&sInfo)) + { + return -1; + } + else if (sInfo.hProcess) /* executable was launched, wait for it to finish */ + { + WaitForSingleObject(sInfo.hProcess,INFINITE); + } } return 0; //return system(command); diff --git a/src/util.h b/src/util.h index 26941b7..91a1a55 100644 --- a/src/util.h +++ b/src/util.h @@ -150,7 +150,7 @@ void extractNamespaceName(const QCString &scopeName, QCString &className,QCString &namespaceName); QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &templ); QCString stripScope(const char *name); -int iSystem(const char *command,const char *args); +int iSystem(const char *command,const char *args,bool isBatchFile=FALSE); #endif -- cgit v0.12