Commit ba068113 authored by dimitri's avatar dimitri

Release-1.2.3-20001220

parent 6505abff
DOXYGEN Version 1.2.3-20001217 DOXYGEN Version 1.2.3-20001220
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (17 December 2000) Dimitri van Heesch (20 December 2000)
DOXYGEN Version 1.2.3-20001217 DOXYGEN Version 1.2.3-20001220
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at ...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (17 December 2000) Dimitri van Heesch (20 December 2000)
1.2.3-20001217 1.2.3-20001220
Name: doxygen Name: doxygen
Version: 1.2.3-20001217 Version: 1.2.3-20001220
Summary: documentation system for C, C++ and IDL Summary: documentation system for C, C++ and IDL
Release: 1 Release: 1
Source0: doxygen-%{version}.src.tar.gz Source0: doxygen-%{version}.src.tar.gz
......
...@@ -1665,7 +1665,6 @@ void ClassDef::mergeMembers() ...@@ -1665,7 +1665,6 @@ void ClassDef::mergeMembers()
Specifier virt=mi->virt; Specifier virt=mi->virt;
if (mi->virt==Normal && bcd->virt!=Normal) virt=bcd->virt; if (mi->virt==Normal && bcd->virt!=Normal) virt=bcd->virt;
MemberInfo *newMi=new MemberInfo(mi->memberDef,bcd->prot,virt); MemberInfo *newMi=new MemberInfo(mi->memberDef,bcd->prot,virt);
//if (mi->memberDef->getClassDef()!=bClass)
newMi->scopePath=bClass->name()+"::"+mi->scopePath; newMi->scopePath=bClass->name()+"::"+mi->scopePath;
newMi->ambigClass=mi->ambigClass; newMi->ambigClass=mi->ambigClass;
newMi->ambiguityResolutionScope=mi->ambiguityResolutionScope.copy(); newMi->ambiguityResolutionScope=mi->ambiguityResolutionScope.copy();
...@@ -1674,7 +1673,7 @@ void ClassDef::mergeMembers() ...@@ -1674,7 +1673,7 @@ void ClassDef::mergeMembers()
} }
// add it to the list and dictionary // add it to the list and dictionary
dstMnl->inSort(newMni); dstMnl->append(newMni);
dstMnd->insert(newMni->memberName(),newMni); dstMnd->insert(newMni->memberName(),newMni);
} }
} }
......
...@@ -67,8 +67,6 @@ class ClassDef : public Definition ...@@ -67,8 +67,6 @@ class ClassDef : public Definition
void insertSuperClass(ClassDef *,Protection p,Specifier s,const char *t=0); void insertSuperClass(ClassDef *,Protection p,Specifier s,const char *t=0);
BaseClassList *superClasses() { return inheritedBy; } BaseClassList *superClasses() { return inheritedBy; }
void setIncludeFile(FileDef *fd,const char *incName,bool local); 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; } MemberNameInfoList *memberNameInfoList() { return allMemberNameInfoList; }
MemberNameInfoDict *memberNameInfoDict() { return allMemberNameInfoDict; } MemberNameInfoDict *memberNameInfoDict() { return allMemberNameInfoDict; }
void insertMember(MemberDef *); void insertMember(MemberDef *);
...@@ -79,12 +77,9 @@ class ClassDef : public Definition ...@@ -79,12 +77,9 @@ class ClassDef : public Definition
void dumpMembers(); void dumpMembers();
void writeDocumentation(OutputList &ol); void writeDocumentation(OutputList &ol);
void writeMemberList(OutputList &ol); void writeMemberList(OutputList &ol);
//void writeIncludeFile(OutputList &ol);
//void writeMembersToContents();
void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup); void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup);
bool addExample(const char *anchor,const char *name, const char *file); bool addExample(const char *anchor,const char *name, const char *file);
bool hasExamples(); bool hasExamples();
//void writeExample(OutputList &ol);
void setProtection(Protection p) { prot=p; } void setProtection(Protection p) { prot=p; }
Protection protection() const { return prot; } Protection protection() const { return prot; }
bool isLinkableInProject(); bool isLinkableInProject();
......
...@@ -1236,10 +1236,10 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path, ...@@ -1236,10 +1236,10 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
if (Config::usePDFLatexFlag) if (Config::usePDFLatexFlag)
{ {
QCString epstopdfArgs(4096); QCString epstopdfArgs(4096);
epstopdfArgs.sprintf("\"%s.eps\" -outfile=\"%s.pdf\"", epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"",
epsBaseName.data(),epsBaseName.data()); epsBaseName.data(),epsBaseName.data());
//printf("Converting eps using `%s'\n",epstopdfCmd.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"); err("Error: Problems running epstopdf. Check your TeX installation!\n");
return; return;
......
...@@ -1160,9 +1160,9 @@ void DotClassGraph::writeGraph(QTextStream &out, ...@@ -1160,9 +1160,9 @@ void DotClassGraph::writeGraph(QTextStream &out,
if (Config::usePDFLatexFlag) if (Config::usePDFLatexFlag)
{ {
QCString epstopdfArgs(4096); QCString epstopdfArgs(4096);
epstopdfArgs.sprintf("epstopdf \"%s.eps\" -outfile=\"%s.pdf\"", epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"",
baseName.data(),baseName.data()); 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"); err("Error: Problems running epstopdf. Check your TeX installation!\n");
QDir::setCurrent(oldDir); QDir::setCurrent(oldDir);
...@@ -1357,9 +1357,9 @@ void DotInclDepGraph::writeGraph(QTextStream &out, ...@@ -1357,9 +1357,9 @@ void DotInclDepGraph::writeGraph(QTextStream &out,
if (Config::usePDFLatexFlag) if (Config::usePDFLatexFlag)
{ {
QCString epstopdfArgs(4096); QCString epstopdfArgs(4096);
epstopdfArgs.sprintf("\"%s.eps\" -outfile=\"%s.pdf\"", epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"",
baseName.data(),baseName.data()); 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"); err("Error: Problems running epstopdf. Check your TeX installation!\n");
QDir::setCurrent(oldDir); QDir::setCurrent(oldDir);
......
...@@ -1219,7 +1219,7 @@ static MemberDef *addVariableToClass( ...@@ -1219,7 +1219,7 @@ static MemberDef *addVariableToClass(
mn->append(md); mn->append(md);
//printf("Adding memberName=%s\n",mn->memberName()); //printf("Adding memberName=%s\n",mn->memberName());
memberNameDict.insert(name,mn); memberNameDict.insert(name,mn);
memberNameList.inSort(mn); memberNameList.append(mn);
// add the member to the class // add the member to the class
} }
cd->insertMember(md); cd->insertMember(md);
...@@ -1309,7 +1309,8 @@ static MemberDef *addVariableToFile( ...@@ -1309,7 +1309,8 @@ static MemberDef *addVariableToFile(
MemberDef *md; MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni) 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)) || (nd!=0 && md->getNamespaceDef()==nd))
// variable already in the scope // variable already in the scope
{ {
...@@ -1390,7 +1391,7 @@ static MemberDef *addVariableToFile( ...@@ -1390,7 +1391,7 @@ static MemberDef *addVariableToFile(
mn = new MemberName(name); mn = new MemberName(name);
mn->append(md); mn->append(md);
functionNameDict.insert(name,mn); functionNameDict.insert(name,mn);
functionNameList.inSort(mn); functionNameList.append(mn);
} }
return md; return md;
} }
...@@ -1777,7 +1778,7 @@ static void buildMemberList(Entry *root) ...@@ -1777,7 +1778,7 @@ static void buildMemberList(Entry *root)
mn->append(md); mn->append(md);
//printf("Adding memberName=%s\n",mn->memberName()); //printf("Adding memberName=%s\n",mn->memberName());
memberNameDict.insert(name,mn); memberNameDict.insert(name,mn);
memberNameList.inSort(mn); memberNameList.append(mn);
} }
// add member to the class cd // add member to the class cd
...@@ -1975,7 +1976,7 @@ static void buildMemberList(Entry *root) ...@@ -1975,7 +1976,7 @@ static void buildMemberList(Entry *root)
mn = new MemberName(name); mn = new MemberName(name);
mn->append(md); mn->append(md);
functionNameDict.insert(name,mn); functionNameDict.insert(name,mn);
functionNameList.inSort(mn); functionNameList.append(mn);
} }
addMemberToGroups(root,md); addMemberToGroups(root,md);
} }
...@@ -3706,7 +3707,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3706,7 +3707,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (newMemberName) if (newMemberName)
{ {
//printf("Adding memberName=%s\n",mn->memberName()); //printf("Adding memberName=%s\n",mn->memberName());
memberNameList.inSort(mn); memberNameList.append(mn);
memberNameDict.insert(funcName,mn); memberNameDict.insert(funcName,mn);
} }
} }
...@@ -3977,7 +3978,7 @@ static void findEnums(Entry *root) ...@@ -3977,7 +3978,7 @@ static void findEnums(Entry *root)
mn = new MemberName(name); mn = new MemberName(name);
mn->append(md); mn->append(md);
mnd->insert(name,mn); mnd->insert(name,mn);
mnl->inSort(mn); mnl->append(mn);
//printf("add %s to new memberName. Now %d members\n", //printf("add %s to new memberName. Now %d members\n",
// name.data(),mn->count()); // name.data(),mn->count());
} }
...@@ -4265,21 +4266,22 @@ static void computeClassImplUsageRelations() ...@@ -4265,21 +4266,22 @@ static void computeClassImplUsageRelations()
static void buildCompleteMemberLists() static void buildCompleteMemberLists()
{ {
ClassDef *cd; ClassDef *cd;
// merge the member list of base classes into the inherited classes.
ClassListIterator cli(classList); 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 if (!cd->isReference() && // not an external class
cd->superClasses()->count()==0 && // is a root of the hierarchy cd->superClasses()->count()==0 && // is a root of the hierarchy
cd->baseClasses()->count()>0) // and has at least one base class cd->baseClasses()->count()>0) // and has at least one base class
{ {
cd->mergeMembers(); 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) ...@@ -4600,7 +4602,7 @@ static void findDefineDocumentation(Entry *root)
mn = new MemberName(root->name); mn = new MemberName(root->name);
mn->append(md); mn->append(md);
functionNameDict.insert(root->name,mn); functionNameDict.insert(root->name,mn);
functionNameList.inSort(mn); functionNameList.append(mn);
} }
} }
MemberName *mn=functionNameDict[root->name]; MemberName *mn=functionNameDict[root->name];
...@@ -6105,8 +6107,6 @@ int main(int argc,char **argv) ...@@ -6105,8 +6107,6 @@ int main(int argc,char **argv)
msg("Searching for enumerations...\n"); msg("Searching for enumerations...\n");
findEnums(root); findEnums(root);
findEnumDocumentation(root); findEnumDocumentation(root);
// msg("Searching for function prototypes...\n");
// findPrototypes(root); // may introduce new members !
msg("Searching for member function documentation...\n"); msg("Searching for member function documentation...\n");
findMemberDocumentation(root); // may introduce new members ! findMemberDocumentation(root); // may introduce new members !
...@@ -6118,6 +6118,10 @@ int main(int argc,char **argv) ...@@ -6118,6 +6118,10 @@ int main(int argc,char **argv)
msg("Search for main page...\n"); msg("Search for main page...\n");
findMainPage(root); findMainPage(root);
msg("Sorting member lists...\n");
memberNameList.sort();
functionNameList.sort();
msg("Freeing entry tree\n"); msg("Freeing entry tree\n");
delete root; delete root;
......
...@@ -828,7 +828,7 @@ void addDefine() ...@@ -828,7 +828,7 @@ void addDefine()
if (mn==0) if (mn==0)
{ {
mn = new MemberName(g_defName); mn = new MemberName(g_defName);
functionNameList.inSort(mn); functionNameList.append(mn);
functionNameDict.insert(g_defName,mn); functionNameDict.insert(g_defName,mn);
} }
mn->append(md); mn->append(md);
......
/******************************************************************************
*
*
*
*
* 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 "tagreader.h"
#include <stdio.h> #include <stdio.h>
......
/******************************************************************************
*
*
*
*
* 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 #ifndef TAGREADER_H
#define TAGREADER_H #define TAGREADER_H
......
...@@ -114,9 +114,10 @@ void TextGeneratorXMLImpl::writeLink(const char *extRef,const char *file, ...@@ -114,9 +114,10 @@ void TextGeneratorXMLImpl::writeLink(const char *extRef,const char *file,
/*! Implements an interruptable system call on Unix/Windows */ /*! 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 #ifndef _WIN32
isBatchFile=isBatchFile;
/*! taken from the system() manpage on my Linux box */ /*! taken from the system() manpage on my Linux box */
int pid,status; int pid,status;
...@@ -149,30 +150,40 @@ int iSystem(const char *command,const char *args) ...@@ -149,30 +150,40 @@ int iSystem(const char *command,const char *args)
} }
} }
#else #else
SHELLEXECUTEINFO sInfo = { if (isBatchFile)
sizeof(SHELLEXECUTEINFO), /* structure size */ {
SEE_MASK_NOCLOSEPROCESS, /* leave the process running */ QCString fullCmd = command;
NULL, /* window handle */ fullCmd += " ";
NULL, /* action to perform: open */ fullCmd += args;
command, /* file to execute */ return system(fullCmd);
args, /* argument list */ }
NULL, /* use current working dir */ else
SW_HIDE, /* minimize on start-up */ {
0, /* application instance handle */ SHELLEXECUTEINFO sInfo = {
NULL, /* ignored: id list */ sizeof(SHELLEXECUTEINFO), /* structure size */
NULL, /* ignored: class name */ SEE_MASK_NOCLOSEPROCESS, /* leave the process running */
NULL, /* ignored: key class */ NULL, /* window handle */
0, /* ignored: hot key */ NULL, /* action to perform: open */
NULL, /* ignored: icon */ command, /* file to execute */
NULL /* resulting application handle */ args, /* argument list */
}; NULL, /* use current working dir */
if (!ShellExecuteEx(&sInfo)) SW_HIDE, /* minimize on start-up */
{ 0, /* application instance handle */
return -1; NULL, /* ignored: id list */
} NULL, /* ignored: class name */
else if (sInfo.hProcess) /* executable was launched, wait for it to finish */ NULL, /* ignored: key class */
{ 0, /* ignored: hot key */
WaitForSingleObject(sInfo.hProcess,INFINITE); 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 0;
//return system(command); //return system(command);
......
...@@ -150,7 +150,7 @@ void extractNamespaceName(const QCString &scopeName, ...@@ -150,7 +150,7 @@ void extractNamespaceName(const QCString &scopeName,
QCString &className,QCString &namespaceName); QCString &className,QCString &namespaceName);
QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &templ); QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &templ);
QCString stripScope(const char *name); 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 #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment