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.
--------
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.
......@@ -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)
1.2.3-20001217
1.2.3-20001220
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
......
......@@ -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);
}
}
......
......@@ -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();
......
......@@ -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;
......
......@@ -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);
......
......@@ -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;
......
......@@ -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);
......
/******************************************************************************
*
*
*
*
* 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 <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
#define TAGREADER_H
......
......@@ -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);
......
......@@ -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
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