Commit db36de70 authored by dimitri's avatar dimitri

Release-1.4.4-20050918

parent 3b98221d
DOXYGEN Version 1.4.4-20050817 DOXYGEN Version 1.4.4-20050918
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 (17 August 2005) Dimitri van Heesch (18 September 2005)
DOXYGEN Version 1.4.4_20050817 DOXYGEN Version 1.4.4_20050918
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) (17 August 2005) Dimitri van Heesch (dimitri@stack.nl) (18 September 2005)
1.4.4-20050817 1.4.4-20050918
...@@ -276,20 +276,22 @@ Here is an example of the use of these comment blocks: ...@@ -276,20 +276,22 @@ Here is an example of the use of these comment blocks:
\section structuralcommands Documentation at other places \section structuralcommands Documentation at other places
So far we have assumed that the documentation blocks are always located in So far we have assumed that the documentation blocks are always located \e in
front of the declaration or definition of a file, class or namespace or in \e front of the declaration or definition of a file, class or namespace or in
front or after one of its members. front or after one of its members.
Although this is often comfortable, there may sometimes be reasons to put the Although this is often comfortable, there may sometimes be reasons to put the
documentation somewhere else. For documenting a file this is even documentation somewhere else. For documenting a file this is even
required since there is no such thing as "in front of a file". required since there is no such thing as "in front of a file".
Doxygen allows you to put your documentation blocks practically Doxygen allows you to put your documentation blocks practically
anywhere (the exception is inside the body of a function or inside a anywhere (the exception is inside the body of a function or inside a
normal C style comment block). normal C style comment block).
The price you pay for not putting the The price you pay for not putting the
documentation block before (or after) an item is the need to put a documentation block directly before (or after) an item is the need to put a
structural command inside the documentation block, which leads to some structural command inside the documentation block, which leads to some
duplication of information. duplication of information. So in practice you should \e avoid the use of
structural commands \e unless other requirements force you to do so.
Structural commands (like all other commands) start with a backslash Structural commands (like all other commands) start with a backslash
(<tt>\\</tt>), or an at-sign (<tt>\@</tt>) if you prefer JavaDoc style, (<tt>\\</tt>), or an at-sign (<tt>\@</tt>) if you prefer JavaDoc style,
......
...@@ -93,6 +93,7 @@ ClassDef::ClassDef( ...@@ -93,6 +93,7 @@ ClassDef::ClassDef(
m_isAbstract = FALSE; m_isAbstract = FALSE;
m_isStatic = FALSE; m_isStatic = FALSE;
m_isObjC = FALSE; m_isObjC = FALSE;
m_isTemplArg = FALSE;
m_membersMerged = FALSE; m_membersMerged = FALSE;
m_categoryOf = 0; m_categoryOf = 0;
QCString ns; QCString ns;
......
...@@ -1115,6 +1115,7 @@ void Config::check() ...@@ -1115,6 +1115,7 @@ void Config::check()
filePatternList.append("*.m"); filePatternList.append("*.m");
filePatternList.append("*.mm"); filePatternList.append("*.mm");
filePatternList.append("*.dox"); filePatternList.append("*.dox");
filePatternList.append("*.py");
#if !defined(_WIN32) #if !defined(_WIN32)
// unix => case sensitive match => also include useful uppercase versions // unix => case sensitive match => also include useful uppercase versions
filePatternList.append("*.C"); filePatternList.append("*.C");
...@@ -1130,6 +1131,7 @@ void Config::check() ...@@ -1130,6 +1131,7 @@ void Config::check()
filePatternList.append("*.PHP3"); filePatternList.append("*.PHP3");
filePatternList.append("*.M"); filePatternList.append("*.M");
filePatternList.append("*.MM"); filePatternList.append("*.MM");
filePatternList.append("*.PY");
#endif #endif
} }
...@@ -1821,7 +1823,7 @@ void Config::create() ...@@ -1821,7 +1823,7 @@ void Config::create()
"and *.h) to filter out the source-files in the directories. If left \n" "and *.h) to filter out the source-files in the directories. If left \n"
"blank the following patterns are tested: \n" "blank the following patterns are tested: \n"
"*.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx \n" "*.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx \n"
"*.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm\n" "*.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py\n"
); );
cb = addBool( cb = addBool(
"RECURSIVE", "RECURSIVE",
......
...@@ -66,10 +66,33 @@ void DirDef::addFile(FileDef *fd) ...@@ -66,10 +66,33 @@ void DirDef::addFile(FileDef *fd)
fd->setDirDef(this); fd->setDirDef(this);
} }
static QCString escapeDirName(const QCString &anchor)
{
QCString result;
int l = anchor.length(),i;
for (i=0;i<l;i++)
{
char c = anchor.at(i);
if ((c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9'))
{
result+=c;
}
else
{
static char hexStr[]="0123456789ABCDEF";
char escChar[]={ '_', 0, 0, 0 };
escChar[1]=hexStr[c>>4];
escChar[2]=hexStr[c&0xf];
result+=escChar;
}
}
return result;
}
QCString DirDef::getOutputFileBase() const QCString DirDef::getOutputFileBase() const
{ {
//return "dir_"+convertNameToFile(name()); return "dir_"+escapeDirName(name());
return QCString().sprintf("dir_%06d",m_dirCount); //return QCString().sprintf("dir_%06d",m_dirCount);
} }
void DirDef::writeDetailedDocumentation(OutputList &ol) void DirDef::writeDetailedDocumentation(OutputList &ol)
......
...@@ -5736,3 +5736,9 @@ void initDocParser() ...@@ -5736,3 +5736,9 @@ void initDocParser()
Doxygen::searchIndex = 0; Doxygen::searchIndex = 0;
} }
} }
void finializeDocParser()
{
delete Doxygen::searchIndex;
}
...@@ -38,6 +38,8 @@ class SectionDict; ...@@ -38,6 +38,8 @@ class SectionDict;
/*! Initialize the documentation parser */ /*! Initialize the documentation parser */
void initDocParser(); void initDocParser();
/*! Cleanup the documentation parser */
void finializeDocParser();
/*! Main entry point for the documentation parser. /*! Main entry point for the documentation parser.
* @param fileName File in which the documentation block is found (or the * @param fileName File in which the documentation block is found (or the
......
...@@ -522,6 +522,11 @@ REFWORD ("#"|"::")?({ID}("."|"#"|"::"|"-"))*({ID}(":")?){FUNCARG}? ...@@ -522,6 +522,11 @@ REFWORD ("#"|"::")?({ID}("."|"#"|"::"|"-"))*({ID}(":")?){FUNCARG}?
*/ */
goto find_rule; goto find_rule;
} }
<St_Para,St_Text>"operator"/{BLANK}*"<"[a-zA-Z_0-9]+">" { // Special case: word "operator" followed by a HTML command
// avoid interpretation as "operator <"
g_token->name = yytext;
return TK_WORD;
}
/*******************************************************/ /*******************************************************/
......
...@@ -199,7 +199,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName, ...@@ -199,7 +199,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName,
return TRUE; return TRUE;
} }
static QArray<int> * s_newNumber = new QArray<int>(); static QArray<int> s_newNumber;
static int s_max_newNumber=0; static int s_max_newNumber=0;
inline int reNumberNode(int number, bool doReNumbering) inline int reNumberNode(int number, bool doReNumbering)
...@@ -210,7 +210,7 @@ inline int reNumberNode(int number, bool doReNumbering) ...@@ -210,7 +210,7 @@ inline int reNumberNode(int number, bool doReNumbering)
} }
else else
{ {
int s = s_newNumber->size(); int s = s_newNumber.size();
if (number>=s) if (number>=s)
{ {
int ns=0; int ns=0;
...@@ -219,17 +219,17 @@ inline int reNumberNode(int number, bool doReNumbering) ...@@ -219,17 +219,17 @@ inline int reNumberNode(int number, bool doReNumbering)
{ {
ns = number * 3 / 2 + 5; ns = number * 3 / 2 + 5;
} }
s_newNumber->resize(ns); s_newNumber.resize(ns);
for (int i=s;i<ns;i++) // clear new part of the array for (int i=s;i<ns;i++) // clear new part of the array
{ {
s_newNumber->at(i)=0; s_newNumber.at(i)=0;
} }
} }
int i = s_newNumber->at(number); int i = s_newNumber.at(number);
if (i == 0) // not yet mapped if (i == 0) // not yet mapped
{ {
i = ++s_max_newNumber; // start from 1 i = ++s_max_newNumber; // start from 1
s_newNumber->at(number) = i; s_newNumber.at(number) = i;
} }
return i; return i;
} }
...@@ -238,7 +238,7 @@ inline int reNumberNode(int number, bool doReNumbering) ...@@ -238,7 +238,7 @@ inline int reNumberNode(int number, bool doReNumbering)
static void resetReNumbering() static void resetReNumbering()
{ {
s_max_newNumber=0; s_max_newNumber=0;
s_newNumber->resize(s_max_newNumber); s_newNumber.resize(s_max_newNumber);
} }
static bool readBoundingBoxDot(const char *fileName,int *width,int *height) static bool readBoundingBoxDot(const char *fileName,int *width,int *height)
......
...@@ -3306,6 +3306,7 @@ static void findUsedClassesForClass(Entry *root, ...@@ -3306,6 +3306,7 @@ static void findUsedClassesForClass(Entry *root,
usedCd = new ClassDef( usedCd = new ClassDef(
masterCd->getDefFileName(),masterCd->getDefLine(), masterCd->getDefFileName(),masterCd->getDefLine(),
usedName,ClassDef::Class); usedName,ClassDef::Class);
//printf("making %s a template argument!!!\n",usedCd->name().data());
usedCd->makeTemplateArgument(); usedCd->makeTemplateArgument();
Doxygen::hiddenClasses.append(usedName,usedCd); Doxygen::hiddenClasses.append(usedName,usedCd);
} }
...@@ -8932,5 +8933,6 @@ void generateOutput() ...@@ -8932,5 +8933,6 @@ void generateOutput()
); );
} }
cleanUpDoxygen(); cleanUpDoxygen();
finializeDocParser();
} }
...@@ -369,6 +369,8 @@ void FTVHelp::initialize() ...@@ -369,6 +369,8 @@ void FTVHelp::initialize()
void FTVHelp::finalize() void FTVHelp::finalize()
{ {
generateTreeView(); generateTreeView();
delete m_theInstance;
m_theInstance=0;
} }
/*! Increase the level of the contents hierarchy. /*! Increase the level of the contents hierarchy.
......
...@@ -133,7 +133,7 @@ void LatexGenerator::init() ...@@ -133,7 +133,7 @@ void LatexGenerator::init()
QTextStream t(&file); QTextStream t(&file);
if (!Config_getBool("USE_PDFLATEX")) // use plain old latex if (!Config_getBool("USE_PDFLATEX")) // use plain old latex
{ {
t << "all clean: refman.dvi" << endl t << "all: clean refman.dvi" << endl
<< endl << endl
<< "ps: refman.ps" << endl << "ps: refman.ps" << endl
<< endl << endl
...@@ -182,7 +182,7 @@ void LatexGenerator::init() ...@@ -182,7 +182,7 @@ void LatexGenerator::init()
} }
else // use pdflatex for higher quality output else // use pdflatex for higher quality output
{ {
t << "all clean: refman.pdf" << endl << endl; t << "all: clean refman.pdf" << endl << endl;
t << "refman.pdf: refman.tex" << endl; t << "refman.pdf: refman.tex" << endl;
t << "\tpdflatex refman.tex" << endl; t << "\tpdflatex refman.tex" << endl;
t << "\tmakeindex refman.idx" << endl; t << "\tmakeindex refman.idx" << endl;
......
...@@ -132,6 +132,7 @@ static void do_warn(const char *tag, const char *file, int line, const char *fmt ...@@ -132,6 +132,7 @@ static void do_warn(const char *tag, const char *file, int line, const char *fmt
} }
// substitute markers by actual values // substitute markers by actual values
QCString msgText = QCString msgText =
substitute(
substitute( substitute(
substitute( substitute(
substitute( substitute(
...@@ -144,21 +145,12 @@ static void do_warn(const char *tag, const char *file, int line, const char *fmt ...@@ -144,21 +145,12 @@ static void do_warn(const char *tag, const char *file, int line, const char *fmt
"$line",lineSubst "$line",lineSubst
), ),
"$version",versionSubst "$version",versionSubst
),
"%","%%"
)+'\n'; )+'\n';
// print resulting message // print resulting message
fprintf(warnFile,msgText); fprintf(warnFile,msgText);
// switch(warnFormatOrder)
// {
// case 1: fprintf(warnFile,outputFormat,file,line,text); break;
// case 2: fprintf(warnFile,outputFormat,text,line,file); break;
// case 3: fprintf(warnFile,outputFormat,line,text,file); break;
// case 4: fprintf(warnFile,outputFormat,file,text,line); break;
// case 5: fprintf(warnFile,outputFormat,text,file,line); break;
// case 6: fprintf(warnFile,outputFormat,line,file,text); break;
// default:
// printf("Error: warning format has not been initialized!\n");
// }
} }
void warn(const char *file,int line,const char *fmt, ...) void warn(const char *file,int line,const char *fmt, ...)
......
...@@ -891,7 +891,9 @@ QCString removeMarkers(const char *s) ...@@ -891,7 +891,9 @@ QCString removeMarkers(const char *s)
{ {
while ((c=*p)) while ((c=*p))
{ {
if (c=='@') // replace @@ with @ switch(c)
{
case '@': // replace @@ with @
{ {
if (*(p+1)=='@') if (*(p+1)=='@')
{ {
...@@ -899,7 +901,8 @@ QCString removeMarkers(const char *s) ...@@ -899,7 +901,8 @@ QCString removeMarkers(const char *s)
} }
p+=2; p+=2;
} }
else if (c=='/') // skip C comments break;
case '/': // skip C comments
{ {
result+=c; result+=c;
char pc=c; char pc=c;
...@@ -916,11 +919,38 @@ QCString removeMarkers(const char *s) ...@@ -916,11 +919,38 @@ QCString removeMarkers(const char *s)
p++; p++;
} }
} }
else break;
case '"': // skip string literals
{
result+=c;
char pc=c;
c=*++p;
while (*p && (c!='"' || pc=='\\')) // no end quote
{
result+=c;
c=*++p;
}
}
break;
case '\'': // skip char literals
{
result+=c;
char pc=c;
c=*++p;
while (*p && (c!='\'' || pc=='\\')) // no end quote
{
result+=c;
c=*++p;
}
}
break;
default:
{ {
result+=c; result+=c;
p++; p++;
} }
break;
}
} }
} }
//printf("RemoveMarkers(%s)=%s\n",s,result.data()); //printf("RemoveMarkers(%s)=%s\n",s,result.data());
...@@ -1807,12 +1837,19 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1807,12 +1837,19 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
outputChar('/');outputChar('*'); outputChar('/');outputChar('*');
//g_commentCount++; //g_commentCount++;
} }
<SkipCComment>[\\@][\\@]("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"rtfonly"|"manonly"|"dot"|"code"){BN}+ { <SkipCComment>[\\@][\\@]("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"rtfonly"|"manonly"|"dot"|"code"|"f{"|"f$"|"f["){BN}+ {
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
} }
<SkipCComment>[\\@]("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"rtfonly"|"manonly"|"dot"|"code"){BN}+ { <SkipCComment>[\\@]("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"rtfonly"|"manonly"|"dot"|"code"){BN}+ {
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
if (yytext[1]=='f')
{
g_blockName="f";
}
else
{
g_blockName=QCString(&yytext[1]).stripWhiteSpace(); g_blockName=QCString(&yytext[1]).stripWhiteSpace();
}
BEGIN(SkipVerbatim); BEGIN(SkipVerbatim);
} }
<SkipCComment,SkipCPPComment>[\\@]"cond"[ \t]+ { // conditional section <SkipCComment,SkipCPPComment>[\\@]"cond"[ \t]+ { // conditional section
...@@ -1835,12 +1872,19 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1835,12 +1872,19 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
endCondSection(); endCondSection();
} }
<SkipVerbatim>[\\@]("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"endrtfonly"|"endmanonly"|"enddot"|"endcode") { /* end of verbatim block */ <SkipVerbatim>[\\@]("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"endrtfonly"|"endmanonly"|"enddot"|"endcode"|"f$"|"f]"|"f}") { /* end of verbatim block */
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
if (&yytext[4]==g_blockName) if (yytext[1]=='f' && g_blockName=="f")
{ {
BEGIN(SkipCComment); BEGIN(SkipCComment);
} }
else if (&yytext[4]==g_blockName)
{
BEGIN(SkipCComment);
}
}
<SkipVerbatim>"*/"|"/*" {
outputArray(yytext,yyleng);
} }
<SkipCComment,SkipVerbatim>[^*\\@\x06\n\/]+ { <SkipCComment,SkipVerbatim>[^*\\@\x06\n\/]+ {
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
......
...@@ -304,9 +304,10 @@ static ClassDef *stripClassName(const char *s) ...@@ -304,9 +304,10 @@ static ClassDef *stripClassName(const char *s)
QCString type = s; QCString type = s;
QCString className; QCString className;
QCString templSpec; QCString templSpec;
while (extractClassNameFromType(type,pos,className,templSpec)) while (extractClassNameFromType(type,pos,className,templSpec)!=-1)
{ {
QCString clName=className+templSpec; QCString clName=className+templSpec;
ClassDef *cd=0; ClassDef *cd=0;
if (!g_classScope.isEmpty()) if (!g_classScope.isEmpty())
{ {
...@@ -316,7 +317,6 @@ static ClassDef *stripClassName(const char *s) ...@@ -316,7 +317,6 @@ static ClassDef *stripClassName(const char *s)
{ {
cd=getResolvedClass(g_currentDefinition,g_sourceFileDef,clName); cd=getResolvedClass(g_currentDefinition,g_sourceFileDef,clName);
} }
//printf("stripClass trying `%s' = %p\n",clName.data(),cd);
if (cd) if (cd)
{ {
return cd; return cd;
......
This diff is collapsed.
...@@ -4044,20 +4044,23 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -4044,20 +4044,23 @@ IDLATTR ("["[^\]]*"]"){BN}*
<DocBlock>("@@"|"\\\\"){ID}/[^a-z_A-Z0-9] { // escaped command <DocBlock>("@@"|"\\\\"){ID}/[^a-z_A-Z0-9] { // escaped command
docBlock+=yytext; docBlock+=yytext;
} }
<DocBlock>{CMD}("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"manonly"|"dot"|"code"|"f$"|"f["|"f{")/[^a-z_A-Z0-9] { // verbatim command (which could contain nested comments!) <DocBlock>{CMD}("f$"|"f["|"f{") {
docBlock+=yytext; docBlock+=yytext;
if (yytext[2]=='[') docBlockName=&yytext[1];
if (docBlockName.at(1)=='{')
{ {
docBlockName="f]"; docBlockName.at(1)='}';
} }
else if (yytext[2]=='}') BEGIN(DocCopyBlock);
{
docBlockName="f}";
} }
else <DocBlock>"<"{PRE}">" {
{ docBlock+=yytext;
docBlockName=&yytext[1]; docBlockName="<pre>";
BEGIN(DocCopyBlock);
} }
<DocBlock>{CMD}("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"manonly"|"dot"|"code")/[^a-z_A-Z0-9] { // verbatim command (which could contain nested comments!)
docBlock+=yytext;
docBlockName=&yytext[1];
BEGIN(DocCopyBlock); BEGIN(DocCopyBlock);
} }
<DocBlock>[^@*\/\\\n]+ { // any character that isn't special <DocBlock>[^@*\/\\\n]+ { // any character that isn't special
...@@ -4073,6 +4076,13 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -4073,6 +4076,13 @@ IDLATTR ("["[^\]]*"]"){BN}*
/* ---- Copy verbatim sections ------ */ /* ---- Copy verbatim sections ------ */
<DocCopyBlock>"</"{PRE}">" { // end of a <pre> block
docBlock+=yytext;
if (docBlockName=="<pre>")
{
BEGIN(DocBlock);
}
}
<DocCopyBlock>[\\@]("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"enddot"|"endcode"|"f$"|"f]"|"f}")/[^a-z_A-Z0-9] { // end of verbatim block <DocCopyBlock>[\\@]("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"enddot"|"endcode"|"f$"|"f]"|"f}")/[^a-z_A-Z0-9] { // end of verbatim block
docBlock+=yytext; docBlock+=yytext;
if (yytext[1]=='f') // end of formula if (yytext[1]=='f') // end of formula
......
...@@ -64,6 +64,7 @@ SearchIndex::SearchIndex() : m_words(328829), m_index(numIndexEntries), m_urlInd ...@@ -64,6 +64,7 @@ SearchIndex::SearchIndex() : m_words(328829), m_index(numIndexEntries), m_urlInd
int i; int i;
m_words.setAutoDelete(TRUE); m_words.setAutoDelete(TRUE);
m_urls.setAutoDelete(TRUE); m_urls.setAutoDelete(TRUE);
m_index.setAutoDelete(TRUE);
for (i=0;i<numIndexEntries;i++) m_index.insert(i,new QList<IndexWord>); for (i=0;i<numIndexEntries;i++) m_index.insert(i,new QList<IndexWord>);
} }
...@@ -279,7 +280,7 @@ void SearchIndex::write(const char *fileName) ...@@ -279,7 +280,7 @@ void SearchIndex::write(const char *fileName)
} }
} }
delete urlOffsets; delete[] urlOffsets;
delete wordStatOffsets; delete[] wordStatOffsets;
} }
This diff is collapsed.
...@@ -1000,7 +1000,7 @@ done: ...@@ -1000,7 +1000,7 @@ done:
return result; return result;
} }
int computeQualifiedIndex(const QString &name) int computeQualifiedIndex(const QCString &name)
{ {
int i = name.find('<'); int i = name.find('<');
return name.findRev("::",i==-1 ? name.length() : i); return name.findRev("::",i==-1 ? name.length() : i);
...@@ -1136,15 +1136,18 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1136,15 +1136,18 @@ ClassDef *getResolvedClassRec(Definition *scope,
// see if we are dealing with a class or a typedef // see if we are dealing with a class or a typedef
if (d->definitionType()==Definition::TypeClass) // d is a class if (d->definitionType()==Definition::TypeClass) // d is a class
{ {
if (!((ClassDef*)d)->isTemplateArgument()) // skip classes that ClassDef *cd = (ClassDef *)d;
//printf("cd=%s\n",cd->name().data());
if (!cd->isTemplateArgument()) // skip classes that
// are only there to // are only there to
// represent a template // represent a template
// argument // argument
{ {
//printf("is not a templ arg\n");
if (distance<minDistance) // found a definition that is "closer" if (distance<minDistance) // found a definition that is "closer"
{ {
minDistance=distance; minDistance=distance;
bestMatch = (ClassDef *)d; bestMatch = cd;
bestTypedef = 0; bestTypedef = 0;
bestTemplSpec.resize(0); bestTemplSpec.resize(0);
} }
...@@ -1164,7 +1167,7 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1164,7 +1167,7 @@ ClassDef *getResolvedClassRec(Definition *scope,
// Just a non-perfect heuristic but it could help in some situations // Just a non-perfect heuristic but it could help in some situations
// (kdecore code is an example). // (kdecore code is an example).
minDistance=distance; minDistance=distance;
bestMatch = (ClassDef *)d; bestMatch = cd;
bestTypedef = 0; bestTypedef = 0;
bestTemplSpec.resize(0); bestTemplSpec.resize(0);
} }
...@@ -5605,7 +5608,7 @@ QCString stripLeadingAndTrailingEmptyLines(const QCString &s) ...@@ -5605,7 +5608,7 @@ QCString stripLeadingAndTrailingEmptyLines(const QCString &s)
p=s.data()+b; p=s.data()+b;
while (b>=0) while (b>=0)
{ {
c=*--p; c=*p; p--;
if (c==' ' || c=='\t' || c=='\r') b--; if (c==' ' || c=='\t' || c=='\r') b--;
else if (c=='\n') bi=b,b--; else if (c=='\n') bi=b,b--;
else break; else break;
......
...@@ -227,7 +227,7 @@ void replaceNamespaceAliases(QCString &scope,int i); ...@@ -227,7 +227,7 @@ void replaceNamespaceAliases(QCString &scope,int i);
int isAccessibleFrom(Definition *scope,FileDef *fileScope,Definition *item); int isAccessibleFrom(Definition *scope,FileDef *fileScope,Definition *item);
int isAccessibleFromWithExpScope(Definition *scope,FileDef *fileScope,Definition *item, int isAccessibleFromWithExpScope(Definition *scope,FileDef *fileScope,Definition *item,
const QCString &explicitScopePart); const QCString &explicitScopePart);
int computeQualifiedIndex(const QString &name); int computeQualifiedIndex(const QCString &name);
void addDirPrefix(QCString &fileName); void addDirPrefix(QCString &fileName);
QCString relativePathToRoot(const char *name); QCString relativePathToRoot(const char *name);
#define REL_PATH_TO_ROOT "../../" #define REL_PATH_TO_ROOT "../../"
......
...@@ -23,8 +23,8 @@ CFG=Doxygen - Win32 Debug ...@@ -23,8 +23,8 @@ CFG=Doxygen - Win32 Debug
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "" # PROP Scc_ProjName "Doxygen"
# PROP Scc_LocalPath "" # PROP Scc_LocalPath "."
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
...@@ -309,6 +309,14 @@ SOURCE=..\src\pre.cpp ...@@ -309,6 +309,14 @@ SOURCE=..\src\pre.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\pycode.cpp
# End Source File
# Begin Source File
SOURCE=..\src\pyscanner.cpp
# End Source File
# Begin Source File
SOURCE=..\src\reflist.cpp SOURCE=..\src\reflist.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -537,6 +545,14 @@ SOURCE=..\src\mangen.h ...@@ -537,6 +545,14 @@ SOURCE=..\src\mangen.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libmd5\md5.h
# End Source File
# Begin Source File
SOURCE=..\libmd5\md5_loc.h
# End Source File
# Begin Source File
SOURCE=..\src\memberdef.h SOURCE=..\src\memberdef.h
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -569,19 +585,15 @@ SOURCE=..\src\outputlist.h ...@@ -569,19 +585,15 @@ SOURCE=..\src\outputlist.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\packagedef.h
# End Source File
# Begin Source File
SOURCE=..\src\pagedef.h SOURCE=..\src\pagedef.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\perlmodgen.h SOURCE=..\src\parserintf.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\parserintf.h SOURCE=..\src\perlmodgen.h
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -597,6 +609,14 @@ SOURCE=..\src\printdocvisitor.h ...@@ -597,6 +609,14 @@ SOURCE=..\src\printdocvisitor.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\pycode.h
# End Source File
# Begin Source File
SOURCE=..\src\pyscanner.h
# End Source File
# Begin Source File
SOURCE=..\src\qtbc.h SOURCE=..\src\qtbc.h
# End Source File # End Source File
# Begin Source File # Begin Source File
......
...@@ -3,10 +3,14 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 ...@@ -3,10 +3,14 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
############################################################################### ###############################################################################
Project: "Doxygen"=".\Doxygen.dsp" - Package Owner=<4> Project: "Doxygen"=.\Doxygen.dsp - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
begin source code control
Doxygen
.
end source code control
}}} }}}
Package=<4> Package=<4>
...@@ -18,16 +22,20 @@ Package=<4> ...@@ -18,16 +22,20 @@ Package=<4>
Project_Dep_Name zlib Project_Dep_Name zlib
End Project Dependency End Project Dependency
Begin Project Dependency Begin Project Dependency
Project_Dep_Name qtools Project_Dep_Name Doxytag
End Project Dependency End Project Dependency
}}} }}}
############################################################################### ###############################################################################
Project: "Doxytag"=".\Doxytag.dsp" - Package Owner=<4> Project: "Doxytag"=.\Doxytag.dsp - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
begin source code control
Doxytag
.
end source code control
}}} }}}
Package=<4> Package=<4>
...@@ -39,10 +47,14 @@ Package=<4> ...@@ -39,10 +47,14 @@ Package=<4>
############################################################################### ###############################################################################
Project: "libpng"=".\libpng.dsp" - Package Owner=<4> Project: "libpng"=.\libpng.dsp - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
begin source code control
libpng
.
end source code control
}}} }}}
Package=<4> Package=<4>
...@@ -51,10 +63,14 @@ Package=<4> ...@@ -51,10 +63,14 @@ Package=<4>
############################################################################### ###############################################################################
Project: "qtools"=".\qtools.dsp" - Package Owner=<4> Project: "qtools"=.\qtools.dsp - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
begin source code control
qtools
.
end source code control
}}} }}}
Package=<4> Package=<4>
...@@ -63,10 +79,14 @@ Package=<4> ...@@ -63,10 +79,14 @@ Package=<4>
############################################################################### ###############################################################################
Project: "zlib"=".\zlib.dsp" - Package Owner=<4> Project: "zlib"=.\zlib.dsp - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
begin source code control
zlib
.
end source code control
}}} }}}
Package=<4> Package=<4>
...@@ -79,6 +99,10 @@ Global: ...@@ -79,6 +99,10 @@ Global:
Package=<5> Package=<5>
{{{ {{{
begin source code control
Doxygen
.
end source code control
}}} }}}
Package=<3> Package=<3>
......
...@@ -23,6 +23,8 @@ CFG=Doxytag - Win32 Debug ...@@ -23,6 +23,8 @@ CFG=Doxytag - Win32 Debug
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "Doxytag"
# PROP Scc_LocalPath "."
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
...@@ -88,11 +90,11 @@ LINK32=link.exe ...@@ -88,11 +90,11 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=..\src\doxytag.cpp SOURCE=..\src\config.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\logos.cpp SOURCE=..\src\doxytag.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -104,15 +106,7 @@ SOURCE=..\src\version.cpp ...@@ -104,15 +106,7 @@ SOURCE=..\src\version.cpp
# PROP Default_Filter "h;hpp;hxx;hm;inl" # PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File # Begin Source File
SOURCE=..\src\logos.h SOURCE=..\src\config.h
# End Source File
# Begin Source File
SOURCE=..\src\searchindex.h
# End Source File
# Begin Source File
SOURCE=..\src\suffixtree.h
# End Source File # End Source File
# Begin Source File # Begin Source File
......
...@@ -23,6 +23,8 @@ CFG=libpng - Win32 Debug ...@@ -23,6 +23,8 @@ CFG=libpng - Win32 Debug
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "libpng"
# PROP Scc_LocalPath "."
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
...@@ -85,87 +87,70 @@ LIB32=link.exe -lib ...@@ -85,87 +87,70 @@ LIB32=link.exe -lib
# Begin Source File # Begin Source File
SOURCE=..\libpng\png.c SOURCE=..\libpng\png.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngerror.c SOURCE=..\libpng\pngerror.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pnggccrd.c SOURCE=..\libpng\pnggccrd.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngget.c SOURCE=..\libpng\pngget.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngmem.c SOURCE=..\libpng\pngmem.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngpread.c SOURCE=..\libpng\pngpread.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngread.c SOURCE=..\libpng\pngread.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngrio.c SOURCE=..\libpng\pngrio.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngrtran.c SOURCE=..\libpng\pngrtran.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngrutil.c SOURCE=..\libpng\pngrutil.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngset.c SOURCE=..\libpng\pngset.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngtrans.c SOURCE=..\libpng\pngtrans.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngvcrd.c SOURCE=..\libpng\pngvcrd.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngwio.c SOURCE=..\libpng\pngwio.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngwrite.c SOURCE=..\libpng\pngwrite.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngwtran.c SOURCE=..\libpng\pngwtran.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\libpng\pngwutil.c SOURCE=..\libpng\pngwutil.c
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
......
...@@ -23,6 +23,8 @@ CFG=qtools - Win32 Debug ...@@ -23,6 +23,8 @@ CFG=qtools - Win32 Debug
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "qtools"
# PROP Scc_LocalPath "."
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
...@@ -92,10 +94,6 @@ SOURCE=..\qtools\qcollection.cpp ...@@ -92,10 +94,6 @@ SOURCE=..\qtools\qcollection.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\qtools\scstring.cpp
# End Source File
# Begin Source File
SOURCE=..\qtools\qdatastream.cpp SOURCE=..\qtools\qdatastream.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -132,19 +130,19 @@ SOURCE=..\qtools\qgarray.cpp ...@@ -132,19 +130,19 @@ SOURCE=..\qtools\qgarray.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\qtools\qgdict.cpp SOURCE=..\qtools\qgcache.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\qtools\qglist.cpp SOURCE=..\qtools\qgdict.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\qtools\qglobal.cpp SOURCE=..\qtools\qglist.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\qtools\qgcache.cpp SOURCE=..\qtools\qglobal.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -182,6 +180,10 @@ SOURCE=..\qtools\qtextstream.cpp ...@@ -182,6 +180,10 @@ SOURCE=..\qtools\qtextstream.cpp
SOURCE=..\qtools\qxml.cpp SOURCE=..\qtools\qxml.cpp
# End Source File # End Source File
# Begin Source File
SOURCE=..\qtools\scstring.cpp
# End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
...@@ -200,6 +202,10 @@ SOURCE=..\qtools\qbuffer.h ...@@ -200,6 +202,10 @@ SOURCE=..\qtools\qbuffer.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\qtools\qcache.h
# End Source File
# Begin Source File
SOURCE=..\qtools\qcollection.h SOURCE=..\qtools\qcollection.h
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -248,6 +254,10 @@ SOURCE=..\qtools\qgarray.h ...@@ -248,6 +254,10 @@ SOURCE=..\qtools\qgarray.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\qtools\qgcache.h
# End Source File
# Begin Source File
SOURCE=..\qtools\qgdict.h SOURCE=..\qtools\qgdict.h
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -354,6 +364,10 @@ SOURCE=..\qtools\qvector.h ...@@ -354,6 +364,10 @@ SOURCE=..\qtools\qvector.h
SOURCE=..\qtools\qxml.h SOURCE=..\qtools\qxml.h
# End Source File # End Source File
# Begin Source File
SOURCE=..\qtools\scstring.h
# End Source File
# End Group # End Group
# End Target # End Target
# End Project # End Project
...@@ -23,6 +23,8 @@ CFG=zlib - Win32 Debug ...@@ -23,6 +23,8 @@ CFG=zlib - Win32 Debug
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "zlib"
# PROP Scc_LocalPath "."
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
......
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