| Return Type | Function name | Arguments |
|---|---|---|
| void | hdsHtag::Generate | (hzChain&,hzHttpEvent*,unsigned int&,) |
Declared in file: hzDissemino.h
Defined in file : hdsGenerate.cpp
Function Logic:
Function body:
void hdsHtag::Generate (hzChain& C, hzHttpEvent* pE, unsigned int& nLine)
{
_hzfunc("hdsHtag::Generate") ;
hdsVE* pVE ;
hzPair pa ;
hzString S ;
uint32_t n ;
int32_t aLo ;
int32_t aHi ;
int32_t nA ;
hzHtagform tagForm ;
if (m_Line != nLine)
{
C.AddByte(CHAR_NL) ;
for (n = m_Indent ; n ; n--)
C.AddByte(CHAR_TAB) ;
nLine = m_Line ;
}
C.AddByte(CHAR_LESS) ;
C << m_Tag ;
if (m_nAttrs)
{
aLo = m_pApp->m_VE_attrs.First(m_VID) ;
if (aLo >&eq; 0)
{
aHi = m_pApp->m_VE_attrs.Last(m_VID) ;
for (nA = aLo ; nA <&eq; aHi ; nA++)
{
pa = m_pApp->m_VE_attrs.GetObj(nA) ;
C.AddByte(CHAR_SPACE) ;
C << *pa.name ;
C.AddByte(CHAR_EQUAL) ;
C.AddByte(CHAR_DQUOTE) ;
if (pE && (m_flagVE & VE_AT_ACTIVE))
C << m_pApp->ConvertText(*pa.value, pE) ;
else
C << *pa.value ;
C.AddByte(CHAR_DQUOTE) ;
}
}
}
C.AddByte(CHAR_MORE) ;
for (pVE = Children() ; pVE ; pVE = pVE->Sibling())
{
if (pVE->m_strPretext)
{
S = pVE->m_strPretext ;
if (pE && (pVE->m_flagVE & VE_PT_ACTIVE))
C << m_pApp->ConvertText(S, pE) ;
else
C << S ;
}
pVE->Generate(C, pE, nLine) ;
}
if (m_strContent)
{
S = m_strContent ;
if (pE && m_flagVE & VE_CT_ACTIVE)
C << m_pApp->ConvertText(S, pE) ;
else
C << S ;
}
S = *m_Tag ;
tagForm = TagLookup(S) ;
if (tagForm.rule != HTRULE_SINGLE)
{
if (nLine != m_Line)
{
C.AddByte(CHAR_NL) ;
for (n = m_Indent ; n ; n--)
C.AddByte(CHAR_TAB) ;
nLine = m_Line ;
}
C.AddByte(CHAR_LESS) ;
C.AddByte(CHAR_FWSLASH) ;
C << m_Tag ;
C.AddByte(CHAR_MORE) ;
}
}