Commit 365d0dd9 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.4.3-20050530

parent 530402f7
# Doxyfile 1.3.7 # Doxyfile 1.4.3
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Project related configuration options # Project related configuration options
...@@ -23,6 +23,7 @@ MULTILINE_CPP_IS_BRIEF = NO ...@@ -23,6 +23,7 @@ MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO DETAILS_AT_TOP = NO
INHERIT_DOCS = YES INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO DISTRIBUTE_GROUP_DOC = NO
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8 TAB_SIZE = 8
ALIASES = ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_FOR_C = NO
...@@ -55,6 +56,8 @@ GENERATE_DEPRECATEDLIST= YES ...@@ -55,6 +56,8 @@ GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30 MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
FILE_VERSION_FILTER =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to warning and progress messages # configuration options related to warning and progress messages
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
...@@ -62,6 +65,7 @@ QUIET = NO ...@@ -62,6 +65,7 @@ QUIET = NO
WARNINGS = YES WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text" WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = WARN_LOGFILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
...@@ -87,7 +91,8 @@ EXCLUDE = src/code.cpp \ ...@@ -87,7 +91,8 @@ EXCLUDE = src/code.cpp \
src/suffixtree.h \ src/suffixtree.h \
src/searchindex.cpp \ src/searchindex.cpp \
src/searchindex.h \ src/searchindex.h \
src/commentcnv.cpp src/commentcnv.cpp \
src/commentscan.cpp
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = EXCLUDE_PATTERNS =
EXAMPLE_PATH = EXAMPLE_PATH =
...@@ -95,6 +100,7 @@ EXAMPLE_PATTERNS = ...@@ -95,6 +100,7 @@ EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO EXAMPLE_RECURSIVE = NO
IMAGE_PATH = IMAGE_PATH =
INPUT_FILTER = INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO FILTER_SOURCE_FILES = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to source browsing # configuration options related to source browsing
...@@ -104,6 +110,7 @@ INLINE_SOURCES = NO ...@@ -104,6 +110,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES REFERENCES_RELATION = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the alphabetical class index # configuration options related to the alphabetical class index
...@@ -209,18 +216,22 @@ HIDE_UNDOC_RELATIONS = YES ...@@ -209,18 +216,22 @@ HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES HAVE_DOT = YES
CLASS_GRAPH = YES CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO UML_LOOK = NO
TEMPLATE_RELATIONS = YES TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png DOT_IMAGE_FORMAT = png
DOT_PATH = DOT_PATH =
DOTFILE_DIRS = DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 0 MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES GENERATE_LEGEND = YES
DOT_CLEANUP = YES DOT_CLEANUP = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
......
DOXYGEN Version 1.4.3 DOXYGEN Version 1.4.3-20050530
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 (16 May 2005) Dimitri van Heesch (30 May 2005)
...@@ -53,9 +53,9 @@ install: doxywizard_install ...@@ -53,9 +53,9 @@ install: doxywizard_install
$(INSTTOOL) -m 755 bin/doxygen $(INSTALL)/bin $(INSTTOOL) -m 755 bin/doxygen $(INSTALL)/bin
$(INSTTOOL) -m 755 bin/doxytag $(INSTALL)/bin $(INSTTOOL) -m 755 bin/doxytag $(INSTALL)/bin
$(INSTTOOL) -d $(INSTALL)/$(MAN1DIR) $(INSTTOOL) -d $(INSTALL)/$(MAN1DIR)
cat doc/doxygen.1 | sed -e "s/DATE/\$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > $(INSTALL)/$(MAN1DIR)/doxygen.1 ; \ cat doc/doxygen.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > $(INSTALL)/$(MAN1DIR)/doxygen.1 ; \
cat doc/doxytag.1 | sed -e "s/DATE/\$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > $(INSTALL)/$(MAN1DIR)/doxytag.1 ; \ cat doc/doxytag.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > $(INSTALL)/$(MAN1DIR)/doxytag.1 ; \
cat doc/doxywizard.1 | sed -e "s/DATE/\$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > $(INSTALL)/$(MAN1DIR)/doxywizard.1 ; cat doc/doxywizard.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > $(INSTALL)/$(MAN1DIR)/doxywizard.1 ;
install_docs: install_docs:
$(INSTTOOL) -d $(DOCDIR) $(INSTTOOL) -d $(DOCDIR)
......
DOXYGEN Version 1.4.3 DOXYGEN Version 1.4.3_20050530
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) (16 May 2005) Dimitri van Heesch (dimitri@stack.nl) (30 May 2005)
1.4.3 1.4.3-20050530
...@@ -1037,13 +1037,13 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -1037,13 +1037,13 @@ void ClassDef::writeDocumentation(OutputList &ol)
{ {
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.writeString("<!-- doxytag: class=<"); ol.writeString("<!-- doxytag: class=\"");
ol.docify(name()); ol.docify(name());
ol.writeString("> -->"); ol.writeString("\" -->");
if (m_inherits->count()>0) if (m_inherits->count()>0)
{ {
BaseClassListIterator bli(*m_inherits); BaseClassListIterator bli(*m_inherits);
ol.writeString("<!-- doxytag: inherits=<"); ol.writeString("<!-- doxytag: inherits=\"");
BaseClassDef *bcd=0; BaseClassDef *bcd=0;
bool first=TRUE; bool first=TRUE;
for (bli.toFirst();(bcd=bli.current());++bli) for (bli.toFirst();(bcd=bli.current());++bli)
...@@ -1052,7 +1052,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -1052,7 +1052,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.docify(bcd->classDef->name()); ol.docify(bcd->classDef->name());
first=FALSE; first=FALSE;
} }
ol.writeString("> -->"); ol.writeString("\" -->");
} }
ol.popGeneratorState(); ol.popGeneratorState();
} }
...@@ -2168,16 +2168,11 @@ void ClassDef::mergeMembers() ...@@ -2168,16 +2168,11 @@ void ClassDef::mergeMembers()
if (srcCd==dstCd || dstCd->isBaseClass(srcCd,TRUE)) if (srcCd==dstCd || dstCd->isBaseClass(srcCd,TRUE))
// member is in the same or a base class // member is in the same or a base class
{ {
#ifdef NEWMATCH
found=matchArguments2( found=matchArguments2(
srcMd->getOuterScope(),srcMd->getFileDef(),srcMd->argumentList(), srcMd->getOuterScope(),srcMd->getFileDef(),srcMd->argumentList(),
dstMd->getOuterScope(),dstMd->getFileDef(),dstMd->argumentList(), dstMd->getOuterScope(),dstMd->getFileDef(),dstMd->argumentList(),
TRUE TRUE
); );
#else
found=matchArguments(srcMd->argumentList(),
dstMd->argumentList());
#endif
//printf(" Yes, matching (%s<->%s): %d\n", //printf(" Yes, matching (%s<->%s): %d\n",
// argListToString(srcMd->argumentList()).data(), // argListToString(srcMd->argumentList()).data(),
// argListToString(dstMd->argumentList()).data(), // argListToString(dstMd->argumentList()).data(),
......
...@@ -327,6 +327,7 @@ static Protection protection; ...@@ -327,6 +327,7 @@ static Protection protection;
static bool xrefAppendFlag; static bool xrefAppendFlag;
static bool inGroupParamFound; static bool inGroupParamFound;
static int braceCount;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -855,14 +856,11 @@ SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID}) ...@@ -855,14 +856,11 @@ SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
addOutput(yytext[2]); addOutput(yytext[2]);
} }
<Comment>(\n|\\_linebr)({B}*(\n|\\_linebr))+ { // at least one blank line (or blank line command) <Comment>(\n|\\_linebr)({B}*(\n|\\_linebr))+ { // at least one blank line (or blank line command)
if (inContext==OutputBrief) if (inContext!=OutputBrief)
{
setOutput(OutputDoc);
}
else
{ {
addOutput(yytext); addOutput(yytext);
} }
setOutput(OutputDoc);
lineCount(); lineCount();
} }
<Comment>"." { // potential end of a JavaDoc style comment <Comment>"." { // potential end of a JavaDoc style comment
...@@ -1557,18 +1555,30 @@ SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID}) ...@@ -1557,18 +1555,30 @@ SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
/* ----- handle argument of fn command ------- */ /* ----- handle argument of fn command ------- */
<FnParam>{DOCNL} { // end of argument <FnParam>{DOCNL} { // end of argument
if (*yytext=='\n') yyLineNr++; if (braceCount==0)
addOutput('\n'); {
langParser->parsePrototype(functionProto); if (*yytext=='\n') yyLineNr++;
BEGIN( Comment ); addOutput('\n');
//printf("functionProto=%s\n",functionProto.data());
langParser->parsePrototype(functionProto);
BEGIN( Comment );
}
} }
<FnParam>{LC} { // line continuation <FnParam>{LC} { // line continuation
yyLineNr++; yyLineNr++;
functionProto+=' '; functionProto+=' ';
} }
<FnParam>[^@\\\n]+ { // non-special characters <FnParam>[^@\\\n()]+ { // non-special characters
functionProto+=yytext; functionProto+=yytext;
} }
<FnParam>"(" {
functionProto+=yytext;
braceCount++;
}
<FnParam>")" {
functionProto+=yytext;
braceCount--;
}
<FnParam>. { // add other stuff <FnParam>. { // add other stuff
functionProto+=*yytext; functionProto+=*yytext;
} }
...@@ -1655,6 +1665,7 @@ static void handleFn(const QCString &) ...@@ -1655,6 +1665,7 @@ static void handleFn(const QCString &)
{ {
makeStructuralIndicator(Entry::MEMBERDOC_SEC); makeStructuralIndicator(Entry::MEMBERDOC_SEC);
functionProto.resize(0); functionProto.resize(0);
braceCount=0;
BEGIN(FnParam); BEGIN(FnParam);
} }
......
...@@ -253,7 +253,7 @@ static bool readCodeFragment(const char *fileName, ...@@ -253,7 +253,7 @@ static bool readCodeFragment(const char *fileName,
{ {
//printf("readCodeFragment(%s,%d,%d)\n",fileName,startLine,endLine); //printf("readCodeFragment(%s,%d,%d)\n",fileName,startLine,endLine);
if (fileName==0 || fileName[0]==0) return FALSE; // not a valid file name if (fileName==0 || fileName[0]==0) return FALSE; // not a valid file name
QCString cmd="\"" + getFileFilter(fileName)+"\" \""+fileName+"\""; QCString cmd=getFileFilter(fileName)+" \""+fileName+"\"";
FILE *f = Config_getBool("FILTER_SOURCE_FILES") ? popen(cmd,"r") : fopen(fileName,"r"); FILE *f = Config_getBool("FILTER_SOURCE_FILES") ? popen(cmd,"r") : fopen(fileName,"r");
bool found=FALSE; bool found=FALSE;
if (f) if (f)
......
...@@ -555,7 +555,7 @@ static bool findDocsForMemberOrCompound(const char *commandName, ...@@ -555,7 +555,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
int funcStart=cmdArg.find('('); int funcStart=cmdArg.find('(');
if (funcStart==-1) funcStart=l; if (funcStart==-1) funcStart=l;
QString name=cmdArg.left(funcStart); QString name=removeRedundantWhiteSpace(cmdArg.left(funcStart).latin1());
QString args=cmdArg.right(l-funcStart); QString args=cmdArg.right(l-funcStart);
// try if the link is to a member // try if the link is to a member
...@@ -2684,6 +2684,18 @@ int DocHtmlCell::parse() ...@@ -2684,6 +2684,18 @@ int DocHtmlCell::parse()
if (isFirst) { par->markFirst(); isFirst=FALSE; } if (isFirst) { par->markFirst(); isFirst=FALSE; }
m_children.append(par); m_children.append(par);
retval=par->parse(); retval=par->parse();
if (retval==TK_HTMLTAG)
{
int tagId=HtmlTagMapper::map(g_token->name);
if (tagId==HTML_TD && g_token->endTag) // found </dt> tag
{
retval=TK_NEWPARA; // ignore the tag
}
else if (tagId==HTML_TH && g_token->endTag) // found </th> tag
{
retval=TK_NEWPARA; // ignore the tag
}
}
} }
while (retval==TK_NEWPARA); while (retval==TK_NEWPARA);
if (par) par->markLast(); if (par) par->markLast();
......
...@@ -297,7 +297,7 @@ FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+] ...@@ -297,7 +297,7 @@ FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILEECHAR [a-z_A-Z0-9\-\+] FILEECHAR [a-z_A-Z0-9\-\+]
HFILEMASK ("."{FILESCHAR}*{FILEECHAR}+)* HFILEMASK ("."{FILESCHAR}*{FILEECHAR}+)*
FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK} FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK}
LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))? LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"){BLANK}+)?
SPCMD1 {CMD}[a-z_A-Z0-9]+ SPCMD1 {CMD}[a-z_A-Z0-9]+
SPCMD2 {CMD}[\\@<>&$#%~] SPCMD2 {CMD}[\\@<>&$#%~]
SPCMD3 {CMD}form#[0-9]+ SPCMD3 {CMD}form#[0-9]+
...@@ -316,7 +316,7 @@ OPNEW {BLANK}+"new"({BLANK}*"[]")? ...@@ -316,7 +316,7 @@ OPNEW {BLANK}+"new"({BLANK}*"[]")?
OPDEL {BLANK}+"delete"({BLANK}*"[]")? OPDEL {BLANK}+"delete"({BLANK}*"[]")?
OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()" OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()"
OPCAST {BLANK}+[^(\r\n.,]+ OPCAST {BLANK}+[^(\r\n.,]+
OPMASK ({BLANK}*{OPNORM}{FUNCARG})|({OPCAST}{FUNCARG}) OPMASK ({BLANK}*{OPNORM}{FUNCARG}?)|({OPCAST}{FUNCARG})
LNKWORD1 ("::"|"#")?{SCOPEMASK} LNKWORD1 ("::"|"#")?{SCOPEMASK}
CVSPEC {BLANK}*("const"|"volatile") CVSPEC {BLANK}*("const"|"volatile")
LNKWORD2 {SCOPEPRE}*"operator"{OPMASK} LNKWORD2 {SCOPEPRE}*"operator"{OPMASK}
......
This diff is collapsed.
This diff is collapsed.
...@@ -193,9 +193,10 @@ QCString unhtmlify(const char *str) ...@@ -193,9 +193,10 @@ QCString unhtmlify(const char *str)
if (c!='&') { result+=c; p++; } if (c!='&') { result+=c; p++; }
else else
{ {
if (strncmp(p,"&amp;",5)==0) { result+='&'; p+=5; } if (strncmp(p,"&amp;",5)==0) { result+='&'; p+=5; }
else if (strncmp(p,"&lt;",4)==0) { result+='<'; p+=4; } else if (strncmp(p,"&lt;",4)==0) { result+='<'; p+=4; }
else if (strncmp(p,"&gt;",4)==0) { result+='>'; p+=4; } else if (strncmp(p,"&gt;",4)==0) { result+='>'; p+=4; }
else if (strncmp(p,"&quot;",6)==0) { result+='"'; p+=4; }
else /* should not happen */ { result+='&'; p++; } else /* should not happen */ { result+='&'; p++; }
} }
} }
...@@ -301,12 +302,13 @@ QCString unhtmlify(const char *str) ...@@ -301,12 +302,13 @@ QCString unhtmlify(const char *str)
} }
<Qt3ReadName>. <Qt3ReadName>.
<Qt3ReadArgs>[ \t]*"(" { <Qt3ReadArgs>[ \t]*"(" {
memberArgs+="("; memberArgs+='(';
} }
<Qt3ReadArgs>"&amp;" { memberArgs+="&"; } <Qt3ReadArgs>"&amp;" { memberArgs+='&'; }
<Qt3ReadArgs>"&lt;" { memberArgs+="<"; } <Qt3ReadArgs>"&lt;" { memberArgs+='<'; }
<Qt3ReadArgs>"&gt;" { memberArgs+=">"; } <Qt3ReadArgs>"&gt;" { memberArgs+='>'; }
<Qt3ReadArgs>"&nbsp;" { memberArgs+=" "; } <Qt3ReadArgs>"&quot;" { memberArgs+='"'; }
<Qt3ReadArgs>"&nbsp;" { memberArgs+=' '; }
<Qt3ReadArgs>"</h3>" { <Qt3ReadArgs>"</h3>" {
addMember(memberName,memberRef,memberArgs); addMember(memberName,memberRef,memberArgs);
memberName.resize(0); memberName.resize(0);
...@@ -316,7 +318,7 @@ QCString unhtmlify(const char *str) ...@@ -316,7 +318,7 @@ QCString unhtmlify(const char *str)
} }
<Qt3ReadArgs>"<"[^>]+">" <Qt3ReadArgs>"<"[^>]+">"
<Qt3ReadArgs>")" { <Qt3ReadArgs>")" {
memberArgs+=")"; memberArgs+=')';
addMember(memberName,memberRef,memberArgs); addMember(memberName,memberRef,memberArgs);
memberName.resize(0); memberName.resize(0);
memberRef.resize(0); memberRef.resize(0);
...@@ -329,39 +331,42 @@ QCString unhtmlify(const char *str) ...@@ -329,39 +331,42 @@ QCString unhtmlify(const char *str)
/* --------------------------------------------------- */ /* --------------------------------------------------- */
/* Doxygen class extraction rules */ /* Doxygen class extraction rules */
<Start>"<!-- doxytag: class=<" { <Start>"<!-- doxytag: class=\"" {
className.resize(0); className.resize(0);
BEGIN(DoxClassName); BEGIN(DoxClassName);
} }
<DoxClassName>[^&>]+ { <DoxClassName>[^&"]+ {
className=yytext; className=yytext;
addClass(className); addClass(className);
} }
<DoxClassName>"&lt;" { <DoxClassName>"&lt;" {
className+="<"; className+='<';
} }
<DoxClassName>"&gt;" { <DoxClassName>"&gt;" {
className+=">"; className+='>';
} }
<DoxClassName>"&amp;" { <DoxClassName>"&amp;" {
className+="&"; className+='&';
}
<DoxClassName>"&quot;" {
className+='"';
} }
<DoxClassName>. { <DoxClassName>. {
className+=*yytext; className+=*yytext;
} }
<DoxClassName>"> -->" { <DoxClassName>"\" -->" {
BEGIN(Start); BEGIN(Start);
} }
/* --------------------------------------------------- */ /* --------------------------------------------------- */
/* Doxygen inheritance extraction rules */ /* Doxygen inheritance extraction rules */
<Start>"<!-- doxytag: inherits=<" { <Start>"<!-- doxytag: inherits=\"" {
bases.clear(); bases.clear();
baseName.resize(0); baseName.resize(0);
BEGIN(DoxClassBase); BEGIN(DoxClassBase);
} }
<DoxClassBase>[^&,>]+ { <DoxClassBase>[^&,"]+ {
baseName+=yytext; baseName+=yytext;
} }
<DoxClassBase>"," { <DoxClassBase>"," {
...@@ -369,18 +374,21 @@ QCString unhtmlify(const char *str) ...@@ -369,18 +374,21 @@ QCString unhtmlify(const char *str)
baseName.resize(0); baseName.resize(0);
} }
<DoxClassBase>"&lt;" { <DoxClassBase>"&lt;" {
baseName+="<"; baseName+='<';
} }
<DoxClassBase>"&gt;" { <DoxClassBase>"&gt;" {
baseName+=">"; baseName+='>';
} }
<DoxClassBase>"&amp;" { <DoxClassBase>"&amp;" {
baseName+="&"; baseName+='&';
}
<DoxClassBase>"&quot;" {
baseName+='"';
} }
<DoxClassBase>. { <DoxClassBase>. {
baseName+=*yytext; baseName+=*yytext;
} }
<DoxClassBase>"> -->" { <DoxClassBase>"\" -->" {
bases.append(baseName); bases.append(baseName);
baseName.resize(0); baseName.resize(0);
addBases(className); addBases(className);
...@@ -390,65 +398,74 @@ QCString unhtmlify(const char *str) ...@@ -390,65 +398,74 @@ QCString unhtmlify(const char *str)
/* --------------------------------------------------- */ /* --------------------------------------------------- */
/* Doxygen member extraction rules */ /* Doxygen member extraction rules */
<Start>"<!-- doxytag: member=<" { <Start>"<!-- doxytag: member=\"" {
memberName.resize(0); memberName.resize(0);
BEGIN(DoxReadName); BEGIN(DoxReadName);
} }
<DoxReadName>[^&>]+ { <DoxReadName>[^&"]+ {
memberName+=yytext; memberName+=yytext;
} }
<DoxReadName>"&lt;" { <DoxReadName>"&lt;" {
memberName+="<"; memberName+='<';
} }
<DoxReadName>"&gt;" { <DoxReadName>"&gt;" {
memberName+=">"; memberName+='>';
} }
<DoxReadName>"&amp;" { <DoxReadName>"&amp;" {
memberName+="&"; memberName+='&';
}
<DoxReadName>"&quot;" {
memberName+='"';
} }
<DoxReadName>. { <DoxReadName>. {
memberName+=*yytext; memberName+=*yytext;
} }
<DoxReadName>"> ref=<" { <DoxReadName>"\" ref=\"" {
memberName=memberName.mid(memberName.find("::")+2); memberName=memberName.mid(memberName.find("::")+2);
memberRef.resize(0); memberRef.resize(0);
BEGIN(DoxReadAnchor); BEGIN(DoxReadAnchor);
} }
<DoxReadAnchor>[^&>]+ { <DoxReadAnchor>[^&"]+ {
memberRef+=yytext; memberRef+=yytext;
} }
<DoxReadAnchor>"&lt;" { <DoxReadAnchor>"&lt;" {
memberRef+="<"; memberRef+='<';
} }
<DoxReadAnchor>"&gt;" { <DoxReadAnchor>"&gt;" {
memberRef+=">"; memberRef+='>';
} }
<DoxReadAnchor>"&amp;" { <DoxReadAnchor>"&amp;" {
memberRef+="&"; memberRef+='&';
}
<DoxReadAnchor>"&quot;" {
memberRef+='"';
} }
<DoxReadAnchor>. { <DoxReadAnchor>. {
memberRef+=*yytext; memberRef+=*yytext;
} }
<DoxReadAnchor>"> args=<" { <DoxReadAnchor>"\" args=\"" {
memberArgs.resize(0); memberArgs.resize(0);
BEGIN(DoxReadArgs); BEGIN(DoxReadArgs);
} }
<DoxReadArgs>[^&>]+ { <DoxReadArgs>[^&"]+ {
memberArgs+=yytext; memberArgs+=yytext;
} }
<DoxReadArgs>"&lt;" { <DoxReadArgs>"&lt;" {
memberArgs+="<"; memberArgs+='<';
} }
<DoxReadArgs>"&gt;" { <DoxReadArgs>"&gt;" {
memberArgs+=">"; memberArgs+='>';
} }
<DoxReadArgs>"&amp;" { <DoxReadArgs>"&amp;" {
memberArgs+="&"; memberArgs+='&';
}
<DoxReadArgs>"&quot;" {
memberArgs+='"';
} }
<DoxReadArgs>. { <DoxReadArgs>. {
memberArgs+=*yytext; memberArgs+=*yytext;
} }
<DoxReadArgs>"> -->" { <DoxReadArgs>"\" -->" {
addMember(memberName,memberRef,memberArgs); addMember(memberName,memberRef,memberArgs);
memberName.resize(0); memberName.resize(0);
memberRef.resize(0); memberRef.resize(0);
...@@ -613,10 +630,11 @@ QCString unhtmlify(const char *str) ...@@ -613,10 +630,11 @@ QCString unhtmlify(const char *str)
else else
BEGIN( Start ); BEGIN( Start );
} }
<ReadArgs>"&amp;" { memberArgs+="&"; } <ReadArgs>"&amp;" { memberArgs+='&'; }
<ReadArgs>"&lt;" { memberArgs+="<"; } <ReadArgs>"&lt;" { memberArgs+='<'; }
<ReadArgs>"&gt;" { memberArgs+=">"; } <ReadArgs>"&gt;" { memberArgs+='>'; }
<ReadArgs>"&nbsp;" { memberArgs+=" "; } <ReadArgs>"&quot;" { memberArgs+='"'; }
<ReadArgs>"&nbsp;" { memberArgs+=' '; }
/* /*
<ReadArgs>[{}] { // handle enums <ReadArgs>[{}] { // handle enums
memberArgs.resize(0); memberArgs.resize(0);
......
...@@ -686,13 +686,17 @@ void FileDef::addMembersToMemberGroup() ...@@ -686,13 +686,17 @@ void FileDef::addMembersToMemberGroup()
/*! Adds member definition \a md to the list of all members of this file */ /*! Adds member definition \a md to the list of all members of this file */
void FileDef::insertMember(MemberDef *md) void FileDef::insertMember(MemberDef *md)
{ {
//printf("%s:FileDef::insertMember(%s)\n",name().data(),md->name().data()); //printf("%s:FileDef::insertMember(%s (=%p) list has %d elements)\n",
if (allMemberList.find(md)!=-1) return; // name().data(),md->name().data(),md,allMemberList.count());
if (allMemberList.findRef(md)!=-1)
{
return;
}
allMemberList.append(md); allMemberList.append(md);
bool sortBriefDocs = Config_getBool("SORT_BRIEF_DOCS"); bool sortBriefDocs = Config_getBool("SORT_BRIEF_DOCS");
bool sortMemberDocs = Config_getBool("SORT_MEMBER_DOCS"); bool sortMemberDocs = Config_getBool("SORT_MEMBER_DOCS");
switch(md->memberType()) switch (md->memberType())
{ {
case MemberDef::Variable: case MemberDef::Variable:
case MemberDef::Property: case MemberDef::Property:
...@@ -1129,7 +1133,7 @@ static void addDirsAsGroups(Directory *root,GroupDef *parent,int level) ...@@ -1129,7 +1133,7 @@ static void addDirsAsGroups(Directory *root,GroupDef *parent,int level)
GroupDef *gd=0; GroupDef *gd=0;
if (root->kind()==DirEntry::Dir) if (root->kind()==DirEntry::Dir)
{ {
gd = new GroupDef("<generated>", gd = new GroupDef("[generated]",
1, 1,
root->path(), // name root->path(), // name
root->name() // title root->name() // title
......
...@@ -218,14 +218,10 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly) ...@@ -218,14 +218,10 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly)
md->getOuterScope()->definitionType()==Definition::TypeFile); md->getOuterScope()->definitionType()==Definition::TypeFile);
if (srcMd->isFunction() && md->isFunction() && if (srcMd->isFunction() && md->isFunction() &&
#ifdef NEWMATCH
matchArguments2(srcMd->getOuterScope(),srcMd->getFileDef(),srcMd->argumentList(), matchArguments2(srcMd->getOuterScope(),srcMd->getFileDef(),srcMd->argumentList(),
md->getOuterScope(),md->getFileDef(),md->argumentList(), md->getOuterScope(),md->getFileDef(),md->argumentList(),
TRUE TRUE
) && ) &&
#else
matchArguments(srcMd->argumentList(),md->argumentList()) &&
#endif
sameScope sameScope
) )
{ {
......
...@@ -603,9 +603,13 @@ void HtmlGenerator::startDoxyAnchor(const char *,const char *, ...@@ -603,9 +603,13 @@ void HtmlGenerator::startDoxyAnchor(const char *,const char *,
const char *args) const char *args)
{ {
t << "<a class=\"anchor\" name=\"" << anchor << "\"></a>"; t << "<a class=\"anchor\" name=\"" << anchor << "\"></a>";
t << "<!-- doxytag: member=<" << name << "> ref=<" << anchor << "> args=<"; t << "<!-- doxytag: member=\"";
docify(name);
t << "\" ref=\"";
docify(anchor);
t << "\" args=\"";
docify(args); docify(args);
t << "> -->"; t << "\" -->";
} }
void HtmlGenerator::endDoxyAnchor(const char *,const char *) void HtmlGenerator::endDoxyAnchor(const char *,const char *)
...@@ -815,6 +819,7 @@ void HtmlGenerator::docify(const char *str) ...@@ -815,6 +819,7 @@ void HtmlGenerator::docify(const char *str)
case '<': t << "&lt;"; break; case '<': t << "&lt;"; break;
case '>': t << "&gt;"; break; case '>': t << "&gt;"; break;
case '&': t << "&amp;"; break; case '&': t << "&amp;"; break;
case '"': t << "&quot;"; break;
case '\\': case '\\':
if (*p=='<') if (*p=='<')
{ t << "&lt;"; p++; } { t << "&lt;"; p++; }
......
...@@ -3101,7 +3101,7 @@ void writeIndex(OutputList &ol) ...@@ -3101,7 +3101,7 @@ void writeIndex(OutputList &ol)
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
QCString defFileName = QCString defFileName =
Doxygen::mainPage ? Doxygen::mainPage->getDefFileName().data() : "<generated>"; Doxygen::mainPage ? Doxygen::mainPage->getDefFileName().data() : "[generated]";
int defLine = int defLine =
Doxygen::mainPage ? Doxygen::mainPage->getDefLine() : -1; Doxygen::mainPage ? Doxygen::mainPage->getDefLine() : -1;
......
...@@ -104,7 +104,7 @@ enum ClassMemberHighlight ...@@ -104,7 +104,7 @@ enum ClassMemberHighlight
CMHL_Properties, CMHL_Properties,
CMHL_Events, CMHL_Events,
CMHL_Related, CMHL_Related,
CMHL_Total = CMHL_Events+1 CMHL_Total = CMHL_Related+1
}; };
enum FileMemberHighlight enum FileMemberHighlight
......
...@@ -315,7 +315,7 @@ void MemberList::writeDeclarations(OutputList &ol, ...@@ -315,7 +315,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{ {
//printf("subtitle=`%s'\n",subtitle); //printf("subtitle=`%s'\n",subtitle);
ol.startMemberSubtitle(); ol.startMemberSubtitle();
ol.parseDoc("<generated>",-1,0,0,subtitle,FALSE,FALSE); ol.parseDoc("[generated]",-1,0,0,subtitle,FALSE,FALSE);
ol.endMemberSubtitle(); ol.endMemberSubtitle();
} }
...@@ -339,7 +339,7 @@ void MemberList::writeDeclarations(OutputList &ol, ...@@ -339,7 +339,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{ {
//printf("Member group has docs!\n"); //printf("Member group has docs!\n");
ol.startMemberGroupDocs(); ol.startMemberGroupDocs();
ol.parseDoc("<generated>",-1,0,0,mg->documentation()+"\n",FALSE,FALSE); ol.parseDoc("[generated]",-1,0,0,mg->documentation()+"\n",FALSE,FALSE);
ol.endMemberGroupDocs(); ol.endMemberGroupDocs();
} }
ol.startMemberGroup(); ol.startMemberGroup();
......
...@@ -199,7 +199,7 @@ static FILE *checkAndOpenFile(const QCString &absName) ...@@ -199,7 +199,7 @@ static FILE *checkAndOpenFile(const QCString &absName)
QCString filterName = getFileFilter(absName); QCString filterName = getFileFilter(absName);
if (!filterName.isEmpty()) if (!filterName.isEmpty())
{ {
QCString cmd = "\"" + filterName+"\" \""+absName+"\""; QCString cmd = filterName+" \""+absName+"\"";
f=popen(cmd,"r"); f=popen(cmd,"r");
if (!f) err("Error: could not execute filter %s\n",cmd.data()); if (!f) err("Error: could not execute filter %s\n",cmd.data());
} }
...@@ -2296,7 +2296,7 @@ void preprocessFile(const char *fileName,BufStr &output) ...@@ -2296,7 +2296,7 @@ void preprocessFile(const char *fileName,BufStr &output)
} }
else else
{ {
QCString cmd = "\"" + inputFilter+"\" \""+fileName+"\""; QCString cmd = inputFilter+" \""+fileName+"\"";
preYYin = popen(cmd,"r"); preYYin = popen(cmd,"r");
if (!preYYin) if (!preYYin)
{ {
......
...@@ -648,8 +648,8 @@ void RTFDocVisitor::visitPost(DocTitle *) ...@@ -648,8 +648,8 @@ void RTFDocVisitor::visitPost(DocTitle *)
{ {
if (m_hide) return; if (m_hide) return;
DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocTitle)}\n"); DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocTitle)}\n");
m_t << "}"; // end bold
m_t << "\\par" << endl; m_t << "\\par" << endl;
m_t << "}"; // end bold
incIndentLevel(); incIndentLevel();
m_t << rtf_Style_Reset << getStyle("DescContinue"); m_t << rtf_Style_Reset << getStyle("DescContinue");
m_lastIsPara=FALSE; m_lastIsPara=FALSE;
......
...@@ -3992,8 +3992,7 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -3992,8 +3992,7 @@ IDLATTR ("["[^\]]*"]"){BN}*
/* ---- Single line comments ------ */ /* ---- Single line comments ------ */
<DocLine>[^\n]*"\n" { // whole line <DocLine>[^\n]*/"\n" { // whole line
yyLineNr++;
handleCommentBlock(yytext,TRUE); handleCommentBlock(yytext,TRUE);
BEGIN( docBlockContext ); BEGIN( docBlockContext );
} }
......
This diff is collapsed.
...@@ -129,10 +129,12 @@ void generateFileRef(OutputDocInterface &od,const char *, ...@@ -129,10 +129,12 @@ void generateFileRef(OutputDocInterface &od,const char *,
const char *linkTxt=0); const char *linkTxt=0);
void writePageRef(OutputDocInterface &od,const char *cn,const char *mn); void writePageRef(OutputDocInterface &od,const char *cn,const char *mn);
#if 0
bool matchArguments(ArgumentList *,ArgumentList *, bool matchArguments(ArgumentList *,ArgumentList *,
const char *cl=0,const char *ns=0,bool checkCV=TRUE, const char *cl=0,const char *ns=0,bool checkCV=TRUE,
NamespaceSDict *usingNamespaces=0, NamespaceSDict *usingNamespaces=0,
SDict<Definition> *usingClasses=0); SDict<Definition> *usingClasses=0);
#endif
bool matchArguments2(Definition *srcScope,FileDef *srcFileScope,ArgumentList *srcAl, bool matchArguments2(Definition *srcScope,FileDef *srcFileScope,ArgumentList *srcAl,
Definition *dstScope,FileDef *dstFileScope,ArgumentList *dstAl, Definition *dstScope,FileDef *dstFileScope,ArgumentList *dstAl,
bool checkCV bool checkCV
...@@ -155,7 +157,7 @@ QCString showFileDefMatches(const FileNameDict *fnDict,const char *n); ...@@ -155,7 +157,7 @@ QCString showFileDefMatches(const FileNameDict *fnDict,const char *n);
int guessSection(const char *name); int guessSection(const char *name);
bool isId(char c); bool isId(char c);
QCString removeRedundantWhiteSpace(const QCString &s); QCString removeRedundantWhiteSpace(const QCString &s);
QCString argListToString(ArgumentList *al); QCString argListToString(ArgumentList *al,bool useCanonicalType=FALSE);
QCString tempArgListToString(ArgumentList *al); QCString tempArgListToString(ArgumentList *al);
QCString generateMarker(int id); QCString generateMarker(int id);
void writeExample(OutputList &ol,ExampleSDict *el); void writeExample(OutputList &ol,ExampleSDict *el);
......
...@@ -594,9 +594,9 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -594,9 +594,9 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
if (md->memberType() == MemberDef::Variable) if (md->memberType() == MemberDef::Variable)
{ {
ArgumentList *al = md->argumentList(); //ArgumentList *al = md->argumentList();
t << " volatile=\""; //t << " volatile=\"";
if (al && al->volatileSpecifier) t << "yes"; else t << "no"; //if (al && al->volatileSpecifier) t << "yes"; else t << "no";
t << "\" mutable=\""; t << "\" mutable=\"";
if (md->isMutable()) t << "yes"; else t << "no"; if (md->isMutable()) t << "yes"; else t << "no";
...@@ -660,7 +660,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -660,7 +660,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
<< convertToXML(rmd->name()) << "</reimplementedby>" << endl; << convertToXML(rmd->name()) << "</reimplementedby>" << endl;
} }
} }
if (isFunc) //function if (isFunc) //function
{ {
ArgumentList *declAl = md->declArgumentList(); ArgumentList *declAl = md->declArgumentList();
...@@ -723,13 +723,21 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -723,13 +723,21 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
} }
} }
else if (md->memberType()==MemberDef::Define && else if (md->memberType()==MemberDef::Define &&
md->argsString()!=0) // define md->argsString()) // define
{ {
ArgumentListIterator ali(*md->argumentList()); if (md->argumentList()->count()==0) // special case for "foo()" to
Argument *a; // disguish it from "foo".
for (ali.toFirst();(a=ali.current());++ali)
{ {
t << " <param><defname>" << a->type << "</defname></param>" << endl; t << " <param></param>" << endl;
}
else
{
ArgumentListIterator ali(*md->argumentList());
Argument *a;
for (ali.toFirst();(a=ali.current());++ali)
{
t << " <param><defname>" << a->type << "</defname></param>" << endl;
}
} }
} }
// avoid that extremely large tables are written to the output. // avoid that extremely large tables are written to the output.
......
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