- if (tag == ATTRIBUTE_TAG_ID){\r
- n++;\r
- if (no_text) myfputs("><@@>",fp);\r
- while (fast_inspect(Par,n)){\r
- if (no_text) {\r
- myfputc('<',fp);\r
- myfputs((const char*) &(GetTagNameByRef(Tag(n))[3]),fp);\r
- myfputc('>',fp);\r
- myfputs("<$@/></",fp);\r
- myfputs((const char*) &(GetTagNameByRef(Tag(n))[3]),fp);\r
- myfputc('>',fp);\r
- n+= 4;\r
- }\r
- else {\r
- myfputc(' ',fp);\r
- myfputs((const char*) &(GetTagNameByRef(Tag(n))[3]),fp);\r
- n++;\r
- myfputs("=\"",fp);\r
- read = myfprintf((const char*) current_text,fp);\r
- current_text += (read + 1);\r
- myfputc('"',fp);\r
- n+=3;\r
- }\r
- };\r
- if (no_text) \r
- myfputs("</@@>",fp);\r
- else myfputc('>',fp);\r
+\r
+ } else {\r
+\r
+ _dputc('<',fd);\r
+ _dput_str((*TagName)[tag], fd);\r
+ n++;\r
+ if (fast_inspect(Par,n)) {\r
+ print_stack->push_back(&((*TagName)[tag]));\r
+ tag = Tag(n);\r
+ if (tag == ATTRIBUTE_TAG_ID){\r
+ n++;\r
+ if (no_text) _dputs("><@@>",fd);\r
+\r
+ while (fast_inspect(Par,n)){\r
+ if (no_text) {\r
+ _dputc('<', fd);\r
+ _dputs((const char*) &(GetTagNameByRef(Tag(n))[3]), fd);\r
+ _dputc('>', fd);\r
+ _dputs("<$@/></", fd);\r
+ _dputs((const char*) &(GetTagNameByRef(Tag(n))[3]), fd);\r
+ _dputc('>', fd);\r
+ n+= 4;\r
+ } else {\r
+ _dputc(' ', fd);\r
+ _dputs((const char*) &(GetTagNameByRef(Tag(n))[3]), fd);\r
+ n++;\r
+ _dputs("=\"", fd);\r
+ read = _dprintf((const char*) current_text, fd);\r
+ current_text += (read + 1);\r
+ _dputc('"', fd);\r
+ n+=3;\r
+ }\r
+ };\r
+ if (no_text) _dputs("</@@>", fd);\r
+ else _dputc('>', fd);\r
+ n++;\r
+ tag=Tag(n);\r
+\r
+ } else\r
+ _dputc('>', fd);\r
+\r
+ } else {// <foo /> tag\r
+ _dputs("/>", fd);\r