00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 typedef HText USERDATA;
00027 struct _HText {
00028 DELETE_USERDATA * delete_method;
00029 int status;
00030
00031 HTRequest * request;
00032 HTParentAnchor * node_anchor;
00033 HTStream * target;
00034 SGML_dtd * dtd;
00035 int suppress_is_default;
00036
00037 prolog_term parsed_term;
00038 prolog_term parsed_term_tail;
00039 int stackptr;
00040 int stacksize;
00041 struct stack_node {
00042 int element_number;
00043 SGMLContent element_type;
00044 int suppress;
00045
00046 prolog_term elt_term;
00047 prolog_term content_list_tail;
00048 } *stack;
00049 };
00050
00051
00052
00053
00054 PRIVATE inline HTTag *special_find_tag(USERDATA *htext, int element_number);
00055
00056 PRIVATE USERDATA *html_create_userData( HTRequest *request,
00057 HTParentAnchor *anchor,
00058 HTStream *output_stream);
00059 PRIVATE void html_delete_userData(void *me);
00060
00061 PRIVATE int find_matching_elt(USERDATA *htext, int elt_number);
00062
00063 PRIVATE void html_push_element (USERDATA *htext,
00064 int element_number,
00065 const BOOL *present,
00066 const char **value);
00067 PRIVATE void html_pop_element(USERDATA *htext);
00068 PRIVATE void html_push_suppressed_element(USERDATA *htext, int element_number);
00069 PRIVATE void html_pop_suppressed_element(USERDATA *htext);
00070 PRIVATE void collect_html_attributes ( prolog_term elt_term,
00071 HTTag *tag,
00072 const BOOL *present,
00073 const char **value);
00074
00075
00076 PRIVATE void html_addText (USERDATA *htext, const char *textbuf, int len);
00077 PRIVATE void html_beginElement(USERDATA *htext,
00078 int element_number,
00079 const BOOL *present,
00080 const char **value);
00081 PRIVATE void html_endElement(USERDATA *htext, int element_number);
00082