Commit c1cf420f authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.4.5

parent b3063065
DOXYGEN Version 1.4.4-20050927 DOXYGEN Version 1.4.5
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 (27 September 2005) Dimitri van Heesch (04 October 2005)
DOXYGEN Version 1.4.4_20050927 DOXYGEN Version 1.4.5
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) (27 September 2005) Dimitri van Heesch (dimitri@stack.nl) (04 October 2005)
1.4.4-20050927 1.4.5
...@@ -165,8 +165,9 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type) ...@@ -165,8 +165,9 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
int i; int i;
if ((i=result.findRev('/'))!=-1 || (i=result.findRev('\\'))!=-1) if ((i=result.findRev('/'))!=-1 || (i=result.findRev('\\'))!=-1)
{ {
result.right(result.length()-i-1); result = result.right(result.length()-i-1);
} }
//printf("fileName=%s result=%s\n",fileName,result.data());
QCString outputDir; QCString outputDir;
switch(type) switch(type)
{ {
......
...@@ -1736,9 +1736,10 @@ static MemberDef *addVariableToFile( ...@@ -1736,9 +1736,10 @@ static MemberDef *addVariableToFile(
// see if the function is inside a namespace // see if the function is inside a namespace
NamespaceDef *nd = 0; NamespaceDef *nd = 0;
QCString nscope;
if (!scope.isEmpty()) if (!scope.isEmpty())
{ {
QCString nscope=removeAnonymousScopes(scope); nscope=removeAnonymousScopes(scope);
if (!nscope.isEmpty()) if (!nscope.isEmpty())
{ {
nd = getResolvedNamespace(nscope); nd = getResolvedNamespace(nscope);
...@@ -1784,12 +1785,12 @@ static MemberDef *addVariableToFile( ...@@ -1784,12 +1785,12 @@ static MemberDef *addVariableToFile(
MemberName *mn=Doxygen::functionNameSDict[name]; MemberName *mn=Doxygen::functionNameSDict[name];
if (mn) if (mn)
{ {
QCString nscope=removeAnonymousScopes(scope); //QCString nscope=removeAnonymousScopes(scope);
NamespaceDef *nd=0; //NamespaceDef *nd=0;
if (!nscope.isEmpty()) //if (!nscope.isEmpty())
{ //{
nd = getResolvedNamespace(nscope); // nd = getResolvedNamespace(nscope);
} //}
MemberNameIterator mni(*mn); MemberNameIterator mni(*mn);
MemberDef *md; MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni) for (mni.toFirst();(md=mni.current());++mni)
...@@ -2141,7 +2142,8 @@ static void buildVarList(Entry *root) ...@@ -2141,7 +2142,8 @@ static void buildVarList(Entry *root)
scope=root->relates.copy(); scope=root->relates.copy();
} }
if (!scope.isEmpty() && !name.isEmpty() && (cd=getClass(scope))) // note: changed from scope to classScope on 2-10-2005
if (!classScope.isEmpty() && !name.isEmpty() && (cd=getClass(classScope)))
{ {
MemberDef *md=0; MemberDef *md=0;
...@@ -4892,8 +4894,6 @@ static void findMember(Entry *root, ...@@ -4892,8 +4894,6 @@ static void findMember(Entry *root,
} }
if (matching) if (matching)
{ {
//printf("addMemberDocs root->inLine=%d md->isInline()=%d\n",
// root->inLine,md->isInline());
addMemberDocs(root,md,funcDecl,0,overloaded,0/* TODO */); addMemberDocs(root,md,funcDecl,0,overloaded,0/* TODO */);
count++; count++;
memFound=TRUE; memFound=TRUE;
...@@ -5762,7 +5762,7 @@ static void findEnumDocumentation(Entry *root) ...@@ -5762,7 +5762,7 @@ static void findEnumDocumentation(Entry *root)
for (mni.toFirst();(md=mni.current()) && !found;++mni) for (mni.toFirst();(md=mni.current()) && !found;++mni)
{ {
ClassDef *cd=md->getClassDef(); ClassDef *cd=md->getClassDef();
if (cd && cd->name()==className) if (cd && cd->name()==className && md->isEnumerate())
{ {
// documentation outside a compound overrides the documentation inside it // documentation outside a compound overrides the documentation inside it
if (!md->documentation() || root->parent->name.isEmpty()) if (!md->documentation() || root->parent->name.isEmpty())
...@@ -5808,24 +5808,31 @@ static void findEnumDocumentation(Entry *root) ...@@ -5808,24 +5808,31 @@ static void findEnumDocumentation(Entry *root)
else // enum outside class else // enum outside class
{ {
//printf("Enum outside class: %s grpId=%d\n",name.data(),root->mGrpId); //printf("Enum outside class: %s grpId=%d\n",name.data(),root->mGrpId);
MemberDef *md;
MemberName *mn=Doxygen::functionNameSDict[name]; MemberName *mn=Doxygen::functionNameSDict[name];
if (mn && (md=mn->getFirst())) if (mn)
{ {
md->setDocumentation(root->doc,root->docFile,root->docLine); MemberNameIterator mni(*mn);
md->setDocsForDefinition(!root->proto); MemberDef *md;
md->setBriefDescription(root->brief,root->briefFile,root->briefLine); for (mni.toFirst();(md=mni.current()) && !found;++mni)
md->setInbodyDocumentation(root->inbodyDocs,root->inbodyFile,root->inbodyLine);
md->addSectionsToDefinition(root->anchors);
md->setMemberGroupId(root->mGrpId);
GroupDef *gd=md->getGroupDef();
if (gd==0 &&root->groups->first()!=0) // member not grouped but out-of-line documentation is
{ {
addMemberToGroups(root,md); if (md->isEnumerate())
{
md->setDocumentation(root->doc,root->docFile,root->docLine);
md->setDocsForDefinition(!root->proto);
md->setBriefDescription(root->brief,root->briefFile,root->briefLine);
md->setInbodyDocumentation(root->inbodyDocs,root->inbodyFile,root->inbodyLine);
md->addSectionsToDefinition(root->anchors);
md->setMemberGroupId(root->mGrpId);
GroupDef *gd=md->getGroupDef();
if (gd==0 &&root->groups->first()!=0) // member not grouped but out-of-line documentation is
{
addMemberToGroups(root,md);
}
found=TRUE;
}
} }
found=TRUE;
} }
} }
if (!found) if (!found)
......
...@@ -1105,9 +1105,10 @@ void writeAnnotatedClassList(OutputList &ol) ...@@ -1105,9 +1105,10 @@ void writeAnnotatedClassList(OutputList &ol)
ClassDef *cd; ClassDef *cd;
// clear index // clear index
for (int y=0;y<CHL_Total;y++) int x,y;
for (y=0;y<CHL_Total;y++)
{ {
for (int x=0;x<256;x++) for (x=0;x<256;x++)
{ {
g_classIndexLetterUsed[y][x]=FALSE; g_classIndexLetterUsed[y][x]=FALSE;
} }
...@@ -1230,7 +1231,8 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -1230,7 +1231,8 @@ void writeAlphabeticalClassList(OutputList &ol)
} }
QCString alphaLinks = "<p><div class=\"qindex\">"; QCString alphaLinks = "<p><div class=\"qindex\">";
for (int l = 0; l < 256; l++) int l;
for (l = 0; l < 256; l++)
{ {
if (indexLetterUsed[l]) if (indexLetterUsed[l])
{ {
...@@ -1287,7 +1289,7 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -1287,7 +1289,7 @@ void writeAlphabeticalClassList(OutputList &ol)
int col=0,row=0; int col=0,row=0;
//int icount=0; //int icount=0;
startLetter=0; startLetter=0;
for (int l = 0; l < 256; l++) for (l = 0; l < 256; l++)
{ {
if (!indexLetterUsed[l]) continue; if (!indexLetterUsed[l]) continue;
...@@ -1303,7 +1305,8 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -1303,7 +1305,8 @@ void writeAlphabeticalClassList(OutputList &ol)
col++; col++;
row=0; row=0;
} }
for (uint i = 0; i < classesByLetter[l].count(); i++) uint i;
for (i = 0; i < classesByLetter[l].count(); i++)
{ {
// add the class definition to the correct column list // add the class definition to the correct column list
colList[col].append (classesByLetter[l].at (i)); colList[col].append (classesByLetter[l].at (i));
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <stdio.h> #include <stdio.h>
#include <qregexp.h> #include <qregexp.h>
#include <md5.h>
#include "memberdef.h" #include "memberdef.h"
#include "membername.h" #include "membername.h"
#include "doxygen.h" #include "doxygen.h"
...@@ -2007,6 +2008,7 @@ QCString MemberDef::getScopeString() const ...@@ -2007,6 +2008,7 @@ QCString MemberDef::getScopeString() const
return result; return result;
} }
#if 0
static QCString escapeAnchor(const QCString &anchor) static QCString escapeAnchor(const QCString &anchor)
{ {
QCString result; QCString result;
...@@ -2029,6 +2031,7 @@ static QCString escapeAnchor(const QCString &anchor) ...@@ -2029,6 +2031,7 @@ static QCString escapeAnchor(const QCString &anchor)
} }
return result; return result;
} }
#endif
void MemberDef::setAnchor(const char *a) void MemberDef::setAnchor(const char *a)
{ {
...@@ -2036,7 +2039,14 @@ void MemberDef::setAnchor(const char *a) ...@@ -2036,7 +2039,14 @@ void MemberDef::setAnchor(const char *a)
a=a; a=a;
QCString memAnchor = name(); QCString memAnchor = name();
if (!args.isEmpty()) memAnchor+=args; if (!args.isEmpty()) memAnchor+=args;
anc = escapeAnchor(memAnchor); //anc = escapeAnchor(memAnchor);
// convert to md5 hash
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)memAnchor.data(),memAnchor.length(),md5_sig);
MD5SigToString(md5_sig,sigStr.data(),33);
anc = sigStr;
} }
void MemberDef::setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri, void MemberDef::setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri,
......
...@@ -302,7 +302,7 @@ function main() ...@@ -302,7 +302,7 @@ function main()
if (!in_array($word,$foundWords)) if (!in_array($word,$foundWords))
{ {
$foundWords[]=$word; $foundWords[]=$word;
search($file,$word,$results); search($file,strtolower($word),$results);
} }
$word=strtok(" "); $word=strtok(" ");
} }
......
...@@ -302,7 +302,7 @@ ...@@ -302,7 +302,7 @@
" if (!in_array($word,$foundWords))\n" " if (!in_array($word,$foundWords))\n"
" {\n" " {\n"
" $foundWords[]=$word;\n" " $foundWords[]=$word;\n"
" search($file,$word,$results);\n" " search($file,strtolower($word),$results);\n"
" }\n" " }\n"
" $word=strtok(\" \");\n" " $word=strtok(\" \");\n"
" }\n" " }\n"
......
...@@ -105,8 +105,8 @@ void SearchIndex::addWord(const char *word,bool hiPriority) ...@@ -105,8 +105,8 @@ void SearchIndex::addWord(const char *word,bool hiPriority)
//printf("SearchIndex::addWord(%s,%d)\n",word,hiPriority); //printf("SearchIndex::addWord(%s,%d)\n",word,hiPriority);
//QString wStr=QString(word).lower(); //QString wStr=QString(word).lower();
QString wStr(word); QString wStr(word);
wStr=wStr.lower();
if (wStr.isEmpty()) return; if (wStr.isEmpty()) return;
wStr=wStr.lower();
IndexWord *w = m_words[wStr]; IndexWord *w = m_words[wStr];
if (w==0) if (w==0)
{ {
......
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