• Patch: Elm ME+ 2.5 PLalpha62 -> Elm ME+ 2.5 PLalpha63 [5/7] (5/7)

    From Kari Hurtta@21:1/5 to All on Wed Jan 3 13:52:43 2024
    [continued from previous message]

    + static struct TAGFILTER_CMD html_pre_tag =
    + { TAGFILTER_CMD_magic, 1, "pre", 0, htmlC(tfc_html_pre),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static|TAGFLT_CMD_force_newline,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_progress_tag =
    + { TAGFILTER_CMD_magic, 1, "progress", 0, baseC(tfc_unsupported),
    + & text_html_progress
    + /* "Phrasing content, but there must be no progress element
    + descendants."
    + */,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_q_tag =
    + { TAGFILTER_CMD_magic, 1, "q", 0, htmlC(tfc_html_q),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_ruby_tag =
    + { TAGFILTER_CMD_magic, 1, "ruby", 0, baseC(tfc_unsupported),
    + & text_html_ruby
    + /* "One or the other of the following:
    + Phrasing content, but with no ruby elements and with no ruby
    + element descendants
    + A single ruby element that itself has no ruby element descendants
    + One or the other of the following:
    + One or more rt elements
    + An rp element followed by one or more rt elements, each of which is + itself followed by an rp element "
    + */,
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_s_tag =
    + { TAGFILTER_CMD_magic, 1, "s",
    + pg_DIM|pg_STRIKETHROUGH, baseC(tfc_none),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_samp_tag =
    + { TAGFILTER_CMD_magic, 1, "samp", 0, baseC(tfc_unsupported),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_script_tag =
    + { TAGFILTER_CMD_magic, 1, "script", 0, baseC(tfc_unsupported),
    + NULL /* XXXX
    +
    + script is not parsed correctly either
    + */,
    +
    + TAGFLT_CMD_is_static|TAGFLT_CMD_hide_text,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_search_tag =
    + { TAGFILTER_CMD_magic, 1, "search", 0, baseC(tfc_unsupported),
    + &text_html_flow,
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_section_tag =
    + { TAGFILTER_CMD_magic, 1, "section", 0, baseC(tfc_unsupported),
    + &text_html_flow,
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_select_tag =
    + { TAGFILTER_CMD_magic, 1, "select", 0, baseC(tfc_unsupported),
    + NULL, /* "Zero or more option, optgroup, hr, and
    + script-supporting elements."
    + */
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_slot_tag =
    + { TAGFILTER_CMD_magic, 1, "slot", 0, baseC(tfc_unsupported),
    + NULL,
    + /* Transparent content model */
    + TAGFLT_CMD_is_static|TAGFLT_CMD_inherit_nested_tags,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_small_tag =
    + { TAGFILTER_CMD_magic, 1, "small", 0, baseC(tfc_unsupported),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_span_tag =
    + { TAGFILTER_CMD_magic, 1, "span", 0, baseC(tfc_unsupported),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_strong_tag =
    + { TAGFILTER_CMD_magic, 1, "strong", pg_BOLD, baseC(tfc_none),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_sub_tag =
    + { TAGFILTER_CMD_magic, 1, "sub",
    + pg_SUBSCRIPT|pg_REVERSE, baseC(tfc_none),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_sup_tag =
    + { TAGFILTER_CMD_magic, 1, "sup",
    + pg_SUPERSCRIPT|pg_STANDOUT, baseC(tfc_none),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD svg_svg_tag =
    + { TAGFILTER_CMD_magic, 1, "svg", 0, baseC(tfc_unsupported),
    + NULL /* Changes language */,
    +
    + TAGFLT_CMD_is_static|TAGFLT_CMD_hide_text,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_table_tag =
    + { TAGFILTER_CMD_magic, 1, "table", 0, baseC(tfc_unsupported),
    + & text_html_table
    + /* "In this order: optionally a caption element, followed by zero or
    + more colgroup elements, followed optionally by a thead element,
    + followed by either zero or more tbody elements or one or more
    + tr elements, followed optionally by a tfoot element,
    + optionally intermixed with one or more script-supporting elements."
    + */,
    +
    + TAGFLT_CMD_is_static|TAGFLT_CMD_force_newline,
    + NULL, NULL };
    +
    +
    + static struct TAGFILTER_CMD html_template_tag =
    + { TAGFILTER_CMD_magic, 1, "template", 0, baseC(tfc_unsupported),
    + NULL /* XXXX Content is used by script
    + but not directly:
    +
    + Nothing content model
    + */,
    +
    + TAGFLT_CMD_is_static |TAGFLT_CMD_hide_text,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_textarea_tag =
    + { TAGFILTER_CMD_magic, 1, "textarea", pg_DIM, baseC(tfc_unsupported),
    +
    + NULL /* Text */,
    + TAGFLT_CMD_is_static|TAGFLT_CMD_force_newline,
    + NULL, NULL
    + };
    +
    + static struct TAGFILTER_CMD html_time_tag =
    + { TAGFILTER_CMD_magic, 1, "time", 0, baseC(tfc_unsupported),
    + & text_html_phrasing
    + /* Can not really described here
    +
    + "If the element has a datetime attribute: Phrasing content.
    + Otherwise: Text, but must match requirements described in
    + prose below."
    + */,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_u_tag =
    + { TAGFILTER_CMD_magic, 1, "u", pg_UNDERLINE, baseC(tfc_none),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_ul_tag =
    + { TAGFILTER_CMD_magic, 1, "ul", 0, baseC(tfc_unsupported),
    + & text_html_list_items
    + /* "Zero or more li and script-supporting elements." */,
    + TAGFLT_CMD_is_static|TAGFLT_CMD_force_newline,
    + NULL, NULL
    + };
    +
    + static struct TAGFILTER_CMD html_var_tag =
    + { TAGFILTER_CMD_magic, 1, "var", pg_ITALIC, baseC(tfc_unsupported),
    + & text_html_phrasing,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_video_tag =
    + { TAGFILTER_CMD_magic, 1, "video", 0, baseC(tfc_unsupported),
    + NULL
    + /* -- Both listig elements and transparent does not work --
    +
    +
    + "If the element has a src attribute: zero or more
    + track elements, then transparent, but with no media
    + element descendants.
    + If the element does not have a src attribute: zero or
    + more source elements, then zero or more track elements,
    + then transparent, but with no media element descendants."
    + */,
    + TAGFLT_CMD_is_static|TAGFLT_CMD_inherit_nested_tags,
    + NULL, NULL };
    +
    + static struct TAGFILTER_CMD html_wbr_tag =
    + { TAGFILTER_CMD_magic, 1, "wbr", 0, baseC(tfc_unsupported), NULL,
    + TAGFLT_CMD_is_static|TAGFLT_CMD_no_context,
    + NULL, NULL };
    +
    +
    + struct tagfilter_cmd * tagfilter_html_flow[] = {
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_address_tag),
    + tag_command(html_area_tag),
    + tag_command(html_article_tag),
    + tag_command(html_aside_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_blockquote_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_details_tag),
    + tag_command(html_dfn_tag),
    + tag_command(html_dialog_tag),
    + tag_command(html_div_tag),
    + tag_command(html_dl_tag),
    +
    + tag_command(html_em_tag),
    + tag_command(html_embed_tag),
    +
    + tag_command(html_fieldset_tag),
    + tag_command(html_figure_tag),
    + tag_command(html_footer_tag),
    + tag_command(html_form_tag),
    +
    + tag_command(html_h1_tag),
    + tag_command(html_h2_tag),
    + tag_command(html_h3_tag),
    + tag_command(html_h4_tag),
    + tag_command(html_h5_tag),
    + tag_command(html_h6_tag),
    + tag_command(html_header_tag),
    + tag_command(html_hgroup_tag),
    + tag_command(html_hr_tag),
    +
    + tag_command(html_i_tag),
    + tag_command(html_iframe_tag),
    + tag_command(html_img_tag),
    + tag_command(html_input_tag),
    + tag_command(html_ins_tag),
    +
    + tag_command(html_kbd_tag),
    +
    + tag_command(html_label_tag),
    + tag_command(html_link_tag),
    +
    + tag_command(html_main_tag),
    + tag_command(html_map_tag),
    + tag_command(html_mark_tag),
    + tag_command(mathml_math_tag),
    + tag_command(html_menu_tag),
    + tag_command(html_meta_tag),
    + tag_command(html_meter_tag),
    +
    + tag_command(html_nav_tag),
    + tag_command(html_noscript_body_tag),
    +
    + tag_command(html_object_tag),
    + tag_command(html_ol_tag),
    + tag_command(html_output_tag),
    +
    + tag_command(html_p_tag),
    + tag_command(html_picture_tag),
    + tag_command(html_pre_tag),
    + tag_command(html_progress_tag),
    +
    + tag_command(html_q_tag),
    +
    + tag_command(html_ruby_tag),
    +
    + tag_command(html_s_tag),
    + tag_command(html_samp_tag),
    + tag_command(html_script_tag),
    + tag_command(html_search_tag),
    + tag_command(html_section_tag),
    + tag_command(html_select_tag),
    + tag_command(html_slot_tag),
    + tag_command(html_small_tag),
    + tag_command(html_span_tag),
    + tag_command(html_strong_tag),
    + tag_command(html_sub_tag),
    + tag_command(html_sup_tag),
    + tag_command(svg_svg_tag),
    +
    + tag_command(html_table_tag),
    + tag_command(html_template_tag),
    + tag_command(html_textarea_tag),
    + tag_command(html_time_tag),
    +
    + tag_command(html_u_tag),
    + tag_command(html_ul_tag),
    +
    + tag_command(html_var_tag),
    + tag_command(html_video_tag),
    +
    + tag_command(html_wbr_tag),
    +
    + /* "autonomous custom elements, text" */
    +
    + NULL
    + };
    +
    + /* "Runs of phrasing content form paragraphs." */
    +
    + struct tagfilter_cmd * tagfilter_html_phrasing[] = {
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_area_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_dfn_tag),
    +
    + tag_command(html_em_tag),
    + tag_command(html_embed_tag),
    +
    + tag_command(html_i_tag),
    + tag_command(html_iframe_tag),
    + tag_command(html_img_tag),
    + tag_command(html_input_tag),
    + tag_command(html_ins_tag),
    +
    + tag_command(html_kbd_tag),
    +
    + tag_command(html_label_tag),
    + tag_command(html_link_tag),
    +
    + tag_command(html_map_tag),
    + tag_command(html_mark_tag),
    + tag_command(mathml_math_tag),
    + tag_command(html_meta_tag),
    + tag_command(html_meter_tag),
    +
    + tag_command(html_noscript_body_tag),
    +
    + tag_command(html_object_tag),
    + tag_command(html_output_tag),
    +
    + tag_command(html_picture_tag),
    + tag_command(html_progress_tag),
    +
    + tag_command(html_q_tag),
    +
    + tag_command(html_ruby_tag),
    +
    + tag_command(html_s_tag),
    + tag_command(html_samp_tag),
    + tag_command(html_script_tag),
    + tag_command(html_select_tag),
    + tag_command(html_slot_tag),
    + tag_command(html_small_tag),
    + tag_command(html_span_tag),
    + tag_command(html_strong_tag),
    + tag_command(html_sub_tag),
    + tag_command(html_sup_tag),
    + tag_command(svg_svg_tag),
    +
    + tag_command(html_template_tag),
    + tag_command(html_textarea_tag),
    + tag_command(html_time_tag),
    +
    + tag_command(html_u_tag),
    +
    + tag_command(html_var_tag),
    + tag_command(html_video_tag),
    +
    + tag_command(html_wbr_tag),
    +
    + /* "autonomous custom elements, text" */
    +
    + NULL
    + };
    +
    +
    +
    + static struct TAGFILTER_CMD html_option_tag =
    + { TAGFILTER_CMD_magic, 1, "option", 0, baseC(tfc_unsupported),
    + NULL /* Text */,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    +
    + /* "Either: phrasing content.
    + Or: Zero or more option and script-supporting elements."
    + */
    +
    + struct tagfilter_cmd * tagfilter_html_datalist[] = {
    +
    + /* phrasing content */
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_area_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_dfn_tag),
    +
    + tag_command(html_em_tag),
    + tag_command(html_embed_tag),
    +
    + tag_command(html_i_tag),
    + tag_command(html_iframe_tag),
    + tag_command(html_img_tag),
    + tag_command(html_input_tag),
    + tag_command(html_ins_tag),
    +
    + tag_command(html_kbd_tag),
    +
    + tag_command(html_label_tag),
    + tag_command(html_link_tag),
    +
    + tag_command(html_map_tag),
    + tag_command(html_mark_tag),
    + tag_command(mathml_math_tag),
    + tag_command(html_meta_tag),
    + tag_command(html_meter_tag),
    +
    + tag_command(html_noscript_body_tag),
    +
    + tag_command(html_object_tag),
    + tag_command(html_output_tag),
    +
    + tag_command(html_picture_tag),
    + tag_command(html_progress_tag),
    +
    + tag_command(html_q_tag),
    +
    + tag_command(html_ruby_tag),
    +
    + tag_command(html_s_tag),
    + tag_command(html_samp_tag),
    + tag_command(html_script_tag),
    + tag_command(html_select_tag),
    + tag_command(html_slot_tag),
    + tag_command(html_small_tag),
    + tag_command(html_span_tag),
    + tag_command(html_strong_tag),
    + tag_command(html_sub_tag),
    + tag_command(html_sup_tag),
    + tag_command(svg_svg_tag),
    +
    + tag_command(html_template_tag),
    + tag_command(html_textarea_tag),
    + tag_command(html_time_tag),
    +
    + tag_command(html_u_tag),
    +
    + tag_command(html_var_tag),
    + tag_command(html_video_tag),
    +
    + tag_command(html_wbr_tag),
    +
    + /* Zero or more option and script-supporting elements */
    +
    + tag_command(html_option_tag),
    + tag_command(html_script_tag),
    + tag_command(html_template_tag),
    +
    + NULL
    + };
    +
    + static struct TAGFILTER_CMD html_summary_tag =
    + { TAGFILTER_CMD_magic, 1, "summary", 0, baseC(tfc_unsupported),
    + NULL /* "Phrasing content, optionally intermixed with heading content." */,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    +
    +
    + /* "One summary element followed by flow content." */
    +
    + struct tagfilter_cmd * tagfilter_html_details[] = {
    + tag_command(html_summary_tag),
    +
    + /* flow content */
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_address_tag),
    + tag_command(html_area_tag),
    + tag_command(html_article_tag),
    + tag_command(html_aside_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_blockquote_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_details_tag),
    + tag_command(html_dfn_tag),
    + tag_command(html_dialog_tag),
    + tag_command(html_div_tag),
    + tag_command(html_dl_tag),
    +
    + tag_command(html_em_tag),
    + tag_command(html_embed_tag),
    +
    + tag_command(html_fieldset_tag),
    + tag_command(html_figure_tag),
    + tag_command(html_footer_tag),
    + tag_command(html_form_tag),
    +
    + tag_command(html_h1_tag),
    + tag_command(html_h2_tag),
    + tag_command(html_h3_tag),
    + tag_command(html_h4_tag),
    + tag_command(html_h5_tag),
    + tag_command(html_h6_tag),
    + tag_command(html_header_tag),
    + tag_command(html_hgroup_tag),
    + tag_command(html_hr_tag),
    +
    + tag_command(html_i_tag),
    + tag_command(html_iframe_tag),
    + tag_command(html_img_tag),
    + tag_command(html_input_tag),
    + tag_command(html_ins_tag),
    +
    + tag_command(html_kbd_tag),
    +
    + tag_command(html_label_tag),
    + tag_command(html_link_tag),
    +
    + tag_command(html_main_tag),
    + tag_command(html_map_tag),
    + tag_command(html_mark_tag),
    + tag_command(mathml_math_tag),
    + tag_command(html_menu_tag),
    + tag_command(html_meta_tag),
    + tag_command(html_meter_tag),
    +
    + tag_command(html_nav_tag),
    + tag_command(html_noscript_body_tag),
    +
    + tag_command(html_object_tag),
    + tag_command(html_ol_tag),
    + tag_command(html_output_tag),
    +
    + tag_command(html_p_tag),
    + tag_command(html_picture_tag),
    + tag_command(html_pre_tag),
    + tag_command(html_progress_tag),
    +
    + tag_command(html_q_tag),
    +
    + tag_command(html_ruby_tag),
    +
    + tag_command(html_s_tag),
    + tag_command(html_samp_tag),
    + tag_command(html_script_tag),
    + tag_command(html_search_tag),
    + tag_command(html_section_tag),
    + tag_command(html_select_tag),
    + tag_command(html_slot_tag),
    + tag_command(html_small_tag),
    + tag_command(html_span_tag),
    + tag_command(html_strong_tag),
    + tag_command(html_sub_tag),
    + tag_command(html_sup_tag),
    + tag_command(svg_svg_tag),
    +
    + tag_command(html_table_tag),
    + tag_command(html_template_tag),
    + tag_command(html_textarea_tag),
    + tag_command(html_time_tag),
    +
    + tag_command(html_u_tag),
    + tag_command(html_ul_tag),
    +
    + tag_command(html_var_tag),
    + tag_command(html_video_tag),
    +
    + tag_command(html_wbr_tag),
    +
    + /* "autonomous custom elements, text" */
    +
    + NULL
    + };
    +
    + static struct TAGFILTER_CMD html_dt_tag =
    + { TAGFILTER_CMD_magic, 1, "dt", 0, baseC(tfc_unsupported),
    + &text_html_flow
    + /* "Flow content, but with no header, footer,
    + sectioning content, or heading content descendants." */,
    + TAGFLT_CMD_is_static,
    + NULL,
    + /*
    + "A dt element's end tag can be omitted if the dt element
    + is immediately followed by another dt element or a dd element."
    + */
    + &text_html_close_dtdd
    + };
    +
    + static struct TAGFILTER_CMD html_dd_tag =
    + { TAGFILTER_CMD_magic, 1, "dd", 0, baseC(tfc_unsupported),
    + &text_html_flow,
    + TAGFLT_CMD_is_static,
    + NULL,
    + /*
    + "A dd element's end tag can be omitted if the
    + dd element is immediately followed by another dd
    + element or a dt element, or if there is no more
    + content in the parent element."
    + */
    + &text_html_close_dtdd
    + };
    +
    +
    +
    + /* This is used if on dl element, otherwise html_div_tag is used */
    +
    + static struct TAGFILTER_CMD html_div_dl_tag =
    + { TAGFILTER_CMD_magic, 1, "div", 0, baseC(tfc_unsupported),
    + &text_html_div_dl
    +
    + /* "If the element is a child of a dl element: one or more dt
    + elements followed by
    + one or more dd elements, optionally intermixed with
    + script-supporting elements."
    + */,
    +
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    +
    + /* "Either: Zero or more groups each consisting of one or more dt elements followed
    + by one or more dd elements, optionally intermixed with script-supporting elements.
    +
    + Or: One or more div elements, optionally
    + intermixed with script-supporting elements."
    + */
    +
    + struct tagfilter_cmd * tagfilter_html_dl[] = {
    + tag_command(html_dt_tag),
    + tag_command(html_dd_tag),
    + tag_command(html_div_dl_tag),
    +
    + /* Script-supporting elements */
    +
    + tag_command(html_script_tag),
    + tag_command(html_template_tag),
    +
    + NULL
    + };
    +
    + static struct TAGFILTER_CMD html_legend_tag =
    + { TAGFILTER_CMD_magic, 1, "legend", 0, baseC(tfc_unsupported),
    + NULL, /* "Phrasing content, optionally intermixed with heading content."
    +
    + */
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    + /* "Optionally a legend element, followed by flow content." */
    +
    + struct tagfilter_cmd * tagfilter_html_fieldset[] = {
    + tag_command(html_legend_tag),
    +
    + /* flow content */
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_address_tag),
    + tag_command(html_area_tag),
    + tag_command(html_article_tag),
    + tag_command(html_aside_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_blockquote_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_details_tag),
    + tag_command(html_dfn_tag),
    + tag_command(html_dialog_tag),
    + tag_command(html_div_tag),
    + tag_command(html_dl_tag),
    +
    + tag_command(html_em_tag),
    + tag_command(html_embed_tag),
    +
    + tag_command(html_fieldset_tag),
    + tag_command(html_figure_tag),
    + tag_command(html_footer_tag),
    + tag_command(html_form_tag),
    +
    + tag_command(html_h1_tag),
    + tag_command(html_h2_tag),
    + tag_command(html_h3_tag),
    + tag_command(html_h4_tag),
    + tag_command(html_h5_tag),
    + tag_command(html_h6_tag),
    + tag_command(html_header_tag),
    + tag_command(html_hgroup_tag),
    + tag_command(html_hr_tag),
    +
    + tag_command(html_i_tag),
    + tag_command(html_iframe_tag),
    + tag_command(html_img_tag),
    + tag_command(html_input_tag),
    + tag_command(html_ins_tag),
    +
    + tag_command(html_kbd_tag),
    +
    + tag_command(html_label_tag),
    + tag_command(html_link_tag),
    +
    + tag_command(html_main_tag),
    + tag_command(html_map_tag),
    + tag_command(html_mark_tag),
    + tag_command(mathml_math_tag),
    + tag_command(html_menu_tag),
    + tag_command(html_meta_tag),
    + tag_command(html_meter_tag),
    +
    + tag_command(html_nav_tag),
    + tag_command(html_noscript_body_tag),
    +
    + tag_command(html_object_tag),
    + tag_command(html_ol_tag),
    + tag_command(html_output_tag),
    +
    + tag_command(html_p_tag),
    + tag_command(html_picture_tag),
    + tag_command(html_pre_tag),
    + tag_command(html_progress_tag),
    +
    + tag_command(html_q_tag),
    +
    + tag_command(html_ruby_tag),
    +
    + tag_command(html_s_tag),
    + tag_command(html_samp_tag),
    + tag_command(html_script_tag),
    + tag_command(html_search_tag),
    + tag_command(html_section_tag),
    + tag_command(html_select_tag),
    + tag_command(html_slot_tag),
    + tag_command(html_small_tag),
    + tag_command(html_span_tag),
    + tag_command(html_strong_tag),
    + tag_command(html_sub_tag),
    + tag_command(html_sup_tag),
    + tag_command(svg_svg_tag),
    +
    + tag_command(html_table_tag),
    + tag_command(html_template_tag),
    + tag_command(html_textarea_tag),
    + tag_command(html_time_tag),
    +
    + tag_command(html_u_tag),
    + tag_command(html_ul_tag),
    +
    + tag_command(html_var_tag),
    + tag_command(html_video_tag),
    +
    + tag_command(html_wbr_tag),
    +
    + /* "autonomous custom elements, text" */
    +
    + NULL
    + };
    +
    + static struct TAGFILTER_CMD html_figcaption_tag =
    + { TAGFILTER_CMD_magic, 1, "figcaption", 0, baseC(tfc_unsupported),
    + &text_html_flow,
    +
    + TAGFLT_CMD_is_static,
    + NULL, NULL };
    +
    +
    + /* "Either: one figcaption element followed by flow content.
    + Or: flow content followed by one figcaption element.
    + Or: flow content."
    + */
    +
    + struct tagfilter_cmd * tagfilter_html_figure[] = {
    + tag_command(html_figcaption_tag),
    +
    + /* flow content */
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_address_tag),
    + tag_command(html_area_tag),
    + tag_command(html_article_tag),
    + tag_command(html_aside_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_blockquote_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_details_tag),
    + tag_command(html_dfn_tag),
    + tag_command(html_dialog_tag),
    + tag_command(html_div_tag),
    + tag_command(html_dl_tag),
    +
    + tag_command(html_em_tag),
    + tag_command(html_embed_tag),
    +
    + tag_command(html_fieldset_tag),
    + tag_command(html_figure_tag),
    + tag_command(html_footer_tag),
    + tag_command(html_form_tag),
    +
    + tag_command(html_h1_tag),
    + tag_command(html_h2_tag),
    + tag_command(html_h3_tag),
    + tag_command(html_h4_tag),
    + tag_command(html_h5_tag),
    + tag_command(html_h6_tag),
    + tag_command(html_header_tag),
    + tag_command(html_hgroup_tag),
    + tag_command(html_hr_tag),
    +
    + tag_command(html_i_tag),
    + tag_command(html_iframe_tag),
    + tag_command(html_img_tag),
    + tag_command(html_input_tag),
    + tag_command(html_ins_tag),
    +
    + tag_command(html_kbd_tag),
    +
    + tag_command(html_label_tag),
    + tag_command(html_link_tag),
    +
    + tag_command(html_main_tag),
    + tag_command(html_map_tag),
    + tag_command(html_mark_tag),
    + tag_command(mathml_math_tag),
    + tag_command(html_menu_tag),
    + tag_command(html_meta_tag),
    + tag_command(html_meter_tag),
    +
    + tag_command(html_nav_tag),
    + tag_command(html_noscript_body_tag),
    +
    + tag_command(html_object_tag),
    + tag_command(html_ol_tag),
    + tag_command(html_output_tag),
    +
    + tag_command(html_p_tag),
    + tag_command(html_picture_tag),
    + tag_command(html_pre_tag),
    + tag_command(html_progress_tag),
    +
    + tag_command(html_q_tag),
    +
    + tag_command(html_ruby_tag),
    +
    + tag_command(html_s_tag),
    + tag_command(html_samp_tag),
    + tag_command(html_script_tag),
    + tag_command(html_search_tag),
    + tag_command(html_section_tag),
    + tag_command(html_select_tag),
    + tag_command(html_slot_tag),
    + tag_command(html_small_tag),
    + tag_command(html_span_tag),
    + tag_command(html_strong_tag),
    + tag_command(html_sub_tag),
    + tag_command(html_sup_tag),
    + tag_command(svg_svg_tag),
    +
    + tag_command(html_table_tag),
    + tag_command(html_template_tag),
    + tag_command(html_textarea_tag),
    + tag_command(html_time_tag),
    +
    + tag_command(html_u_tag),
    + tag_command(html_ul_tag),
    +
    + tag_command(html_var_tag),
    + tag_command(html_video_tag),
    +
    + tag_command(html_wbr_tag),
    +
    + /* "autonomous custom elements, text" */
    +
    + NULL
    + };
    +
    + /* Can not really described here
    +
    +
    + "Flow content, but with no header or footer element descendants."
    + */
    +
    + struct tagfilter_cmd * tagfilter_html_footer[] = {
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_address_tag),
    + tag_command(html_area_tag),
    + tag_command(html_article_tag),
    + tag_command(html_aside_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_blockquote_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_details_tag),
    + tag_command(html_dfn_tag),
    + tag_command(html_dialog_tag),
    + tag_command(html_div_tag),
    + tag_command(html_dl_tag),
    +
    + tag_command(html_em_tag),
    + tag_command(html_embed_tag),
    +
    + tag_command(html_fieldset_tag),
    + tag_command(html_figure_tag),
    + #if 0 /* Not allowed */
    + tag_command(html_footer_tag),
    + #endif
    + tag_command(html_form_tag),
    +
    + tag_command(html_h1_tag),
    + tag_command(html_h2_tag),
    + tag_command(html_h3_tag),
    + tag_command(html_h4_tag),
    + tag_command(html_h5_tag),
    + tag_command(html_h6_tag),
    + #if 0 /* Not allowed */
    + tag_command(html_header_tag),
    + #endif
    + tag_command(html_hgroup_tag),
    + tag_command(html_hr_tag),
    +
    + tag_command(html_i_tag),
    + tag_command(html_iframe_tag),
    + tag_command(html_img_tag),
    + tag_command(html_input_tag),
    + tag_command(html_ins_tag),
    +
    + tag_command(html_kbd_tag),
    +
    + tag_command(html_label_tag),
    + tag_command(html_link_tag),
    +
    + tag_command(html_main_tag),
    + tag_command(html_map_tag),
    + tag_command(html_mark_tag),
    + tag_command(mathml_math_tag),
    + tag_command(html_menu_tag),
    + tag_command(html_meta_tag),
    + tag_command(html_meter_tag),
    +
    + tag_command(html_nav_tag),
    + tag_command(html_noscript_body_tag),
    +
    + tag_command(html_object_tag),
    + tag_command(html_ol_tag),
    + tag_command(html_output_tag),
    +
    + tag_command(html_p_tag),
    + tag_command(html_picture_tag),
    + tag_command(html_pre_tag),
    + tag_command(html_progress_tag),
    +
    + tag_command(html_q_tag),
    +
    + tag_command(html_ruby_tag),
    +
    + tag_command(html_s_tag),
    + tag_command(html_samp_tag),
    + tag_command(html_script_tag),
    + tag_command(html_search_tag),
    + tag_command(html_section_tag),
    + tag_command(html_select_tag),
    + tag_command(html_slot_tag),
    + tag_command(html_small_tag),
    + tag_command(html_span_tag),
    + tag_command(html_strong_tag),
    + tag_command(html_sub_tag),
    + tag_command(html_sup_tag),
    + tag_command(svg_svg_tag),
    +
    + tag_command(html_table_tag),
    + tag_command(html_template_tag),
    + tag_command(html_textarea_tag),
    + tag_command(html_time_tag),
    +
    + tag_command(html_u_tag),
    + tag_command(html_ul_tag),
    +
    + tag_command(html_var_tag),
    + tag_command(html_video_tag),
    +
    + tag_command(html_wbr_tag),
    +
    + /* "autonomous custom elements, text" */
    +
    + NULL
    + };
    +
    + /* Can not really described here
    +
    + "Flow content, but with no form element descendants."
    +
    + */
    +
    + struct tagfilter_cmd * tagfilter_html_form[] = {
    +
    + tag_command(html_a_tag),
    + tag_command(html_abbr_tag),
    + tag_command(html_address_tag),
    + tag_command(html_area_tag),
    + tag_command(html_article_tag),
    + tag_command(html_aside_tag),
    + tag_command(html_audio_tag),
    +
    + tag_command(html_b_tag),
    + tag_command(html_bdi_tag),
    + tag_command(html_bdo_tag),
    + tag_command(html_blockquote_tag),
    + tag_command(html_br_tag),
    + tag_command(html_button_tag),
    +
    + tag_command(html_canvas_tag),
    + tag_command(html_cite_tag),
    + tag_command(html_code_tag),
    +
    + tag_command(html_data_tag),
    + tag_command(html_datalist_tag),
    + tag_command(html_del_tag),
    + tag_command(html_details_tag),
    + tag_command(html_dfn_tag),
    + tag_command(html_dialog_tag),

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)