Commit 5eeee0ed authored by dimitri's avatar dimitri

Release-1.3-rc3-20030317

parent b0506442
DOXYGEN Version 1.3-rc3-20030308 DOXYGEN Version 1.3-rc3-20030317
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (08 March 2003) Dimitri van Heesch (17 March 2003)
DOXYGEN Version 1.3_rc3_20030308 DOXYGEN Version 1.3_rc3_20030317
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (08 March 2003) Dimitri van Heesch (dimitri@stack.nl) (17 March 2003)
1.3-rc3-20030308 1.3-rc3-20030317
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3_rc3_20030308 Version: 1.3_rc3_20030317
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -15,11 +15,11 @@ ...@@ -15,11 +15,11 @@
# #
all: Makefile.libdoxygen Makefile.libdoxycfg Makefile.doxygen Makefile.doxytag Makefile.doxysearch Makefile all: Makefile.libdoxygen Makefile.libdoxycfg Makefile.doxygen Makefile.doxytag Makefile.doxysearch Makefile
$(MAKE) -f Makefile.libdoxycfg $@ $(MAKE) -f Makefile.libdoxycfg PERL=$(PERL) $@
$(MAKE) -f Makefile.libdoxygen $@ $(MAKE) -f Makefile.libdoxygen PERL=$(PERL) $@
$(MAKE) -f Makefile.doxygen $@ $(MAKE) -f Makefile.doxygen PERL=$(PERL) $@
$(MAKE) -f Makefile.doxytag $@ $(MAKE) -f Makefile.doxytag PERL=$(PERL) $@
$(MAKE) -f Makefile.doxysearch $@ $(MAKE) -f Makefile.doxysearch PERL=$(PERL) $@
Makefile.libdoxygen: libdoxygen.pro libdoxygen.t Makefile.libdoxygen: libdoxygen.pro libdoxygen.t
$(ENV) $(PERL) $(TMAKE) libdoxygen.pro >Makefile.libdoxygen $(ENV) $(PERL) $(TMAKE) libdoxygen.pro >Makefile.libdoxygen
......
...@@ -98,6 +98,8 @@ ClassDef::ClassDef( ...@@ -98,6 +98,8 @@ ClassDef::ClassDef(
m_isAbstract = FALSE; m_isAbstract = FALSE;
m_isStatic = FALSE; m_isStatic = FALSE;
m_membersMerged = FALSE; m_membersMerged = FALSE;
QCString ns;
extractNamespaceName(m_name,m_className,ns);
if (((QCString)defFileName).right(5)!=".java" && if (((QCString)defFileName).right(5)!=".java" &&
guessSection(defFileName)==Entry::SOURCE_SEC) guessSection(defFileName)==Entry::SOURCE_SEC)
...@@ -132,7 +134,7 @@ QCString ClassDef::displayName() const ...@@ -132,7 +134,7 @@ QCString ClassDef::displayName() const
QCString n; QCString n;
if (Config_getBool("HIDE_SCOPE_NAMES")) if (Config_getBool("HIDE_SCOPE_NAMES"))
{ {
n=localName(); n=m_className;
} }
else else
{ {
...@@ -2519,14 +2521,15 @@ QCString ClassDef::qualifiedNameWithTemplateParameters( ...@@ -2519,14 +2521,15 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
QCString ClassDef::className() const QCString ClassDef::className() const
{ {
QCString className=m_localName; //QCString className=m_localName;
Definition *p=getOuterScope(); //Definition *p=getOuterScope();
while (p && p->definitionType()==TypeClass) //while (p && p->definitionType()==TypeClass)
{ //{
className.prepend(p->localName()+"::"); // className.prepend(p->localName()+"::");
p=p->getOuterScope(); // p=p->getOuterScope();
} //}
return className; //return className;
return m_className;
}; };
void ClassDef::addListReferences() void ClassDef::addListReferences()
......
...@@ -414,6 +414,9 @@ class ClassDef : public Definition ...@@ -414,6 +414,9 @@ class ClassDef : public Definition
/*! TRUE if the class is defined in a source file rather than a header file. */ /*! TRUE if the class is defined in a source file rather than a header file. */
bool m_isLocal; bool m_isLocal;
/*! class name with outer class scope, but without namespace scope. */
QCString m_className;
}; };
/*! \brief Class that contains information about a usage relation. /*! \brief Class that contains information about a usage relation.
......
...@@ -103,13 +103,13 @@ void ClassSDict::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *f ...@@ -103,13 +103,13 @@ void ClassSDict::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *f
ol.writeObjectLink(cd->getReference(), ol.writeObjectLink(cd->getReference(),
cd->getOutputFileBase(), cd->getOutputFileBase(),
0, 0,
cd->localName() cd->className()
); );
} }
else else
{ {
ol.startBold(); ol.startBold();
ol.docify(cd->localName()); ol.docify(cd->className());
ol.endBold(); ol.endBold();
} }
ol.endMemberItem(); ol.endMemberItem();
......
...@@ -125,6 +125,7 @@ class ConfigList : public ConfigOption ...@@ -125,6 +125,7 @@ class ConfigList : public ConfigOption
t << "\n"; t << "\n";
} }
void substEnvVars(); void substEnvVars();
void init() { m_value.clear(); }
private: private:
QStrList m_value; QStrList m_value;
WidgetType m_widgetType; WidgetType m_widgetType;
...@@ -244,7 +245,7 @@ class ConfigInt : public ConfigOption ...@@ -244,7 +245,7 @@ class ConfigInt : public ConfigOption
t << endl; t << endl;
} }
t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "= "; t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "= ";
if (upd) if (upd && !m_valueString.isEmpty())
{ {
writeStringValue(t,m_valueString); writeStringValue(t,m_valueString);
} }
...@@ -281,6 +282,7 @@ class ConfigBool : public ConfigOption ...@@ -281,6 +282,7 @@ class ConfigBool : public ConfigOption
bool *valueRef() { return &m_value; } bool *valueRef() { return &m_value; }
void convertStrToVal(); void convertStrToVal();
void substEnvVars(); void substEnvVars();
void setValueString(const QCString &v) { m_valueString = v; }
void writeTemplate(QTextStream &t,bool sl,bool upd) void writeTemplate(QTextStream &t,bool sl,bool upd)
{ {
if (!sl) if (!sl)
......
...@@ -1218,6 +1218,13 @@ void Config::check() ...@@ -1218,6 +1218,13 @@ void Config::check()
PUTENV(buf); PUTENV(buf);
} }
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA") && Config_getBool("INLINE_INFO"))
{
// don't show inline info for Java output, since Java has no inline
// concept.
Config_getBool("INLINE_INFO")=FALSE;
}
} }
void Config::init() void Config::init()
......
...@@ -31,13 +31,19 @@ ...@@ -31,13 +31,19 @@
Definition::Definition(const char *df,int dl, Definition::Definition(const char *df,int dl,
const char *name,const char *b,const char *d) const char *name,const char *b,const char *d)
{ {
//QCString ns;
m_defFileName = df; m_defFileName = df;
m_defLine = dl; m_defLine = dl;
m_name=name; m_name=name;
if (m_name!="<globalScope>") if (m_name!="<globalScope>")
{
//extractNamespaceName(m_name,m_localName,ns);
m_localName=stripScope(name); m_localName=stripScope(name);
}
else else
{
m_localName=name; m_localName=name;
}
//printf("m_localName=%s\n",m_localName.data()); //printf("m_localName=%s\n",m_localName.data());
m_brief=b; m_brief=b;
m_doc=d; m_doc=d;
......
...@@ -7521,6 +7521,8 @@ void parseInput() ...@@ -7521,6 +7521,8 @@ void parseInput()
int sp;for (sp=0;sp<tabSize;sp++) spaces.at(sp)=' '; int sp;for (sp=0;sp<tabSize;sp++) spaces.at(sp)=' ';
spaces.at(tabSize)='\0'; spaces.at(tabSize)='\0';
compoundKeywordDict.insert("template class",(void *)8);
compoundKeywordDict.insert("template struct",(void *)8);
compoundKeywordDict.insert("class",(void *)8); compoundKeywordDict.insert("class",(void *)8);
compoundKeywordDict.insert("struct",(void *)8); compoundKeywordDict.insert("struct",(void *)8);
compoundKeywordDict.insert("union",(void *)8); compoundKeywordDict.insert("union",(void *)8);
......
...@@ -23,12 +23,6 @@ ...@@ -23,12 +23,6 @@
#define MAX_INDENT 1024 #define MAX_INDENT 1024
#if 0
const char treeview_data[]=
#include "treeview.h"
;
#endif
unsigned char ftv2blank_png[] = { unsigned char ftv2blank_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16,
...@@ -348,116 +342,6 @@ struct FTVNode ...@@ -348,116 +342,6 @@ struct FTVNode
FTVNode *parent; FTVNode *parent;
}; };
#if 0
static void generateFolderTreeViewData()
{
// Generate tree view script
QCString fileName=Config_getString("HTML_OUTPUT")+"/treeview.js";
QFile f(fileName);
if (!f.open(IO_WriteOnly))
{
err("Cannot open file %s for writing!\n",fileName.data());
return;
}
else
{
QTextStream t(&f);
t << treeview_data;
f.close();
}
// Generate alternative index.html as a frame
fileName=Config_getString("HTML_OUTPUT")+"/index"+Doxygen::htmlFileExtension;
f.setName(fileName);
if (!f.open(IO_WriteOnly))
{
err("Cannot open file %s for writing!\n",fileName.data());
return;
}
else
{
QTextStream t(&f);
#if QT_VERSION >= 200
t.setEncoding(QTextStream::Latin1);
#endif
t << "<html><head>";
t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset="
<< theTranslator->idLanguageCharset() << "\">\n";
t << "<title>";
if (Config_getString("PROJECT_NAME").isEmpty())
{
t << "Doxygen Documentation";
}
else
{
t << Config_getString("PROJECT_NAME");
}
t << "</title></head>" << endl;
t << "<frameset cols=\"" << Config_getInt("TREEVIEW_WIDTH") << ",*\">" << endl;
t << " <frame src=\"tree" << Doxygen::htmlFileExtension << "\" name=\"treefrm\">" << endl;
t << " <frame src=\"main" << Doxygen::htmlFileExtension << "\" name=\"basefrm\">" << endl;
t << "</frameset>" << endl;
t << "</html>" << endl;
f.close();
}
// Generate tree view frame
fileName=Config_getString("HTML_OUTPUT")+"/tree"+Doxygen::htmlFileExtension;
f.setName(fileName);
if (!f.open(IO_WriteOnly))
{
err("Cannot open file %s for writing!\n",fileName.data());
return;
}
else
{
QTextStream t(&f);
t << "<html><head>" << endl;
t << "<link rel=\"stylesheet\" href=\"";
QCString cssname=Config_getString("HTML_STYLESHEET");
if (cssname.isEmpty())
{
t << "doxygen.css";
}
else
{
QFileInfo cssfi(cssname);
if (!cssfi.exists())
{
err("Error: user specified HTML style sheet file does not exist!\n");
}
t << cssfi.fileName();
}
t << "\">" << endl;
t << "<script src=\"treeview.js\"></script>" << endl;
t << "<script src=\"tree.js\"></script>" << endl;
t << "<script>" << endl;
t << "initializeDocument()" << endl;
t << "</script>" << endl;
t << "</head>" << endl;
t << "<body bgcolor=\"#ffffff\">" << endl;
t << "</body>" << endl;
t << "</html>" << endl;
f.close();
}
// Generate tree view images
ImageInfo *p = image_info;
while (p->name)
{
QCString fileName=Config_getString("HTML_OUTPUT")+"/"+p->name;
QFile f(fileName);
if (f.open(IO_WriteOnly))
f.writeBlock((char *)p->data,p->len);
else
{
fprintf(stderr,"Warning: Cannot open file %s for writing\n",fileName.data());
}
f.close();
p++;
}
}
#endif
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
...@@ -495,32 +379,6 @@ FTVHelp *FTVHelp::getInstance() ...@@ -495,32 +379,6 @@ FTVHelp *FTVHelp::getInstance()
*/ */
void FTVHelp::initialize() void FTVHelp::initialize()
{ {
#if 0
/* open the contents file */
QCString fName = Config_getString("HTML_OUTPUT") + "/tree.js";
m_cf = new QFile(fName);
if (!m_cf->open(IO_WriteOnly))
{
err("Could not open file %s for writing\n",fName.data());
exit(1);
}
/* Write the header of the contents file */
m_cts.setDevice(m_cf);
#if QT_VERSION >= 200
m_cts.setEncoding(QTextStream::Latin1);
#endif
m_cts << "foldersTree = gFld(\"<b>";
if (Config_getString("PROJECT_NAME").isEmpty())
{
m_cts << "Root";
}
else
{
m_cts << Config_getString("PROJECT_NAME");
}
m_cts << "</b>\", \"\", \"\")\n";
#endif
} }
/*! Finalizes the FTV help. This will finish and close the /*! Finalizes the FTV help. This will finish and close the
...@@ -594,52 +452,6 @@ void FTVHelp::addContentsItem(bool isDir, ...@@ -594,52 +452,6 @@ void FTVHelp::addContentsItem(bool isDir,
newNode->parent = pnl->getLast(); newNode->parent = pnl->getLast();
} }
#if 0
int i; for (i=0;i<m_dc;i++) m_cts << " ";
QCString parent;
QCString tagName = ref;
QCString tagDir;
if (ref)
{
tagName += ":";
QCString *s = Doxygen::tagDestinationDict[ref];
if (s)
{
tagDir = *s + "/";
tagName += tagDir;
}
}
if (m_dc==0) parent="foldersTree"; else parent.sprintf("aux%d",m_dc);
if (isDir) // directory entry
{
m_cts << "aux" << m_dc+1 << " = insFld(" << parent << ", gFld(\""
<< name << "\", \"" << tagName << "\", ";
if (file) // file optional param
{
m_cts << "\"" << tagDir << file << Doxygen::htmlFileExtension << "\"))";
}
else
{
m_cts << "\"\"))";
}
}
else // text entry
{
m_cts << " insDoc(" << parent << ", gLnk(\""
<< name << "\", \"" << tagName << "\", ";
if (file) // ref optional param
{
m_cts << "\"" << tagDir << file << Doxygen::htmlFileExtension;
if (anchor) m_cts << "#" << anchor;
m_cts << "\"))";
}
else
{
m_cts << "\"\"))";
}
}
m_cts << "\n";
#endif
} }
static int folderId=1; static int folderId=1;
...@@ -767,6 +579,7 @@ void FTVHelp::generateTreeView() ...@@ -767,6 +579,7 @@ void FTVHelp::generateTreeView()
#if QT_VERSION >= 200 #if QT_VERSION >= 200
t.setEncoding(QTextStream::Latin1); t.setEncoding(QTextStream::Latin1);
#endif #endif
t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
t << "<html><head>"; t << "<html><head>";
t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=" t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset="
<< theTranslator->idLanguageCharset() << "\">\n"; << theTranslator->idLanguageCharset() << "\">\n";
...@@ -801,7 +614,8 @@ void FTVHelp::generateTreeView() ...@@ -801,7 +614,8 @@ void FTVHelp::generateTreeView()
QTextStream t(&f); QTextStream t(&f);
t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n"; t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
t << " <head>\n"; t << " <head>\n";
t << " <meta http-equiv=\"Content-Type\" content=\"text/xhtml; charset=ISO-8859-1\" />\n"; t << " <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=\""
<< theTranslator->idLanguageCharset() << "\" />\n";
t << " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n"; t << " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n";
t << " <meta http-equiv=\"Content-Language\" content=\"en\" />\n"; t << " <meta http-equiv=\"Content-Language\" content=\"en\" />\n";
t << " <link rel=\"stylesheet\" href=\""; t << " <link rel=\"stylesheet\" href=\"";
......
# Since the internal token buffer of a generated flex file is hardcoded
# to 16K, this script is used to increase the buffer size of a flex
# generated scanner to 256K.
while (<>)
{
s/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g;
print $_;
}
...@@ -1397,9 +1397,10 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -1397,9 +1397,10 @@ void writeAlphabeticalClassList(OutputList &ol)
} }
else if (cd) // a real class, insert a link else if (cd) // a real class, insert a link
{ {
QCString namesp; QCString namesp,cname;
if (cd->getNamespaceDef()) namesp=cd->getNamespaceDef()->displayName(); //if (cd->getNamespaceDef()) namesp=cd->getNamespaceDef()->displayName();
QCString cname=cd->className(); //QCString cname=cd->className();
extractNamespaceName(cd->name(),cname,namesp);
ol.writeObjectLink(cd->getReference(), ol.writeObjectLink(cd->getReference(),
cd->getOutputFileBase(),0,cname); cd->getOutputFileBase(),0,cname);
...@@ -2401,22 +2402,27 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) ...@@ -2401,22 +2402,27 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
{ {
if (members->count()>0) if (members->count()>0)
{ {
bool first=TRUE;
MemberDef *md=members->first();
while (md)
{
if (md->isDetailedSectionVisible(TRUE))
{
if (first)
{
first=FALSE;
if(htmlHelp) if(htmlHelp)
{ {
htmlHelp->addContentsItem(TRUE, convertToHtml(pMemInfo->name), gd->getOutputFileBase(),0); htmlHelp->addContentsItem(TRUE, convertToHtml(pMemInfo->name), gd->getOutputFileBase(),0);
htmlHelp->incContentsDepth(); htmlHelp->incContentsDepth();
} }
if(ftvHelp) if(ftvHelp)
{ {
ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, pMemInfo->name); ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, pMemInfo->name);
ftvHelp->incContentsDepth(); ftvHelp->incContentsDepth();
} }
}
MemberDef *md=members->first();
while (md)
{
GroupDef *gd=md->getGroupDef(); GroupDef *gd=md->getGroupDef();
if(htmlHelp) if(htmlHelp)
{ {
...@@ -2426,6 +2432,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) ...@@ -2426,6 +2432,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
{ {
ftvHelp->addContentsItem(FALSE,gd->getReference(),gd->getOutputFileBase(),md->anchor(),md->name()); ftvHelp->addContentsItem(FALSE,gd->getReference(),gd->getOutputFileBase(),md->anchor(),md->name());
} }
}
md=members->next(); md=members->next();
} }
...@@ -2830,6 +2837,8 @@ void writeIndex(OutputList &ol) ...@@ -2830,6 +2837,8 @@ void writeIndex(OutputList &ol)
// parseText(ol,projPrefix+theTranslator->trPackageList()); // parseText(ol,projPrefix+theTranslator->trPackageList());
// ol.endIndexSection(isPackageIndex); // ol.endIndexSection(isPackageIndex);
//} //}
if (!Config_getBool("LATEX_HIDE_INDICES"))
{
if (documentedGroups>0) if (documentedGroups>0)
{ {
ol.startIndexSection(isModuleIndex); ol.startIndexSection(isModuleIndex);
...@@ -2866,6 +2875,7 @@ void writeIndex(OutputList &ol) ...@@ -2866,6 +2875,7 @@ void writeIndex(OutputList &ol)
ol.parseText(projPrefix+theTranslator->trPageIndex()); ol.parseText(projPrefix+theTranslator->trPageIndex());
ol.endIndexSection(isPageIndex); ol.endIndexSection(isPageIndex);
} }
}
ol.lastIndexPage(); ol.lastIndexPage();
//if (documentedPackages>0) //if (documentedPackages>0)
//{ //{
......
...@@ -460,7 +460,6 @@ void LatexGenerator::startProjectNumber() ...@@ -460,7 +460,6 @@ void LatexGenerator::startProjectNumber()
void LatexGenerator::startIndexSection(IndexSections is) void LatexGenerator::startIndexSection(IndexSections is)
{ {
bool &compactLatex = Config_getBool("COMPACT_LATEX"); bool &compactLatex = Config_getBool("COMPACT_LATEX");
bool &hideIndex = Config_getBool("LATEX_HIDE_INDICES");
QCString &latexHeader = Config_getString("LATEX_HEADER"); QCString &latexHeader = Config_getString("LATEX_HEADER");
switch (is) switch (is)
{ {
...@@ -492,46 +491,28 @@ void LatexGenerator::startIndexSection(IndexSections is) ...@@ -492,46 +491,28 @@ void LatexGenerator::startIndexSection(IndexSections is)
// t << "{"; //Package Index}\n" // t << "{"; //Package Index}\n"
// break; // break;
case isModuleIndex: case isModuleIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter"; if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Module Index}\n" t << "{"; //Module Index}\n"
}
break; break;
case isNamespaceIndex: case isNamespaceIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter"; if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Namespace Index}\" t << "{"; //Namespace Index}\"
}
break; break;
case isClassHierarchyIndex: case isClassHierarchyIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter"; if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Hierarchical Index}\n" t << "{"; //Hierarchical Index}\n"
}
break; break;
case isCompoundIndex: case isCompoundIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter"; if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Annotated Compound Index}\n" t << "{"; //Annotated Compound Index}\n"
}
break; break;
case isFileIndex: case isFileIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter"; if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Annotated File Index}\n" t << "{"; //Annotated File Index}\n"
}
break; break;
case isPageIndex: case isPageIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter"; if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Annotated Page Index}\n" t << "{"; //Annotated Page Index}\n"
}
break; break;
case isModuleDocumentation: case isModuleDocumentation:
{ {
...@@ -626,7 +607,6 @@ void LatexGenerator::startIndexSection(IndexSections is) ...@@ -626,7 +607,6 @@ void LatexGenerator::startIndexSection(IndexSections is)
void LatexGenerator::endIndexSection(IndexSections is) void LatexGenerator::endIndexSection(IndexSections is)
{ {
bool &compactLatex = Config_getBool("COMPACT_LATEX"); bool &compactLatex = Config_getBool("COMPACT_LATEX");
bool &hideIndex = Config_getBool("LATEX_HIDE_INDICES");
QCString &latexHeader = Config_getString("LATEX_HEADER"); QCString &latexHeader = Config_getString("LATEX_HEADER");
switch (is) switch (is)
{ {
...@@ -648,22 +628,22 @@ void LatexGenerator::endIndexSection(IndexSections is) ...@@ -648,22 +628,22 @@ void LatexGenerator::endIndexSection(IndexSections is)
} }
break; break;
case isModuleIndex: case isModuleIndex:
if (!hideIndex) t << "}\n\\input{modules}\n"; t << "}\n\\input{modules}\n";
break; break;
case isNamespaceIndex: case isNamespaceIndex:
if (!hideIndex) t << "}\n\\input{namespaces}\n"; t << "}\n\\input{namespaces}\n";
break; break;
case isClassHierarchyIndex: case isClassHierarchyIndex:
if (!hideIndex) t << "}\n\\input{hierarchy}\n"; t << "}\n\\input{hierarchy}\n";
break; break;
case isCompoundIndex: case isCompoundIndex:
if (!hideIndex) t << "}\n\\input{annotated}\n"; t << "}\n\\input{annotated}\n";
break; break;
case isFileIndex: case isFileIndex:
if (!hideIndex) t << "}\n\\input{files}\n"; t << "}\n\\input{files}\n";
break; break;
case isPageIndex: case isPageIndex:
if (!hideIndex) t << "}\n\\input{pages}\n"; t << "}\n\\input{pages}\n";
break; break;
case isModuleDocumentation: case isModuleDocumentation:
{ {
......
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
LEX = flex LEX = flex
YACC = bison YACC = bison
PERL = perl INCBUFSIZE = $(PERL) increasebuffer.pl
INCBUFSIZE = $(PERL) -n -e 's/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;'
#${ #${
sub GenerateDep { sub GenerateDep {
......
...@@ -735,13 +735,6 @@ void MemberDef::writeDeclaration(OutputList &ol, ...@@ -735,13 +735,6 @@ void MemberDef::writeDeclaration(OutputList &ol,
if (!cname.isEmpty()) doxyName.prepend(cname+"::"); if (!cname.isEmpty()) doxyName.prepend(cname+"::");
ol.startDoxyAnchor(cfname,cname,anchor(),doxyName); ol.startDoxyAnchor(cfname,cname,anchor(),doxyName);
ol.addIndexItem(name(),cname);
ol.addIndexItem(cname,name());
if (hasHtmlHelp)
{
htmlHelp->addIndexItem(cname,name(),cfname,anchor());
}
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.docify("\n"); ol.docify("\n");
...@@ -1035,10 +1028,18 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1035,10 +1028,18 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
else if (getFileDef()) scopeName=getFileDef()->name(); else if (getFileDef()) scopeName=getFileDef()->name();
} }
// get definition.
QCString cname = container->name(); QCString cname = container->name();
QCString cfname = container->getOutputFileBase(); QCString cfname = container->getOutputFileBase();
ol.addIndexItem(name(),cname);
ol.addIndexItem(cname,name());
if (Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP"))
{
HtmlHelp *htmlHelp = HtmlHelp::getInstance();
htmlHelp->addIndexItem(cname,name(),cfname,anchor());
}
// get member name // get member name
QCString doxyName=name().copy(); QCString doxyName=name().copy();
// prepend scope if there is any. TODO: make this optional for C only docs // prepend scope if there is any. TODO: make this optional for C only docs
...@@ -1909,7 +1910,9 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl, ...@@ -1909,7 +1910,9 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl,
{ {
typeDecl.pushGeneratorState(); typeDecl.pushGeneratorState();
typeDecl.disableAllBut(OutputGenerator::Html); typeDecl.disableAllBut(OutputGenerator::Html);
typeDecl.enable(OutputGenerator::Latex);
typeDecl.lineBreak(); typeDecl.lineBreak();
typeDecl.disable(OutputGenerator::Latex);
typeDecl.writeString("&nbsp;&nbsp;"); typeDecl.writeString("&nbsp;&nbsp;");
typeDecl.popGeneratorState(); typeDecl.popGeneratorState();
} }
......
...@@ -3217,18 +3217,27 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3217,18 +3217,27 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
else else
{ {
if ((insideJava || insideCS) && if ((insideJava || insideCS) &&
current->stat && /*current->stat && */
current->name.isEmpty() && current->name.isEmpty() &&
current->type.isEmpty() current->type.isEmpty()
) )
{ {
// static Java initializer // static Java initializer
needsSemi = FALSE; needsSemi = FALSE;
if (current->stat)
{
current->name="[static initializer]";
} }
else else
{ {
needsSemi = TRUE; current->name="[instance initializer]";
}
unput(*yytext);
BEGIN( Function );
} }
else
{
needsSemi = TRUE;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
current->args.resize(0); current->args.resize(0);
...@@ -3237,6 +3246,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3237,6 +3246,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( SkipCurlyBlock ); BEGIN( SkipCurlyBlock );
} }
} }
}
<CSAccessorDecl>"{" { curlyCount++; } <CSAccessorDecl>"{" { curlyCount++; }
<CSAccessorDecl>"}" { <CSAccessorDecl>"}" {
if (curlyCount) if (curlyCount)
......
...@@ -174,7 +174,7 @@ class TranslatorCzech : public Translator ...@@ -174,7 +174,7 @@ class TranslatorCzech : public Translator
*/ */
inline QCString decode(const QCString & sInput) inline QCString decode(const QCString & sInput)
{ {
if (Config_getBool("USE_WINDOWS_ENCONDING")) if (Config_getBool("USE_WINDOWS_ENCODING"))
{ {
return sInput; return sInput;
} }
...@@ -196,7 +196,7 @@ class TranslatorCzech : public Translator ...@@ -196,7 +196,7 @@ class TranslatorCzech : public Translator
/*! return the language charset. This will be used for the HTML output */ /*! return the language charset. This will be used for the HTML output */
virtual QCString idLanguageCharset() virtual QCString idLanguageCharset()
{ {
if (Config_getBool("USE_WINDOWS_ENCONDING")) if (Config_getBool("USE_WINDOWS_ENCODING"))
{ {
return "windows-1250"; return "windows-1250";
} }
......
...@@ -41,7 +41,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish ...@@ -41,7 +41,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
/*! returns the name of the package that is included by LaTeX */ /*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset() virtual QCString idLanguageCharset()
{ {
if (Config_getBool("USE_WINDOWS_ENCONDING")) if (Config_getBool("USE_WINDOWS_ENCODING"))
{ {
return "Shift_JIS"; return "Shift_JIS";
} }
...@@ -70,7 +70,7 @@ class TranslatorJapanese : public Translator ...@@ -70,7 +70,7 @@ class TranslatorJapanese : public Translator
/*! The decode() can change euc into sjis */ /*! The decode() can change euc into sjis */
inline QCString decode(const QCString & sInput) inline QCString decode(const QCString & sInput)
{ {
if (Config_getBool("USE_WINDOWS_ENCONDING")) if (Config_getBool("USE_WINDOWS_ENCODING"))
{ {
return JapaneseEucToSjis(sInput); return JapaneseEucToSjis(sInput);
} }
...@@ -89,7 +89,7 @@ class TranslatorJapanese : public Translator ...@@ -89,7 +89,7 @@ class TranslatorJapanese : public Translator
/*! returns the name of the package that is included by LaTeX */ /*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset() virtual QCString idLanguageCharset()
{ {
if (Config_getBool("USE_WINDOWS_ENCONDING")) if (Config_getBool("USE_WINDOWS_ENCODING"))
{ {
return "Shift_JIS"; return "Shift_JIS";
} }
......
...@@ -1674,7 +1674,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -1674,7 +1674,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
equal=srcAType.at(srcPos)==dstAType.at(dstPos); equal=srcAType.at(srcPos)==dstAType.at(dstPos);
if (equal) srcPos++,dstPos++; if (equal) srcPos++,dstPos++;
} }
if (srcPos<srcAType.length() && dstPos<dstAType.length()) uint srcATypeLen=srcAType.length();
uint dstATypeLen=dstAType.length();
if (srcPos<srcATypeLen && dstPos<dstATypeLen)
{ {
// if nothing matches or the match ends in the middle or at the // if nothing matches or the match ends in the middle or at the
// end of a string then there is no match // end of a string then there is no match
...@@ -1685,15 +1687,20 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -1685,15 +1687,20 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
} }
if (isId(srcAType.at(srcPos)) && isId(dstAType.at(dstPos))) if (isId(srcAType.at(srcPos)) && isId(dstAType.at(dstPos)))
{ {
//printf("partial match srcPos=%d dstPos=%d!\n",srcPos,dstPos);
// check if a name if already found -> if no then there is no match // check if a name if already found -> if no then there is no match
if (!srcA->name.isEmpty() || !dstA->name.isEmpty()) if (!srcA->name.isEmpty() || !dstA->name.isEmpty())
{ {
NOMATCH NOMATCH
return FALSE; return FALSE;
} }
while (srcPos<srcAType.length() && isId(srcAType.at(srcPos))) srcPos++; // types only
while (dstPos<dstAType.length() && isId(dstAType.at(dstPos))) dstPos++; while (srcPos<srcATypeLen && isId(srcAType.at(srcPos))) srcPos++;
if (srcPos<srcAType.length() || dstPos<dstAType.length()) while (dstPos<dstATypeLen && isId(dstAType.at(dstPos))) dstPos++;
if (srcPos<srcATypeLen ||
dstPos<dstATypeLen ||
(srcPos==srcATypeLen && dstPos==dstATypeLen)
)
{ {
NOMATCH NOMATCH
return FALSE; return FALSE;
...@@ -1702,15 +1709,15 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -1702,15 +1709,15 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
else else
{ {
// otherwise we assume that a name starts at the current position. // otherwise we assume that a name starts at the current position.
while (srcPos<srcAType.length() && isId(srcAType.at(srcPos))) srcPos++; while (srcPos<srcATypeLen && isId(srcAType.at(srcPos))) srcPos++;
while (dstPos<dstAType.length() && isId(dstAType.at(dstPos))) dstPos++; while (dstPos<dstATypeLen && isId(dstAType.at(dstPos))) dstPos++;
// if nothing more follows for both types then we assume we have // if nothing more follows for both types then we assume we have
// found a match. Note that now `signed int' and `signed' match, but // found a match. Note that now `signed int' and `signed' match, but
// seeing that int is not a name can only be done by looking at the // seeing that int is not a name can only be done by looking at the
// semantics. // semantics.
if (srcPos!=srcAType.length() || dstPos!=dstAType.length()) if (srcPos!=srcATypeLen || dstPos!=dstATypeLen)
{ {
NOMATCH NOMATCH
return FALSE; return FALSE;
...@@ -3065,14 +3072,17 @@ void extractNamespaceName(const QCString &scopeName, ...@@ -3065,14 +3072,17 @@ void extractNamespaceName(const QCString &scopeName,
while (p>=0 && (i=clName.findRev("::",p))!=-1) while (p>=0 && (i=clName.findRev("::",p))!=-1)
// see if the first part is a namespace (and not a class) // see if the first part is a namespace (and not a class)
{ {
//printf("Trying %s\n",clName.left(i).data());
if (i>0 && (nd=getResolvedNamespace(clName.left(i))) && getClass(clName.left(i))==0) if (i>0 && (nd=getResolvedNamespace(clName.left(i))) && getClass(clName.left(i))==0)
{ {
//printf("found!\n");
namespaceName=nd->name().copy(); namespaceName=nd->name().copy();
className=clName.right(clName.length()-i-2); className=clName.right(clName.length()-i-2);
goto done; goto done;
} }
p=i-2; // try a smaller piece of the scope p=i-2; // try a smaller piece of the scope
} }
//printf("not found!\n");
// not found, so we just have to guess. // not found, so we just have to guess.
className=scopeName.copy(); className=scopeName.copy();
...@@ -3814,9 +3824,9 @@ static void latin2ToLatex(QTextStream &t,unsigned char c) ...@@ -3814,9 +3824,9 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
{ {
switch (c) switch (c)
{ {
case 0xA1: t << c; break; case 0xA1: t << "\\k{A}"; break;
case 0xA2: t << c; break; case 0xA2: t << c; break;
case 0xA3: t << c; break; case 0xA3: t << "\\L{}"; break;
case 0xA4: t << c; break; case 0xA4: t << c; break;
case 0xA5: t << c; break; case 0xA5: t << c; break;
case 0xA6: t << "\\'{S}"; break; case 0xA6: t << "\\'{S}"; break;
...@@ -3831,9 +3841,9 @@ static void latin2ToLatex(QTextStream &t,unsigned char c) ...@@ -3831,9 +3841,9 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
case 0xAF: t << "\\.{Z}"; break; case 0xAF: t << "\\.{Z}"; break;
case 0xB0: t << c; break; case 0xB0: t << c; break;
case 0xB1: t << c; break; case 0xB1: t << "\\k{a}"; break;
case 0xB2: t << c; break; case 0xB2: t << c; break;
case 0xB3: t << c; break; case 0xB3: t << "\\l{}"; break;
case 0xB4: t << c; break; case 0xB4: t << c; break;
case 0xB5: t << c; break; case 0xB5: t << c; break;
case 0xB6: t << "\\'{s}"; break; case 0xB6: t << "\\'{s}"; break;
...@@ -3857,7 +3867,7 @@ static void latin2ToLatex(QTextStream &t,unsigned char c) ...@@ -3857,7 +3867,7 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
case 0xC7: t << "\\c{C}"; break; case 0xC7: t << "\\c{C}"; break;
case 0xC8: t << "\\v{C}"; break; case 0xC8: t << "\\v{C}"; break;
case 0xC9: t << "\\'{E}"; break; case 0xC9: t << "\\'{E}"; break;
case 0xCA: t << "\\c{E}"; break; case 0xCA: t << "\\k{E}"; break;
case 0xCB: t << "\\\"{E}"; break; case 0xCB: t << "\\\"{E}"; break;
case 0xCC: t << "\\v{E}"; break; case 0xCC: t << "\\v{E}"; break;
case 0xCD: t << "\\'{I}"; break; case 0xCD: t << "\\'{I}"; break;
...@@ -3891,7 +3901,7 @@ static void latin2ToLatex(QTextStream &t,unsigned char c) ...@@ -3891,7 +3901,7 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
case 0xE7: t << "\\c{c}"; break; case 0xE7: t << "\\c{c}"; break;
case 0xE8: t << "\\v{c}"; break; case 0xE8: t << "\\v{c}"; break;
case 0xE9: t << "\\'{e}"; break; case 0xE9: t << "\\'{e}"; break;
case 0xEA: t << c; break; case 0xEA: t << "\\k{e}"; break;
case 0xEB: t << "\\\"{e}"; break; case 0xEB: t << "\\\"{e}"; break;
case 0xEC: t << "\\v{e}"; break; case 0xEC: t << "\\v{e}"; break;
case 0xED: t << "\\'{\\i}"; break; case 0xED: t << "\\'{\\i}"; break;
......
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