Commit d84f6a6a authored by dimitri's avatar dimitri

Release-1.2.1-20000917

parent 69ead65c
DOXYGEN Version 1.2.1-20000910 DOXYGEN Version 1.2.1-20000917
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (10 September 2000) Dimitri van Heesch (17 September 2000)
DOXYGEN Version 1.2.1-20000910 DOXYGEN Version 1.2.1-20000917
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 (10 September 2000) Dimitri van Heesch (17 September 2000)
1.2.1-20000910 1.2.1-20000917
...@@ -248,9 +248,9 @@ Here is a list of the languages and their current maintainers: ...@@ -248,9 +248,9 @@ Here is a list of the languages and their current maintainers:
\hline \hline
Russian & Nickolay Semyonov & {\tt snob@int.spb.ru} \\ Russian & Nickolay Semyonov & {\tt snob@int.spb.ru} \\
\hline \hline
Korean & Richard Kim & {\\tt ryk@dspwiz.com} \\ Korean & Richard Kim & {\tt ryk@dspwiz.com} \\
\hline \hline
Hungarian & Fldvri Gyrgy & {\\tt foldvari@diatronltd.com} \\ Hungarian & Fldvri Gyrgy & {\tt foldvari@diatronltd.com} \\
\hline \hline
Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} \\ Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} \\
\hline \hline
......
Name: doxygen Name: doxygen
Version: 1.2.1-20000910 Version: 1.2.1-20000917
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
......
...@@ -120,6 +120,8 @@ static bool g_searchingForBody; ...@@ -120,6 +120,8 @@ static bool g_searchingForBody;
static bool g_insideBody; static bool g_insideBody;
static int g_bodyCurlyCount; static int g_bodyCurlyCount;
static ClassDef * g_classVar; static ClassDef * g_classVar;
static QCString g_saveName;
static QCString g_saveType;
/*! start a new line of code, inserting a line number if g_sourceFileDef /*! start a new line of code, inserting a line number if g_sourceFileDef
* is TRUE. If a definition starts at the current line, then the line * is TRUE. If a definition starts at the current line, then the line
...@@ -574,18 +576,21 @@ static void generateMemberLink(OutputList &ol,const char *varName, ...@@ -574,18 +576,21 @@ static void generateMemberLink(OutputList &ol,const char *varName,
vn=vn.right(vn.length()-vi-2); vn=vn.right(vn.length()-vi-2);
vmn=memberNameDict[vn]; vmn=memberNameDict[vn];
//printf("Trying name `%s' scope=%s\n",vn.data(),scope.data()); //printf("Trying name `%s' scope=%s\n",vn.data(),scope.data());
MemberNameIterator vmni(*vmn); if (vmn)
MemberDef *vmd;
for (;(vmd=vmni.current());++vmni)
{ {
if ((vmd->isVariable() || vmd->isFunction()) && MemberNameIterator vmni(*vmn);
vmd->getClassDef()==jcd) MemberDef *vmd;
for (;(vmd=vmni.current());++vmni)
{ {
//printf("Found variable type=%s\n",vmd->typeString()); if ((vmd->isVariable() || vmd->isFunction()) &&
ClassDef *mcd=stripClassName(vmd->typeString()); vmd->getClassDef()==jcd)
if (mcd && mcd->isLinkable())
{ {
if (generateClassMemberLink(ol,mcd,memName)) return; //printf("Found variable type=%s\n",vmd->typeString());
ClassDef *mcd=stripClassName(vmd->typeString());
if (mcd && mcd->isLinkable())
{
if (generateClassMemberLink(ol,mcd,memName)) return;
}
} }
} }
} }
...@@ -626,7 +631,7 @@ static void generateFunctionLink(OutputList &ol,char *funcName) ...@@ -626,7 +631,7 @@ static void generateFunctionLink(OutputList &ol,char *funcName)
if (i>0) if (i>0)
{ {
locScope=locFunc.left(i); locScope=locFunc.left(i);
locFunc=locFunc.right(locFunc.length()-i-2); locFunc=locFunc.right(locFunc.length()-i-2).stripWhiteSpace();
int ts=locScope.find('<'); // start of template int ts=locScope.find('<'); // start of template
int te=locScope.findRev('>'); // end of template int te=locScope.findRev('>'); // end of template
//printf("ts=%d te=%d\n",ts,te); //printf("ts=%d te=%d\n",ts,te);
...@@ -636,7 +641,7 @@ static void generateFunctionLink(OutputList &ol,char *funcName) ...@@ -636,7 +641,7 @@ static void generateFunctionLink(OutputList &ol,char *funcName)
locScope=locScope.left(ts)+locScope.right(locScope.length()-te-1); locScope=locScope.left(ts)+locScope.right(locScope.length()-te-1);
} }
} }
//printf("generateFunctionLink(%s) classScope=%s\n",locFunc.data(),locScope.data()); //printf("generateFunctionLink(%s) classScope=`%s'\n",locFunc.data(),locScope.data());
if (!locScope.isEmpty() && (ccd=g_codeClassDict[locScope])) if (!locScope.isEmpty() && (ccd=g_codeClassDict[locScope]))
{ {
//printf("using classScope %s\n",g_classScope.data()); //printf("using classScope %s\n",g_classScope.data());
...@@ -1067,12 +1072,22 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1067,12 +1072,22 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
} }
<Body>[,=;\[] { <Body>[,=;\[] {
g_code->codify(yytext); g_code->codify(yytext);
g_saveName = g_name.copy();
g_saveType = g_name.copy();
if (!g_type.isEmpty()) if (!g_type.isEmpty())
{
addVariable(); addVariable();
g_name.resize(0); g_name.resize(0);
}
if (*yytext!=',') g_type.resize(0); if (*yytext!=',') g_type.resize(0);
g_args.resize(0); g_args.resize(0);
} }
<Body>"]" {
g_code->codify(yytext);
// TODO: nested arrays like: a[b[0]->func()]->func()
g_name = g_saveName.copy();
g_type = g_saveType.copy();
}
<Body>[0-9]+ { <Body>[0-9]+ {
g_code->codify(yytext); g_code->codify(yytext);
} }
...@@ -1121,7 +1136,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1121,7 +1136,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
<MemberCall2,FuncCall>")"[ \t\n]*[;:] { <MemberCall2,FuncCall>")"[ \t\n]*[;:] {
codifyLines(yytext); codifyLines(yytext);
g_bracketCount=0; g_bracketCount=0;
g_searchingForBody=FALSE; if (yytext[yyleng-1]==';') g_searchingForBody=FALSE;
if (!g_inClass && !g_type.isEmpty()) if (!g_inClass && !g_type.isEmpty())
addVariable(); addVariable();
g_parmType.resize(0);g_parmName.resize(0); g_parmType.resize(0);g_parmName.resize(0);
......
...@@ -1432,8 +1432,11 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1432,8 +1432,11 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if ((sec=sectionDict[secName])) if ((sec=sectionDict[secName]))
{ {
//printf("Title %s\n",sec->title.data()); //printf("Title %s\n",sec->title.data());
outDoc->writeSection(sec->label,sec->title, outDoc->startSection(sec->label,sec->title,
sec->type==SectionInfo::Subsection); sec->type==SectionInfo::Subsection);
scanString(sec->title);
outDoc->endSection(sec->label,
sec->type==SectionInfo::Subsection);
} }
} }
<DocScan>{CMD}"anchor "{ID}"\n" { <DocScan>{CMD}"anchor "{ID}"\n" {
...@@ -1510,7 +1513,6 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1510,7 +1513,6 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
text=sec->title; text=sec->title;
if (sec->type==SectionInfo::Anchor) if (sec->type==SectionInfo::Anchor)
{ {
//outDoc->writeSectionRefAnchor(sec->fileName,sec->label,text);
outDoc->writeObjectLink(0,sec->fileName,sec->label,text); outDoc->writeObjectLink(0,sec->fileName,sec->label,text);
writePageRef(*outDoc,sec->label,0); writePageRef(*outDoc,sec->label,0);
} }
......
...@@ -844,7 +844,11 @@ void DotClassGraph::buildGraph(ClassDef *cd,DotNode *n,int distance,bool base) ...@@ -844,7 +844,11 @@ void DotClassGraph::buildGraph(ClassDef *cd,DotNode *n,int distance,bool base)
BaseClassDef *bcd; BaseClassDef *bcd;
for ( ; (bcd=bcli.current()) ; ++bcli ) for ( ; (bcd=bcli.current()) ; ++bcli )
{ {
addClass(bcd->classDef,n,bcd->prot,0,distance,bcd->templSpecifiers,base); //printf("addClass: base=%s this=%s templ=%s\n",bcd->classDef->name().data(),
// cd->name().data(),bcd->templSpecifiers.data());
QCString templSpec;
if (base) templSpec = bcd->templSpecifiers;
addClass(bcd->classDef,n,bcd->prot,0,distance,templSpec,base);
} }
if (m_graphType != Inheritance) if (m_graphType != Inheritance)
{ {
......
...@@ -4606,7 +4606,9 @@ static void generatePageDocs() ...@@ -4606,7 +4606,9 @@ static void generatePageDocs()
if (!pi->title.isEmpty() && !pi->name.isEmpty() && if (!pi->title.isEmpty() && !pi->name.isEmpty() &&
(si=sectionDict[pi->name])!=0) (si=sectionDict[pi->name])!=0)
{ {
outputList->writeSection(si->label,si->title,FALSE); outputList->startSection(si->label,si->title,FALSE);
outputList->docify(si->title);
outputList->endSection(si->label,FALSE);
} }
outputList->startTextBlock(); outputList->startTextBlock();
parseDoc(*outputList,pi->defFileName,pi->defLine,0,0,pi->doc); parseDoc(*outputList,pi->defFileName,pi->defLine,0,0,pi->doc);
......
...@@ -449,11 +449,14 @@ void HtmlGenerator::endGroupHeader() ...@@ -449,11 +449,14 @@ void HtmlGenerator::endGroupHeader()
t << "</h2>" << endl; t << "</h2>" << endl;
} }
void HtmlGenerator::writeSection(const char *lab,const char *title,bool sub) void HtmlGenerator::startSection(const char *lab,const char *,bool sub)
{ {
t << "<a name=\"" << lab << "\">"; t << "<a name=\"" << lab << "\">";
if (sub) t << "<h3>"; else t << "<h2>"; if (sub) t << "<h3>"; else t << "<h2>";
docify(title); }
void HtmlGenerator::endSection(const char *,bool sub)
{
if (sub) t << "</h3>"; else t << "</h2>"; if (sub) t << "</h3>"; else t << "</h2>";
t << "</a>" << endl; t << "</a>" << endl;
} }
......
...@@ -184,7 +184,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -184,7 +184,8 @@ class HtmlGenerator : public OutputGenerator
void endDescTitle() {} void endDescTitle() {}
void writeDescItem() { t << "<dd>" << endl; } void writeDescItem() { t << "<dd>" << endl; }
void endDescList() { t << "</dl>"; } void endDescList() { t << "</dl>"; }
void writeSection(const char *,const char *,bool); void startSection(const char *,const char *,bool);
void endSection(const char *,bool);
void writeSectionRef(const char *,const char *,const char *); void writeSectionRef(const char *,const char *,const char *);
void writeSectionRefItem(const char *,const char *,const char *); void writeSectionRefItem(const char *,const char *,const char *);
void writeSectionRefAnchor(const char *,const char *,const char *); void writeSectionRefAnchor(const char *,const char *,const char *);
......
...@@ -972,7 +972,9 @@ void writeMemberList(OutputList &ol,bool useSections) ...@@ -972,7 +972,9 @@ void writeMemberList(OutputList &ol,bool useSections)
lastChar=cs[0]=tolower(name.at(0));cs[1]='\0'; lastChar=cs[0]=tolower(name.at(0));cs[1]='\0';
QCString anchor=(QCString)"index_"+cs; QCString anchor=(QCString)"index_"+cs;
QCString title=(QCString)"- "+cs+" -"; QCString title=(QCString)"- "+cs+" -";
ol.writeSection(anchor,title,TRUE); ol.startSection(anchor,title,TRUE);
ol.docify(title);
ol.endSection(anchor,TRUE);
ol.startItemList(); ol.startItemList();
first=FALSE; first=FALSE;
} }
...@@ -1135,7 +1137,9 @@ void writeFileMemberList(OutputList &ol,bool useSections) ...@@ -1135,7 +1137,9 @@ void writeFileMemberList(OutputList &ol,bool useSections)
lastChar=cs[0]=tolower(name.at(0));cs[1]='\0'; lastChar=cs[0]=tolower(name.at(0));cs[1]='\0';
QCString anchor=(QCString)"index_"+cs; QCString anchor=(QCString)"index_"+cs;
QCString title=(QCString)"- "+cs+" -"; QCString title=(QCString)"- "+cs+" -";
ol.writeSection(anchor,title,TRUE); ol.startSection(anchor,title,TRUE);
ol.docify(title);
ol.endSection(anchor,TRUE);
ol.startItemList(); ol.startItemList();
first=FALSE; first=FALSE;
} }
...@@ -1212,7 +1216,9 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections) ...@@ -1212,7 +1216,9 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
lastChar=cs[0]=tolower(name.at(0));cs[1]='\0'; lastChar=cs[0]=tolower(name.at(0));cs[1]='\0';
QCString anchor=(QCString)"index_"+cs; QCString anchor=(QCString)"index_"+cs;
QCString title=(QCString)"- "+cs+" -"; QCString title=(QCString)"- "+cs+" -";
ol.writeSection(anchor,title,TRUE); ol.startSection(anchor,title,TRUE);
ol.docify(title);
ol.endSection(anchor,TRUE);
ol.startItemList(); ol.startItemList();
first=FALSE; first=FALSE;
} }
...@@ -1842,7 +1848,9 @@ void writeIndex(OutputList &ol) ...@@ -1842,7 +1848,9 @@ void writeIndex(OutputList &ol)
if (!mainPage->title.isEmpty() && !mainPage->name.isEmpty() && if (!mainPage->title.isEmpty() && !mainPage->name.isEmpty() &&
(si=sectionDict[mainPage->name])!=0) (si=sectionDict[mainPage->name])!=0)
{ {
ol.writeSection(si->label,si->title,FALSE); ol.startSection(si->label,si->title,FALSE);
ol.docify(si->title);
ol.endSection(si->label,FALSE);
} }
ol.startTextBlock(); ol.startTextBlock();
parseDoc(ol,defFileName,defLine,0,0,mainPage->doc); parseDoc(ol,defFileName,defLine,0,0,mainPage->doc);
......
...@@ -166,16 +166,27 @@ void LatexGenerator::init() ...@@ -166,16 +166,27 @@ void LatexGenerator::init()
t << "\tpdflatex refman.tex" << endl << endl; t << "\tpdflatex refman.tex" << endl << endl;
} }
else // otherwise use ps2pdf: not as nice :( else // otherwise use ps2pdf: not as nice :(
// especially from the font point of view
{ {
#if defined(_MSC_VER)
// ps2pdf.bat does not work properly from a makefile using GNU make!
t << "\tgswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
"-sOutputFile=refman.pdf -c save pop -f refman.ps" << endl << endl;
#else
t << "\tps2pdf refman.ps refman.pdf" << endl << endl; t << "\tps2pdf refman.ps refman.pdf" << endl << endl;
#endif
} }
t << "refman_2on1.ps: refman.ps" << endl t << "refman_2on1.ps: refman.ps" << endl
<< "\tpsnup -2 refman.ps >refman_2on1.ps" << endl << "\tpsnup -2 refman.ps >refman_2on1.ps" << endl
<< endl << endl
<< "refman_2on1.pdf: refman_2on1.ps" << endl << "refman_2on1.pdf: refman_2on1.ps" << endl
#if defined(_MSC_VER)
// ps2pdf.bat does not work properly from a makefile using GNU make!
<< "\tgswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
"-sOutputFile=refman_2on1.pdf -c save pop -f refman_2on1.ps" << endl
#else
<< "\tps2pdf refman_2on1.ps refman_2on1.pdf" << endl << "\tps2pdf refman_2on1.ps refman_2on1.pdf" << endl
#endif
<< endl << endl
<< "refman.dvi: refman.tex doxygen.sty" << endl << "refman.dvi: refman.tex doxygen.sty" << endl
<< "\techo \"Running latex...\"" << endl << "\techo \"Running latex...\"" << endl
...@@ -1069,7 +1080,7 @@ void LatexGenerator::addToIndex(const char *s1,const char *s2) ...@@ -1069,7 +1080,7 @@ void LatexGenerator::addToIndex(const char *s1,const char *s2)
} }
} }
void LatexGenerator::writeSection(const char *lab,const char *title,bool sub) void LatexGenerator::startSection(const char *lab,const char *,bool sub)
{ {
if (Config::pdfHyperFlag) if (Config::pdfHyperFlag)
{ {
...@@ -1077,7 +1088,10 @@ void LatexGenerator::writeSection(const char *lab,const char *title,bool sub) ...@@ -1077,7 +1088,10 @@ void LatexGenerator::writeSection(const char *lab,const char *title,bool sub)
} }
t << "\\"; t << "\\";
if (sub) t << "subsection{"; else t << "section{"; if (sub) t << "subsection{"; else t << "section{";
docify(title); }
void LatexGenerator::endSection(const char *lab,bool)
{
t << "}\\label{" << lab << "}" << endl; t << "}\\label{" << lab << "}" << endl;
} }
......
...@@ -180,7 +180,8 @@ class LatexGenerator : public OutputGenerator ...@@ -180,7 +180,8 @@ class LatexGenerator : public OutputGenerator
void endDescTitle() { t << "]"; } void endDescTitle() { t << "]"; }
void writeDescItem() { t << "\\par" << endl; } void writeDescItem() { t << "\\par" << endl; }
void endDescList() { t << "\\end{Desc}" << endl; } void endDescList() { t << "\\end{Desc}" << endl; }
void writeSection(const char *,const char *,bool); void startSection(const char *,const char *,bool);
void endSection(const char *,bool);
void writeSectionRef(const char *,const char *,const char *); void writeSectionRef(const char *,const char *,const char *);
void writeSectionRefItem(const char *,const char *,const char *); void writeSectionRefItem(const char *,const char *,const char *);
void writeSectionRefAnchor(const char *,const char *,const char *); void writeSectionRefAnchor(const char *,const char *,const char *);
......
...@@ -170,7 +170,8 @@ class ManGenerator : public OutputGenerator ...@@ -170,7 +170,8 @@ class ManGenerator : public OutputGenerator
void endDescTitle(); void endDescTitle();
void writeDescItem(); void writeDescItem();
void endDescList() {} void endDescList() {}
void writeSection(const char *,const char *,bool) {} void startSection(const char *,const char *,bool) {}
void endSection(const char *,bool) {}
void writeSectionRef(const char *,const char *,const char *) {} void writeSectionRef(const char *,const char *,const char *) {}
void writeSectionRefItem(const char *,const char *,const char *) {} void writeSectionRefItem(const char *,const char *,const char *) {}
void writeSectionRefAnchor(const char *,const char *,const char *) {} void writeSectionRefAnchor(const char *,const char *,const char *) {}
......
...@@ -170,7 +170,8 @@ class OutputGenerator ...@@ -170,7 +170,8 @@ class OutputGenerator
virtual void endDescTitle() = 0; virtual void endDescTitle() = 0;
virtual void writeDescItem() = 0; virtual void writeDescItem() = 0;
virtual void endDescList() = 0; virtual void endDescList() = 0;
virtual void writeSection(const char *,const char *,bool) = 0; virtual void startSection(const char *,const char *,bool) = 0;
virtual void endSection(const char *,bool) = 0;
virtual void writeSectionRef(const char *,const char *,const char *) = 0; virtual void writeSectionRef(const char *,const char *,const char *) = 0;
virtual void writeSectionRefItem(const char *,const char *,const char *) = 0; virtual void writeSectionRefItem(const char *,const char *,const char *) = 0;
virtual void writeSectionRefAnchor(const char *,const char *,const char *) = 0; virtual void writeSectionRefAnchor(const char *,const char *,const char *) = 0;
......
...@@ -268,6 +268,7 @@ FORALL2(bool a1,bool a2,a1,a2) ...@@ -268,6 +268,7 @@ FORALL2(bool a1,bool a2,a1,a2)
FORALL2(int a1,bool a2,a1,a2) FORALL2(int a1,bool a2,a1,a2)
FORALL1(IndexSections a1,a1) FORALL1(IndexSections a1,a1)
FORALL2(const char *a1,const char *a2,a1,a2) FORALL2(const char *a1,const char *a2,a1,a2)
FORALL2(const char *a1,bool a2,a1,a2)
FORALL3(ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3)
FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3)
FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3)
......
...@@ -303,8 +303,10 @@ class OutputList ...@@ -303,8 +303,10 @@ class OutputList
{ forall(&OutputGenerator::startIndent); } { forall(&OutputGenerator::startIndent); }
void endIndent() void endIndent()
{ forall(&OutputGenerator::endIndent); } { forall(&OutputGenerator::endIndent); }
void writeSection(const char *lab,const char *title,bool sub) void startSection(const char *lab,const char *title,bool sub)
{ forall(&OutputGenerator::writeSection,lab,title,sub); } { forall(&OutputGenerator::startSection,lab,title,sub); }
void endSection(const char *lab,bool sub)
{ forall(&OutputGenerator::endSection,lab,sub); }
void writeSectionRef(const char *page,const char *lab, const char *title) void writeSectionRef(const char *page,const char *lab, const char *title)
{ forall(&OutputGenerator::writeSectionRef,page,lab,title); } { forall(&OutputGenerator::writeSectionRef,page,lab,title); }
void writeSectionRefItem(const char *page,const char *lab, const char *title) void writeSectionRefItem(const char *page,const char *lab, const char *title)
...@@ -406,6 +408,7 @@ class OutputList ...@@ -406,6 +408,7 @@ class OutputList
#endif #endif
FORALLPROTO2(int,bool); FORALLPROTO2(int,bool);
FORALLPROTO2(const char *,const char *); FORALLPROTO2(const char *,const char *);
FORALLPROTO2(const char *,bool);
FORALLPROTO3(const char *,const char *,bool); FORALLPROTO3(const char *,const char *,bool);
FORALLPROTO3(uchar,uchar,uchar); FORALLPROTO3(uchar,uchar,uchar);
FORALLPROTO3(const char *,const char *,const char *); FORALLPROTO3(const char *,const char *,const char *);
......
This diff is collapsed.
...@@ -166,7 +166,8 @@ class RTFGenerator : public OutputGenerator ...@@ -166,7 +166,8 @@ class RTFGenerator : public OutputGenerator
void endDescTitle(); void endDescTitle();
void writeDescItem(); void writeDescItem();
void endDescList(); void endDescList();
void writeSection(const char *,const char *,bool); void startSection(const char *,const char *,bool);
void endSection(const char *,bool);
void writeSectionRef(const char *,const char *,const char *); void writeSectionRef(const char *,const char *,const char *);
void writeSectionRefItem(const char *,const char *,const char *); void writeSectionRefItem(const char *,const char *,const char *);
void writeSectionRefAnchor(const char *,const char *,const char *); void writeSectionRefAnchor(const char *,const char *,const char *);
......
...@@ -309,7 +309,7 @@ static int yyread(char *buf,int max_size) ...@@ -309,7 +309,7 @@ static int yyread(char *buf,int max_size)
%} %}
CMD ("\\"|"@") CMD ("\\"|"@")
SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"ingroup") SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"ingroup"|"latexonly"|"htmlonly")
BN [ \t\n\r] BN [ \t\n\r]
BL [ \t\r]*"\n" BL [ \t\r]*"\n"
B [ \t] B [ \t]
...@@ -1901,7 +1901,10 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1901,7 +1901,10 @@ TITLE [tT][iI][tT][lL][eE]
<Function>"#" { lastCPPContext = YY_START; <Function>"#" { lastCPPContext = YY_START;
BEGIN(SkipCPP); BEGIN(SkipCPP);
} }
<Function>[:;{] { <Function>":" {
BEGIN(SkipInits);
}
<Function>[;{] {
current->name=current->name.simplifyWhiteSpace(); current->name=current->name.simplifyWhiteSpace();
current->type=current->type.simplifyWhiteSpace(); current->type=current->type.simplifyWhiteSpace();
current->args=current->args.simplifyWhiteSpace(); current->args=current->args.simplifyWhiteSpace();
...@@ -1983,11 +1986,11 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1983,11 +1986,11 @@ TITLE [tT][iI][tT][lL][eE]
curlyCount=0; curlyCount=0;
BEGIN( SkipCurly ) ; BEGIN( SkipCurly ) ;
} }
else if( *yytext == ':' ) //else if( *yytext == ':' )
{ //{
//addToBody(yytext); // //addToBody(yytext);
BEGIN( SkipInits ) ; // BEGIN( SkipInits ) ;
} //}
else else
{ {
if (previous->section!=Entry::VARIABLE_SEC) if (previous->section!=Entry::VARIABLE_SEC)
...@@ -1998,9 +2001,11 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1998,9 +2001,11 @@ TITLE [tT][iI][tT][lL][eE]
<SkipInits>"{" { <SkipInits>"{" {
//addToBody(yytext); //addToBody(yytext);
lastCurlyContext = FindMembers; //lastCurlyContext = FindMembers;
curlyCount=0; //curlyCount=0;
BEGIN( SkipCurly ) ; //BEGIN( SkipCurly ) ;
unput('{');
BEGIN( Function );
} }
<SkipCurly>"{" { <SkipCurly>"{" {
//addToBody(yytext); //addToBody(yytext);
...@@ -2186,7 +2191,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -2186,7 +2191,7 @@ TITLE [tT][iI][tT][lL][eE]
} }
<ClassVar>":" { <ClassVar>":" {
current->type.resize(0); current->type.resize(0);
if (current->section == Entry::INTERFACE_SEC) if (current->section == Entry::INTERFACE_SEC || current->section == Entry::STRUCT_SEC)
baseProt=Public; baseProt=Public;
else else
baseProt=Private; baseProt=Private;
...@@ -2311,7 +2316,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -2311,7 +2316,7 @@ TITLE [tT][iI][tT][lL][eE]
} }
<Comment>. { current->program += *yytext ; } <Comment>. { current->program += *yytext ; }
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar>("//"{B}*)?"/*!" { <FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits>("//"{B}*)?"/*!" {
//printf("Start doc block at %d\n",yyLineNr); //printf("Start doc block at %d\n",yyLineNr);
removeSlashes=(yytext[1]=='/'); removeSlashes=(yytext[1]=='/');
tmpDocType=-1; tmpDocType=-1;
...@@ -2324,7 +2329,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -2324,7 +2329,7 @@ TITLE [tT][iI][tT][lL][eE]
current->inside = current_root->name+"::"; current->inside = current_root->name+"::";
BEGIN( Doc ); BEGIN( Doc );
} }
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar>("//"{B}*)?"/**"/[^/*] { <FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits>("//"{B}*)?"/**"/[^/*] {
removeSlashes=(yytext[1]=='/'); removeSlashes=(yytext[1]=='/');
lastDocContext = YY_START; lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK) if (current_root->section & Entry::SCOPE_MASK)
......
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