Commit 8b520502 authored by dimitri's avatar dimitri

Release-1.2.3-20001105

parent a6cc6b11
DOXYGEN Version 1.2.3
DOXYGEN Version 1.2.3-20001105
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (30 October 2000)
Dimitri van Heesch (05 November 2000)
DOXYGEN Version 1.2.3
DOXYGEN Version 1.2.3-20001105
Please read INSTALL for compilation instructions.
......@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (30 October 2000)
Dimitri van Heesch (05 November 2000)
1.2.3
1.2.3-20001105
......@@ -16,7 +16,7 @@ all: Makefile.configgen config.h config.l
$(MAKE) -f Makefile.configgen $@
Makefile.configgen: configgen.pro
$(PERL) $(TMAKE) configgen.pro >Makefile.configgen
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) configgen.pro >Makefile.configgen
config.h: $(CFGGEN_DIR)/configgen config_templ.h
$(CFGGEN_DIR)/configgen config_templ.h >config.h
......@@ -28,7 +28,7 @@ $(CFGGEN_DIR)/configgen: Makefile.configgen configgen.cpp
$(MAKE) -f Makefile.configgen
tmake:
$(PERL) $(TMAKE) configgen.pro >Makefile.configgen
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) configgen.pro >Makefile.configgen
install:
$(CP) config.l config.h ../../src
......
......@@ -18,7 +18,7 @@ all: $(CFGGENBIN_DIR)/configgen config.h config.l doxywizard.cpp doxywizard.h \
$(MAKE) -f Makefile.doxywizard $@
Makefile.doxywizard: doxywizard.pro doxywizard.t
$(PERL) $(TMAKE) doxywizard.pro >Makefile.doxywizard
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxywizard.pro >Makefile.doxywizard
config.l: $(CFGGENBIN_DIR)/configgen $(CFGGENSRC_DIR)/config_templ.l
$(CFGGENBIN_DIR)/configgen $(CFGGENSRC_DIR)/config_templ.l >config.l
......@@ -36,7 +36,7 @@ $(CFGGENBIN_DIR)/configgen: $(CFGGENSRC_DIR)/configgen.cpp
$(MAKE) -C $(CFGGENSRC_DIR)
tmake:
$(PERL) $(TMAKE) doxywizard.pro >Makefile.doxywizard
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxywizard.pro >Makefile.doxywizard
clean: Makefile.doxywizard
$(MAKE) -f Makefile.doxywizard clean
......
......@@ -5,8 +5,8 @@ distclean: clean
$(RM) -f Makefile.xmlread
tmake:
$(PERL) $(TMAKE) xmlread.pro >Makefile.xmlread
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) xmlread.pro >Makefile.xmlread
Makefile.xmlread: xmlread.pro
$(PERL) $(TMAKE) xmlread.pro >Makefile.xmlread
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) xmlread.pro >Makefile.xmlread
......@@ -337,8 +337,6 @@ VERSION = `cat VERSION`
INSTALL = $f_prefix
INSTTOOL = $f_insttool
DOXYDOCS = ..
export TMAKEPATH
EOF
if test "$f_dot" != NO; then
......
......@@ -25,7 +25,7 @@ reasons to not include all sources for these with every run of doxygen:
You may want to link to these pages instead of generating the documentation
in your local output directory.
<dt>Compilation speed:<dd> External projects typically have a different update
frequency form your own project. It does not make much sense to let doxygen
frequency from your own project. It does not make much sense to let doxygen
parse the sources for these external project over and over again, even if
nothing has changed.
<dt>Memory:<dd> For very large source trees, letting doxygen parse all sources
......@@ -50,7 +50,7 @@ you should specify the name of the tag files after
the \ref cfg_tagfiles "TAGFILES" option in the configuration file.
A tag file does not contain information about where the external documentation
is located. This could be a directory or URL. So when you include a tag
is located. This could be a directory or an URL. So when you include a tag
file you have to specify where the external documentation is located.
There are two ways to do this:
<dl>
......@@ -89,7 +89,7 @@ The directory structure looks as follows:
\endverbatim
\par
Then relevate parts of the configuration files look as follows:
Then the relevant parts of the configuration files look as follows:
\par
proj.cfg:
\verbatim
......@@ -115,7 +115,7 @@ can use the \ref doxytag_usage "doxytag" tool to extract a tag file from
the generated HTML sources. This tool depends on the particular structure
of the generated output and on some special markers that are generated by
doxygen. Since this type of extraction is brittle and error prone I
suggest to only use this approach if there is no alternative. The
suggest you to only use this approach if there is no alternative. The
doxytag tool may even become obsolete in the future.
\htmlonly
......
......@@ -68,7 +68,7 @@ It can help you in three ways:
for this manual).
</ol>
Doxygen is developed on <a href="http://www.linux.org">Linux</a>,
Doxygen is developed under <a href="http://www.linux.org">Linux</a>,
but is set-up to be highly portable. As a result, it runs on most
other UNIX flavors as well. Furthermore, an executable for
Windows 9x/NT is also available.
......
Name: doxygen
Version: 1.2.3
Version: 1.2.3-20001105
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
......
......@@ -17,10 +17,10 @@ all: Makefile.qtools Makefile
$(MAKE) -f Makefile.qtools $@
Makefile.qtools: qtools.pro
$(PERL) $(TMAKE) qtools.pro >Makefile.qtools
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) qtools.pro >Makefile.qtools
tmake:
$(PERL) $(TMAKE) qtools.pro >Makefile.qtools
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) qtools.pro >Makefile.qtools
clean: Makefile.qtools
$(MAKE) -f Makefile.qtools clean
......
......@@ -20,18 +20,18 @@ all: Makefile.doxygen Makefile.doxytag Makefile.doxysearch Makefile
$(MAKE) -f Makefile.doxysearch $@
Makefile.doxygen: doxygen.pro doxygen.t
$(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen
Makefile.doxytag: doxytag.pro doxytag.t
$(PERL) $(TMAKE) doxytag.pro >Makefile.doxytag
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxytag.pro >Makefile.doxytag
Makefile.doxysearch: doxysearch.pro
$(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch
tmake:
$(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen
$(PERL) $(TMAKE) doxytag.pro >Makefile.doxytag
$(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxytag.pro >Makefile.doxytag
export TMAKEPATH=$(TMAKEPATH) ; $(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch
clean: Makefile.doxygen Makefile.doxytag Makefile.doxysearch
$(MAKE) -f Makefile.doxygen clean
......
......@@ -1235,13 +1235,15 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
if (Config::usePDFLatexFlag)
{
QCString epstopdfCmd(4096);
epstopdfCmd.sprintf("epstopdf \"%s.eps\" -outfile=\"%s.pdf\"",
epsBaseName.data(),epsBaseName.data());
//epstopdfCmd.sprintf("epstopdf \"%s.eps\" -outfile=\"%s.pdf\"",
// epsBaseName.data(),epsBaseName.data());
//printf("Converting eps using `%s'\n",epstopdfCmd.data());
if (iSystem(epstopdfCmd)!=0)
{
err("Error: Problems running epstopdf. Check your TeX installation!\n");
return;
}
printf("done\n");
}
}
......
......@@ -1717,14 +1717,16 @@ static void buildMemberList(Entry *root)
)
{
// see if we need to create a new member
found=nsName==rnsName || // members are in the same namespace
((fd!=0 && // no external reference
found=(nd && rnd && nsName==rnsName) || // members are in the same namespace
((fd!=0 && // no external reference and
fd->absFilePath()==root->fileName // prototype in the same file
) ||
md->getGroupDef()!=0 // member is part of a group
md->getGroupDef()!=0 // member is part of a group
);
// otherwise, allow a duplicate global member with the same argument list
//printf("combining function with prototype found=%d `%s'<->`%s'!\n",
// found,fd->absFilePath().data(),root->fileName.data());
// merge members documentation and properties
mergeArguments(root->argList,md->argumentList());
if (!md->documentation() && !root->doc.isEmpty())
......@@ -1963,12 +1965,16 @@ static void transferFunctionDocumentation()
if (md->isPrototype()) mdec=md;
if (md->isFunction() && !md->isStatic() && !md->isPrototype()) mdef=md;
}
//printf("mdef=(%p,%s) mdec=(%p,%s)\n",
// mdef, mdef ? mdef->name().data() : "",
// mdec, mdec ? mdec->name().data() : "");
if (mdef && mdec &&
matchArguments(mdef->argumentList(),mdec->argumentList())
) /* match found */
{
//printf("Found member %s: def in %s and dec in %s\n",
// mn->memberName(),mdef->getFileDef()->name(),mdec->getFileDef()->name());
// mn->memberName(),mdef->getFileDef()->name().data(),
// mdec->getFileDef()->name().data());
/* copy documentation between function definition and declaration */
if (mdec->briefDescription())
......@@ -2520,6 +2526,8 @@ static void addMemberDocs(Entry *root,
}
else
{
//printf("Adding docs md->docs=`%s' root->docs=`%s'!\n",
// md->documentation().data(),root->doc.data());
// documentation outside a compound overrides the documentation inside it
if ( /* !md->isStatic() && !root->stat && do not replace doc of a static */
(
......@@ -5118,29 +5126,19 @@ static void copyStyleSheet()
static void readFiles(BufStr &output)
{
QCString *s=inputFiles.first();
// char *p=output.data();
while (s)
{
QCString fileName=*s;
//int fileSize=fi->fileInfo()->size();
int fileNameSize=fileName.length();
//int streamLength=fileSize+fileNameSize+4;
//QCString fileText(streamLength);
// add begin filename marker
// *p++=0x06;
output.addChar(0x06);
// copy filename
// memcpy(p,fileName.data(),fileNameSize);
// p+=fileNameSize;
output.addArray(fileName.data(),fileNameSize);
// add end filename marker
// *p++=0x06;
output.addChar(0x06);
// *p++='\n'; // to make ^ work while scanning the first line of a file!
output.addChar('\n');
if (Config::preprocessingFlag)
{
......@@ -5158,10 +5156,7 @@ static void readFiles(BufStr &output)
s=inputFiles.next();
//printf("-------> adding new line\n");
}
// *p++='\0';
output.addChar(0);
//printf("Output after preprocessing:\n---------\n%s\n----------\n",output.data());
//printf("Final length = %d\n",p-output.data());
}
//----------------------------------------------------------------------------
......@@ -5177,7 +5172,8 @@ static int readDir(QFileInfo *fi,
QStrList *patList,
QStrList *exclPatList,
StringList *resultList,
StringDict *resultDict
StringDict *resultDict,
bool errorIfNotExist
)
{
QDir dir((const char *)fi->absFilePath());
......@@ -5193,7 +5189,7 @@ static int readDir(QFileInfo *fi,
{
if (exclDict==0 || exclDict->find(cfi->absFilePath())==0)
{ // file should not be excluded
if (!cfi->exists() || !cfi->isReadable())
if ((!cfi->exists() || !cfi->isReadable()) && errorIfNotExist)
{
err("Error: source %s is not a readable file or directory... skipping.\n",cfi->absFilePath().data());
}
......@@ -5233,7 +5229,7 @@ static int readDir(QFileInfo *fi,
{
cfi->setFile(cfi->absFilePath());
totalSize+=readDir(cfi,fnList,fnDict,exclDict,
patList,exclPatList,resultList,resultDict);
patList,exclPatList,resultList,resultDict,errorIfNotExist);
}
}
++it;
......@@ -5288,7 +5284,8 @@ static int readFileOrDirectory(const char *s,
QStrList *patList,
QStrList *exclPatList,
StringList *resultList,
StringDict *resultDict
StringDict *resultDict,
bool errorIfNotExist=TRUE
)
{
QFileInfo fi(s);
......@@ -5297,7 +5294,7 @@ static int readFileOrDirectory(const char *s,
{
if (exclDict==0 || exclDict->find(fi.absFilePath())==0)
{
if (!fi.exists() || !fi.isReadable())
if ((!fi.exists() || !fi.isReadable()) && errorIfNotExist)
{
err("Error: source %s is not a readable file or directory... skipping.\n",s);
}
......@@ -5333,7 +5330,7 @@ static int readFileOrDirectory(const char *s,
}
else if (fi.isDir()) // readable dir
totalSize+=readDir(&fi,fnList,fnDict,exclDict,patList,
exclPatList,resultList,resultDict);
exclPatList,resultList,resultDict,errorIfNotExist);
}
}
return totalSize;
......@@ -5725,7 +5722,7 @@ int main(int argc,char **argv)
while (s)
{
readFileOrDirectory(s,0,0,0,&Config::filePatternList,
0,0,&excludeNameDict);
0,0,&excludeNameDict,FALSE);
s=Config::excludeSources.next();
}
......
......@@ -124,7 +124,8 @@ class FileDef : public Definition
//void setGenerateSource(bool b) { isSource=b; }
bool generateSourceFile() const
{ return !isReference() &&
(Config::sourceBrowseFlag || Config::verbatimHeaderFlag);
(Config::sourceBrowseFlag || Config::verbatimHeaderFlag) &&
name().right(4)!=".doc" && name().right(4)!=".txt";
}
void addIncludeDependency(FileDef *fd,const char *incName,bool local);
......
......@@ -631,23 +631,23 @@ void writeNamespaceIndex(OutputList &ol)
if (nd->isLinkableInProject())
{
ol.writeStartAnnoItem("namespace",nd->getOutputFileBase(),0,nd->name());
ol.docify(" (");
if (!nd->briefDescription().isEmpty())
{
ol.docify(" (");
OutputList briefOutput(&ol);
parseDoc(briefOutput,
nd->getDefFileName(),nd->getDefLine(),
nd->name(),0,
abbreviate(nd->briefDescription(),nd->name()));
ol+=briefOutput;
ol.docify(")");
}
else
{
ol.startEmphasis();
parseText(ol,theTranslator->trNoDescriptionAvailable());
ol.endEmphasis();
}
ol.docify(")");
//else
//{
// ol.startEmphasis();
// parseText(ol,theTranslator->trNoDescriptionAvailable());
// ol.endEmphasis();
//}
ol.writeEndAnnoItem(nd->getOutputFileBase());
if (hasHtmlHelp)
{
......@@ -707,23 +707,23 @@ void writeAnnotatedClassList(OutputList &ol)
default: type="interface"; break;
}
ol.writeStartAnnoItem(type,cd->getOutputFileBase(),0,cd->displayName());
ol.docify(" (");
if (!cd->briefDescription().isEmpty())
{
ol.docify(" (");
OutputList briefOutput(&ol);
parseDoc(briefOutput,
cd->getDefFileName(),cd->getDefLine(),
cd->name(),0,
abbreviate(cd->briefDescription(),cd->name()));
ol+=briefOutput;
ol.docify(")");
}
else
{
ol.startEmphasis();
parseText(ol,theTranslator->trNoDescriptionAvailable());
ol.endEmphasis();
}
ol.docify(")");
//else
//{
// ol.startEmphasis();
// parseText(ol,theTranslator->trNoDescriptionAvailable());
// ol.endEmphasis();
//}
ol.writeEndAnnoItem(cd->getOutputFileBase());
if (Config::generateHtml && Config::htmlHelpFlag)
{
......
......@@ -189,6 +189,7 @@ static void writeTemplatePrefix(OutputList &ol,ArgumentList *al,bool br=TRUE)
while (a)
{
ol.docify(a->type);
ol.docify(" ");
ol.docify(a->name);
if (a->defval.length()!=0)
{
......
......@@ -1309,7 +1309,7 @@ TITLE [tT][iI][tT][lL][eE]
if ( *yytext == ',' )
{
int i=oldType.length();
while (i>0 && (oldType[i-1]=='*' || oldType[i-1]==' ')) i--;
while (i>0 && (oldType[i-1]=='*' || oldType[i-1]=='&' || oldType[i-1]==' ')) i--;
current->type = oldType.left(i);
current->doc = oldDocs;
}
......
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