| Return Type | Function name | Arguments |
|---|---|---|
| hzHtagInd | AtHtmlTag | (hzString&,hzChain::Iter&,) |
Declared in file: hzDocument.h
Defined in file : hzDocHtml.cpp
Function Logic:
Function body:
hzHtagInd AtHtmlTag (hzString& tagseq, hzChain::Iter& ci)
{
_hzfunc(__func__) ;
hzChain W ;
chIter zi ;
hzHtagform tf ;
hzString tagname ;
hzHtagInd retval ;
if (!s_htagNam.Count())
InitHtml() ;
tagseq.Clear() ;
zi = ci ;
if (*zi != CHAR_LESS)
return HTAG_IND_NULL ;
zi++ ;
if (*zi == CHAR_FWSLASH)
{ retval = HTAG_IND_ANTI ; zi++ ; }
else
retval = HTAG_IND_OPEN ;
for (; !zi.eof() && IsAlpha(*zi) ; zi++)
W.AddByte(*zi) ;
if (!W.Size())
return HTAG_IND_NULL ;
tagname = W ;
W.Clear() ;
tagname.ToLower() ;
tf = s_htagNam[tagname] ;
if (tf.type == HTAG_NULL)
return HTAG_IND_NULL ;
for (zi = ci ; !zi.eof() ; zi++)
{
W.AddByte(*zi) ;
if (*zi == CHAR_DQUOTE)
{
for (zi++ ; !zi.eof() ; zi++)
{
W.AddByte(*zi) ;
if (*zi == CHAR_BKSLASH)
{ zi++ ; W.AddByte(*zi) ; }
if (*zi == CHAR_DQUOTE)
break ;
}
continue ;
}
if (*zi == CHAR_FWSLASH)
{
if (zi == "/>")
{ retval = HTAG_IND_SELF ; zi++ ; W.AddByte(*zi) ; }
}
if (*zi == CHAR_MORE)
break ;
}
if (*zi != CHAR_MORE)
return HTAG_IND_NULL ;
tagseq = W ;
return retval ;
}