X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=sherlock%2Fxml%2Fdtd.c;h=67cb7ccca08b1638eb576824f7e695ca2eae7879;hb=1d92ad2e62c2f12405aac4339af536591f721f6a;hp=0abca72a269f1c8ccb387e831b8b6037f5116cf0;hpb=5da13cd16371faa6df5b880387b5b172a1704aef;p=libucw.git diff --git a/sherlock/xml/dtd.c b/sherlock/xml/dtd.c index 0abca72a..67cb7ccc 100644 --- a/sherlock/xml/dtd.c +++ b/sherlock/xml/dtd.c @@ -13,9 +13,9 @@ #include "sherlock/xml/xml.h" #include "sherlock/xml/dtd.h" #include "sherlock/xml/internals.h" -#include "lib/fastbuf.h" -#include "lib/ff-unicode.h" -#include "lib/unicode.h" +#include "ucw/fastbuf.h" +#include "ucw/ff-unicode.h" +#include "ucw/unicode.h" /* Notations */ @@ -29,7 +29,7 @@ #define HASH_GIVE_ALLOC #define HASH_TABLE_ALLOC XML_HASH_GIVE_ALLOC -#include "lib/hashtable.h" +#include "ucw/hashtable.h" struct xml_dtd_notn * xml_dtd_find_notn(struct xml_context *ctx, char *name) @@ -51,7 +51,7 @@ xml_dtd_find_notn(struct xml_context *ctx, char *name) #define HASH_GIVE_ALLOC #define HASH_TABLE_ALLOC XML_HASH_GIVE_ALLOC -#include "lib/hashtable.h" +#include "ucw/hashtable.h" static struct xml_dtd_entity * xml_dtd_declare_trivial_entity(struct xml_context *ctx, char *name, char *text) @@ -136,6 +136,14 @@ xml_dtd_find_pentity(struct xml_context *ctx, char *name) /* Elements */ +struct xml_dtd_elems_table; + +static void +xml_dtd_elems_init_data(struct xml_dtd_elems_table *tab UNUSED, struct xml_dtd_elem *e) +{ + slist_init(&e->attrs); +} + #define HASH_PREFIX(x) xml_dtd_elems_##x #define HASH_NODE struct xml_dtd_elem #define HASH_KEY_STRING name @@ -144,9 +152,10 @@ xml_dtd_find_pentity(struct xml_context *ctx, char *name) #define HASH_WANT_FIND #define HASH_WANT_LOOKUP #define HASH_GIVE_ALLOC +#define HASH_GIVE_INIT_DATA #define HASH_TABLE_ALLOC XML_HASH_GIVE_ALLOC -#include "lib/hashtable.h" +#include "ucw/hashtable.h" struct xml_dtd_elem * xml_dtd_find_elem(struct xml_context *ctx, char *name) @@ -191,7 +200,7 @@ xml_dtd_enodes_init_key(struct xml_dtd_enodes_table *tab UNUSED, struct xml_dtd_ #define HASH_GIVE_ALLOC #define HASH_TABLE_ALLOC XML_HASH_GIVE_ALLOC -#include "lib/hashtable.h" +#include "ucw/hashtable.h" /* Element attributes */ @@ -214,6 +223,7 @@ xml_dtd_attrs_init_key(struct xml_dtd_attrs_table *tab UNUSED, struct xml_dtd_at { attr->elem = elem; attr->name = name; + slist_add_tail(&elem->attrs, &attr->n); } #define HASH_PREFIX(x) xml_dtd_attrs_##x @@ -230,7 +240,7 @@ xml_dtd_attrs_init_key(struct xml_dtd_attrs_table *tab UNUSED, struct xml_dtd_at #define HASH_GIVE_ALLOC #define HASH_TABLE_ALLOC XML_HASH_GIVE_ALLOC -#include "lib/hashtable.h" +#include "ucw/hashtable.h" struct xml_dtd_attr * xml_dtd_find_attr(struct xml_context *ctx, struct xml_dtd_elem *elem, char *name) @@ -274,7 +284,7 @@ xml_dtd_evals_init_key(struct xml_dtd_evals_table *tab UNUSED, struct xml_dtd_ev #define HASH_GIVE_ALLOC #define HASH_TABLE_ALLOC XML_HASH_GIVE_ALLOC -#include "lib/hashtable.h" +#include "ucw/hashtable.h" /* Enumerated attribute notations */ @@ -312,7 +322,7 @@ xml_dtd_enotns_init_key(struct xml_dtd_enotns_table *tab UNUSED, struct xml_dtd_ #define HASH_GIVE_ALLOC #define HASH_TABLE_ALLOC XML_HASH_GIVE_ALLOC -#include "lib/hashtable.h" +#include "ucw/hashtable.h" /* DTD initialization/cleanup */