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
(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.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
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++.
Name: doxygen
Version: 1.3_rc3_20030308
Version: 1.3_rc3_20030317
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
......@@ -15,11 +15,11 @@
#
all: Makefile.libdoxygen Makefile.libdoxycfg Makefile.doxygen Makefile.doxytag Makefile.doxysearch Makefile
$(MAKE) -f Makefile.libdoxycfg $@
$(MAKE) -f Makefile.libdoxygen $@
$(MAKE) -f Makefile.doxygen $@
$(MAKE) -f Makefile.doxytag $@
$(MAKE) -f Makefile.doxysearch $@
$(MAKE) -f Makefile.libdoxycfg PERL=$(PERL) $@
$(MAKE) -f Makefile.libdoxygen PERL=$(PERL) $@
$(MAKE) -f Makefile.doxygen PERL=$(PERL) $@
$(MAKE) -f Makefile.doxytag PERL=$(PERL) $@
$(MAKE) -f Makefile.doxysearch PERL=$(PERL) $@
Makefile.libdoxygen: libdoxygen.pro libdoxygen.t
$(ENV) $(PERL) $(TMAKE) libdoxygen.pro >Makefile.libdoxygen
......
......@@ -98,6 +98,8 @@ ClassDef::ClassDef(
m_isAbstract = FALSE;
m_isStatic = FALSE;
m_membersMerged = FALSE;
QCString ns;
extractNamespaceName(m_name,m_className,ns);
if (((QCString)defFileName).right(5)!=".java" &&
guessSection(defFileName)==Entry::SOURCE_SEC)
......@@ -132,7 +134,7 @@ QCString ClassDef::displayName() const
QCString n;
if (Config_getBool("HIDE_SCOPE_NAMES"))
{
n=localName();
n=m_className;
}
else
{
......@@ -2519,14 +2521,15 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
QCString ClassDef::className() const
{
QCString className=m_localName;
Definition *p=getOuterScope();
while (p && p->definitionType()==TypeClass)
{
className.prepend(p->localName()+"::");
p=p->getOuterScope();
}
return className;
//QCString className=m_localName;
//Definition *p=getOuterScope();
//while (p && p->definitionType()==TypeClass)
//{
// className.prepend(p->localName()+"::");
// p=p->getOuterScope();
//}
//return className;
return m_className;
};
void ClassDef::addListReferences()
......
......@@ -414,6 +414,9 @@ class ClassDef : public Definition
/*! TRUE if the class is defined in a source file rather than a header file. */
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.
......
......@@ -103,13 +103,13 @@ void ClassSDict::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *f
ol.writeObjectLink(cd->getReference(),
cd->getOutputFileBase(),
0,
cd->localName()
cd->className()
);
}
else
{
ol.startBold();
ol.docify(cd->localName());
ol.docify(cd->className());
ol.endBold();
}
ol.endMemberItem();
......
......@@ -125,6 +125,7 @@ class ConfigList : public ConfigOption
t << "\n";
}
void substEnvVars();
void init() { m_value.clear(); }
private:
QStrList m_value;
WidgetType m_widgetType;
......@@ -244,7 +245,7 @@ class ConfigInt : public ConfigOption
t << endl;
}
t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "= ";
if (upd)
if (upd && !m_valueString.isEmpty())
{
writeStringValue(t,m_valueString);
}
......@@ -281,6 +282,7 @@ class ConfigBool : public ConfigOption
bool *valueRef() { return &m_value; }
void convertStrToVal();
void substEnvVars();
void setValueString(const QCString &v) { m_valueString = v; }
void writeTemplate(QTextStream &t,bool sl,bool upd)
{
if (!sl)
......
......@@ -1218,6 +1218,13 @@ void Config::check()
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()
......
......@@ -31,13 +31,19 @@
Definition::Definition(const char *df,int dl,
const char *name,const char *b,const char *d)
{
//QCString ns;
m_defFileName = df;
m_defLine = dl;
m_name=name;
if (m_name!="<globalScope>")
{
//extractNamespaceName(m_name,m_localName,ns);
m_localName=stripScope(name);
}
else
{
m_localName=name;
}
//printf("m_localName=%s\n",m_localName.data());
m_brief=b;
m_doc=d;
......
......@@ -7521,6 +7521,8 @@ void parseInput()
int sp;for (sp=0;sp<tabSize;sp++) spaces.at(sp)=' ';
spaces.at(tabSize)='\0';
compoundKeywordDict.insert("template class",(void *)8);
compoundKeywordDict.insert("template struct",(void *)8);
compoundKeywordDict.insert("class",(void *)8);
compoundKeywordDict.insert("struct",(void *)8);
compoundKeywordDict.insert("union",(void *)8);
......
......@@ -23,12 +23,6 @@
#define MAX_INDENT 1024
#if 0
const char treeview_data[]=
#include "treeview.h"
;
#endif
unsigned char ftv2blank_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16,
......@@ -348,116 +342,6 @@ struct FTVNode
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()
*/
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
......@@ -594,52 +452,6 @@ void FTVHelp::addContentsItem(bool isDir,
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;
......@@ -767,6 +579,7 @@ void FTVHelp::generateTreeView()
#if QT_VERSION >= 200
t.setEncoding(QTextStream::Latin1);
#endif
t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
t << "<html><head>";
t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset="
<< theTranslator->idLanguageCharset() << "\">\n";
......@@ -801,7 +614,8 @@ void FTVHelp::generateTreeView()
QTextStream t(&f);
t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\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-Language\" content=\"en\" />\n";
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)
}
else if (cd) // a real class, insert a link
{
QCString namesp;
if (cd->getNamespaceDef()) namesp=cd->getNamespaceDef()->displayName();
QCString cname=cd->className();
QCString namesp,cname;
//if (cd->getNamespaceDef()) namesp=cd->getNamespaceDef()->displayName();
//QCString cname=cd->className();
extractNamespaceName(cd->name(),cname,namesp);
ol.writeObjectLink(cd->getReference(),
cd->getOutputFileBase(),0,cname);
......@@ -2401,22 +2402,27 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
{
if (members->count()>0)
{
bool first=TRUE;
MemberDef *md=members->first();
while (md)
{
if (md->isDetailedSectionVisible(TRUE))
{
if (first)
{
first=FALSE;
if(htmlHelp)
{
htmlHelp->addContentsItem(TRUE, convertToHtml(pMemInfo->name), gd->getOutputFileBase(),0);
htmlHelp->incContentsDepth();
}
if(ftvHelp)
{
ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, pMemInfo->name);
ftvHelp->incContentsDepth();
}
MemberDef *md=members->first();
while (md)
{
}
GroupDef *gd=md->getGroupDef();
if(htmlHelp)
{
......@@ -2426,6 +2432,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
{
ftvHelp->addContentsItem(FALSE,gd->getReference(),gd->getOutputFileBase(),md->anchor(),md->name());
}
}
md=members->next();
}
......@@ -2830,6 +2837,8 @@ void writeIndex(OutputList &ol)
// parseText(ol,projPrefix+theTranslator->trPackageList());
// ol.endIndexSection(isPackageIndex);
//}
if (!Config_getBool("LATEX_HIDE_INDICES"))
{
if (documentedGroups>0)
{
ol.startIndexSection(isModuleIndex);
......@@ -2866,6 +2875,7 @@ void writeIndex(OutputList &ol)
ol.parseText(projPrefix+theTranslator->trPageIndex());
ol.endIndexSection(isPageIndex);
}
}
ol.lastIndexPage();
//if (documentedPackages>0)
//{
......
......@@ -460,7 +460,6 @@ void LatexGenerator::startProjectNumber()
void LatexGenerator::startIndexSection(IndexSections is)
{
bool &compactLatex = Config_getBool("COMPACT_LATEX");
bool &hideIndex = Config_getBool("LATEX_HIDE_INDICES");
QCString &latexHeader = Config_getString("LATEX_HEADER");
switch (is)
{
......@@ -492,46 +491,28 @@ void LatexGenerator::startIndexSection(IndexSections is)
// t << "{"; //Package Index}\n"
// break;
case isModuleIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Module Index}\n"
}
break;
case isNamespaceIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Namespace Index}\"
}
break;
case isClassHierarchyIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Hierarchical Index}\n"
}
break;
case isCompoundIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Annotated Compound Index}\n"
}
break;
case isFileIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Annotated File Index}\n"
}
break;
case isPageIndex:
if (!hideIndex)
{
if (compactLatex) t << "\\section"; else t << "\\chapter";
t << "{"; //Annotated Page Index}\n"
}
break;
case isModuleDocumentation:
{
......@@ -626,7 +607,6 @@ void LatexGenerator::startIndexSection(IndexSections is)
void LatexGenerator::endIndexSection(IndexSections is)
{
bool &compactLatex = Config_getBool("COMPACT_LATEX");
bool &hideIndex = Config_getBool("LATEX_HIDE_INDICES");
QCString &latexHeader = Config_getString("LATEX_HEADER");
switch (is)
{
......@@ -648,22 +628,22 @@ void LatexGenerator::endIndexSection(IndexSections is)
}
break;
case isModuleIndex:
if (!hideIndex) t << "}\n\\input{modules}\n";
t << "}\n\\input{modules}\n";
break;
case isNamespaceIndex:
if (!hideIndex) t << "}\n\\input{namespaces}\n";
t << "}\n\\input{namespaces}\n";
break;
case isClassHierarchyIndex:
if (!hideIndex) t << "}\n\\input{hierarchy}\n";
t << "}\n\\input{hierarchy}\n";
break;
case isCompoundIndex:
if (!hideIndex) t << "}\n\\input{annotated}\n";
t << "}\n\\input{annotated}\n";
break;
case isFileIndex:
if (!hideIndex) t << "}\n\\input{files}\n";
t << "}\n\\input{files}\n";
break;
case isPageIndex:
if (!hideIndex) t << "}\n\\input{pages}\n";
t << "}\n\\input{pages}\n";
break;
case isModuleDocumentation:
{
......
......@@ -18,8 +18,7 @@
LEX = flex
YACC = bison
PERL = perl
INCBUFSIZE = $(PERL) -n -e 's/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;'
INCBUFSIZE = $(PERL) increasebuffer.pl
#${
sub GenerateDep {
......
......@@ -735,13 +735,6 @@ void MemberDef::writeDeclaration(OutputList &ol,
if (!cname.isEmpty()) doxyName.prepend(cname+"::");
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.disable(OutputGenerator::Man);
ol.docify("\n");
......@@ -1035,10 +1028,18 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
else if (getFileDef()) scopeName=getFileDef()->name();
}
// get definition.
QCString cname = container->name();
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
QCString doxyName=name().copy();
// prepend scope if there is any. TODO: make this optional for C only docs
......@@ -1909,7 +1910,9 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl,
{
typeDecl.pushGeneratorState();
typeDecl.disableAllBut(OutputGenerator::Html);
typeDecl.enable(OutputGenerator::Latex);
typeDecl.lineBreak();
typeDecl.disable(OutputGenerator::Latex);
typeDecl.writeString("&nbsp;&nbsp;");
typeDecl.popGeneratorState();
}
......
......@@ -3217,18 +3217,27 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
else
{
if ((insideJava || insideCS) &&
current->stat &&
/*current->stat && */
current->name.isEmpty() &&
current->type.isEmpty()
)
{
// static Java initializer
needsSemi = FALSE;
if (current->stat)
{
current->name="[static initializer]";
}
else
{
needsSemi = TRUE;
current->name="[instance initializer]";
}
unput(*yytext);
BEGIN( Function );
}
else
{
needsSemi = TRUE;
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
......@@ -3237,6 +3246,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( SkipCurlyBlock );
}
}
}
<CSAccessorDecl>"{" { curlyCount++; }
<CSAccessorDecl>"}" {
if (curlyCount)
......
......@@ -174,7 +174,7 @@ class TranslatorCzech : public Translator
*/
inline QCString decode(const QCString & sInput)
{
if (Config_getBool("USE_WINDOWS_ENCONDING"))
if (Config_getBool("USE_WINDOWS_ENCODING"))
{
return sInput;
}
......@@ -196,7 +196,7 @@ class TranslatorCzech : public Translator
/*! return the language charset. This will be used for the HTML output */
virtual QCString idLanguageCharset()
{
if (Config_getBool("USE_WINDOWS_ENCONDING"))
if (Config_getBool("USE_WINDOWS_ENCODING"))
{
return "windows-1250";
}
......
......@@ -41,7 +41,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
/*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset()
{
if (Config_getBool("USE_WINDOWS_ENCONDING"))
if (Config_getBool("USE_WINDOWS_ENCODING"))
{
return "Shift_JIS";
}
......@@ -70,7 +70,7 @@ class TranslatorJapanese : public Translator
/*! The decode() can change euc into sjis */
inline QCString decode(const QCString & sInput)
{
if (Config_getBool("USE_WINDOWS_ENCONDING"))
if (Config_getBool("USE_WINDOWS_ENCODING"))
{
return JapaneseEucToSjis(sInput);
}
......@@ -89,7 +89,7 @@ class TranslatorJapanese : public Translator
/*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset()
{
if (Config_getBool("USE_WINDOWS_ENCONDING"))
if (Config_getBool("USE_WINDOWS_ENCODING"))
{
return "Shift_JIS";
}
......
......@@ -1674,7 +1674,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
equal=srcAType.at(srcPos)==dstAType.at(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
// end of a string then there is no match
......@@ -1685,15 +1687,20 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
}
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
if (!srcA->name.isEmpty() || !dstA->name.isEmpty())
{
NOMATCH
return FALSE;
}
while (srcPos<srcAType.length() && isId(srcAType.at(srcPos))) srcPos++;
while (dstPos<dstAType.length() && isId(dstAType.at(dstPos))) dstPos++;
if (srcPos<srcAType.length() || dstPos<dstAType.length())
// types only
while (srcPos<srcATypeLen && isId(srcAType.at(srcPos))) srcPos++;
while (dstPos<dstATypeLen && isId(dstAType.at(dstPos))) dstPos++;
if (srcPos<srcATypeLen ||
dstPos<dstATypeLen ||
(srcPos==srcATypeLen && dstPos==dstATypeLen)
)
{
NOMATCH
return FALSE;
......@@ -1702,15 +1709,15 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
else
{
// otherwise we assume that a name starts at the current position.
while (srcPos<srcAType.length() && isId(srcAType.at(srcPos))) srcPos++;
while (dstPos<dstAType.length() && isId(dstAType.at(dstPos))) dstPos++;
while (srcPos<srcATypeLen && isId(srcAType.at(srcPos))) srcPos++;
while (dstPos<dstATypeLen && isId(dstAType.at(dstPos))) dstPos++;
// if nothing more follows for both types then we assume we have
// 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
// semantics.
if (srcPos!=srcAType.length() || dstPos!=dstAType.length())
if (srcPos!=srcATypeLen || dstPos!=dstATypeLen)
{
NOMATCH
return FALSE;
......@@ -3065,14 +3072,17 @@ void extractNamespaceName(const QCString &scopeName,
while (p>=0 && (i=clName.findRev("::",p))!=-1)
// 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)
{
//printf("found!\n");
namespaceName=nd->name().copy();
className=clName.right(clName.length()-i-2);
goto done;
}
p=i-2; // try a smaller piece of the scope
}
//printf("not found!\n");
// not found, so we just have to guess.
className=scopeName.copy();
......@@ -3814,9 +3824,9 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
{
switch (c)
{
case 0xA1: t << c; break;
case 0xA1: t << "\\k{A}"; break;
case 0xA2: t << c; break;
case 0xA3: t << c; break;
case 0xA3: t << "\\L{}"; break;
case 0xA4: t << c; break;
case 0xA5: t << c; break;
case 0xA6: t << "\\'{S}"; break;
......@@ -3831,9 +3841,9 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
case 0xAF: t << "\\.{Z}"; break;
case 0xB0: t << c; break;
case 0xB1: t << c; break;
case 0xB1: t << "\\k{a}"; break;
case 0xB2: t << c; break;
case 0xB3: t << c; break;
case 0xB3: t << "\\l{}"; break;
case 0xB4: t << c; break;
case 0xB5: t << c; break;
case 0xB6: t << "\\'{s}"; break;
......@@ -3857,7 +3867,7 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
case 0xC7: t << "\\c{C}"; break;
case 0xC8: t << "\\v{C}"; break;
case 0xC9: t << "\\'{E}"; break;
case 0xCA: t << "\\c{E}"; break;
case 0xCA: t << "\\k{E}"; break;
case 0xCB: t << "\\\"{E}"; break;
case 0xCC: t << "\\v{E}"; break;
case 0xCD: t << "\\'{I}"; break;
......@@ -3891,7 +3901,7 @@ static void latin2ToLatex(QTextStream &t,unsigned char c)
case 0xE7: t << "\\c{c}"; break;
case 0xE8: t << "\\v{c}"; break;
case 0xE9: t << "\\'{e}"; break;
case 0xEA: t << c; break;
case 0xEA: t << "\\k{e}"; break;
case 0xEB: t << "\\\"{e}"; break;
case 0xEC: t << "\\v{e}"; 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