summaryrefslogtreecommitdiffstats
path: root/src/docparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/docparser.cpp')
-rw-r--r--src/docparser.cpp194
1 files changed, 105 insertions, 89 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 14968e7..f8c0e19 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -48,29 +48,29 @@ static MemberDef * g_memberDef;
static QDict<void> g_paramsFound;
// include file state
-static QCString g_includeFileText;
+static QString g_includeFileText;
static uint g_includeFileOffset;
static uint g_includeFileLength;
// parser state
-static QCString g_context;
+static QString g_context;
static bool g_inSeeBlock;
static bool g_insideHtmlLink;
static QStack<DocNode> g_nodeStack;
static QStack<DocStyleChange> g_styleStack;
static QList<Definition> g_copyStack;
-static QCString g_fileName;
+static QString g_fileName;
struct DocParserContext
{
- QCString context;
+ QString context;
bool inSeeBlock;
bool insideHtmlLink;
QStack<DocNode> nodeStack;
QStack<DocStyleChange> styleStack;
QList<Definition> copyStack;
MemberDef *memberDef;
- QCString fileName;
+ QString fileName;
};
static QStack<DocParserContext> g_parserStack;
@@ -107,7 +107,7 @@ static void docParserPopContext()
//---------------------------------------------------------------------------
-static void checkArgumentName(const QCString &name,bool isParam)
+static void checkArgumentName(const QString &name,bool isParam)
{
if (g_memberDef==0) return; // not a member
ArgumentList *al=g_memberDef->isDocsForDefinition() ?
@@ -120,14 +120,14 @@ static void checkArgumentName(const QCString &name,bool isParam)
int p=0,i=0,l;
while ((i=re.match(name,p,&l))!=-1)
{
- QCString aName=name.mid(i,l);
+ QString aName=name.mid(i,l);
//printf("aName=%s\n",aName.data());
ArgumentListIterator ali(*al);
Argument *a;
bool found=FALSE;
for (ali.toFirst();(a=ali.current());++ali)
{
- QCString argName = g_memberDef->isDefine() ? a->type : a->name;
+ QString argName = g_memberDef->isDefine() ? a->type : a->name;
if (argName.right(3)=="...") argName=argName.left(argName.length()-3);
if (aName==argName)
{
@@ -140,7 +140,7 @@ static void checkArgumentName(const QCString &name,bool isParam)
if (!found && isParam)
{
//printf("member type=%d\n",memberDef->memberType());
- QCString scope=g_memberDef->getScopeString();
+ QString scope=g_memberDef->getScopeString();
if (!scope.isEmpty()) scope+="::"; else scope="";
warn(g_memberDef->docFile(),g_memberDef->docLine(),
"Warning: argument `%s' of command @param "
@@ -167,7 +167,7 @@ static void checkUndocumentedParams()
bool found=FALSE;
for (ali.toFirst();(a=ali.current());++ali)
{
- QCString argName = g_memberDef->isDefine() ? a->type : a->name;
+ QString argName = g_memberDef->isDefine() ? a->type : a->name;
if (argName.right(3)=="...") argName=argName.left(argName.length()-3);
if (!argName.isEmpty() && g_paramsFound.find(argName)==0)
{
@@ -177,7 +177,7 @@ static void checkUndocumentedParams()
}
if (found)
{
- QCString scope=g_memberDef->getScopeString();
+ QString scope=g_memberDef->getScopeString();
if (!scope.isEmpty()) scope+="::"; else scope="";
warn(g_memberDef->docFile(),g_memberDef->docLine(),
"Warning: The following parameters of "
@@ -186,7 +186,7 @@ static void checkUndocumentedParams()
argListToString(al).data());
for (ali.toFirst();(a=ali.current());++ali)
{
- QCString argName = g_memberDef->isDefine() ? a->type : a->name;
+ QString argName = g_memberDef->isDefine() ? a->type : a->name;
if (!argName.isEmpty() && g_paramsFound.find(argName)==0)
{
warn_cont( " parameter %s\n",argName.data());
@@ -199,15 +199,15 @@ static void checkUndocumentedParams()
//---------------------------------------------------------------------------
-static QCString stripKnownExtensions(const char *text)
+static QString stripKnownExtensions(const char *text)
{
- QCString result=text;
+ QString result=text;
if (result.right(4)==".tex")
{
result=result.left(result.length()-4);
}
else if (result.right(Doxygen::htmlFileExtension.length())==
- Doxygen::htmlFileExtension)
+ QString(Doxygen::htmlFileExtension))
{
result=result.left(result.length()-Doxygen::htmlFileExtension.length());
}
@@ -293,12 +293,12 @@ static bool insideLang(DocNode *n)
* @retval FALSE if name was not found.
*/
static bool findDocsForMemberOrCompound(const char *commandName,
- QCString *pDoc,
+ QString *pDoc,
Definition **pDef)
{
- pDoc->resize(0);
+ *pDoc="";
*pDef=0;
- QCString cmdArg=commandName;
+ QString cmdArg=commandName;
int l=cmdArg.length();
if (l==0) return FALSE;
@@ -306,10 +306,10 @@ static bool findDocsForMemberOrCompound(const char *commandName,
if (funcStart==-1) funcStart=l;
//int lastScopeStart=cmdArg.findRev("::",funcStart);
//int lastScopeEnd = lastScopeStart==-1 ? 0 : lastScopeStart+2;
- //QCString scope=cmdArg.left(QMAX(lastScopeStart,0));
- //QCString name=cmdArg.mid(lastScopeEnd,funcStart-lastScopeEnd);
- QCString name=cmdArg.left(funcStart);
- QCString args=cmdArg.right(l-funcStart);
+ //QString scope=cmdArg.left(QMAX(lastScopeStart,0));
+ //QString name=cmdArg.mid(lastScopeEnd,funcStart-lastScopeEnd);
+ QString name=cmdArg.left(funcStart);
+ QString args=cmdArg.right(l-funcStart);
// try if the link is to a member
MemberDef *md=0;
@@ -318,7 +318,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
NamespaceDef *nd=0;
GroupDef *gd=0;
PageInfo *pi=0;
- bool found = getDefs(g_context,name,args,md,cd,fd,nd,gd,FALSE,0,TRUE);
+ bool found = getDefs(g_context.latin1(),name.latin1(),args,md,cd,fd,nd,gd,FALSE,0,TRUE);
if (found && md)
{
*pDoc=md->documentation();
@@ -330,7 +330,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
int scopeOffset=g_context.length();
do // for each scope
{
- QCString fullName=cmdArg;
+ QString fullName=cmdArg;
if (scopeOffset>0)
{
fullName.prepend(g_context.left(scopeOffset)+"::");
@@ -398,8 +398,9 @@ static bool defaultHandleToken(DocNode *parent,int tok,
static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
- const QCString &cmdName)
+ const QString &cmdName)
{
+ QString tokenName = g_token->name;
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
{
@@ -407,7 +408,9 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
cmdName.data());
return tok;
}
- while ((tok=doctokenizerYYlex()) && tok!=TK_WHITESPACE && tok!=TK_NEWPARA)
+ while ((tok=doctokenizerYYlex()) &&
+ tok!=TK_WHITESPACE && tok!=TK_NEWPARA && tok!=TK_LISTITEM && tok!=TK_ENDLIST
+ )
{
if (!defaultHandleToken(parent,tok,children))
{
@@ -415,15 +418,15 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
{
case TK_COMMAND:
warn(g_fileName,doctokenizerYYlineno,"Error: Illegal command \\%s as the argument of a \\%s command",
- g_token->name.data(),cmdName.data());
+ tokenName.data(),cmdName.data());
break;
case TK_SYMBOL:
warn(g_fileName,doctokenizerYYlineno,"Error: Unsupported symbol %s found",
- g_token->name.data());
+ tokenName.data());
break;
default:
warn(g_fileName,doctokenizerYYlineno,"Error: Unexpected token %s",
- g_token->name.data());
+ tokenName.data());
break;
}
}
@@ -540,7 +543,7 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
DBG((" name=%s",g_token->name.data()));
}
DBG(("\n"));
- QCString tokenName = g_token->name;
+ QString tokenName = g_token->name;
switch (tok)
{
case TK_COMMAND:
@@ -803,7 +806,7 @@ handlepara:
//---------------------------------------------------------------------------
-DocSymbol::SymType DocSymbol::decodeSymbol(const QCString &symName,char *letter)
+DocSymbol::SymType DocSymbol::decodeSymbol(const QString &symName,char *letter)
{
int l=symName.length();
DBG(("decodeSymbol(%s) l=%d\n",symName.data(),l));
@@ -856,7 +859,7 @@ DocSymbol::SymType DocSymbol::decodeSymbol(const QCString &symName,char *letter)
//---------------------------------------------------------------------------
static int internalValidatingParseDoc(DocNode *parent,QList<DocNode> &children,
- const QCString &doc)
+ const QString &doc)
{
int retval = RetVal_OK;
@@ -887,7 +890,7 @@ static int internalValidatingParseDoc(DocNode *parent,QList<DocNode> &children,
//---------------------------------------------------------------------------
-static void readTextFileByName(const QCString &file,QCString &text)
+static void readTextFileByName(const QString &file,QString &text)
{
bool ambig;
FileDef *fd;
@@ -911,7 +914,7 @@ static void readTextFileByName(const QCString &file,QCString &text)
//---------------------------------------------------------------------------
-DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor)
+DocAnchor::DocAnchor(DocNode *parent,const QString &id,bool newAnchor)
: m_parent(parent)
{
if (id.isEmpty())
@@ -1080,7 +1083,7 @@ void DocIncOperator::parse()
void DocCopy::parse()
{
- QCString doc;
+ QString doc;
Definition *def;
if (findDocsForMemberOrCompound(m_link,&doc,&def))
{
@@ -1114,7 +1117,7 @@ void DocCopy::parse()
void DocXRefItem::parse()
{
- QCString listName;
+ QString listName;
switch(m_type)
{
case Bug: listName="bug"; break;
@@ -1143,7 +1146,7 @@ void DocXRefItem::parse()
DocFormula::DocFormula(DocNode *parent,int id) :
m_parent(parent)
{
- QCString formCmd;
+ QString formCmd;
formCmd.sprintf("\\form#%d",id);
Formula *formula=Doxygen::formulaNameDict[formCmd];
if (formula)
@@ -1306,7 +1309,7 @@ endsecreflist:
//---------------------------------------------------------------------------
-DocInternalRef::DocInternalRef(DocNode *parent,const QCString &ref)
+DocInternalRef::DocInternalRef(DocNode *parent,const QString &ref)
: m_parent(parent)
{
int i=ref.find('#');
@@ -1357,11 +1360,12 @@ void DocInternalRef::parse()
//---------------------------------------------------------------------------
-DocRef::DocRef(DocNode *parent,const QCString &target) :
+DocRef::DocRef(DocNode *parent,const QString &target) :
m_parent(parent), m_refToSection(FALSE), m_refToAnchor(FALSE)
{
Definition *compound = 0;
- MemberDef *member = 0;
+ PageInfo *pageInfo = 0;
+ QCString anchor;
ASSERT(!target.isEmpty());
SectionInfo *sec = Doxygen::sectionDict[target];
if (sec) // ref to section or anchor
@@ -1375,16 +1379,25 @@ DocRef::DocRef(DocNode *parent,const QCString &target) :
m_refToAnchor = sec->type==SectionInfo::Anchor;
m_refToSection = sec->type!=SectionInfo::Anchor;
}
- else if (resolveRef(g_context,target,TRUE,&compound,&member))
+ else if (resolveLink(g_context,target,TRUE,&compound,&pageInfo,anchor))
{
- if (member) // ref to member
+ m_text = target;
+ m_anchor = anchor;
+ if (pageInfo) // ref to page
{
- m_file = compound->getOutputFileBase();
- m_ref = compound->getReference();
- m_anchor = member->anchor();
+ m_file = pageInfo->getOutputFileBase();
+ m_ref = pageInfo->getReference();
}
- else // ref to compound
+ else if (compound) // ref to compound
{
+ if (anchor.isEmpty() && /* compound link */
+ compound->definitionType()==Definition::TypeGroup && /* is group */
+ ((GroupDef *)compound)->groupTitle() /* with title */
+ )
+ {
+ m_text=((GroupDef *)compound)->groupTitle(); // use group's title as l
+ }
+
m_file = compound->getOutputFileBase();
m_ref = compound->getReference();
}
@@ -1432,14 +1445,16 @@ void DocRef::parse()
//---------------------------------------------------------------------------
-DocLink::DocLink(DocNode *parent,const QCString &target) :
+DocLink::DocLink(DocNode *parent,const QString &target) :
m_parent(parent)
{
Definition *compound;
PageInfo *page;
+ QCString anchor;
if (resolveLink(g_context,stripKnownExtensions(target),g_inSeeBlock,
- &compound,&page,m_anchor))
+ &compound,&page,anchor))
{
+ m_anchor = anchor;
if (compound)
{
m_file = compound->getOutputFileBase();
@@ -1459,9 +1474,9 @@ DocLink::DocLink(DocNode *parent,const QCString &target) :
}
-QCString DocLink::parse(bool isJavaLink)
+QString DocLink::parse(bool isJavaLink)
{
- QCString result;
+ QString result;
g_nodeStack.push(this);
DBG(("DocLink::parse() start\n"));
@@ -1495,7 +1510,7 @@ QCString DocLink::parse(bool isJavaLink)
case TK_WORD:
if (isJavaLink) // special case to detect closing }
{
- QCString w = g_token->name;
+ QString w = g_token->name;
uint l=w.length();
int p;
if (w=="}")
@@ -1882,7 +1897,7 @@ int DocIndexEntry::parse()
warn(g_fileName,doctokenizerYYlineno,"Error: expected whitespace after \\addindex command");
goto endindexentry;
}
- m_entry.resize(0);
+ m_entry="";
while ((tok=doctokenizerYYlex()) && tok!=TK_WHITESPACE && tok!=TK_NEWPARA)
{
switch (tok)
@@ -2078,7 +2093,7 @@ int DocHtmlRow::parse()
// parse one or more cells
do
{
- cell=new DocHtmlCell(this,isHeading);
+ cell=new DocHtmlCell(this,g_token->attribs,isHeading);
cell->markFirst(isFirst);
isFirst=FALSE;
m_children.append(cell);
@@ -2125,7 +2140,7 @@ getrow:
}
else
{
- m_caption = new DocHtmlCaption(this);
+ m_caption = new DocHtmlCaption(this,g_token->attribs);
retval=m_caption->parse();
if (retval==RetVal_OK) // caption was parsed ok
@@ -2154,7 +2169,7 @@ getrow:
// parse one or more rows
while (retval==RetVal_TableRow)
{
- DocHtmlRow *tr=new DocHtmlRow(this);
+ DocHtmlRow *tr=new DocHtmlRow(this,g_token->attribs);
m_children.append(tr);
retval=tr->parse();
}
@@ -2231,6 +2246,7 @@ endtitle:
int DocHtmlDescData::parse()
{
+ m_attribs = g_token->attribs;
int retval=0;
g_nodeStack.push(this);
DBG(("DocHtmlDescData::parse() start\n"));
@@ -2295,7 +2311,7 @@ int DocHtmlDescList::parse()
do
{
- DocHtmlDescTitle *dt=new DocHtmlDescTitle(this);
+ DocHtmlDescTitle *dt=new DocHtmlDescTitle(this,g_token->attribs);
m_children.append(dt);
DocHtmlDescData *dd=new DocHtmlDescData(this);
m_children.append(dd);
@@ -2417,7 +2433,7 @@ int DocHtmlList::parse()
do
{
- DocHtmlListItem *li=new DocHtmlListItem(this);
+ DocHtmlListItem *li=new DocHtmlListItem(this,g_token->attribs);
m_children.append(li);
retval=li->parse();
} while (retval==RetVal_ListItem);
@@ -2598,7 +2614,7 @@ int DocSimpleSect::parse(bool userTitle)
//--------------------------------------------------------------------------
-int DocParamList::parse(const QCString &cmdName)
+int DocParamList::parse(const QString &cmdName)
{
int retval=RetVal_OK;
DBG(("DocParamList::parse() start\n"));
@@ -2648,7 +2664,7 @@ int DocParamList::parse(const QCString &cmdName)
//--------------------------------------------------------------------------
-int DocParamSect::parse(const QCString &cmdName)
+int DocParamSect::parse(const QString &cmdName)
{
int retval=RetVal_OK;
DBG(("DocParamSect::parse() start\n"));
@@ -2686,7 +2702,7 @@ int DocPara::handleSimpleSection(DocSimpleSect::Type t)
return (rv!=TK_NEWPARA) ? rv : RetVal_OK;
}
-int DocPara::handleParamSection(const QCString &cmdName,DocParamSect::Type t)
+int DocPara::handleParamSection(const QString &cmdName,DocParamSect::Type t)
{
DocParamSect *ps=0;
@@ -2722,7 +2738,7 @@ int DocPara::handleXRefItem(DocXRefItem::Type t)
return retval;
}
-void DocPara::handleIncludeOperator(const QCString &cmdName,DocIncOperator::Type t)
+void DocPara::handleIncludeOperator(const QString &cmdName,DocIncOperator::Type t)
{
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
@@ -2772,7 +2788,7 @@ void DocPara::handleIncludeOperator(const QCString &cmdName,DocIncOperator::Type
op->parse();
}
-void DocPara::handleImage(const QCString &cmdName)
+void DocPara::handleImage(const QString &cmdName)
{
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
@@ -2796,7 +2812,7 @@ void DocPara::handleImage(const QCString &cmdName)
return;
}
DocImage::Type t;
- QCString imgType = g_token->name.lower();
+ QString imgType = g_token->name.lower();
if (imgType=="html") t=DocImage::Html;
else if (imgType=="latex") t=DocImage::Latex;
else if (imgType=="rtf") t=DocImage::Rtf;
@@ -2821,7 +2837,7 @@ void DocPara::handleImage(const QCString &cmdName)
img->parse();
}
-void DocPara::handleDotFile(const QCString &cmdName)
+void DocPara::handleDotFile(const QString &cmdName)
{
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
@@ -2844,7 +2860,7 @@ void DocPara::handleDotFile(const QCString &cmdName)
df->parse();
}
-void DocPara::handleLink(const QCString &cmdName,bool isJavaLink)
+void DocPara::handleLink(const QString &cmdName,bool isJavaLink)
{
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
@@ -2864,14 +2880,14 @@ void DocPara::handleLink(const QCString &cmdName,bool isJavaLink)
doctokenizerYYsetStatePara();
DocLink *lnk = new DocLink(this,g_token->name);
m_children.append(lnk);
- QCString leftOver = lnk->parse(isJavaLink);
+ QString leftOver = lnk->parse(isJavaLink);
if (!leftOver.isEmpty())
{
m_children.append(new DocWord(this,leftOver));
}
}
-void DocPara::handleRef(const QCString &cmdName)
+void DocPara::handleRef(const QString &cmdName)
{
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
@@ -2941,7 +2957,7 @@ endlang:
return retval;
}
-void DocPara::handleInclude(const QCString &cmdName,DocInclude::Type t)
+void DocPara::handleInclude(const QString &cmdName,DocInclude::Type t)
{
int tok=doctokenizerYYlex();
if (tok!=TK_WHITESPACE)
@@ -2971,7 +2987,7 @@ void DocPara::handleInclude(const QCString &cmdName,DocInclude::Type t)
}
-int DocPara::handleCommand(const QCString &cmdName)
+int DocPara::handleCommand(const QString &cmdName)
{
int retval = RetVal_OK;
switch (CmdMapper::map(cmdName))
@@ -3310,23 +3326,23 @@ int DocPara::handleCommand(const QCString &cmdName)
}
-int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tagOptions)
+int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tagHtmlAttribs)
{
- DBG(("handleHtmlStartTag(%s,%d)\n",tagName.data(),tagOptions.count()));
+ DBG(("handleHtmlStartTag(%s,%d)\n",tagName.data(),tagHtmlAttribs.count()));
int retval=RetVal_OK;
int tagId = HtmlTagMapper::map(tagName);
switch (tagId)
{
case HTML_UL:
{
- DocHtmlList *list = new DocHtmlList(this,DocHtmlList::Unordered);
+ DocHtmlList *list = new DocHtmlList(this,tagHtmlAttribs,DocHtmlList::Unordered);
m_children.append(list);
retval=list->parse();
}
break;
case HTML_OL:
{
- DocHtmlList *list = new DocHtmlList(this,DocHtmlList::Ordered);
+ DocHtmlList *list = new DocHtmlList(this,tagHtmlAttribs,DocHtmlList::Ordered);
m_children.append(list);
retval=list->parse();
}
@@ -3343,7 +3359,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tag
break;
case HTML_PRE:
{
- DocHtmlPre *pre = new DocHtmlPre(this);
+ DocHtmlPre *pre = new DocHtmlPre(this,tagHtmlAttribs);
m_children.append(pre);
retval=pre->parse();
}
@@ -3374,7 +3390,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tag
break;
case HTML_DL:
{
- DocHtmlDescList *list = new DocHtmlDescList(this);
+ DocHtmlDescList *list = new DocHtmlDescList(this,tagHtmlAttribs);
m_children.append(list);
retval=list->parse();
}
@@ -3387,7 +3403,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tag
break;
case HTML_TABLE:
{
- DocHtmlTable *table = new DocHtmlTable(this);
+ DocHtmlTable *table = new DocHtmlTable(this,tagHtmlAttribs);
m_children.append(table);
retval=table->parse();
}
@@ -3418,8 +3434,8 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tag
break;
case HTML_A:
{
- QListIterator<Option> li(tagOptions);
- Option *opt;
+ HtmlAttribListIterator li(tagHtmlAttribs);
+ HtmlAttrib *opt;
for (li.toFirst();(opt=li.current());++li)
{
if (opt->name=="name") // <a name=label> tag
@@ -3428,7 +3444,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tag
{
DocAnchor *anc = new DocAnchor(this,opt->value,TRUE);
m_children.append(anc);
- break; // stop looking for other tag options
+ break; // stop looking for other tag attribs
}
else
{
@@ -3452,29 +3468,29 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tag
break;
case HTML_H1:
{
- DocHtmlHeader *header = new DocHtmlHeader(this,1);
+ DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,1);
m_children.append(header);
retval = header->parse();
}
break;
case HTML_H2:
{
- DocHtmlHeader *header = new DocHtmlHeader(this,2);
+ DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,2);
m_children.append(header);
retval = header->parse();
}
break;
case HTML_H3:
{
- DocHtmlHeader *header = new DocHtmlHeader(this,3);
+ DocHtmlHeader *header = new DocHtmlHeader(this,tagHtmlAttribs,3);
m_children.append(header);
retval = header->parse();
}
break;
case HTML_IMG:
{
- QListIterator<Option> li(tagOptions);
- Option *opt;
+ HtmlAttribListIterator li(tagHtmlAttribs);
+ HtmlAttrib *opt;
for (li.toFirst();(opt=li.current());++li)
{
if (opt->name=="src" && !opt->value.isEmpty())
@@ -3496,7 +3512,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const QList<Option> &tag
return retval;
}
-int DocPara::handleHtmlEndTag(const QCString &tagName)
+int DocPara::handleHtmlEndTag(const QString &tagName)
{
DBG(("handleHtmlEndTag(%s)\n",tagName.data()));
int tagId = HtmlTagMapper::map(tagName);
@@ -3817,7 +3833,7 @@ reparsetoken:
{
if (!g_token->endTag) // found a start tag
{
- retval = handleHtmlStartTag(g_token->name,g_token->options);
+ retval = handleHtmlStartTag(g_token->name,g_token->attribs);
}
else // found an end tag
{
@@ -4023,9 +4039,9 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
const char *context,MemberDef *md,
const char *input)
{
- //printf("---------------- input --------------------\n%s\n----------- end input -------------------\n",input);
- //printf("========== validating %s at line %d\n",fileName,startLine);
+ printf("========== validating %s at line %d\n",fileName,startLine);
+ printf("---------------- input --------------------\n%s\n----------- end input -------------------\n",input);
g_token = new TokenInfo;
g_context = context;
@@ -4035,7 +4051,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
g_styleStack.clear();
g_inSeeBlock = FALSE;
g_insideHtmlLink = FALSE;
- g_includeFileText.resize(0);
+ g_includeFileText = "";
g_includeFileOffset = 0;
g_includeFileLength = 0;
g_hasParamCommand = FALSE;