39fbc9 | 2000-02-13 | Martin Stjernholm | |
|
5e5d86 | 2000-01-28 | Martin Stjernholm | |
|
6570bf | 2001-06-29 | Martin Stjernholm | |
|
5e5d86 | 2000-01-28 | Martin Stjernholm | |
|
d8769c | 2000-02-08 | Martin Stjernholm | |
|
5e5d86 | 2000-01-28 | Martin Stjernholm | |
|
cd7d5f | 2000-02-16 | Martin Stjernholm | | #include <config.h>
|
9f74bb | 2000-02-15 | Martin Stjernholm | |
|
39fbc9 | 2000-02-13 | Martin Stjernholm | | inherit RXML.PXml;
|
5e5d86 | 2000-01-28 | Martin Stjernholm | |
|
6570bf | 2001-06-29 | Martin Stjernholm | | constant name = "xml-entity";
|
5e5d86 | 2000-01-28 | Martin Stjernholm | |
constant add_tag = 0;
constant add_tags = 0;
constant add_container = 0;
constant add_containers = 0;
|
9f74bb | 2000-02-15 | Martin Stjernholm | | static void init_entities()
{
|
ca680b | 2001-03-01 | Martin Stjernholm | | if (!type->entity_syntax) {
|
9f74bb | 2000-02-15 | Martin Stjernholm | | #ifdef OLD_RXML_COMPAT
|
cede49 | 2000-02-15 | Martin Stjernholm | | clear_entities();
|
9f74bb | 2000-02-15 | Martin Stjernholm | | if (not_compat) {
#endif
|
2e0a6d | 2000-07-06 | Martin Stjernholm | | add_entities (tag_set->get_string_entities());
|
9f74bb | 2000-02-15 | Martin Stjernholm | | #ifdef OLD_RXML_COMPAT
}
#endif
}
#ifdef OLD_RXML_COMPAT
if (not_compat)
#endif
_set_entity_callback (.utils.p_xml_entity_cb);
#ifdef OLD_RXML_COMPAT
else
_set_entity_callback (.utils.p_xml_compat_entity_cb);
#endif
}
|
446bfa | 2001-06-21 | Martin Stjernholm | | void reset (RXML.Context ctx, RXML.Type _type,
RXML.PCode p_code, RXML.TagSet _tag_set)
|
9f74bb | 2000-02-15 | Martin Stjernholm | | {
#ifdef DEBUG
if (type != _type) error ("Internal error: Type change in reset().\n");
if (tag_set != _tag_set) error ("Internal error: Tag set change in reset().\n");
#endif
|
446bfa | 2001-06-21 | Martin Stjernholm | | initialize (ctx, _type, p_code, _tag_set);
|
9f74bb | 2000-02-15 | Martin Stjernholm | |
#ifdef OLD_RXML_COMPAT
|
b6c319 | 2000-03-04 | Martin Stjernholm | | int new_not_compat = !(ctx && ctx->id && ctx->id->conf->old_rxml_compat);
|
9f74bb | 2000-02-15 | Martin Stjernholm | | if (new_not_compat == not_compat) return;
not_compat = new_not_compat;
init_entities();
#endif
}
|
446bfa | 2001-06-21 | Martin Stjernholm | | this_program clone (RXML.Context ctx, RXML.Type type,
RXML.PCode p_code, RXML.TagSet tag_set)
|
5e5d86 | 2000-01-28 | Martin Stjernholm | | {
|
9f74bb | 2000-02-15 | Martin Stjernholm | | #ifdef OLD_RXML_COMPAT
|
848c5b | 2000-03-16 | Martin Stjernholm | | int new_not_compat = !(ctx && ctx->id && ctx->id->conf->old_rxml_compat);
|
446bfa | 2001-06-21 | Martin Stjernholm | | if (new_not_compat != not_compat) return this_program (ctx, type, p_code, tag_set);
|
9f74bb | 2000-02-15 | Martin Stjernholm | | #endif
|
446bfa | 2001-06-21 | Martin Stjernholm | | return [object(this_program)] _low_clone (ctx, type, p_code, tag_set, 1);
|
5e5d86 | 2000-01-28 | Martin Stjernholm | | }
|
446bfa | 2001-06-21 | Martin Stjernholm | | static void create (RXML.Context ctx, RXML.Type type,
RXML.PCode p_code, RXML.TagSet tag_set, void|int cloned)
|
5e5d86 | 2000-01-28 | Martin Stjernholm | | {
|
9f74bb | 2000-02-15 | Martin Stjernholm | | #ifdef OLD_RXML_COMPAT
|
b6c319 | 2000-03-04 | Martin Stjernholm | | not_compat = !(ctx && ctx->id && ctx->id->conf->old_rxml_compat);
|
9f74bb | 2000-02-15 | Martin Stjernholm | | #endif
|
446bfa | 2001-06-21 | Martin Stjernholm | | if (type->free_text)
alternative = FREE_TEXT;
else
alternative = type->handle_literals ? LITERALS : NO_LITERALS;
initialize (ctx, type, p_code, tag_set);
|
5e5d86 | 2000-01-28 | Martin Stjernholm | |
|
848c5b | 2000-03-16 | Martin Stjernholm | | if (cloned) return;
|
0923e9 | 2000-02-08 | Martin Stjernholm | |
|
4703fd | 2000-02-11 | Martin Stjernholm | | ignore_tags (1);
|
5e5d86 | 2000-01-28 | Martin Stjernholm | | lazy_entity_end (1);
match_tag (0);
|
9f74bb | 2000-02-15 | Martin Stjernholm | |
init_entities();
|
5e5d86 | 2000-01-28 | Martin Stjernholm | | }
|
9f74bb | 2000-02-15 | Martin Stjernholm | | constant add_runtime_tag = 0;
constant remove_runtime_tag = 0;
|
5e5d86 | 2000-01-28 | Martin Stjernholm | |
#ifdef OBJ_COUNT_DEBUG
|
da0c88 | 2000-03-18 | Martin Stjernholm | | string _sprintf()
{
|
f232d0 | 2000-09-08 | Martin Stjernholm | | return sprintf ("RXML.PEnt(%O,%O)%s", type, tag_set,
|
da0c88 | 2000-03-18 | Martin Stjernholm | | __object_marker ? "[" + __object_marker->count + "]" : "");
}
|
5e5d86 | 2000-01-28 | Martin Stjernholm | | #else
|
da0c88 | 2000-03-18 | Martin Stjernholm | | string _sprintf()
{
|
f232d0 | 2000-09-08 | Martin Stjernholm | | return sprintf ("RXML.PEnt(%O,%O)", type, tag_set);
|
da0c88 | 2000-03-18 | Martin Stjernholm | | }
|
5e5d86 | 2000-01-28 | Martin Stjernholm | | #endif
|