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 ; }