26ff09 | 2000-01-21 | Martin Stjernholm | |
|
5eef02 | 2000-03-06 | Martin Stjernholm | |
|
26ff09 | 2000-01-21 | Martin Stjernholm | |
array return_zero (mixed... ignored) {return 0;}
array return_empty_array (mixed... ignored) {return ({});}
|
ea3bfd | 2000-02-13 | Martin Stjernholm | | int(1..1)|string|array free_text_error (Parser.HTML p, string str)
{
sscanf (str, "%[ \t\n\r]", string ws);
if (str != ws) {
sscanf (reverse (str), "%*[ \t\n\r]%s", str);
sscanf (reverse (str), "%*[ \t\n\r]%s", str);
|
5ed013 | 2000-02-13 | Martin Stjernholm | | RXML.parse_error ("Free text %O is not allowed in this context.\n", str);
|
ea3bfd | 2000-02-13 | Martin Stjernholm | | }
return ({});
}
|
9265b5 | 2000-02-11 | Martin Stjernholm | | int(1..1)|string|array unknown_tag_error (Parser.HTML p, string str)
{
|
5ed013 | 2000-02-13 | Martin Stjernholm | | RXML.parse_error ("Unknown tag %O. Unknown tags are not "
"allowed in this context.\n", p->tag_name());
|
9265b5 | 2000-02-11 | Martin Stjernholm | | return ({});
}
|
f9dcf6 | 2000-02-13 | Martin Stjernholm | | int(1..1)|string|array output_error_cb (Parser.HTML p, string str)
{
if (p->errmsgs) str = p->errmsgs + str, p->errmsgs = 0;
if (p->type->free_text) p->_set_data_callback (0);
else p->_set_data_callback (free_text_error);
return ({str});
}
|
26ff09 | 2000-01-21 | Martin Stjernholm | |
|
9f74bb | 2000-02-15 | Martin Stjernholm | |
|
26ff09 | 2000-01-21 | Martin Stjernholm | |
|
b1c1d3 | 2000-03-06 | Martin Stjernholm | | int(1..1)|string|array p_xml_comment_cb (Parser.HTML p, string str)
{
|
5eef02 | 2000-03-06 | Martin Stjernholm | | string name = p->parse_tag_name (str);
|
b1c1d3 | 2000-03-06 | Martin Stjernholm | | if (sizeof (name)) {
name = p->tag_name() + name;
if (string|array|function tdef = p->tags()[name]) {
if (stringp (tdef))
return ({tdef});
else if (arrayp (tdef))
return tdef[0] (p, p->parse_tag_args (str), @tdef[1..]);
else
return tdef (p, p->parse_tag_args (str));
}
else if (p->containers()[name])
RXML.parse_error ("Sorry, can't handle containers beginning with " +
p->tag_name() + ".\n");
}
return p->type->free_text ? 0 : ({});
}
|
f9dcf6 | 2000-02-13 | Martin Stjernholm | | int(1..1)|string|array p_xml_entity_cb (Parser.HTML p, string str)
|
26ff09 | 2000-01-21 | Martin Stjernholm | | {
string entity = p->tag_name();
if (sizeof (entity)) {
|
d3b726 | 2000-02-12 | Martin Stjernholm | | if (entity[0] != '#')
|
b8e84a | 2000-03-04 | Martin Stjernholm | | return p->handle_var (entity,
p->html_context() == "splice_arg" ?
RXML.t_text :
p->type);
|
d3b726 | 2000-02-12 | Martin Stjernholm | | if (p->type->quoting_scheme != "xml") {
|
26ff09 | 2000-01-21 | Martin Stjernholm | | if (!p->type->free_text) return ({});
string out;
if ((<"#x", "#X">)[entity[..1]]) {
if (sscanf (entity, "%*2s%x%*c", int c) == 2) out = (string) ({c});
}
else
if (sscanf (entity, "%*c%d%*c", int c) == 2) out = (string) ({c});
return out && ({out});
}
}
return p->type->free_text ? 0 : ({});
}
|
9f74bb | 2000-02-15 | Martin Stjernholm | | int(1..1)|string|array p_xml_compat_entity_cb (Parser.HTML p, string str)
|
26ff09 | 2000-01-21 | Martin Stjernholm | | {
string entity = p->tag_name();
|
b8e84a | 2000-03-04 | Martin Stjernholm | | if (sizeof (entity) && entity[0] != '#')
return p->handle_var (entity,
p->html_context() == "splice_arg" ?
RXML.t_text :
p->type);
|
26ff09 | 2000-01-21 | Martin Stjernholm | | return p->type->free_text ? 0 : ({});
}
|