netsurf: branch master updated. release/3.3-665-gf5ab570
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/f5ab5703207975bd26635...
...commit http://git.netsurf-browser.org/netsurf.git/commit/f5ab5703207975bd266356a...
...tree http://git.netsurf-browser.org/netsurf.git/tree/f5ab5703207975bd266356aea...
The branch, master has been updated
via f5ab5703207975bd266356aea95b58cdc91347e9 (commit)
from e6b827979b3bb28a82101fe1211c809af112e987 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=f5ab5703207975bd266...
commit f5ab5703207975bd266356aea95b58cdc91347e9
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Disable "native scaled bitmaps" option if we're in palette mapped mode
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index ccd4781..cd23880 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -503,7 +503,7 @@ void ami_gui_opts_open(void)
BOOL proxyhostdisabled = TRUE, proxyauthdisabled = TRUE, proxybypassdisabled = FALSE;
BOOL disableanims, animspeeddisabled = FALSE, acceptlangdisabled = FALSE;
BOOL scaleselected = nsoption_bool(scale_quality), scaledisabled = FALSE;
- BOOL ditherdisable = TRUE;
+ BOOL ditherdisable = TRUE, nativebm_disable = FALSE;
BOOL download_notify_disabled = FALSE;
BOOL ptr_disable = FALSE;
char animspeed[10];
@@ -550,8 +550,10 @@ void ami_gui_opts_open(void)
screenmodeid = strtoul(nsoption_charp(screen_modeid),NULL,0);
}
- if(ami_plot_screen_is_palettemapped() == true)
+ if(ami_plot_screen_is_palettemapped() == true) {
ditherdisable = FALSE;
+ nativebm_disable = TRUE;
+ }
if(nsoption_bool(http_proxy) == true)
{
@@ -1014,6 +1016,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_NATIVEBM] = ChooserObj,
GA_ID, GID_OPTS_NATIVEBM,
GA_RelVerify, TRUE,
+ GA_Disabled, nativebm_disable,
CHOOSER_PopUp, TRUE,
#ifdef __amigaos4__
CHOOSER_LabelArray, nativebmopts,
-----------------------------------------------------------------------
Summary of changes:
amiga/gui_options.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index ccd4781..cd23880 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -503,7 +503,7 @@ void ami_gui_opts_open(void)
BOOL proxyhostdisabled = TRUE, proxyauthdisabled = TRUE, proxybypassdisabled = FALSE;
BOOL disableanims, animspeeddisabled = FALSE, acceptlangdisabled = FALSE;
BOOL scaleselected = nsoption_bool(scale_quality), scaledisabled = FALSE;
- BOOL ditherdisable = TRUE;
+ BOOL ditherdisable = TRUE, nativebm_disable = FALSE;
BOOL download_notify_disabled = FALSE;
BOOL ptr_disable = FALSE;
char animspeed[10];
@@ -550,8 +550,10 @@ void ami_gui_opts_open(void)
screenmodeid = strtoul(nsoption_charp(screen_modeid),NULL,0);
}
- if(ami_plot_screen_is_palettemapped() == true)
+ if(ami_plot_screen_is_palettemapped() == true) {
ditherdisable = FALSE;
+ nativebm_disable = TRUE;
+ }
if(nsoption_bool(http_proxy) == true)
{
@@ -1014,6 +1016,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_NATIVEBM] = ChooserObj,
GA_ID, GID_OPTS_NATIVEBM,
GA_RelVerify, TRUE,
+ GA_Disabled, nativebm_disable,
CHOOSER_PopUp, TRUE,
#ifdef __amigaos4__
CHOOSER_LabelArray, nativebmopts,
--
NetSurf Browser
7 years, 4 months
libdom: branch master updated. release/0.2.0-31-g2e707ef
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/2e707ef487896b68494ecb...
...commit http://git.netsurf-browser.org/libdom.git/commit/2e707ef487896b68494ecb07...
...tree http://git.netsurf-browser.org/libdom.git/tree/2e707ef487896b68494ecb07f0...
The branch, master has been updated
via 2e707ef487896b68494ecb07f0047be164e4ae8e (commit)
from 4ef9aeab25b67fa27e951473c78f33a600503ee4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=2e707ef487896b68494e...
commit 2e707ef487896b68494ecb07f0047be164e4ae8e
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Add missing newline which upsets gcc
diff --git a/include/dom/html/html_elements.h b/include/dom/html/html_elements.h
index 5774657..1e6b3fc 100644
--- a/include/dom/html/html_elements.h
+++ b/include/dom/html/html_elements.h
@@ -91,4 +91,5 @@ DOM_HTML_ELEMENT_LIST
#endif
#undef DOM_HTML_ELEMENT_LIST
-#endif
\ No newline at end of file
+#endif
+
-----------------------------------------------------------------------
Summary of changes:
include/dom/html/html_elements.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/dom/html/html_elements.h b/include/dom/html/html_elements.h
index 5774657..1e6b3fc 100644
--- a/include/dom/html/html_elements.h
+++ b/include/dom/html/html_elements.h
@@ -91,4 +91,5 @@ DOM_HTML_ELEMENT_LIST
#endif
#undef DOM_HTML_ELEMENT_LIST
-#endif
\ No newline at end of file
+#endif
+
--
Document Object Model library
7 years, 4 months
libwapcaplet: branch tlsa/tolower created. release/0.2.3-3-g08c5618
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libwapcaplet.git/shortlog/08c5618a803fa322...
...commit http://git.netsurf-browser.org/libwapcaplet.git/commit/08c5618a803fa32243...
...tree http://git.netsurf-browser.org/libwapcaplet.git/tree/08c5618a803fa32243df...
The branch, tlsa/tolower has been created
at 08c5618a803fa32243dfa434225604566c5dac91 (commit)
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libwapcaplet.git/commit/?id=08c5618a803fa3...
commit 08c5618a803fa32243dfa434225604566c5dac91
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Add lwc_string_tolower() tests.
diff --git a/test/basictests.c b/test/basictests.c
index ec9bf20..c23b547 100644
--- a/test/basictests.c
+++ b/test/basictests.c
@@ -50,6 +50,22 @@ START_TEST (test_lwc_intern_substring_aborts2)
}
END_TEST
+START_TEST (test_lwc_string_tolower_aborts1)
+{
+ lwc_string_tolower(null_lwc, null_lwc_p);
+}
+END_TEST
+
+START_TEST (test_lwc_string_tolower_aborts2)
+{
+ lwc_string *str;
+ fail_unless(lwc_intern_string("Badger", 6, &str) == lwc_error_ok,
+ "unable to intern 'Badger'");
+
+ lwc_string_tolower(str, null_lwc_p);
+}
+END_TEST
+
START_TEST (test_lwc_string_ref_aborts)
{
lwc_string_ref(null_lwc);
@@ -330,6 +346,41 @@ START_TEST (test_lwc_substring_is_nul_terminated)
}
END_TEST
+START_TEST (test_lwc_string_tolower_ok1)
+{
+ bool result = true;
+ lwc_string *new_ONE;
+ lwc_string *new_one;
+
+ fail_unless(lwc_intern_string("ONE", 3, &new_ONE) == lwc_error_ok,
+ "Failure interning 'ONE'");
+ fail_unless(lwc_string_tolower(new_ONE, &new_one) == lwc_error_ok);
+ fail_unless(lwc_string_isequal(intern_one, new_ONE, &result) == lwc_error_ok);
+ fail_unless(result == false, "'one' == 'ONE' ?!");
+ fail_unless(lwc_string_isequal(intern_one, new_one, &result) == lwc_error_ok);
+ fail_unless(result == true, "'one' != 'one' ?!");
+}
+END_TEST
+
+START_TEST (test_lwc_string_tolower_ok2)
+{
+ bool result = true;
+ lwc_string *new_ONE;
+ lwc_string *new_one;
+
+ fail_unless(lwc_intern_string("ONE", 3, &new_ONE) == lwc_error_ok,
+ "Failure interning 'ONE'");
+ /* Ensure new_ONE has an insensitive pointer set */
+ fail_unless(lwc_string_caseless_isequal(intern_one, new_ONE, &result) == lwc_error_ok);
+ fail_unless(result == true, "'one' != 'ONE' (caseless) ?!");
+ fail_unless(lwc_string_tolower(new_ONE, &new_one) == lwc_error_ok);
+ fail_unless(lwc_string_isequal(intern_one, new_ONE, &result) == lwc_error_ok);
+ fail_unless(result == false, "'one' == 'ONE' ?!");
+ fail_unless(lwc_string_isequal(intern_one, new_one, &result) == lwc_error_ok);
+ fail_unless(result == true, "'one' != 'one' ?!");
+}
+END_TEST
+
static void
counting_cb(lwc_string *str, void *pw)
{
@@ -368,6 +419,12 @@ lwc_basic_suite(SRunner *sr)
test_lwc_intern_substring_aborts2,
SIGABRT);
tcase_add_test_raise_signal(tc_basic,
+ test_lwc_string_tolower_aborts1,
+ SIGABRT);
+ tcase_add_test_raise_signal(tc_basic,
+ test_lwc_string_tolower_aborts2,
+ SIGABRT);
+ tcase_add_test_raise_signal(tc_basic,
test_lwc_string_ref_aborts,
SIGABRT);
tcase_add_test_raise_signal(tc_basic,
@@ -408,6 +465,8 @@ lwc_basic_suite(SRunner *sr)
tcase_add_test(tc_basic, test_lwc_string_caseless_isequal_ok1);
tcase_add_test(tc_basic, test_lwc_string_caseless_isequal_ok2);
tcase_add_test(tc_basic, test_lwc_string_caseless_isequal_bad);
+ tcase_add_test(tc_basic, test_lwc_string_tolower_ok1);
+ tcase_add_test(tc_basic, test_lwc_string_tolower_ok2);
tcase_add_test(tc_basic, test_lwc_extract_data_ok);
tcase_add_test(tc_basic, test_lwc_string_hash_value_ok);
tcase_add_test(tc_basic, test_lwc_string_is_nul_terminated);
commitdiff http://git.netsurf-browser.org/libwapcaplet.git/commit/?id=43b2081b8d5e23...
commit 43b2081b8d5e23c8582e2729f18ccd7555be8a40
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Add lwc_string_tolower() API.
diff --git a/include/libwapcaplet/libwapcaplet.h b/include/libwapcaplet/libwapcaplet.h
index 4c0fc71..c0e8c29 100644
--- a/include/libwapcaplet/libwapcaplet.h
+++ b/include/libwapcaplet/libwapcaplet.h
@@ -106,6 +106,16 @@ extern lwc_error lwc_intern_substring(lwc_string *str,
lwc_string **ret);
/**
+ * Optain a lowercased lwc_string from given lwc_string.
+ *
+ * @param str String to create lowercase string from.
+ * @param ret Pointer to ::lwc_string pointer to fill out.
+ * @return Result of operation, if not OK then the value pointed
+ * to by \a ret will not be valid.
+ */
+extern lwc_error lwc_string_tolower(lwc_string *str, lwc_string **ret);
+
+/**
* Increment the reference count on an lwc_string.
*
* This increases the reference count on the given string. You should
diff --git a/src/libwapcaplet.c b/src/libwapcaplet.c
index 9360f23..9521e96 100644
--- a/src/libwapcaplet.c
+++ b/src/libwapcaplet.c
@@ -164,6 +164,25 @@ lwc_intern_substring(lwc_string *str,
return lwc_intern_string(CSTR_OF(str) + ssoffset, sslen, ret);
}
+lwc_error
+lwc_string_tolower(lwc_string *str, lwc_string **ret)
+{
+ assert(str);
+ assert(ret);
+
+ /* Internally make use of knowledge that insensitive strings
+ * are lower case. */
+ if (str->insensitive == NULL) {
+ lwc_error error = lwc__intern_caseless_string(str);
+ if (error != lwc_error_ok) {
+ return error;
+ }
+ }
+
+ *ret = lwc_string_ref(str->insensitive);
+ return lwc_error_ok;
+}
+
void
lwc_string_destroy(lwc_string *str)
{
commitdiff http://git.netsurf-browser.org/libwapcaplet.git/commit/?id=86508f207b5fbb...
commit 86508f207b5fbb26db06dd9411d08bb0b9bfa6c8
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Consistent use of tabs for indentation.
diff --git a/src/libwapcaplet.c b/src/libwapcaplet.c
index b82d62f..9360f23 100644
--- a/src/libwapcaplet.c
+++ b/src/libwapcaplet.c
@@ -20,12 +20,11 @@ static inline lwc_hash
lwc__calculate_hash(const char *str, size_t len)
{
lwc_hash z = 0x811c9dc5;
-
while (len > 0) {
z *= 0x01000193;
z ^= *str++;
- len--;
+ len--;
}
return z;
@@ -37,8 +36,8 @@ lwc__calculate_hash(const char *str, size_t len)
#define NR_BUCKETS_DEFAULT (4091)
typedef struct lwc_context_s {
- lwc_string ** buckets;
- lwc_hash bucketcount;
+ lwc_string ** buckets;
+ lwc_hash bucketcount;
} lwc_context;
static lwc_context *ctx = NULL;
@@ -53,136 +52,136 @@ typedef void (*lwc_memcpy)(char *, const char *, size_t);
static lwc_error
lwc__initialise(void)
{
- if (ctx != NULL)
- return lwc_error_ok;
-
- ctx = LWC_ALLOC(sizeof(lwc_context));
-
- if (ctx == NULL)
- return lwc_error_oom;
-
- memset(ctx, 0, sizeof(lwc_context));
-
- ctx->bucketcount = NR_BUCKETS_DEFAULT;
- ctx->buckets = LWC_ALLOC(sizeof(lwc_string *) * ctx->bucketcount);
-
- if (ctx->buckets == NULL) {
- LWC_FREE(ctx);
+ if (ctx != NULL)
+ return lwc_error_ok;
+
+ ctx = LWC_ALLOC(sizeof(lwc_context));
+
+ if (ctx == NULL)
+ return lwc_error_oom;
+
+ memset(ctx, 0, sizeof(lwc_context));
+
+ ctx->bucketcount = NR_BUCKETS_DEFAULT;
+ ctx->buckets = LWC_ALLOC(sizeof(lwc_string *) * ctx->bucketcount);
+
+ if (ctx->buckets == NULL) {
+ LWC_FREE(ctx);
ctx = NULL;
- return lwc_error_oom;
- }
-
- memset(ctx->buckets, 0, sizeof(lwc_string *) * ctx->bucketcount);
-
- return lwc_error_ok;
+ return lwc_error_oom;
+ }
+
+ memset(ctx->buckets, 0, sizeof(lwc_string *) * ctx->bucketcount);
+
+ return lwc_error_ok;
}
static lwc_error
lwc__intern(const char *s, size_t slen,
- lwc_string **ret,
- lwc_hasher hasher,
- lwc_strncmp compare,
- lwc_memcpy copy)
+ lwc_string **ret,
+ lwc_hasher hasher,
+ lwc_strncmp compare,
+ lwc_memcpy copy)
{
- lwc_hash h;
- lwc_hash bucket;
- lwc_string *str;
- lwc_error eret;
-
- assert((s != NULL) || (slen == 0));
- assert(ret);
-
- if (ctx == NULL) {
- eret = lwc__initialise();
- if (eret != lwc_error_ok)
- return eret;
- if (ctx == NULL)
- return lwc_error_oom;
- }
-
- h = hasher(s, slen);
- bucket = h % ctx->bucketcount;
- str = ctx->buckets[bucket];
-
- while (str != NULL) {
- if ((str->hash == h) && (str->len == slen)) {
- if (compare(CSTR_OF(str), s, slen) == 0) {
- str->refcnt++;
- *ret = str;
- return lwc_error_ok;
- }
- }
- str = str->next;
- }
-
- /* Add one for the additional NUL. */
- *ret = str = LWC_ALLOC(sizeof(lwc_string) + slen + 1);
-
- if (str == NULL)
- return lwc_error_oom;
-
- str->prevptr = &(ctx->buckets[bucket]);
- str->next = ctx->buckets[bucket];
- if (str->next != NULL)
- str->next->prevptr = &(str->next);
- ctx->buckets[bucket] = str;
-
- str->len = slen;
- str->hash = h;
- str->refcnt = 1;
- str->insensitive = NULL;
-
- copy(STR_OF(str), s, slen);
-
- /* Guarantee NUL termination */
- STR_OF(str)[slen] = '\0';
-
- return lwc_error_ok;
+ lwc_hash h;
+ lwc_hash bucket;
+ lwc_string *str;
+ lwc_error eret;
+
+ assert((s != NULL) || (slen == 0));
+ assert(ret);
+
+ if (ctx == NULL) {
+ eret = lwc__initialise();
+ if (eret != lwc_error_ok)
+ return eret;
+ if (ctx == NULL)
+ return lwc_error_oom;
+ }
+
+ h = hasher(s, slen);
+ bucket = h % ctx->bucketcount;
+ str = ctx->buckets[bucket];
+
+ while (str != NULL) {
+ if ((str->hash == h) && (str->len == slen)) {
+ if (compare(CSTR_OF(str), s, slen) == 0) {
+ str->refcnt++;
+ *ret = str;
+ return lwc_error_ok;
+ }
+ }
+ str = str->next;
+ }
+
+ /* Add one for the additional NUL. */
+ *ret = str = LWC_ALLOC(sizeof(lwc_string) + slen + 1);
+
+ if (str == NULL)
+ return lwc_error_oom;
+
+ str->prevptr = &(ctx->buckets[bucket]);
+ str->next = ctx->buckets[bucket];
+ if (str->next != NULL)
+ str->next->prevptr = &(str->next);
+ ctx->buckets[bucket] = str;
+
+ str->len = slen;
+ str->hash = h;
+ str->refcnt = 1;
+ str->insensitive = NULL;
+
+ copy(STR_OF(str), s, slen);
+
+ /* Guarantee NUL termination */
+ STR_OF(str)[slen] = '\0';
+
+ return lwc_error_ok;
}
lwc_error
lwc_intern_string(const char *s, size_t slen,
- lwc_string **ret)
+ lwc_string **ret)
{
- return lwc__intern(s, slen, ret,
- lwc__calculate_hash,
- strncmp, (lwc_memcpy)memcpy);
+ return lwc__intern(s, slen, ret,
+ lwc__calculate_hash,
+ strncmp, (lwc_memcpy)memcpy);
}
lwc_error
lwc_intern_substring(lwc_string *str,
- size_t ssoffset, size_t sslen,
- lwc_string **ret)
+ size_t ssoffset, size_t sslen,
+ lwc_string **ret)
{
- assert(str);
- assert(ret);
-
- if (ssoffset >= str->len)
- return lwc_error_range;
- if ((ssoffset + sslen) > str->len)
- return lwc_error_range;
-
- return lwc_intern_string(CSTR_OF(str) + ssoffset, sslen, ret);
+ assert(str);
+ assert(ret);
+
+ if (ssoffset >= str->len)
+ return lwc_error_range;
+ if ((ssoffset + sslen) > str->len)
+ return lwc_error_range;
+
+ return lwc_intern_string(CSTR_OF(str) + ssoffset, sslen, ret);
}
void
lwc_string_destroy(lwc_string *str)
{
- assert(str);
-
- *(str->prevptr) = str->next;
-
- if (str->next != NULL)
- str->next->prevptr = str->prevptr;
+ assert(str);
+
+ *(str->prevptr) = str->next;
- if (str->insensitive != NULL && str->refcnt == 0)
- lwc_string_unref(str->insensitive);
+ if (str->next != NULL)
+ str->next->prevptr = str->prevptr;
+
+ if (str->insensitive != NULL && str->refcnt == 0)
+ lwc_string_unref(str->insensitive);
#ifndef NDEBUG
- memset(str, 0xA5, sizeof(*str) + str->len);
+ memset(str, 0xA5, sizeof(*str) + str->len);
#endif
-
- LWC_FREE(str);
+
+ LWC_FREE(str);
}
/**** Shonky caseless bits ****/
@@ -190,21 +189,20 @@ lwc_string_destroy(lwc_string *str)
static inline char
lwc__dolower(const char c)
{
- if (c >= 'A' && c <= 'Z')
- return c + 'a' - 'A';
- return c;
+ if (c >= 'A' && c <= 'Z')
+ return c + 'a' - 'A';
+ return c;
}
static inline lwc_hash
lwc__calculate_lcase_hash(const char *str, size_t len)
{
lwc_hash z = 0x811c9dc5;
-
while (len > 0) {
z *= 0x01000193;
z ^= lwc__dolower(*str++);
- len--;
+ len--;
}
return z;
@@ -213,33 +211,33 @@ lwc__calculate_lcase_hash(const char *str, size_t len)
static int
lwc__lcase_strncmp(const char *s1, const char *s2, size_t n)
{
- while (n--) {
- if (*s1++ != lwc__dolower(*s2++))
- /** @todo Test this somehow? */
- return 1;
- }
- return 0;
+ while (n--) {
+ if (*s1++ != lwc__dolower(*s2++))
+ /** @todo Test this somehow? */
+ return 1;
+ }
+ return 0;
}
static void
lwc__lcase_memcpy(char *target, const char *source, size_t n)
{
- while (n--) {
- *target++ = lwc__dolower(*source++);
- }
+ while (n--) {
+ *target++ = lwc__dolower(*source++);
+ }
}
lwc_error
lwc__intern_caseless_string(lwc_string *str)
{
- assert(str);
- assert(str->insensitive == NULL);
-
- return lwc__intern(CSTR_OF(str),
- str->len, &(str->insensitive),
- lwc__calculate_lcase_hash,
- lwc__lcase_strncmp,
- lwc__lcase_memcpy);
+ assert(str);
+ assert(str->insensitive == NULL);
+
+ return lwc__intern(CSTR_OF(str),
+ str->len, &(str->insensitive),
+ lwc__calculate_lcase_hash,
+ lwc__lcase_strncmp,
+ lwc__lcase_memcpy);
}
/**** Iteration ****/
@@ -247,14 +245,14 @@ lwc__intern_caseless_string(lwc_string *str)
void
lwc_iterate_strings(lwc_iteration_callback_fn cb, void *pw)
{
- lwc_hash n;
- lwc_string *str;
-
+ lwc_hash n;
+ lwc_string *str;
+
if (ctx == NULL)
return;
-
- for (n = 0; n < ctx->bucketcount; ++n) {
- for (str = ctx->buckets[n]; str != NULL; str = str->next)
- cb(str, pw);
- }
+
+ for (n = 0; n < ctx->bucketcount; ++n) {
+ for (str = ctx->buckets[n]; str != NULL; str = str->next)
+ cb(str, pw);
+ }
}
-----------------------------------------------------------------------
--
String internment library
7 years, 4 months
netsurf: branch master updated. release/3.3-664-ge6b8279
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/e6b827979b3bb28a82101...
...commit http://git.netsurf-browser.org/netsurf.git/commit/e6b827979b3bb28a82101fe...
...tree http://git.netsurf-browser.org/netsurf.git/tree/e6b827979b3bb28a82101fe12...
The branch, master has been updated
via e6b827979b3bb28a82101fe1211c809af112e987 (commit)
from b002ba73578c2d3bdb230c17ff474487c767f827 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=e6b827979b3bb28a821...
commit e6b827979b3bb28a82101fe1211c809af112e987
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Allocate bitmap structures using an itempool
diff --git a/amiga/bitmap.c b/amiga/bitmap.c
index 986f426..28c229b 100644
--- a/amiga/bitmap.c
+++ b/amiga/bitmap.c
@@ -52,13 +52,16 @@ enum {
AMI_NSBM_PALETTEMAPPED
};
+APTR pool_bitmap = NULL;
/* exported function documented in amiga/bitmap.h */
void *amiga_bitmap_create(int width, int height, unsigned int state)
{
struct bitmap *bitmap;
-
- bitmap = AllocVecTagList(sizeof(struct bitmap), NULL);
+
+ if(pool_bitmap == NULL) pool_bitmap = ami_misc_itempool_create(sizeof(struct bitmap));
+
+ bitmap = ami_misc_itempool_alloc(pool_bitmap, sizeof(struct bitmap));
if(bitmap == NULL) return NULL;
bitmap->pixdata = ami_misc_allocvec_clear(width*height*4, 0xff);
@@ -128,7 +131,7 @@ void amiga_bitmap_destroy(void *bitmap)
bm->native_mask = NULL;
bm->dto = NULL;
- FreeVec(bm);
+ ami_misc_itempool_free(pool_bitmap, bm, sizeof(struct bitmap));
bm = NULL;
}
}
@@ -557,6 +560,12 @@ struct BitMap *ami_bitmap_get_native(struct bitmap *bitmap,
}
}
+void ami_bitmap_fini(void)
+{
+ if(pool_bitmap) ami_misc_itempool_delete(pool_bitmap);
+ pool_bitmap = NULL;
+}
+
static nserror bitmap_render(struct bitmap *bitmap, hlcache_handle *content)
{
struct redraw_context ctx = {
diff --git a/amiga/bitmap.h b/amiga/bitmap.h
index aba3597..78d6c0d 100755
--- a/amiga/bitmap.h
+++ b/amiga/bitmap.h
@@ -55,6 +55,11 @@ Object *ami_datatype_object_from_bitmap(struct bitmap *bitmap);
struct bitmap *ami_bitmap_from_datatype(char *filename);
/**
+ * Cleanup bitmap allocations
+ */
+void ami_bitmap_fini(void);
+
+/**
* Create a bitmap.
*
* \param width width of image in pixels
diff --git a/amiga/gui.c b/amiga/gui.c
index c73f0d1..c7f920f 100644
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -5681,6 +5681,7 @@ int main(int argc, char** argv)
FreeSysObject(ASOT_PORT, schedulermsgport);
ami_object_fini();
+ ami_bitmap_fini();
ami_libs_close();
return RETURN_OK;
-----------------------------------------------------------------------
Summary of changes:
amiga/bitmap.c | 15 ++++++++++++---
amiga/bitmap.h | 5 +++++
amiga/gui.c | 1 +
3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/amiga/bitmap.c b/amiga/bitmap.c
index 986f426..28c229b 100644
--- a/amiga/bitmap.c
+++ b/amiga/bitmap.c
@@ -52,13 +52,16 @@ enum {
AMI_NSBM_PALETTEMAPPED
};
+APTR pool_bitmap = NULL;
/* exported function documented in amiga/bitmap.h */
void *amiga_bitmap_create(int width, int height, unsigned int state)
{
struct bitmap *bitmap;
-
- bitmap = AllocVecTagList(sizeof(struct bitmap), NULL);
+
+ if(pool_bitmap == NULL) pool_bitmap = ami_misc_itempool_create(sizeof(struct bitmap));
+
+ bitmap = ami_misc_itempool_alloc(pool_bitmap, sizeof(struct bitmap));
if(bitmap == NULL) return NULL;
bitmap->pixdata = ami_misc_allocvec_clear(width*height*4, 0xff);
@@ -128,7 +131,7 @@ void amiga_bitmap_destroy(void *bitmap)
bm->native_mask = NULL;
bm->dto = NULL;
- FreeVec(bm);
+ ami_misc_itempool_free(pool_bitmap, bm, sizeof(struct bitmap));
bm = NULL;
}
}
@@ -557,6 +560,12 @@ struct BitMap *ami_bitmap_get_native(struct bitmap *bitmap,
}
}
+void ami_bitmap_fini(void)
+{
+ if(pool_bitmap) ami_misc_itempool_delete(pool_bitmap);
+ pool_bitmap = NULL;
+}
+
static nserror bitmap_render(struct bitmap *bitmap, hlcache_handle *content)
{
struct redraw_context ctx = {
diff --git a/amiga/bitmap.h b/amiga/bitmap.h
index aba3597..78d6c0d 100755
--- a/amiga/bitmap.h
+++ b/amiga/bitmap.h
@@ -55,6 +55,11 @@ Object *ami_datatype_object_from_bitmap(struct bitmap *bitmap);
struct bitmap *ami_bitmap_from_datatype(char *filename);
/**
+ * Cleanup bitmap allocations
+ */
+void ami_bitmap_fini(void);
+
+/**
* Create a bitmap.
*
* \param width width of image in pixels
diff --git a/amiga/gui.c b/amiga/gui.c
index c73f0d1..c7f920f 100644
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -5681,6 +5681,7 @@ int main(int argc, char** argv)
FreeSysObject(ASOT_PORT, schedulermsgport);
ami_object_fini();
+ ami_bitmap_fini();
ami_libs_close();
return RETURN_OK;
--
NetSurf Browser
7 years, 4 months
libdom: branch master updated. release/0.2.0-30-g4ef9aea
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/4ef9aeab25b67fa27e9514...
...commit http://git.netsurf-browser.org/libdom.git/commit/4ef9aeab25b67fa27e951473...
...tree http://git.netsurf-browser.org/libdom.git/tree/4ef9aeab25b67fa27e951473c7...
The branch, master has been updated
via 4ef9aeab25b67fa27e951473c78f33a600503ee4 (commit)
via a37713d9b0d49e9996b6eba9789e6f4ace88cb85 (commit)
from 737cb995c1b2bf144ee5087a011418b1f9b8aa69 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=4ef9aeab25b67fa27e95...
commit 4ef9aeab25b67fa27e951473c78f33a600503ee4
Merge: 737cb99 a37713d
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Merge branch 'tlsa/faster-strings'
-----------------------------------------------------------------------
Summary of changes:
src/core/string.c | 40 +++++++++-------------------------------
1 file changed, 9 insertions(+), 31 deletions(-)
diff --git a/src/core/string.c b/src/core/string.c
index d4c5cdf..9af2e74 100644
--- a/src/core/string.c
+++ b/src/core/string.c
@@ -935,8 +935,7 @@ dom_string_toupper(dom_string *source, bool ascii_only, dom_string **upper)
const uint8_t *orig_s = (const uint8_t *) dom_string_data(source);
const size_t nbytes = dom_string_byte_length(source);
uint8_t *copy_s;
- size_t index = 0, clen;
- parserutils_error err;
+ size_t index = 0;
dom_exception exc;
if (ascii_only == false)
@@ -948,21 +947,11 @@ dom_string_toupper(dom_string *source, bool ascii_only, dom_string **upper)
memcpy(copy_s, orig_s, nbytes);
while (index < nbytes) {
- err = parserutils_charset_utf8_char_byte_length(orig_s + index,
- &clen);
- if (err != PARSERUTILS_OK) {
- free(copy_s);
- /** \todo Find a better exception */
- return DOM_NO_MEM_ERR;
+ if (orig_s[index] >= 'a' && orig_s[index] <= 'z') {
+ copy_s[index] -= 'a' - 'A';
}
- if (clen == 1) {
- if (orig_s[index] >= 'a' &&
- orig_s[index] <= 'z')
- copy_s[index] -= 'a' - 'A';
- }
-
- index += clen;
+ index++;
}
if (((dom_string_internal*)source)->type == DOM_STRING_CDATA) {
@@ -992,8 +981,7 @@ dom_string_tolower(dom_string *source, bool ascii_only, dom_string **lower)
const uint8_t *orig_s = (const uint8_t *) dom_string_data(source);
const size_t nbytes = dom_string_byte_length(source);
uint8_t *copy_s;
- size_t index = 0, clen;
- parserutils_error err;
+ size_t index = 0;
dom_exception exc;
if (ascii_only == false)
@@ -1005,21 +993,11 @@ dom_string_tolower(dom_string *source, bool ascii_only, dom_string **lower)
memcpy(copy_s, orig_s, nbytes);
while (index < nbytes) {
- err = parserutils_charset_utf8_char_byte_length(orig_s + index,
- &clen);
- if (err != PARSERUTILS_OK) {
- free(copy_s);
- /** \todo Find a better exception */
- return DOM_NO_MEM_ERR;
- }
-
- if (clen == 1) {
- if (orig_s[index] >= 'A' &&
- orig_s[index] <= 'Z')
- copy_s[index] += 'a' - 'A';
+ if (orig_s[index] >= 'A' && orig_s[index] <= 'Z') {
+ copy_s[index] += 'a' - 'A';
}
-
- index += clen;
+
+ index++;
}
if (((dom_string_internal*)source)->type == DOM_STRING_CDATA) {
--
Document Object Model library
7 years, 4 months
libdom: branch master updated. release/0.2.0-28-g737cb99
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/737cb995c1b2bf144ee508...
...commit http://git.netsurf-browser.org/libdom.git/commit/737cb995c1b2bf144ee5087a...
...tree http://git.netsurf-browser.org/libdom.git/tree/737cb995c1b2bf144ee5087a01...
The branch, master has been updated
via 737cb995c1b2bf144ee5087a011418b1f9b8aa69 (commit)
via 2196dd1c1d5a78e82e8b57d77008a0486011bec9 (commit)
via 7e9681b5e1829e533d9cce3b28ee94ecf2daff24 (commit)
via b4a245f67fe6c40f3aa8ddfe627d28e3513a9463 (commit)
from e137aa0f31bcc399658d266487494ef07be185fc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=737cb995c1b2bf144ee5...
commit 737cb995c1b2bf144ee5087a011418b1f9b8aa69
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Further optimise event dispatch.
Only add event targets to the array of targets for capture/bubbling
if it is actually listening for the event type we're dispatching.
diff --git a/src/core/node.c b/src/core/node.c
index 3661521..8800a4b 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2408,15 +2408,30 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
/* Add interested event listeners to array */
for (; target != NULL; target = target->parent) {
- if (target->eti.listeners == NULL) {
+ struct listener_entry *le = target->eti.listeners;
+ bool target_has_listener = false;
+
+ if (le == NULL) {
/* This event target isn't listening to anything */
continue;
}
- /* OK, add the event target to the array */
- /* TODO: We could check that the event type string matches
- * the types that registered listeners are listening for.
- */
+ /* Check whether the event target is listening for this
+ * event type */
+ do {
+ if (dom_string_isequal(le->type, evt->type)) {
+ target_has_listener = true;
+ break;
+ }
+ le = (struct listener_entry *) le->list.next;
+ } while (le != target->eti.listeners);
+
+ if (target_has_listener == false) {
+ continue;
+ }
+
+ /* The event target is listening for this event type,
+ * so add it to the array. */
if (ntargets == ntargets_allocated) {
err = _dom_event_targets_expand(&ntargets_allocated,
&targets);
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=2196dd1c1d5a78e82e8b...
commit 2196dd1c1d5a78e82e8b57d77008a0486011bec9
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Optimise event dispatch.
- Only allocate array of event targets when there is at least one
target listening.
- Only add targets to the list if they have got at least one
listener registered.
diff --git a/src/core/node.c b/src/core/node.c
index 8111523..3661521 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2316,6 +2316,39 @@ dom_exception _dom_node_remove_event_listener_ns(dom_event_target *et,
namespace, type, listener, capture);
}
+
+/** Helper for allocating/expanding array of event targets */
+static inline dom_exception _dom_event_targets_expand(
+ uint32_t *ntargets_allocated,
+ dom_event_target ***targets)
+{
+ dom_event_target **t = *targets;
+ uint32_t size = *ntargets_allocated;
+
+ if (t == NULL) {
+ /* Create the event target list */
+ size = 64;
+ t = calloc(sizeof(*t), size);
+ if (targets == NULL) {
+ return DOM_NO_MEM_ERR;
+ }
+ } else {
+ /* Extend events target list */
+ dom_event_target **tmp = realloc(t, size * 2 * sizeof(*t));
+ if (tmp == NULL) {
+ return DOM_NO_MEM_ERR;
+ }
+ memset(tmp + size, 0, size * sizeof(*tmp));
+ t = tmp;
+ size *= 2;
+ }
+
+ *ntargets_allocated = size;
+ *targets = t;
+
+ return DOM_NO_ERR;
+}
+
/**
* Dispatch an event into the implementation's event model
*
@@ -2368,29 +2401,31 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
*success = true;
- /* Compose the event target list */
+ /* Initialise array of targets for capture/bubbling phases */
+ targets = NULL;
+ ntargets_allocated = 0;
ntargets = 0;
- ntargets_allocated = 64;
- targets = calloc(sizeof(*targets), ntargets_allocated);
- if (targets == NULL) {
- /** \todo Report memory exhaustion? */
- return DOM_NO_ERR;
- }
- while (target != NULL) {
+ /* Add interested event listeners to array */
+ for (; target != NULL; target = target->parent) {
+ if (target->eti.listeners == NULL) {
+ /* This event target isn't listening to anything */
+ continue;
+ }
+
+ /* OK, add the event target to the array */
+ /* TODO: We could check that the event type string matches
+ * the types that registered listeners are listening for.
+ */
if (ntargets == ntargets_allocated) {
- dom_event_target **newtargets = realloc(
- targets,
- ntargets_allocated * 2 * sizeof(*targets));
- if (newtargets == NULL)
+ err = _dom_event_targets_expand(&ntargets_allocated,
+ &targets);
+ if (err != DOM_NO_ERR) {
+ ret = err;
goto cleanup;
- memset(newtargets + ntargets_allocated,
- 0, ntargets_allocated * sizeof(*newtargets));
- targets = newtargets;
- ntargets_allocated *= 2;
+ }
}
targets[ntargets++] = (dom_event_target *)dom_node_ref(target);
- target = target->parent;
}
/* Fill the target of the event */
@@ -2462,8 +2497,8 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
dom_default_action_phase phase = DOM_DEFAULT_ACTION_END;
if (evt->prevent_default == true)
phase = DOM_DEFAULT_ACTION_PREVENTED;
- dom_default_action_callback cb = dei->actions(evt->type, phase,
- &pw);
+ dom_default_action_callback cb = dei->actions(
+ evt->type, phase, &pw);
if (cb != NULL) {
cb(evt, pw);
}
@@ -2477,7 +2512,9 @@ cleanup:
while (ntargets--) {
dom_node_unref(targets[ntargets]);
}
- free(targets);
+ if (targets != NULL) {
+ free(targets);
+ }
if (dei != NULL && dei->actions != NULL) {
dom_default_action_callback cb = dei->actions(evt->type,
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=7e9681b5e1829e533d9c...
commit 7e9681b5e1829e533d9cce3b28ee94ecf2daff24
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Remove parameter documentation for non-existant parameter.
diff --git a/src/core/node.c b/src/core/node.c
index aceab34..8111523 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2320,7 +2320,6 @@ dom_exception _dom_node_remove_event_listener_ns(dom_event_target *et,
* Dispatch an event into the implementation's event model
*
* \param et The EventTarget object
- * \param eti Internal EventTarget
* \param evt The event object
* \param success Indicates whether any of the listeners which handled the
* event called Event.preventDefault(). If
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=b4a245f67fe6c40f3aa8...
commit b4a245f67fe6c40f3aa8ddfe627d28e3513a9463
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Don't add target event to list of capture/bubbling event targets.
diff --git a/src/core/node.c b/src/core/node.c
index 45db915..aceab34 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2377,8 +2377,6 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
/** \todo Report memory exhaustion? */
return DOM_NO_ERR;
}
- targets[ntargets++] = (dom_event_target *)dom_node_ref(et);
- target = target->parent;
while (target != NULL) {
if (ntargets == ntargets_allocated) {
@@ -2412,7 +2410,7 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
}
/* The capture phase */
- for (targetnr = ntargets; targetnr > 1; --targetnr) {
+ for (targetnr = ntargets; targetnr > 0; --targetnr) {
dom_node_internal *node =
(dom_node_internal *) targets[targetnr - 1];
@@ -2443,7 +2441,7 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
/* Bubbling phase */
evt->phase = DOM_BUBBLING_PHASE;
- for (targetnr = 1; targetnr < ntargets; ++targetnr) {
+ for (targetnr = 0; targetnr < ntargets; ++targetnr) {
dom_node_internal *node =
(dom_node_internal *) targets[targetnr];
err = _dom_event_target_dispatch(targets[targetnr],
-----------------------------------------------------------------------
Summary of changes:
src/core/node.c | 99 +++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 74 insertions(+), 25 deletions(-)
diff --git a/src/core/node.c b/src/core/node.c
index 45db915..8800a4b 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2316,11 +2316,43 @@ dom_exception _dom_node_remove_event_listener_ns(dom_event_target *et,
namespace, type, listener, capture);
}
+
+/** Helper for allocating/expanding array of event targets */
+static inline dom_exception _dom_event_targets_expand(
+ uint32_t *ntargets_allocated,
+ dom_event_target ***targets)
+{
+ dom_event_target **t = *targets;
+ uint32_t size = *ntargets_allocated;
+
+ if (t == NULL) {
+ /* Create the event target list */
+ size = 64;
+ t = calloc(sizeof(*t), size);
+ if (targets == NULL) {
+ return DOM_NO_MEM_ERR;
+ }
+ } else {
+ /* Extend events target list */
+ dom_event_target **tmp = realloc(t, size * 2 * sizeof(*t));
+ if (tmp == NULL) {
+ return DOM_NO_MEM_ERR;
+ }
+ memset(tmp + size, 0, size * sizeof(*tmp));
+ t = tmp;
+ size *= 2;
+ }
+
+ *ntargets_allocated = size;
+ *targets = t;
+
+ return DOM_NO_ERR;
+}
+
/**
* Dispatch an event into the implementation's event model
*
* \param et The EventTarget object
- * \param eti Internal EventTarget
* \param evt The event object
* \param success Indicates whether any of the listeners which handled the
* event called Event.preventDefault(). If
@@ -2369,31 +2401,46 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
*success = true;
- /* Compose the event target list */
+ /* Initialise array of targets for capture/bubbling phases */
+ targets = NULL;
+ ntargets_allocated = 0;
ntargets = 0;
- ntargets_allocated = 64;
- targets = calloc(sizeof(*targets), ntargets_allocated);
- if (targets == NULL) {
- /** \todo Report memory exhaustion? */
- return DOM_NO_ERR;
- }
- targets[ntargets++] = (dom_event_target *)dom_node_ref(et);
- target = target->parent;
- while (target != NULL) {
+ /* Add interested event listeners to array */
+ for (; target != NULL; target = target->parent) {
+ struct listener_entry *le = target->eti.listeners;
+ bool target_has_listener = false;
+
+ if (le == NULL) {
+ /* This event target isn't listening to anything */
+ continue;
+ }
+
+ /* Check whether the event target is listening for this
+ * event type */
+ do {
+ if (dom_string_isequal(le->type, evt->type)) {
+ target_has_listener = true;
+ break;
+ }
+ le = (struct listener_entry *) le->list.next;
+ } while (le != target->eti.listeners);
+
+ if (target_has_listener == false) {
+ continue;
+ }
+
+ /* The event target is listening for this event type,
+ * so add it to the array. */
if (ntargets == ntargets_allocated) {
- dom_event_target **newtargets = realloc(
- targets,
- ntargets_allocated * 2 * sizeof(*targets));
- if (newtargets == NULL)
+ err = _dom_event_targets_expand(&ntargets_allocated,
+ &targets);
+ if (err != DOM_NO_ERR) {
+ ret = err;
goto cleanup;
- memset(newtargets + ntargets_allocated,
- 0, ntargets_allocated * sizeof(*newtargets));
- targets = newtargets;
- ntargets_allocated *= 2;
+ }
}
targets[ntargets++] = (dom_event_target *)dom_node_ref(target);
- target = target->parent;
}
/* Fill the target of the event */
@@ -2412,7 +2459,7 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
}
/* The capture phase */
- for (targetnr = ntargets; targetnr > 1; --targetnr) {
+ for (targetnr = ntargets; targetnr > 0; --targetnr) {
dom_node_internal *node =
(dom_node_internal *) targets[targetnr - 1];
@@ -2443,7 +2490,7 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
/* Bubbling phase */
evt->phase = DOM_BUBBLING_PHASE;
- for (targetnr = 1; targetnr < ntargets; ++targetnr) {
+ for (targetnr = 0; targetnr < ntargets; ++targetnr) {
dom_node_internal *node =
(dom_node_internal *) targets[targetnr];
err = _dom_event_target_dispatch(targets[targetnr],
@@ -2465,8 +2512,8 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
dom_default_action_phase phase = DOM_DEFAULT_ACTION_END;
if (evt->prevent_default == true)
phase = DOM_DEFAULT_ACTION_PREVENTED;
- dom_default_action_callback cb = dei->actions(evt->type, phase,
- &pw);
+ dom_default_action_callback cb = dei->actions(
+ evt->type, phase, &pw);
if (cb != NULL) {
cb(evt, pw);
}
@@ -2480,7 +2527,9 @@ cleanup:
while (ntargets--) {
dom_node_unref(targets[ntargets]);
}
- free(targets);
+ if (targets != NULL) {
+ free(targets);
+ }
if (dei != NULL && dei->actions != NULL) {
dom_default_action_callback cb = dei->actions(evt->type,
--
Document Object Model library
7 years, 4 months
libdom: branch tlsa/faster-strings created. release/0.2.0-25-ga37713d
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/a37713d9b0d49e9996b6eb...
...commit http://git.netsurf-browser.org/libdom.git/commit/a37713d9b0d49e9996b6eba9...
...tree http://git.netsurf-browser.org/libdom.git/tree/a37713d9b0d49e9996b6eba978...
The branch, tlsa/faster-strings has been created
at a37713d9b0d49e9996b6eba9789e6f4ace88cb85 (commit)
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=a37713d9b0d49e9996b6...
commit a37713d9b0d49e9996b6eba9789e6f4ace88cb85
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Optimise dom_string_(toupper|tolower) functions.
Since we don't support non-ascii strings here, the lpu calls to
step though the characters was an unecessary overhead.
diff --git a/src/core/string.c b/src/core/string.c
index d4c5cdf..9af2e74 100644
--- a/src/core/string.c
+++ b/src/core/string.c
@@ -935,8 +935,7 @@ dom_string_toupper(dom_string *source, bool ascii_only, dom_string **upper)
const uint8_t *orig_s = (const uint8_t *) dom_string_data(source);
const size_t nbytes = dom_string_byte_length(source);
uint8_t *copy_s;
- size_t index = 0, clen;
- parserutils_error err;
+ size_t index = 0;
dom_exception exc;
if (ascii_only == false)
@@ -948,21 +947,11 @@ dom_string_toupper(dom_string *source, bool ascii_only, dom_string **upper)
memcpy(copy_s, orig_s, nbytes);
while (index < nbytes) {
- err = parserutils_charset_utf8_char_byte_length(orig_s + index,
- &clen);
- if (err != PARSERUTILS_OK) {
- free(copy_s);
- /** \todo Find a better exception */
- return DOM_NO_MEM_ERR;
+ if (orig_s[index] >= 'a' && orig_s[index] <= 'z') {
+ copy_s[index] -= 'a' - 'A';
}
- if (clen == 1) {
- if (orig_s[index] >= 'a' &&
- orig_s[index] <= 'z')
- copy_s[index] -= 'a' - 'A';
- }
-
- index += clen;
+ index++;
}
if (((dom_string_internal*)source)->type == DOM_STRING_CDATA) {
@@ -992,8 +981,7 @@ dom_string_tolower(dom_string *source, bool ascii_only, dom_string **lower)
const uint8_t *orig_s = (const uint8_t *) dom_string_data(source);
const size_t nbytes = dom_string_byte_length(source);
uint8_t *copy_s;
- size_t index = 0, clen;
- parserutils_error err;
+ size_t index = 0;
dom_exception exc;
if (ascii_only == false)
@@ -1005,21 +993,11 @@ dom_string_tolower(dom_string *source, bool ascii_only, dom_string **lower)
memcpy(copy_s, orig_s, nbytes);
while (index < nbytes) {
- err = parserutils_charset_utf8_char_byte_length(orig_s + index,
- &clen);
- if (err != PARSERUTILS_OK) {
- free(copy_s);
- /** \todo Find a better exception */
- return DOM_NO_MEM_ERR;
- }
-
- if (clen == 1) {
- if (orig_s[index] >= 'A' &&
- orig_s[index] <= 'Z')
- copy_s[index] += 'a' - 'A';
+ if (orig_s[index] >= 'A' && orig_s[index] <= 'Z') {
+ copy_s[index] += 'a' - 'A';
}
-
- index += clen;
+
+ index++;
}
if (((dom_string_internal*)source)->type == DOM_STRING_CDATA) {
-----------------------------------------------------------------------
--
Document Object Model library
7 years, 4 months
netsurf: branch master updated. release/3.3-663-gb002ba7
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/b002ba73578c2d3bdb230...
...commit http://git.netsurf-browser.org/netsurf.git/commit/b002ba73578c2d3bdb230c1...
...tree http://git.netsurf-browser.org/netsurf.git/tree/b002ba73578c2d3bdb230c17f...
The branch, master has been updated
via b002ba73578c2d3bdb230c17ff474487c767f827 (commit)
via b58176c65efa467b358eda1e921ea914dcee1a1b (commit)
from b3c524cea10d636bd7e657d274ba9f94c1d1e433 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=b002ba73578c2d3bdb2...
commit b002ba73578c2d3bdb230c17ff474487c767f827
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Simplify special element handling in node inserted callback.
diff --git a/render/html.c b/render/html.c
index 0c278a7..cdd78e7 100644
--- a/render/html.c
+++ b/render/html.c
@@ -629,7 +629,6 @@ dom_default_action_DOMNodeInserted_cb(struct dom_event *evt, void *pw)
{
dom_event_target *node;
dom_node_type type;
- dom_string *name;
dom_exception exc;
html_content *htmlc = pw;
@@ -638,38 +637,39 @@ dom_default_action_DOMNodeInserted_cb(struct dom_event *evt, void *pw)
exc = dom_node_get_node_type(node, &type);
if ((exc == DOM_NO_ERR) && (type == DOM_ELEMENT_NODE)) {
/* an element node has been inserted */
- exc = dom_node_get_node_name(node, &name);
- if ((exc == DOM_NO_ERR) && (name != NULL)) {
+ dom_html_element_type tag_type;
- if (dom_string_caseless_isequal(name,
- corestring_dom_link)) {
- /* Handle stylesheet loading */
- html_css_process_link(htmlc,
- (dom_node *)node);
- /* Generic link handling */
- html_process_link(htmlc,
- (dom_node *)node);
-
- } else if (dom_string_caseless_lwc_isequal(name,
- corestring_lwc_meta) &&
- htmlc->refresh == false) {
- html_meta_refresh_process_element(htmlc,
- (dom_node *)node);
- } else if (dom_string_caseless_lwc_isequal(
- name, corestring_lwc_base)) {
- html_process_base(htmlc,
- (dom_node *)node);
- } else if (dom_string_caseless_lwc_isequal(
- name, corestring_lwc_title) &&
- htmlc->title == NULL) {
- htmlc->title = dom_node_ref(node);
- } else if (dom_string_caseless_lwc_isequal(
- name, corestring_lwc_img)) {
- html_process_img(htmlc,
- (dom_node *) node);
- }
+ exc = dom_html_element_get_tag_type(node, &tag_type);
+ if (exc != DOM_NO_ERR) {
+ tag_type = DOM_HTML_ELEMENT_TYPE__UNKNOWN;
+ }
- dom_string_unref(name);
+ switch (tag_type) {
+ case DOM_HTML_ELEMENT_TYPE_LINK:
+ /* Handle stylesheet loading */
+ html_css_process_link(htmlc, (dom_node *)node);
+ /* Generic link handling */
+ html_process_link(htmlc, (dom_node *)node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_META:
+ if (htmlc->refresh)
+ break;
+ html_meta_refresh_process_element(htmlc,
+ (dom_node *)node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_TITLE:
+ if (htmlc->title != NULL)
+ break;
+ htmlc->title = dom_node_ref(node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_BASE:
+ html_process_base(htmlc, (dom_node *)node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_IMG:
+ html_process_img(htmlc, (dom_node *) node);
+ break;
+ default:
+ break;
}
if (htmlc->enable_scripting) {
/* ensure javascript context is available */
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=b58176c65efa467b358...
commit b58176c65efa467b358eda1e921ea914dcee1a1b
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Spaces to tabs.
diff --git a/render/box_construct.c b/render/box_construct.c
index 6a36316..25686c9 100644
--- a/render/box_construct.c
+++ b/render/box_construct.c
@@ -65,7 +65,7 @@ struct box_construct_ctx {
box_construct_complete_cb cb; /**< Callback to invoke on completion */
- int *bctx; /**< talloc context */
+ int *bctx; /**< talloc context */
};
/**
-----------------------------------------------------------------------
Summary of changes:
render/box_construct.c | 2 +-
render/html.c | 62 ++++++++++++++++++++++++------------------------
2 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/render/box_construct.c b/render/box_construct.c
index 6a36316..25686c9 100644
--- a/render/box_construct.c
+++ b/render/box_construct.c
@@ -65,7 +65,7 @@ struct box_construct_ctx {
box_construct_complete_cb cb; /**< Callback to invoke on completion */
- int *bctx; /**< talloc context */
+ int *bctx; /**< talloc context */
};
/**
diff --git a/render/html.c b/render/html.c
index 0c278a7..cdd78e7 100644
--- a/render/html.c
+++ b/render/html.c
@@ -629,7 +629,6 @@ dom_default_action_DOMNodeInserted_cb(struct dom_event *evt, void *pw)
{
dom_event_target *node;
dom_node_type type;
- dom_string *name;
dom_exception exc;
html_content *htmlc = pw;
@@ -638,38 +637,39 @@ dom_default_action_DOMNodeInserted_cb(struct dom_event *evt, void *pw)
exc = dom_node_get_node_type(node, &type);
if ((exc == DOM_NO_ERR) && (type == DOM_ELEMENT_NODE)) {
/* an element node has been inserted */
- exc = dom_node_get_node_name(node, &name);
- if ((exc == DOM_NO_ERR) && (name != NULL)) {
+ dom_html_element_type tag_type;
- if (dom_string_caseless_isequal(name,
- corestring_dom_link)) {
- /* Handle stylesheet loading */
- html_css_process_link(htmlc,
- (dom_node *)node);
- /* Generic link handling */
- html_process_link(htmlc,
- (dom_node *)node);
-
- } else if (dom_string_caseless_lwc_isequal(name,
- corestring_lwc_meta) &&
- htmlc->refresh == false) {
- html_meta_refresh_process_element(htmlc,
- (dom_node *)node);
- } else if (dom_string_caseless_lwc_isequal(
- name, corestring_lwc_base)) {
- html_process_base(htmlc,
- (dom_node *)node);
- } else if (dom_string_caseless_lwc_isequal(
- name, corestring_lwc_title) &&
- htmlc->title == NULL) {
- htmlc->title = dom_node_ref(node);
- } else if (dom_string_caseless_lwc_isequal(
- name, corestring_lwc_img)) {
- html_process_img(htmlc,
- (dom_node *) node);
- }
+ exc = dom_html_element_get_tag_type(node, &tag_type);
+ if (exc != DOM_NO_ERR) {
+ tag_type = DOM_HTML_ELEMENT_TYPE__UNKNOWN;
+ }
- dom_string_unref(name);
+ switch (tag_type) {
+ case DOM_HTML_ELEMENT_TYPE_LINK:
+ /* Handle stylesheet loading */
+ html_css_process_link(htmlc, (dom_node *)node);
+ /* Generic link handling */
+ html_process_link(htmlc, (dom_node *)node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_META:
+ if (htmlc->refresh)
+ break;
+ html_meta_refresh_process_element(htmlc,
+ (dom_node *)node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_TITLE:
+ if (htmlc->title != NULL)
+ break;
+ htmlc->title = dom_node_ref(node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_BASE:
+ html_process_base(htmlc, (dom_node *)node);
+ break;
+ case DOM_HTML_ELEMENT_TYPE_IMG:
+ html_process_img(htmlc, (dom_node *) node);
+ break;
+ default:
+ break;
}
if (htmlc->enable_scripting) {
/* ensure javascript context is available */
--
NetSurf Browser
7 years, 4 months
libdom: branch tlsa/event-dispatch-optimise created. release/0.2.0-28-gc5bdfe1
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/c5bdfe19181d0534acac5d...
...commit http://git.netsurf-browser.org/libdom.git/commit/c5bdfe19181d0534acac5d33...
...tree http://git.netsurf-browser.org/libdom.git/tree/c5bdfe19181d0534acac5d33ad...
The branch, tlsa/event-dispatch-optimise has been created
at c5bdfe19181d0534acac5d33ad4a63c1fb231e49 (commit)
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=c5bdfe19181d0534acac...
commit c5bdfe19181d0534acac5d33ad4a63c1fb231e49
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Further optimise event dispatch.
Only add event targets to the array of targets for capture/bubbling
if it is actually listening for the event type we're dispatching.
diff --git a/src/core/node.c b/src/core/node.c
index 3661521..8800a4b 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2408,15 +2408,30 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
/* Add interested event listeners to array */
for (; target != NULL; target = target->parent) {
- if (target->eti.listeners == NULL) {
+ struct listener_entry *le = target->eti.listeners;
+ bool target_has_listener = false;
+
+ if (le == NULL) {
/* This event target isn't listening to anything */
continue;
}
- /* OK, add the event target to the array */
- /* TODO: We could check that the event type string matches
- * the types that registered listeners are listening for.
- */
+ /* Check whether the event target is listening for this
+ * event type */
+ do {
+ if (dom_string_isequal(le->type, evt->type)) {
+ target_has_listener = true;
+ break;
+ }
+ le = (struct listener_entry *) le->list.next;
+ } while (le != target->eti.listeners);
+
+ if (target_has_listener == false) {
+ continue;
+ }
+
+ /* The event target is listening for this event type,
+ * so add it to the array. */
if (ntargets == ntargets_allocated) {
err = _dom_event_targets_expand(&ntargets_allocated,
&targets);
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=fa42d13612a3c4c8299f...
commit fa42d13612a3c4c8299fc64132b3fa6054d1d551
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Optimise event dispatch.
- Only allocate array of event targets when there is at least one
target listening.
- Only add targets to the list if they have got at least one
listener registered.
diff --git a/src/core/node.c b/src/core/node.c
index 8111523..3661521 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2316,6 +2316,39 @@ dom_exception _dom_node_remove_event_listener_ns(dom_event_target *et,
namespace, type, listener, capture);
}
+
+/** Helper for allocating/expanding array of event targets */
+static inline dom_exception _dom_event_targets_expand(
+ uint32_t *ntargets_allocated,
+ dom_event_target ***targets)
+{
+ dom_event_target **t = *targets;
+ uint32_t size = *ntargets_allocated;
+
+ if (t == NULL) {
+ /* Create the event target list */
+ size = 64;
+ t = calloc(sizeof(*t), size);
+ if (targets == NULL) {
+ return DOM_NO_MEM_ERR;
+ }
+ } else {
+ /* Extend events target list */
+ dom_event_target **tmp = realloc(t, size * 2 * sizeof(*t));
+ if (tmp == NULL) {
+ return DOM_NO_MEM_ERR;
+ }
+ memset(tmp + size, 0, size * sizeof(*tmp));
+ t = tmp;
+ size *= 2;
+ }
+
+ *ntargets_allocated = size;
+ *targets = t;
+
+ return DOM_NO_ERR;
+}
+
/**
* Dispatch an event into the implementation's event model
*
@@ -2368,29 +2401,31 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
*success = true;
- /* Compose the event target list */
+ /* Initialise array of targets for capture/bubbling phases */
+ targets = NULL;
+ ntargets_allocated = 0;
ntargets = 0;
- ntargets_allocated = 64;
- targets = calloc(sizeof(*targets), ntargets_allocated);
- if (targets == NULL) {
- /** \todo Report memory exhaustion? */
- return DOM_NO_ERR;
- }
- while (target != NULL) {
+ /* Add interested event listeners to array */
+ for (; target != NULL; target = target->parent) {
+ if (target->eti.listeners == NULL) {
+ /* This event target isn't listening to anything */
+ continue;
+ }
+
+ /* OK, add the event target to the array */
+ /* TODO: We could check that the event type string matches
+ * the types that registered listeners are listening for.
+ */
if (ntargets == ntargets_allocated) {
- dom_event_target **newtargets = realloc(
- targets,
- ntargets_allocated * 2 * sizeof(*targets));
- if (newtargets == NULL)
+ err = _dom_event_targets_expand(&ntargets_allocated,
+ &targets);
+ if (err != DOM_NO_ERR) {
+ ret = err;
goto cleanup;
- memset(newtargets + ntargets_allocated,
- 0, ntargets_allocated * sizeof(*newtargets));
- targets = newtargets;
- ntargets_allocated *= 2;
+ }
}
targets[ntargets++] = (dom_event_target *)dom_node_ref(target);
- target = target->parent;
}
/* Fill the target of the event */
@@ -2462,8 +2497,8 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
dom_default_action_phase phase = DOM_DEFAULT_ACTION_END;
if (evt->prevent_default == true)
phase = DOM_DEFAULT_ACTION_PREVENTED;
- dom_default_action_callback cb = dei->actions(evt->type, phase,
- &pw);
+ dom_default_action_callback cb = dei->actions(
+ evt->type, phase, &pw);
if (cb != NULL) {
cb(evt, pw);
}
@@ -2477,7 +2512,9 @@ cleanup:
while (ntargets--) {
dom_node_unref(targets[ntargets]);
}
- free(targets);
+ if (targets != NULL) {
+ free(targets);
+ }
if (dei != NULL && dei->actions != NULL) {
dom_default_action_callback cb = dei->actions(evt->type,
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=8e551271057318c54613...
commit 8e551271057318c54613a2493e36b132a47d66ec
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Remove parameter documentation for non-existant parameter.
diff --git a/src/core/node.c b/src/core/node.c
index aceab34..8111523 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2320,7 +2320,6 @@ dom_exception _dom_node_remove_event_listener_ns(dom_event_target *et,
* Dispatch an event into the implementation's event model
*
* \param et The EventTarget object
- * \param eti Internal EventTarget
* \param evt The event object
* \param success Indicates whether any of the listeners which handled the
* event called Event.preventDefault(). If
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=67d7fc065a254d2441f4...
commit 67d7fc065a254d2441f46468bd51311bf2e0451c
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Don't add target event to list of capture/bubbling event targets.
diff --git a/src/core/node.c b/src/core/node.c
index 45db915..aceab34 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -2377,8 +2377,6 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
/** \todo Report memory exhaustion? */
return DOM_NO_ERR;
}
- targets[ntargets++] = (dom_event_target *)dom_node_ref(et);
- target = target->parent;
while (target != NULL) {
if (ntargets == ntargets_allocated) {
@@ -2412,7 +2410,7 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
}
/* The capture phase */
- for (targetnr = ntargets; targetnr > 1; --targetnr) {
+ for (targetnr = ntargets; targetnr > 0; --targetnr) {
dom_node_internal *node =
(dom_node_internal *) targets[targetnr - 1];
@@ -2443,7 +2441,7 @@ dom_exception _dom_node_dispatch_event(dom_event_target *et,
/* Bubbling phase */
evt->phase = DOM_BUBBLING_PHASE;
- for (targetnr = 1; targetnr < ntargets; ++targetnr) {
+ for (targetnr = 0; targetnr < ntargets; ++targetnr) {
dom_node_internal *node =
(dom_node_internal *) targets[targetnr];
err = _dom_event_target_dispatch(targets[targetnr],
-----------------------------------------------------------------------
--
Document Object Model library
7 years, 4 months
libdom: branch master updated. release/0.2.0-24-ge137aa0
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/e137aa0f31bcc399658d26...
...commit http://git.netsurf-browser.org/libdom.git/commit/e137aa0f31bcc399658d2664...
...tree http://git.netsurf-browser.org/libdom.git/tree/e137aa0f31bcc399658d266487...
The branch, master has been updated
via e137aa0f31bcc399658d266487494ef07be185fc (commit)
via cedfbbce5ee148d04cfa87c3e459eea26ba397ef (commit)
via fa2111088b5bb6b24b4acca53c95e1dc0284682e (commit)
via 5007c80a332a8e538b1c5d530cab87f04427b2ad (commit)
via bab3f35ff01a5825034d23424b8e3866cb6376e7 (commit)
from 809a7dcd1c803065eeb8ea39a605b6e0e2ec5241 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=e137aa0f31bcc399658d...
commit e137aa0f31bcc399658d266487494ef07be185fc
Merge: 809a7dc cedfbbc
Author: Michael Drake <michael.drake(a)codethink.co.uk>
Commit: Michael Drake <michael.drake(a)codethink.co.uk>
Merge branch 'tlsa/html-element-type'
-----------------------------------------------------------------------
Summary of changes:
Makefile | 1 +
include/dom/html/html_element.h | 162 ++++++++++++++++++++--------------
src/html/html_anchor_element.c | 22 +++--
src/html/html_anchor_element.h | 8 +-
src/html/html_applet_element.c | 22 +++--
src/html/html_applet_element.h | 8 +-
src/html/html_area_element.c | 22 +++--
src/html/html_area_element.h | 8 +-
src/html/html_base_element.c | 22 +++--
src/html/html_base_element.h | 8 +-
src/html/html_basefont_element.c | 22 +++--
src/html/html_basefont_element.h | 8 +-
src/html/html_body_element.c | 22 +++--
src/html/html_body_element.h | 8 +-
src/html/html_br_element.c | 22 +++--
src/html/html_br_element.h | 8 +-
src/html/html_button_element.c | 22 +++--
src/html/html_button_element.h | 8 +-
src/html/html_directory_element.c | 22 +++--
src/html/html_directory_element.h | 8 +-
src/html/html_div_element.c | 22 +++--
src/html/html_div_element.h | 8 +-
src/html/html_dlist_element.c | 22 +++--
src/html/html_dlist_element.h | 8 +-
src/html/html_document.c | 146 +++++++++++++++---------------
src/html/html_element.c | 38 ++++++--
src/html/html_element.h | 26 ++++--
src/html/html_fieldset_element.c | 22 +++--
src/html/html_fieldset_element.h | 8 +-
src/html/html_font_element.c | 22 +++--
src/html/html_font_element.h | 8 +-
src/html/html_form_element.c | 22 +++--
src/html/html_form_element.h | 8 +-
src/html/html_frame_element.c | 22 +++--
src/html/html_frame_element.h | 8 +-
src/html/html_frameset_element.c | 22 +++--
src/html/html_frameset_element.h | 8 +-
src/html/html_head_element.c | 22 +++--
src/html/html_head_element.h | 8 +-
src/html/html_heading_element.c | 27 +++---
src/html/html_heading_element.h | 12 +--
src/html/html_hr_element.c | 22 +++--
src/html/html_hr_element.h | 8 +-
src/html/html_html_element.c | 22 +++--
src/html/html_html_element.h | 8 +-
src/html/html_iframe_element.c | 23 +++--
src/html/html_iframe_element.h | 8 +-
src/html/html_image_element.c | 22 +++--
src/html/html_image_element.h | 8 +-
src/html/html_input_element.c | 22 +++--
src/html/html_input_element.h | 8 +-
src/html/html_isindex_element.c | 22 +++--
src/html/html_isindex_element.h | 8 +-
src/html/html_label_element.c | 22 +++--
src/html/html_label_element.h | 8 +-
src/html/html_legend_element.c | 22 +++--
src/html/html_legend_element.h | 8 +-
src/html/html_li_element.c | 22 +++--
src/html/html_li_element.h | 8 +-
src/html/html_link_element.c | 22 +++--
src/html/html_link_element.h | 8 +-
src/html/html_map_element.c | 22 +++--
src/html/html_map_element.h | 8 +-
src/html/html_menu_element.c | 22 +++--
src/html/html_menu_element.h | 8 +-
src/html/html_meta_element.c | 22 +++--
src/html/html_meta_element.h | 8 +-
src/html/html_mod_element.c | 25 +++---
src/html/html_mod_element.h | 10 +--
src/html/html_object_element.c | 22 +++--
src/html/html_object_element.h | 8 +-
src/html/html_olist_element.c | 22 +++--
src/html/html_olist_element.h | 8 +-
src/html/html_opt_group_element.c | 22 +++--
src/html/html_opt_group_element.h | 8 +-
src/html/html_option_element.c | 22 +++--
src/html/html_option_element.h | 8 +-
src/html/html_paragraph_element.c | 22 +++--
src/html/html_paragraph_element.h | 8 +-
src/html/html_param_element.c | 22 +++--
src/html/html_param_element.h | 8 +-
src/html/html_pre_element.c | 22 +++--
src/html/html_pre_element.h | 8 +-
src/html/html_quote_element.c | 22 +++--
src/html/html_quote_element.h | 8 +-
src/html/html_script_element.c | 22 +++--
src/html/html_script_element.h | 8 +-
src/html/html_select_element.c | 22 +++--
src/html/html_select_element.h | 8 +-
src/html/html_style_element.c | 29 +++---
src/html/html_style_element.h | 6 +-
src/html/html_table_element.c | 104 +++++++++++++---------
src/html/html_table_element.h | 8 +-
src/html/html_tablecaption_element.c | 22 +++--
src/html/html_tablecaption_element.h | 8 +-
src/html/html_tablecell_element.c | 23 +++--
src/html/html_tablecell_element.h | 8 +-
src/html/html_tablecol_element.c | 22 +++--
src/html/html_tablecol_element.h | 8 +-
src/html/html_tablerow_element.c | 38 ++++----
src/html/html_tablerow_element.h | 8 +-
src/html/html_tablesection_element.c | 36 ++++----
src/html/html_tablesection_element.h | 8 +-
src/html/html_text_area_element.c | 22 +++--
src/html/html_text_area_element.h | 8 +-
src/html/html_title_element.c | 22 +++--
src/html/html_title_element.h | 8 +-
src/html/html_ulist_element.c | 22 +++--
src/html/html_ulist_element.h | 8 +-
109 files changed, 1024 insertions(+), 1042 deletions(-)
diff --git a/Makefile b/Makefile
index ddbdbd2..d287455 100644
--- a/Makefile
+++ b/Makefile
@@ -90,6 +90,7 @@ I := /$(INCLUDEDIR)/dom/html
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_document.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_collection.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_element.h
+INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_elements.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_html_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_head_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_link_element.h
diff --git a/include/dom/html/html_element.h b/include/dom/html/html_element.h
index d6d3c88..49a7d59 100644
--- a/include/dom/html/html_element.h
+++ b/include/dom/html/html_element.h
@@ -9,123 +9,153 @@
#define dom_html_element_h_
#include <dom/core/element.h>
+#include <dom/html/html_elements.h>
typedef struct dom_html_element dom_html_element;
typedef struct dom_html_element_vtable {
- struct dom_element_vtable base;
-
- dom_exception (*dom_html_element_get_id)(struct dom_html_element *element,
- dom_string **id);
- dom_exception (*dom_html_element_set_id)(struct dom_html_element *element,
- dom_string *id);
- dom_exception (*dom_html_element_get_title)(struct dom_html_element *element,
- dom_string **title);
- dom_exception (*dom_html_element_set_title)(struct dom_html_element *element,
- dom_string *title);
- dom_exception (*dom_html_element_get_lang)(struct dom_html_element *element,
- dom_string **lang);
- dom_exception (*dom_html_element_set_lang)(struct dom_html_element *element,
- dom_string *lang);
- dom_exception (*dom_html_element_get_dir)(struct dom_html_element *element,
- dom_string **dir);
- dom_exception (*dom_html_element_set_dir)(struct dom_html_element *element,
- dom_string *dir);
- dom_exception (*dom_html_element_get_class_name)(struct dom_html_element *element,
- dom_string **class_name);
- dom_exception (*dom_html_element_set_class_name)(struct dom_html_element *element,
- dom_string *class_name);
+ struct dom_element_vtable base;
+
+ dom_exception (*dom_html_element_get_id)(
+ struct dom_html_element *element,
+ dom_string **id);
+ dom_exception (*dom_html_element_set_id)(
+ struct dom_html_element *element,
+ dom_string *id);
+ dom_exception (*dom_html_element_get_title)(
+ struct dom_html_element *element,
+ dom_string **title);
+ dom_exception (*dom_html_element_set_title)(
+ struct dom_html_element *element,
+ dom_string *title);
+ dom_exception (*dom_html_element_get_lang)(
+ struct dom_html_element *element,
+ dom_string **lang);
+ dom_exception (*dom_html_element_set_lang)(
+ struct dom_html_element *element,
+ dom_string *lang);
+ dom_exception (*dom_html_element_get_dir)(
+ struct dom_html_element *element,
+ dom_string **dir);
+ dom_exception (*dom_html_element_set_dir)(
+ struct dom_html_element *element,
+ dom_string *dir);
+ dom_exception (*dom_html_element_get_class_name)(
+ struct dom_html_element *element,
+ dom_string **class_name);
+ dom_exception (*dom_html_element_set_class_name)(
+ struct dom_html_element *element,
+ dom_string *class_name);
+
+ /* This is for providing clients with a convienent way to deal
+ * with html elements with a specific tag name. */
+ dom_exception (*dom_html_element_get_tag_type)(
+ const struct dom_html_element *element,
+ dom_html_element_type *type);
} dom_html_element_vtable;
-static inline dom_exception dom_html_element_get_id(struct dom_html_element *element,
- dom_string **id)
+static inline dom_exception dom_html_element_get_id(
+ struct dom_html_element *element, dom_string **id)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_get_id(element, id);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_get_id(element, id);
}
#define dom_html_element_get_id(e, id) dom_html_element_get_id( \
(dom_html_element *) (e), (id))
-static inline dom_exception dom_html_element_set_id(struct dom_html_element *element,
- dom_string *id)
+static inline dom_exception dom_html_element_set_id(
+ struct dom_html_element *element, dom_string *id)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_set_id(element, id);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_set_id(element, id);
}
#define dom_html_element_set_id(e, id) dom_html_element_set_id( \
(dom_html_element *) (e), (id))
-static inline dom_exception dom_html_element_get_title(struct dom_html_element *element,
- dom_string **title)
+static inline dom_exception dom_html_element_get_title(
+ struct dom_html_element *element, dom_string **title)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_get_title(element, title);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_get_title(element, title);
}
#define dom_html_element_get_title(e, title) dom_html_element_get_title( \
(dom_html_element *) (e), (title))
-static inline dom_exception dom_html_element_set_title(struct dom_html_element *element,
- dom_string *title)
+static inline dom_exception dom_html_element_set_title(
+ struct dom_html_element *element, dom_string *title)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_set_title(element, title);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_set_title(element, title);
}
#define dom_html_element_set_title(e, title) dom_html_element_set_title( \
(dom_html_element *) (e), (title))
-static inline dom_exception dom_html_element_get_lang(struct dom_html_element *element,
- dom_string **lang)
+static inline dom_exception dom_html_element_get_lang(
+ struct dom_html_element *element, dom_string **lang)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_get_lang(element, lang);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_get_lang(element, lang);
}
#define dom_html_element_get_lang(e, lang) dom_html_element_get_lang( \
(dom_html_element *) (e), (lang))
-static inline dom_exception dom_html_element_set_lang(struct dom_html_element *element,
- dom_string *lang)
+static inline dom_exception dom_html_element_set_lang(
+ struct dom_html_element *element, dom_string *lang)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_set_lang(element, lang);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_set_lang(element, lang);
}
#define dom_html_element_set_lang(e, lang) dom_html_element_set_lang( \
(dom_html_element *) (e), (lang))
-static inline dom_exception dom_html_element_get_dir(struct dom_html_element *element,
- dom_string **dir)
+static inline dom_exception dom_html_element_get_dir(
+ struct dom_html_element *element, dom_string **dir)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_get_dir(element, dir);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_get_dir(element, dir);
}
#define dom_html_element_get_dir(e, dir) dom_html_element_get_dir( \
(dom_html_element *) (e), (dir))
-static inline dom_exception dom_html_element_set_dir(struct dom_html_element *element,
- dom_string *dir)
+static inline dom_exception dom_html_element_set_dir(
+ struct dom_html_element *element, dom_string *dir)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_set_dir(element, dir);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_set_dir(element, dir);
}
#define dom_html_element_set_dir(e, dir) dom_html_element_set_dir( \
(dom_html_element *) (e), (dir))
-static inline dom_exception dom_html_element_get_class_name(struct dom_html_element *element,
- dom_string **class_name)
+static inline dom_exception dom_html_element_get_class_name(
+ struct dom_html_element *element, dom_string **class_name)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_get_class_name(element, class_name);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_get_class_name(element, class_name);
}
-#define dom_html_element_get_class_name(e, class_name) dom_html_element_get_class_name( \
- (dom_html_element *) (e), (class_name))
+#define dom_html_element_get_class_name(e, class_name) \
+ dom_html_element_get_class_name((dom_html_element *) (e), \
+ (class_name))
-static inline dom_exception dom_html_element_set_class_name(struct dom_html_element *element,
- dom_string *class_name)
+static inline dom_exception dom_html_element_set_class_name(
+ struct dom_html_element *element, dom_string *class_name)
{
- return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
- dom_html_element_set_class_name(element, class_name);
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_set_class_name(element, class_name);
}
-#define dom_html_element_set_class_name(e, class_name) dom_html_element_set_class_name( \
- (dom_html_element *) (e), (class_name))
+#define dom_html_element_set_class_name(e, class_name) \
+ dom_html_element_set_class_name((dom_html_element *) (e), \
+ (class_name))
+
+static inline dom_exception dom_html_element_get_tag_type(
+ const struct dom_html_element *element,
+ dom_html_element_type *type)
+{
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_get_tag_type(element, type);
+}
+#define dom_html_element_get_tag_type(e, type) \
+ dom_html_element_get_tag_type((const dom_html_element *) (e), \
+ (type))
#endif
diff --git a/src/html/html_anchor_element.c b/src/html/html_anchor_element.c
index 5ad473b..e23ae45 100644
--- a/src/html/html_anchor_element.c
+++ b/src/html/html_anchor_element.c
@@ -28,12 +28,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_anchor_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_anchor_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_anchor_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_anchor_element **ele)
{
struct dom_node_internal *node;
@@ -47,23 +47,21 @@ dom_exception _dom_html_anchor_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_anchor_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_anchor_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_anchor_element object
*
- * \param doc The document object
- * \param ele The dom_html_anchor_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_anchor_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_anchor_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_anchor_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_anchor_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_A],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_anchor_element.h b/src/html/html_anchor_element.h
index a9f5b5b..b79daf9 100644
--- a/src/html/html_anchor_element.h
+++ b/src/html/html_anchor_element.h
@@ -19,13 +19,13 @@ struct dom_html_anchor_element {
};
/* Create a dom_html_anchor_element object */
-dom_exception _dom_html_anchor_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_anchor_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_anchor_element **ele);
/* Initialise a dom_html_anchor_element object */
-dom_exception _dom_html_anchor_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_anchor_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_anchor_element *ele);
/* Finalise a dom_html_anchor_element object */
diff --git a/src/html/html_applet_element.c b/src/html/html_applet_element.c
index dedcbc5..2a28293 100644
--- a/src/html/html_applet_element.c
+++ b/src/html/html_applet_element.c
@@ -28,12 +28,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_applet_element applet
*
- * \param doc The document applet
- * \param ele The returned element applet
+ * \param params The html element creation parameters
+ * \param ele The returned element applet
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_applet_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_applet_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_applet_element **ele)
{
struct dom_node_internal *node;
@@ -47,23 +47,21 @@ dom_exception _dom_html_applet_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_applet_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_applet_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_applet_element applet
*
- * \param doc The document applet
- * \param ele The dom_html_applet_element applet
+ * \param params The html element creation parameters
+ * \param ele The dom_html_applet_element applet
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_applet_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_applet_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_applet_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_APPLET],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_applet_element.h b/src/html/html_applet_element.h
index 21e6d7a..20bef1f 100644
--- a/src/html/html_applet_element.h
+++ b/src/html/html_applet_element.h
@@ -19,13 +19,13 @@ struct dom_html_applet_element {
};
/* Create a dom_html_applet_element object */
-dom_exception _dom_html_applet_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_applet_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_applet_element **ele);
/* Initialise a dom_html_applet_element object */
-dom_exception _dom_html_applet_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_applet_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_applet_element *ele);
/* Finalise a dom_html_applet_element object */
diff --git a/src/html/html_area_element.c b/src/html/html_area_element.c
index b3ca8dd..4a2cefb 100644
--- a/src/html/html_area_element.c
+++ b/src/html/html_area_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_area_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_area_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_area_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_area_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_area_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_area_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_area_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_area_element object
*
- * \param doc The document object
- * \param ele The dom_html_area_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_area_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_area_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_area_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_area_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_AREA],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_area_element.h b/src/html/html_area_element.h
index a45d1df..73462b2 100644
--- a/src/html/html_area_element.h
+++ b/src/html/html_area_element.h
@@ -19,13 +19,13 @@ struct dom_html_area_element {
};
/* Create a dom_html_area_element object */
-dom_exception _dom_html_area_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_area_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_area_element **ele);
/* Initialise a dom_html_area_element object */
-dom_exception _dom_html_area_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_area_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_area_element *ele);
/* Finalise a dom_html_area_element object */
diff --git a/src/html/html_base_element.c b/src/html/html_base_element.c
index 55bbd94..cda0707 100644
--- a/src/html/html_base_element.c
+++ b/src/html/html_base_element.c
@@ -23,12 +23,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_base_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_base_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_base_element **ele)
{
struct dom_node_internal *node;
@@ -42,23 +42,21 @@ dom_exception _dom_html_base_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_base_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_base_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_base_element object
*
- * \param doc The document object
- * \param ele The dom_html_base_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_base_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_base_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_base_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_BASE],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_base_element.h b/src/html/html_base_element.h
index 3113635..608b99f 100644
--- a/src/html/html_base_element.h
+++ b/src/html/html_base_element.h
@@ -18,13 +18,13 @@ struct dom_html_base_element {
};
/* Create a dom_html_base_element object */
-dom_exception _dom_html_base_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_base_element **ele);
/* Initialise a dom_html_base_element object */
-dom_exception _dom_html_base_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_base_element *ele);
/* Finalise a dom_html_base_element object */
diff --git a/src/html/html_basefont_element.c b/src/html/html_basefont_element.c
index f8e9249..eab5a79 100644
--- a/src/html/html_basefont_element.c
+++ b/src/html/html_basefont_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_base_font_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_font_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_base_font_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_base_font_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_base_font_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_base_font_element object
*
- * \param doc The document object
- * \param ele The dom_html_base_font_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_base_font_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_base_font_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_font_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_base_font_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_BASEFONT],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_basefont_element.h b/src/html/html_basefont_element.h
index e6427ec..90e886e 100644
--- a/src/html/html_basefont_element.h
+++ b/src/html/html_basefont_element.h
@@ -19,13 +19,13 @@ struct dom_html_base_font_element {
};
/* Create a dom_html_base_font_element object */
-dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_font_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_base_font_element **ele);
/* Initialise a dom_html_base_font_element object */
-dom_exception _dom_html_base_font_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_base_font_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_base_font_element *ele);
/* Finalise a dom_html_base_font_element object */
diff --git a/src/html/html_body_element.c b/src/html/html_body_element.c
index f63583e..655fdb0 100644
--- a/src/html/html_body_element.c
+++ b/src/html/html_body_element.c
@@ -25,12 +25,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_body_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_body_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_body_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_body_element **ele)
{
struct dom_node_internal *node;
@@ -44,23 +44,21 @@ dom_exception _dom_html_body_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_body_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_body_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_body_element object
*
- * \param doc The document object
- * \param ele The dom_html_body_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_body_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_body_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_body_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_body_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_BODY],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_body_element.h b/src/html/html_body_element.h
index 2763680..765c44d 100644
--- a/src/html/html_body_element.h
+++ b/src/html/html_body_element.h
@@ -18,13 +18,13 @@ struct dom_html_body_element {
};
/* Create a dom_html_body_element object */
-dom_exception _dom_html_body_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_body_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_body_element **ele);
/* Initialise a dom_html_body_element object */
-dom_exception _dom_html_body_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_body_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_body_element *ele);
/* Finalise a dom_html_body_element object */
diff --git a/src/html/html_br_element.c b/src/html/html_br_element.c
index ec5acf6..0cc9194 100644
--- a/src/html/html_br_element.c
+++ b/src/html/html_br_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_br_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_br_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_br_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_br_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_br_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_br_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_br_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_br_element object
*
- * \param doc The document object
- * \param ele The dom_html_br_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_br_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_br_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_br_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_br_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_BR],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_br_element.h b/src/html/html_br_element.h
index ff2df3d..75cbc49 100644
--- a/src/html/html_br_element.h
+++ b/src/html/html_br_element.h
@@ -19,13 +19,13 @@ struct dom_html_br_element {
};
/* Create a dom_html_br_element object */
-dom_exception _dom_html_br_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_br_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_br_element **ele);
/* Initialise a dom_html_br_element object */
-dom_exception _dom_html_br_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_br_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_br_element *ele);
/* Finalise a dom_html_br_element object */
diff --git a/src/html/html_button_element.c b/src/html/html_button_element.c
index 28b694b..a9c34d5 100644
--- a/src/html/html_button_element.c
+++ b/src/html/html_button_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_button_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_button_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_button_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_button_element **ele)
{
struct dom_node_internal *node;
@@ -46,25 +46,23 @@ dom_exception _dom_html_button_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_button_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_button_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_button_element object
*
- * \param doc The document object
- * \param ele The dom_html_button_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_button_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_button_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_button_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_button_element *ele)
{
ele->form = NULL;
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_BUTTON],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_button_element.h b/src/html/html_button_element.h
index 18d0250..9734106 100644
--- a/src/html/html_button_element.h
+++ b/src/html/html_button_element.h
@@ -20,13 +20,13 @@ struct dom_html_button_element {
};
/* Create a dom_html_button_element object */
-dom_exception _dom_html_button_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_button_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_button_element **ele);
/* Initialise a dom_html_button_element object */
-dom_exception _dom_html_button_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_button_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_button_element *ele);
/* Finalise a dom_html_button_element object */
diff --git a/src/html/html_directory_element.c b/src/html/html_directory_element.c
index 1e06074..e50a353 100644
--- a/src/html/html_directory_element.c
+++ b/src/html/html_directory_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_directory_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_directory_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_directory_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_directory_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_directory_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_directory_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_directory_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_directory_element object
*
- * \param doc The document object
- * \param ele The dom_html_directory_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_directory_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_directory_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_directory_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_directory_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_DIR],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_directory_element.h b/src/html/html_directory_element.h
index 9f3fe2b..14497f6 100644
--- a/src/html/html_directory_element.h
+++ b/src/html/html_directory_element.h
@@ -19,13 +19,13 @@ struct dom_html_directory_element {
};
/* Create a dom_html_directory_element object */
-dom_exception _dom_html_directory_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_directory_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_directory_element **ele);
/* Initialise a dom_html_directory_element object */
-dom_exception _dom_html_directory_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_directory_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_directory_element *ele);
/* Finalise a dom_html_directory_element object */
diff --git a/src/html/html_div_element.c b/src/html/html_div_element.c
index f5ef051..5ebb971 100644
--- a/src/html/html_div_element.c
+++ b/src/html/html_div_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_div_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_div_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_div_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_div_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_div_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_div_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_div_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_div_element object
*
- * \param doc The document object
- * \param ele The dom_html_div_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_div_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_div_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_div_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_div_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_DIV],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_div_element.h b/src/html/html_div_element.h
index 62d1c3f..931d201 100644
--- a/src/html/html_div_element.h
+++ b/src/html/html_div_element.h
@@ -19,13 +19,13 @@ struct dom_html_div_element {
};
/* Create a dom_html_div_element object */
-dom_exception _dom_html_div_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_div_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_div_element **ele);
/* Initialise a dom_html_div_element object */
-dom_exception _dom_html_div_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_div_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_div_element *ele);
/* Finalise a dom_html_div_element object */
diff --git a/src/html/html_dlist_element.c b/src/html/html_dlist_element.c
index 38e3276..e2fccc9 100644
--- a/src/html/html_dlist_element.c
+++ b/src/html/html_dlist_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_dlist_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_dlist_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_dlist_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_dlist_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_dlist_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_dlist_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_dlist_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_dlist_element object
*
- * \param doc The document object
- * \param ele The dom_html_dlist_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_dlist_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_dlist_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_dlist_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_dlist_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_DL],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_dlist_element.h b/src/html/html_dlist_element.h
index 06d5634..aeca232 100644
--- a/src/html/html_dlist_element.h
+++ b/src/html/html_dlist_element.h
@@ -19,13 +19,13 @@ struct dom_html_dlist_element {
};
/* Create a dom_html_dlist_element object */
-dom_exception _dom_html_dlist_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_dlist_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_dlist_element **ele);
/* Initialise a dom_html_dlist_element object */
-dom_exception _dom_html_dlist_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_dlist_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_dlist_element *ele);
/* Finalise a dom_html_dlist_element object */
diff --git a/src/html/html_document.c b/src/html/html_document.c
index 839cf99..0d9ccc7 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -493,106 +493,108 @@ _dom_html_document_create_element_internal(
dom_html_element **result)
{
dom_exception exc;
- dom_string *tag_name;
- dom_html_element_type type;
+ struct dom_html_element_create_params params;
- exc = dom_string_toupper(in_tag_name, true, &tag_name);
+ exc = dom_string_toupper(in_tag_name, true, ¶ms.name);
if (exc != DOM_NO_ERR)
return exc;
- type = _dom_html_document_get_element_type(html, tag_name);
+ params.type = _dom_html_document_get_element_type(html, params.name);
+ params.doc = html;
+ params.namespace = namespace;
+ params.prefix = prefix;
- switch(type) {
+ switch(params.type) {
case DOM_HTML_ELEMENT_TYPE__COUNT:
- assert(type != DOM_HTML_ELEMENT_TYPE__COUNT);
+ assert(params.type != DOM_HTML_ELEMENT_TYPE__COUNT);
break;
case DOM_HTML_ELEMENT_TYPE_HTML:
- exc = _dom_html_html_element_create(html, namespace, prefix,
+ exc = _dom_html_html_element_create(¶ms,
(dom_html_html_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_HEAD:
- exc = _dom_html_head_element_create(html, namespace, prefix,
+ exc = _dom_html_head_element_create(¶ms,
(dom_html_head_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_META:
- exc = _dom_html_meta_element_create(html, namespace, prefix,
+ exc = _dom_html_meta_element_create(¶ms,
(dom_html_meta_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_BASE:
- exc = _dom_html_base_element_create(html, namespace, prefix,
+ exc = _dom_html_base_element_create(¶ms,
(dom_html_base_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_TITLE:
- exc = _dom_html_title_element_create(html, namespace, prefix,
+ exc = _dom_html_title_element_create(¶ms,
(dom_html_title_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_BODY:
- exc = _dom_html_body_element_create(html, namespace, prefix,
+ exc = _dom_html_body_element_create(¶ms,
(dom_html_body_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_DIV:
- exc = _dom_html_div_element_create(html, namespace, prefix,
+ exc = _dom_html_div_element_create(¶ms,
(dom_html_div_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_FORM:
- exc = _dom_html_form_element_create(html, namespace, prefix,
+ exc = _dom_html_form_element_create(¶ms,
(dom_html_form_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_LINK:
- exc = _dom_html_link_element_create(html, namespace, prefix,
+ exc = _dom_html_link_element_create(¶ms,
(dom_html_link_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_BUTTON:
- exc = _dom_html_button_element_create(html, namespace, prefix,
+ exc = _dom_html_button_element_create(¶ms,
(dom_html_button_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_INPUT:
- exc = _dom_html_input_element_create(html, namespace, prefix,
+ exc = _dom_html_input_element_create(¶ms,
(dom_html_input_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_TEXTAREA:
- exc = _dom_html_text_area_element_create(html, namespace,
- prefix, (dom_html_text_area_element **) result);
+ exc = _dom_html_text_area_element_create(¶ms,
+ (dom_html_text_area_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_OPTGROUP:
- exc = _dom_html_opt_group_element_create(html, namespace,
- prefix, (dom_html_opt_group_element **) result);
+ exc = _dom_html_opt_group_element_create(¶ms,
+ (dom_html_opt_group_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_OPTION:
- exc = _dom_html_option_element_create(html, namespace, prefix,
+ exc = _dom_html_option_element_create(¶ms,
(dom_html_option_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_SELECT:
- exc = _dom_html_select_element_create(html, namespace, prefix,
+ exc = _dom_html_select_element_create(¶ms,
(dom_html_select_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_HR:
- exc = _dom_html_hr_element_create(html, namespace, prefix,
+ exc = _dom_html_hr_element_create(¶ms,
(dom_html_hr_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_DL:
- exc = _dom_html_dlist_element_create(html, namespace, prefix,
+ exc = _dom_html_dlist_element_create(¶ms,
(dom_html_dlist_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_DIR:
- exc = _dom_html_directory_element_create(html, namespace,
- prefix, (dom_html_directory_element **) result);
+ exc = _dom_html_directory_element_create(¶ms,
+ (dom_html_directory_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_MENU:
- exc = _dom_html_menu_element_create(html, namespace, prefix,
+ exc = _dom_html_menu_element_create(¶ms,
(dom_html_menu_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_FIELDSET:
- exc = _dom_html_field_set_element_create(html, namespace,
- prefix, (dom_html_field_set_element **) result);
+ exc = _dom_html_field_set_element_create(¶ms,
+ (dom_html_field_set_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_LEGEND:
- exc = _dom_html_legend_element_create(html, namespace, prefix,
+ exc = _dom_html_legend_element_create(¶ms,
(dom_html_legend_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_P:
- exc = _dom_html_paragraph_element_create(html, namespace,
- prefix, (dom_html_paragraph_element **) result);
+ exc = _dom_html_paragraph_element_create(¶ms,
+ (dom_html_paragraph_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_H1:
case DOM_HTML_ELEMENT_TYPE_H2:
@@ -600,145 +602,137 @@ _dom_html_document_create_element_internal(
case DOM_HTML_ELEMENT_TYPE_H4:
case DOM_HTML_ELEMENT_TYPE_H5:
case DOM_HTML_ELEMENT_TYPE_H6:
- exc = _dom_html_heading_element_create(html, tag_name,
- namespace, prefix,
+ exc = _dom_html_heading_element_create(¶ms,
(dom_html_heading_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_BLOCKQUOTE:
case DOM_HTML_ELEMENT_TYPE_Q:
- exc = _dom_html_quote_element_create(html, tag_name,
- namespace, prefix,
+ exc = _dom_html_quote_element_create(¶ms,
(dom_html_quote_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_PRE:
- exc = _dom_html_pre_element_create(html, namespace, prefix,
+ exc = _dom_html_pre_element_create(¶ms,
(dom_html_pre_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_BR:
- exc = _dom_html_br_element_create(html, namespace, prefix,
+ exc = _dom_html_br_element_create(¶ms,
(dom_html_br_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_LABEL:
- exc = _dom_html_label_element_create(html, namespace, prefix,
+ exc = _dom_html_label_element_create(¶ms,
(dom_html_label_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_UL:
- exc = _dom_html_u_list_element_create(html, namespace, prefix,
+ exc = _dom_html_u_list_element_create(¶ms,
(dom_html_u_list_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_OL:
- exc = _dom_html_olist_element_create(html, namespace, prefix,
+ exc = _dom_html_olist_element_create(¶ms,
(dom_html_olist_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_LI:
- exc = _dom_html_li_element_create(html, namespace, prefix,
+ exc = _dom_html_li_element_create(¶ms,
(dom_html_li_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_FONT:
- exc = _dom_html_font_element_create(html, namespace, prefix,
+ exc = _dom_html_font_element_create(¶ms,
(dom_html_font_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_DEL:
case DOM_HTML_ELEMENT_TYPE_INS:
- exc = _dom_html_mod_element_create(html, tag_name, namespace,
- prefix, (dom_html_mod_element **) result);
+ exc = _dom_html_mod_element_create(¶ms,
+ (dom_html_mod_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_A:
- exc = _dom_html_anchor_element_create(html, namespace, prefix,
+ exc = _dom_html_anchor_element_create(¶ms,
(dom_html_anchor_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_BASEFONT:
- exc = _dom_html_base_font_element_create(html,
- namespace, prefix,
+ exc = _dom_html_base_font_element_create(¶ms,
(dom_html_base_font_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_IMG:
- exc = _dom_html_image_element_create(html, namespace, prefix,
+ exc = _dom_html_image_element_create(¶ms,
(dom_html_image_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_OBJECT:
- exc = _dom_html_object_element_create(html, namespace, prefix,
+ exc = _dom_html_object_element_create(¶ms,
(dom_html_object_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_PARAM:
- exc = _dom_html_param_element_create(html, namespace, prefix,
+ exc = _dom_html_param_element_create(¶ms,
(dom_html_param_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_APPLET:
- exc = _dom_html_applet_element_create(html, namespace, prefix,
+ exc = _dom_html_applet_element_create(¶ms,
(dom_html_applet_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_MAP:
- exc = _dom_html_map_element_create(html, namespace, prefix,
+ exc = _dom_html_map_element_create(¶ms,
(dom_html_map_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_AREA:
- exc = _dom_html_area_element_create(html, namespace, prefix,
+ exc = _dom_html_area_element_create(¶ms,
(dom_html_area_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_SCRIPT:
- exc = _dom_html_script_element_create(html, namespace, prefix,
+ exc = _dom_html_script_element_create(¶ms,
(dom_html_script_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_CAPTION:
- exc = _dom_html_table_caption_element_create(html,
- namespace, prefix,
+ exc = _dom_html_table_caption_element_create(¶ms,
(dom_html_table_caption_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_TD:
case DOM_HTML_ELEMENT_TYPE_TH:
- exc = _dom_html_table_cell_element_create(html, tag_name,
- namespace, prefix,
+ exc = _dom_html_table_cell_element_create(¶ms,
(dom_html_table_cell_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_COL:
case DOM_HTML_ELEMENT_TYPE_COLGROUP:
- exc = _dom_html_table_col_element_create(html, tag_name,
- namespace, prefix,
+ exc = _dom_html_table_col_element_create(¶ms,
(dom_html_table_col_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_THEAD:
case DOM_HTML_ELEMENT_TYPE_TBODY:
case DOM_HTML_ELEMENT_TYPE_TFOOT:
- exc = _dom_html_table_section_element_create(html, tag_name,
- namespace, prefix,
+ exc = _dom_html_table_section_element_create(¶ms,
(dom_html_table_section_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_TABLE:
- exc = _dom_html_table_element_create(html, namespace, prefix,
+ exc = _dom_html_table_element_create(¶ms,
(dom_html_table_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_TR:
- exc = _dom_html_table_row_element_create(html, namespace,
- prefix, (dom_html_table_row_element **) result);
+ exc = _dom_html_table_row_element_create(¶ms,
+ (dom_html_table_row_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_STYLE:
- exc = _dom_html_style_element_create(html,
+ exc = _dom_html_style_element_create(¶ms,
(dom_html_style_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_FRAMESET:
- exc = _dom_html_frame_set_element_create(html, namespace,
- prefix, (dom_html_frame_set_element **) result);
+ exc = _dom_html_frame_set_element_create(¶ms,
+ (dom_html_frame_set_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_FRAME:
- exc = _dom_html_frame_element_create(html, namespace, prefix,
+ exc = _dom_html_frame_element_create(¶ms,
(dom_html_frame_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_IFRAME:
- exc = _dom_html_iframe_element_create(html, namespace, prefix,
+ exc = _dom_html_iframe_element_create(¶ms,
(dom_html_iframe_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE_ISINDEX:
- exc = _dom_html_isindex_element_create(html, namespace, prefix,
+ exc = _dom_html_isindex_element_create(¶ms,
(dom_html_isindex_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE__UNKNOWN:
- exc = _dom_html_element_create(html, tag_name, namespace,
- prefix, result);
+ exc = _dom_html_element_create(¶ms, result);
break;
}
- dom_string_unref(tag_name);
+ dom_string_unref(params.name);
return exc;
}
diff --git a/src/html/html_element.c b/src/html/html_element.c
index d436898..85380ff 100644
--- a/src/html/html_element.c
+++ b/src/html/html_element.c
@@ -38,9 +38,9 @@ static struct dom_element_protected_vtable _dom_html_element_protect_vtable = {
DOM_ELEMENT_PROTECT_VTABLE
};
-dom_exception _dom_html_element_create(struct dom_html_document *doc,
- dom_string *name, dom_string *namespace,
- dom_string *prefix, struct dom_html_element **result)
+dom_exception _dom_html_element_create(
+ struct dom_html_element_create_params *params,
+ struct dom_html_element **result)
{
dom_exception error;
dom_html_element *el;
@@ -52,8 +52,7 @@ dom_exception _dom_html_element_create(struct dom_html_document *doc,
el->base.base.base.vtable = &_dom_html_element_vtable;
el->base.base.vtable = &_dom_html_element_protect_vtable;
- error = _dom_html_element_initialise(doc, el, name, namespace,
- prefix);
+ error = _dom_html_element_initialise(params, el);
if (error != DOM_NO_ERR) {
free(el);
return error;
@@ -64,13 +63,16 @@ dom_exception _dom_html_element_create(struct dom_html_document *doc,
return DOM_NO_ERR;
}
-dom_exception _dom_html_element_initialise(struct dom_html_document *doc,
- struct dom_html_element *el, dom_string *name,
- dom_string *namespace, dom_string *prefix)
+dom_exception _dom_html_element_initialise(
+ struct dom_html_element_create_params *params,
+ struct dom_html_element *el)
{
dom_exception err;
- err = _dom_element_initialise(&doc->base, &el->base, name, namespace, prefix);
+ el->type = params->type;
+
+ err = _dom_element_initialise(¶ms->doc->base, &el->base,
+ params->name, params->namespace, params->prefix);
if (err != DOM_NO_ERR)
return err;
@@ -280,6 +282,24 @@ dom_exception _dom_html_element_get_elements_by_tag_name_ns(
return err;
}
+/**
+ * Retrieve an HTML element's tag type.
+ *
+ * \param element The element to get the tag type of.
+ * \param type Updated to the tag type of the element.
+ * \return DOM_NO_ERR
+ *
+ * Elements with non-standard tags will be DOM_HTML_ELEMENT_TYPE__UNKNOWN.
+ */
+dom_exception _dom_html_element_get_tag_type(
+ const struct dom_html_element *element,
+ dom_html_element_type *type)
+{
+ *type = element->type;
+
+ return DOM_NO_ERR;
+}
+
/*-----------------------------------------------------------------------*/
/* Common functions */
diff --git a/src/html/html_element.h b/src/html/html_element.h
index e32b09e..92c96ab 100644
--- a/src/html/html_element.h
+++ b/src/html/html_element.h
@@ -22,15 +22,24 @@ struct dom_html_document;
struct dom_html_element {
struct dom_element base;
/**< The base class */
+ dom_html_element_type type;
};
-dom_exception _dom_html_element_create(struct dom_html_document *doc,
- dom_string *name, dom_string *namespace,
- dom_string *prefix, dom_html_element **result);
+struct dom_html_element_create_params {
+ dom_html_element_type type;
+ struct dom_html_document *doc;
+ dom_string *name;
+ dom_string *namespace;
+ dom_string *prefix;
+};
+
+dom_exception _dom_html_element_create(
+ struct dom_html_element_create_params *params,
+ dom_html_element **result);
-dom_exception _dom_html_element_initialise(struct dom_html_document *doc,
- struct dom_html_element *el, dom_string *name,
- dom_string *namespace, dom_string *prefix);
+dom_exception _dom_html_element_initialise(
+ struct dom_html_element_create_params *params,
+ struct dom_html_element *el);
void _dom_html_element_finalise(struct dom_html_element *ele);
@@ -115,6 +124,8 @@ dom_exception _dom_html_element_get_class_name(dom_html_element *element,
dom_string **class_name);
dom_exception _dom_html_element_set_class_name(dom_html_element *element,
dom_string *class_name);
+dom_exception _dom_html_element_get_tag_type(const dom_html_element *element,
+ dom_html_element_type *type);
#define DOM_HTML_ELEMENT_VTABLE \
_dom_html_element_get_id, \
@@ -126,7 +137,8 @@ dom_exception _dom_html_element_set_class_name(dom_html_element *element,
_dom_html_element_get_dir, \
_dom_html_element_set_dir, \
_dom_html_element_get_class_name, \
- _dom_html_element_set_class_name
+ _dom_html_element_set_class_name, \
+ _dom_html_element_get_tag_type
/* Some common functions used by all child classes */
dom_exception dom_html_element_get_bool_property(dom_html_element *ele,
diff --git a/src/html/html_fieldset_element.c b/src/html/html_fieldset_element.c
index 15ea812..c6224bf 100644
--- a/src/html/html_fieldset_element.c
+++ b/src/html/html_fieldset_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_field_set_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_field_set_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_field_set_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_field_set_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_field_set_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_field_set_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_field_set_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_field_set_element object
*
- * \param doc The document object
- * \param ele The dom_html_field_set_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_field_set_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_field_set_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_field_set_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_field_set_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_FIELDSET],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_fieldset_element.h b/src/html/html_fieldset_element.h
index 8ae1d59..0560cf2 100644
--- a/src/html/html_fieldset_element.h
+++ b/src/html/html_fieldset_element.h
@@ -19,13 +19,13 @@ struct dom_html_field_set_element {
};
/* Create a dom_html_field_set_element object */
-dom_exception _dom_html_field_set_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_field_set_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_field_set_element **ele);
/* Initialise a dom_html_field_set_element object */
-dom_exception _dom_html_field_set_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_field_set_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_field_set_element *ele);
/* Finalise a dom_html_field_set_element object */
diff --git a/src/html/html_font_element.c b/src/html/html_font_element.c
index 0be7ee5..b77d7b6 100644
--- a/src/html/html_font_element.c
+++ b/src/html/html_font_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_font_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_font_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_font_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_font_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_font_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_font_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_font_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_font_element object
*
- * \param doc The document object
- * \param ele The dom_html_font_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_font_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_font_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_font_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_font_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_FONT],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_font_element.h b/src/html/html_font_element.h
index 42a2ec4..41f22ce 100644
--- a/src/html/html_font_element.h
+++ b/src/html/html_font_element.h
@@ -19,13 +19,13 @@ struct dom_html_font_element {
};
/* Create a dom_html_font_element object */
-dom_exception _dom_html_font_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_font_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_font_element **ele);
/* Initialise a dom_html_font_element object */
-dom_exception _dom_html_font_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_font_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_font_element *ele);
/* Finalise a dom_html_font_element object */
diff --git a/src/html/html_form_element.c b/src/html/html_form_element.c
index ee62c02..42eb96f 100644
--- a/src/html/html_form_element.c
+++ b/src/html/html_form_element.c
@@ -34,12 +34,12 @@ static bool _dom_is_form_control(struct dom_node_internal *node, void *ctx);
/**
* Create a dom_html_form_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_form_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_form_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_form_element **ele)
{
struct dom_node_internal *node;
@@ -53,25 +53,23 @@ dom_exception _dom_html_form_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_form_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_form_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_form_element object
*
- * \param doc The document object
- * \param ele The dom_html_form_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_form_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_form_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_form_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_form_element *ele)
{
dom_exception err;
- err = _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_FORM],
- namespace, prefix);
+ err = _dom_html_element_initialise(params, &ele->base);
return err;
}
diff --git a/src/html/html_form_element.h b/src/html/html_form_element.h
index 67a1080..bab3ef8 100644
--- a/src/html/html_form_element.h
+++ b/src/html/html_form_element.h
@@ -20,13 +20,13 @@ struct dom_html_form_element {
};
/* Create a dom_html_form_element object */
-dom_exception _dom_html_form_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_form_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_form_element **ele);
/* Initialise a dom_html_form_element object */
-dom_exception _dom_html_form_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_form_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_form_element *ele);
/* Finalise a dom_html_form_element object */
diff --git a/src/html/html_frame_element.c b/src/html/html_frame_element.c
index b8b0a74..4835667 100644
--- a/src/html/html_frame_element.c
+++ b/src/html/html_frame_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_frame_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_frame_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_frame_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_frame_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_frame_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_frame_element object
*
- * \param doc The document object
- * \param ele The dom_html_frame_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_frame_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_frame_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_FRAME],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_frame_element.h b/src/html/html_frame_element.h
index d83c9fc..0bef1dc 100644
--- a/src/html/html_frame_element.h
+++ b/src/html/html_frame_element.h
@@ -19,13 +19,13 @@ struct dom_html_frame_element {
};
/* Create a dom_html_frame_element object */
-dom_exception _dom_html_frame_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_element **ele);
/* Initialise a dom_html_frame_element object */
-dom_exception _dom_html_frame_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_element *ele);
/* Finalise a dom_html_frame_element object */
diff --git a/src/html/html_frameset_element.c b/src/html/html_frameset_element.c
index 9d9680b..4af3c19 100644
--- a/src/html/html_frameset_element.c
+++ b/src/html/html_frameset_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_frame_set_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_frame_set_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_set_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_set_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_frame_set_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_frame_set_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_frame_set_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_frame_set_element object
*
- * \param doc The document object
- * \param ele The dom_html_frame_set_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_frame_set_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_frame_set_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_set_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_set_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_FRAMESET],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_frameset_element.h b/src/html/html_frameset_element.h
index dd4037a..7d97018 100644
--- a/src/html/html_frameset_element.h
+++ b/src/html/html_frameset_element.h
@@ -19,13 +19,13 @@ struct dom_html_frame_set_element {
};
/* Create a dom_html_frame_set_element object */
-dom_exception _dom_html_frame_set_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_set_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_set_element **ele);
/* Initialise a dom_html_frame_set_element object */
-dom_exception _dom_html_frame_set_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_frame_set_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_frame_set_element *ele);
/* Finalise a dom_html_frame_set_element object */
diff --git a/src/html/html_head_element.c b/src/html/html_head_element.c
index 7082cef..85665f3 100644
--- a/src/html/html_head_element.c
+++ b/src/html/html_head_element.c
@@ -23,12 +23,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_head_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_head_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_head_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_head_element **ele)
{
struct dom_node_internal *node;
@@ -42,23 +42,21 @@ dom_exception _dom_html_head_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_head_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_head_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_head_element object
*
- * \param doc The document object
- * \param ele The dom_html_head_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_head_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_head_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_head_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_head_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_HEAD],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_head_element.h b/src/html/html_head_element.h
index deb2d6a..08659fd 100644
--- a/src/html/html_head_element.h
+++ b/src/html/html_head_element.h
@@ -18,13 +18,13 @@ struct dom_html_head_element {
};
/* Create a dom_html_head_element object */
-dom_exception _dom_html_head_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_head_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_head_element **ele);
/* Initialise a dom_html_head_element object */
-dom_exception _dom_html_head_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_head_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_head_element *ele);
/* Finalise a dom_html_head_element object */
diff --git a/src/html/html_heading_element.c b/src/html/html_heading_element.c
index ce298fb..b81c55d 100644
--- a/src/html/html_heading_element.c
+++ b/src/html/html_heading_element.c
@@ -27,13 +27,13 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_heading_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_heading_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace,
- dom_string *prefix, struct dom_html_heading_element **ele)
+dom_exception _dom_html_heading_element_create(
+ struct dom_html_element_create_params *params,
+ struct dom_html_heading_element **ele)
{
struct dom_node_internal *node;
@@ -46,24 +46,21 @@ dom_exception _dom_html_heading_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_heading_element_initialise(doc,
- tag_name, namespace,
- prefix, *ele);
+ return _dom_html_heading_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_heading_element object
*
- * \param doc The document object
- * \param ele The dom_html_heading_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_heading_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_heading_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace,
- dom_string *prefix, struct dom_html_heading_element *ele)
+dom_exception _dom_html_heading_element_initialise(
+ struct dom_html_element_create_params *params,
+ struct dom_html_heading_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- tag_name, namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_heading_element.h b/src/html/html_heading_element.h
index fdd1c25..543f9a9 100644
--- a/src/html/html_heading_element.h
+++ b/src/html/html_heading_element.h
@@ -19,14 +19,14 @@ struct dom_html_heading_element {
};
/* Create a dom_html_heading_element object */
-dom_exception _dom_html_heading_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace,
- dom_string *prefix, struct dom_html_heading_element **ele);
+dom_exception _dom_html_heading_element_create(
+ struct dom_html_element_create_params *params,
+ struct dom_html_heading_element **ele);
/* Initialise a dom_html_heading_element object */
-dom_exception _dom_html_heading_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace,
- dom_string *prefix, struct dom_html_heading_element *ele);
+dom_exception _dom_html_heading_element_initialise(
+ struct dom_html_element_create_params *params,
+ struct dom_html_heading_element *ele);
/* Finalise a dom_html_heading_element object */
void _dom_html_heading_element_finalise(struct dom_html_heading_element *ele);
diff --git a/src/html/html_hr_element.c b/src/html/html_hr_element.c
index 7ecab7a..6d96c84 100644
--- a/src/html/html_hr_element.c
+++ b/src/html/html_hr_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_hr_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_hr_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_hr_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_hr_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_hr_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_hr_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_hr_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_hr_element object
*
- * \param doc The document object
- * \param ele The dom_html_hr_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_hr_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_hr_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_hr_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_hr_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_HR],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_hr_element.h b/src/html/html_hr_element.h
index c3cf717..63b5bbc 100644
--- a/src/html/html_hr_element.h
+++ b/src/html/html_hr_element.h
@@ -19,13 +19,13 @@ struct dom_html_hr_element {
};
/* Create a dom_html_hr_element object */
-dom_exception _dom_html_hr_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_hr_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_hr_element **ele);
/* Initialise a dom_html_hr_element object */
-dom_exception _dom_html_hr_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_hr_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_hr_element *ele);
/* Finalise a dom_html_hr_element object */
diff --git a/src/html/html_html_element.c b/src/html/html_html_element.c
index 0a91efe..dccc8a5 100644
--- a/src/html/html_html_element.c
+++ b/src/html/html_html_element.c
@@ -23,12 +23,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_html_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_html_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_html_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_html_element **ele)
{
struct dom_node_internal *node;
@@ -42,23 +42,21 @@ dom_exception _dom_html_html_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_html_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_html_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_html_element object
*
- * \param doc The document object
- * \param ele The dom_html_html_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_html_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_html_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_html_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_html_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_HTML],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_html_element.h b/src/html/html_html_element.h
index 61eb626..78da8f1 100644
--- a/src/html/html_html_element.h
+++ b/src/html/html_html_element.h
@@ -18,13 +18,13 @@ struct dom_html_html_element {
};
/* Create a dom_html_html_element object */
-dom_exception _dom_html_html_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_html_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_html_element **ele);
/* Initialise a dom_html_html_element object */
-dom_exception _dom_html_html_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_html_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_html_element *ele);
/* Finalise a dom_html_html_element object */
diff --git a/src/html/html_iframe_element.c b/src/html/html_iframe_element.c
index 80b39a7..5ff5d26 100644
--- a/src/html/html_iframe_element.c
+++ b/src/html/html_iframe_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_iframe_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_iframe_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_iframe_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_iframe_element **ele)
{
struct dom_node_internal *node;
@@ -46,24 +46,21 @@ dom_exception _dom_html_iframe_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_iframe_element_initialise(doc,
- namespace, prefix, *ele);
+ return _dom_html_iframe_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_iframe_element object
*
- * \param doc The document object
- * \param ele The dom_html_iframe_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_iframe_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_iframe_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_iframe_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_iframe_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_IFRAME],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_iframe_element.h b/src/html/html_iframe_element.h
index 2375adf..07ed091 100644
--- a/src/html/html_iframe_element.h
+++ b/src/html/html_iframe_element.h
@@ -19,13 +19,13 @@ struct dom_html_iframe_element {
};
/* Create a dom_html_iframe_element object */
-dom_exception _dom_html_iframe_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_iframe_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_iframe_element **ele);
/* Initialise a dom_html_iframe_element object */
-dom_exception _dom_html_iframe_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_iframe_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_iframe_element *ele);
/* Finalise a dom_html_iframe_element object */
diff --git a/src/html/html_image_element.c b/src/html/html_image_element.c
index 4c5a5f3..db8b8b5 100644
--- a/src/html/html_image_element.c
+++ b/src/html/html_image_element.c
@@ -28,12 +28,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_image_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_image_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_image_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_image_element **ele)
{
struct dom_node_internal *node;
@@ -47,23 +47,21 @@ dom_exception _dom_html_image_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_image_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_image_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_image_element object
*
- * \param doc The document object
- * \param ele The dom_html_image_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_image_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_image_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_image_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_image_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_IMG],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_image_element.h b/src/html/html_image_element.h
index ac73a1b..d17c513 100644
--- a/src/html/html_image_element.h
+++ b/src/html/html_image_element.h
@@ -19,13 +19,13 @@ struct dom_html_image_element {
};
/* Create a dom_html_image_element object */
-dom_exception _dom_html_image_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_image_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_image_element **ele);
/* Initialise a dom_html_image_element object */
-dom_exception _dom_html_image_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_image_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_image_element *ele);
/* Finalise a dom_html_image_element object */
diff --git a/src/html/html_input_element.c b/src/html/html_input_element.c
index a90ec40..2dc0dc3 100644
--- a/src/html/html_input_element.c
+++ b/src/html/html_input_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_input_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_input_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_input_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_input_element **ele)
{
struct dom_node_internal *node;
@@ -46,18 +46,18 @@ dom_exception _dom_html_input_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_input_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_input_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_input_element object
*
- * \param doc The document object
- * \param ele The dom_html_input_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_input_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_input_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_input_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_input_element *ele)
{
ele->form = NULL;
@@ -68,9 +68,7 @@ dom_exception _dom_html_input_element_initialise(struct dom_html_document *doc,
ele->checked = false;
ele->checked_set = false;
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_INPUT],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_input_element.h b/src/html/html_input_element.h
index b818b2e..b445888 100644
--- a/src/html/html_input_element.h
+++ b/src/html/html_input_element.h
@@ -26,13 +26,13 @@ struct dom_html_input_element {
};
/* Create a dom_html_input_element object */
-dom_exception _dom_html_input_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_input_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_input_element **ele);
/* Initialise a dom_html_input_element object */
-dom_exception _dom_html_input_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_input_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_input_element *ele);
/* Finalise a dom_html_input_element object */
diff --git a/src/html/html_isindex_element.c b/src/html/html_isindex_element.c
index 51611b3..82c7296 100644
--- a/src/html/html_isindex_element.c
+++ b/src/html/html_isindex_element.c
@@ -26,12 +26,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_isindex_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_isindex_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_isindex_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_isindex_element **ele)
{
struct dom_node_internal *node;
@@ -44,23 +44,21 @@ dom_exception _dom_html_isindex_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_isindex_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_isindex_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_isindex_element object
*
- * \param doc The document object
- * \param ele The dom_html_isindex_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_isindex_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_isindex_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_isindex_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_isindex_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_ISINDEX],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_isindex_element.h b/src/html/html_isindex_element.h
index a39170b..697e2eb 100644
--- a/src/html/html_isindex_element.h
+++ b/src/html/html_isindex_element.h
@@ -18,13 +18,13 @@ struct dom_html_isindex_element {
};
/* Create a dom_html_isindex_element object */
-dom_exception _dom_html_isindex_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_isindex_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_isindex_element **ele);
/* Initialise a dom_html_isindex_element object */
-dom_exception _dom_html_isindex_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_isindex_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_isindex_element *ele);
/* Finalise a dom_html_isindex_element object */
diff --git a/src/html/html_label_element.c b/src/html/html_label_element.c
index 2303892..e5730a2 100644
--- a/src/html/html_label_element.c
+++ b/src/html/html_label_element.c
@@ -25,12 +25,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_label_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_label_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_label_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_label_element **ele)
{
struct dom_node_internal *node;
@@ -44,23 +44,21 @@ dom_exception _dom_html_label_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_label_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_label_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_label_element object
*
- * \param doc The document object
- * \param ele The dom_html_label_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_label_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_label_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_label_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_label_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_LABEL],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_label_element.h b/src/html/html_label_element.h
index 36c817e..4eb042c 100644
--- a/src/html/html_label_element.h
+++ b/src/html/html_label_element.h
@@ -19,13 +19,13 @@ struct dom_html_label_element {
};
/* Create a dom_html_label_element object */
-dom_exception _dom_html_label_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_label_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_label_element **ele);
/* Initialise a dom_html_label_element object */
-dom_exception _dom_html_label_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_label_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_label_element *ele);
/* Finalise a dom_html_label_element object */
diff --git a/src/html/html_legend_element.c b/src/html/html_legend_element.c
index 1f297e2..842916f 100644
--- a/src/html/html_legend_element.c
+++ b/src/html/html_legend_element.c
@@ -29,12 +29,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_legend_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_legend_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_legend_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_legend_element **ele)
{
struct dom_node_internal *node;
@@ -48,23 +48,21 @@ dom_exception _dom_html_legend_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_legend_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_legend_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_legend_element object
*
- * \param doc The document object
- * \param ele The dom_html_legend_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_legend_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_legend_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_legend_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_legend_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_LEGEND],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_legend_element.h b/src/html/html_legend_element.h
index a656ae4..50b9b51 100644
--- a/src/html/html_legend_element.h
+++ b/src/html/html_legend_element.h
@@ -19,13 +19,13 @@ struct dom_html_legend_element {
};
/* Create a dom_html_legend_element object */
-dom_exception _dom_html_legend_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_legend_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_legend_element **ele);
/* Initialise a dom_html_legend_element object */
-dom_exception _dom_html_legend_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_legend_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_legend_element *ele);
/* Finalise a dom_html_legend_element object */
diff --git a/src/html/html_li_element.c b/src/html/html_li_element.c
index f2c560e..3af8fea 100644
--- a/src/html/html_li_element.c
+++ b/src/html/html_li_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_li_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_li_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *lifix,
+dom_exception _dom_html_li_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_li_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_li_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_li_element_initialise(doc, namespace, lifix, *ele);
+ return _dom_html_li_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_li_element object
*
- * \param doc The document object
- * \param ele The dom_html_li_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_li_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_li_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *lifix,
+dom_exception _dom_html_li_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_li_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_LI],
- namespace, lifix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_li_element.h b/src/html/html_li_element.h
index c50a2db..74dd5af 100644
--- a/src/html/html_li_element.h
+++ b/src/html/html_li_element.h
@@ -19,13 +19,13 @@ struct dom_html_li_element {
};
/* Create a dom_html_li_element object */
-dom_exception _dom_html_li_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *lifix,
+dom_exception _dom_html_li_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_li_element **ele);
/* Initialise a dom_html_li_element object */
-dom_exception _dom_html_li_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *lifix,
+dom_exception _dom_html_li_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_li_element *ele);
/* Finalise a dom_html_li_element object */
diff --git a/src/html/html_link_element.c b/src/html/html_link_element.c
index 8022a7b..10a2e7a 100644
--- a/src/html/html_link_element.c
+++ b/src/html/html_link_element.c
@@ -25,12 +25,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_link_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_link_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_link_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_link_element **ele)
{
struct dom_node_internal *node;
@@ -44,23 +44,21 @@ dom_exception _dom_html_link_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_link_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_link_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_link_element object
*
- * \param doc The document object
- * \param ele The dom_html_link_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_link_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_link_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_link_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_link_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_LINK],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_link_element.h b/src/html/html_link_element.h
index 960dcdc..d75b0ff 100644
--- a/src/html/html_link_element.h
+++ b/src/html/html_link_element.h
@@ -18,13 +18,13 @@ struct dom_html_link_element {
};
/* Create a dom_html_link_element object */
-dom_exception _dom_html_link_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_link_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_link_element **ele);
/* Initialise a dom_html_link_element object */
-dom_exception _dom_html_link_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_link_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_link_element *ele);
/* Finalise a dom_html_link_element object */
diff --git a/src/html/html_map_element.c b/src/html/html_map_element.c
index d20c3ce..980f002 100644
--- a/src/html/html_map_element.c
+++ b/src/html/html_map_element.c
@@ -29,12 +29,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_map_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_map_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_map_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_map_element **ele)
{
struct dom_node_internal *node;
@@ -48,23 +48,21 @@ dom_exception _dom_html_map_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_map_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_map_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_map_element object
*
- * \param doc The document object
- * \param ele The dom_html_map_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_map_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_map_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_map_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_map_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_MAP],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_map_element.h b/src/html/html_map_element.h
index 0230808..ede8a71 100644
--- a/src/html/html_map_element.h
+++ b/src/html/html_map_element.h
@@ -19,13 +19,13 @@ struct dom_html_map_element {
};
/* Create a dom_html_map_element object */
-dom_exception _dom_html_map_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_map_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_map_element **ele);
/* Initialise a dom_html_map_element object */
-dom_exception _dom_html_map_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_map_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_map_element *ele);
/* Finalise a dom_html_map_element object */
diff --git a/src/html/html_menu_element.c b/src/html/html_menu_element.c
index aadd823..1226c70 100644
--- a/src/html/html_menu_element.c
+++ b/src/html/html_menu_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_menu_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_menu_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_menu_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_menu_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_menu_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_menu_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_menu_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_menu_element object
*
- * \param doc The document object
- * \param ele The dom_html_menu_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_menu_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_menu_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_menu_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_menu_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_MENU],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_menu_element.h b/src/html/html_menu_element.h
index cb84e3d..f206315 100644
--- a/src/html/html_menu_element.h
+++ b/src/html/html_menu_element.h
@@ -19,13 +19,13 @@ struct dom_html_menu_element {
};
/* Create a dom_html_menu_element object */
-dom_exception _dom_html_menu_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_menu_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_menu_element **ele);
/* Initialise a dom_html_menu_element object */
-dom_exception _dom_html_menu_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_menu_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_menu_element *ele);
/* Finalise a dom_html_menu_element object */
diff --git a/src/html/html_meta_element.c b/src/html/html_meta_element.c
index 05e6a4f..56eaa34 100644
--- a/src/html/html_meta_element.c
+++ b/src/html/html_meta_element.c
@@ -23,12 +23,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_meta_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_meta_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_meta_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_meta_element **ele)
{
struct dom_node_internal *node;
@@ -42,23 +42,21 @@ dom_exception _dom_html_meta_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_meta_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_meta_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_meta_element object
*
- * \param doc The document object
- * \param ele The dom_html_meta_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_meta_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_meta_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_meta_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_meta_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_META],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_meta_element.h b/src/html/html_meta_element.h
index d4a1076..d92e5fd 100644
--- a/src/html/html_meta_element.h
+++ b/src/html/html_meta_element.h
@@ -18,13 +18,13 @@ struct dom_html_meta_element {
};
/* Create a dom_html_meta_element object */
-dom_exception _dom_html_meta_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_meta_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_meta_element **ele);
/* Initialise a dom_html_meta_element object */
-dom_exception _dom_html_meta_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_meta_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_meta_element *ele);
/* Finalise a dom_html_meta_element object */
diff --git a/src/html/html_mod_element.c b/src/html/html_mod_element.c
index 20f80d1..d952a1b 100644
--- a/src/html/html_mod_element.c
+++ b/src/html/html_mod_element.c
@@ -27,13 +27,13 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_mod_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_mod_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace,
- dom_string *prefix, struct dom_html_mod_element **ele)
+dom_exception _dom_html_mod_element_create(
+ struct dom_html_element_create_params *params,
+ struct dom_html_mod_element **ele)
{
struct dom_node_internal *node;
@@ -46,22 +46,21 @@ dom_exception _dom_html_mod_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_mod_element_initialise(doc, tag_name, namespace, prefix, *ele);
+ return _dom_html_mod_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_mod_element object
*
- * \param doc The document object
- * \param ele The dom_html_mod_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_mod_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_mod_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace,
- dom_string *prefix, struct dom_html_mod_element *ele)
+dom_exception _dom_html_mod_element_initialise(
+ struct dom_html_element_create_params *params,
+ struct dom_html_mod_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- tag_name, namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_mod_element.h b/src/html/html_mod_element.h
index 9df07d5..0e4c49e 100644
--- a/src/html/html_mod_element.h
+++ b/src/html/html_mod_element.h
@@ -19,13 +19,13 @@ struct dom_html_mod_element {
};
/* Create a dom_html_mod_element object */
-dom_exception _dom_html_mod_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace,
- dom_string *prefix, struct dom_html_mod_element **ele);
+dom_exception _dom_html_mod_element_create(
+ struct dom_html_element_create_params *params,
+ struct dom_html_mod_element **ele);
/* Initialise a dom_html_mod_element object */
-dom_exception _dom_html_mod_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_mod_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_mod_element *ele);
/* Finalise a dom_html_mod_element object */
diff --git a/src/html/html_object_element.c b/src/html/html_object_element.c
index 27d3f5a..914510d 100644
--- a/src/html/html_object_element.c
+++ b/src/html/html_object_element.c
@@ -30,12 +30,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_object_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_object_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_object_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_object_element **ele)
{
struct dom_node_internal *node;
@@ -49,23 +49,21 @@ dom_exception _dom_html_object_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_object_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_object_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_object_element object
*
- * \param doc The document object
- * \param ele The dom_html_object_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_object_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_object_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_object_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_object_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_OBJECT],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_object_element.h b/src/html/html_object_element.h
index 5170f2c..b569c9d 100644
--- a/src/html/html_object_element.h
+++ b/src/html/html_object_element.h
@@ -19,13 +19,13 @@ struct dom_html_object_element {
};
/* Create a dom_html_object_element object */
-dom_exception _dom_html_object_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_object_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_object_element **ele);
/* Initialise a dom_html_object_element object */
-dom_exception _dom_html_object_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_object_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_object_element *ele);
/* Finalise a dom_html_object_element object */
diff --git a/src/html/html_olist_element.c b/src/html/html_olist_element.c
index 6595ea5..411cc98 100644
--- a/src/html/html_olist_element.c
+++ b/src/html/html_olist_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_olist_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_olist_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *o_listfix,
+dom_exception _dom_html_olist_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_olist_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_olist_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_olist_element_initialise(doc, namespace, o_listfix, *ele);
+ return _dom_html_olist_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_olist_element object
*
- * \param doc The document object
- * \param ele The dom_html_olist_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_olist_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_olist_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *o_listfix,
+dom_exception _dom_html_olist_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_olist_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_OL],
- namespace, o_listfix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_olist_element.h b/src/html/html_olist_element.h
index 70601e8..b06b277 100644
--- a/src/html/html_olist_element.h
+++ b/src/html/html_olist_element.h
@@ -19,13 +19,13 @@ struct dom_html_olist_element {
};
/* Create a dom_html_olist_element object */
-dom_exception _dom_html_olist_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *o_listfix,
+dom_exception _dom_html_olist_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_olist_element **ele);
/* Initialise a dom_html_olist_element object */
-dom_exception _dom_html_olist_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *o_listfix,
+dom_exception _dom_html_olist_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_olist_element *ele);
/* Finalise a dom_html_olist_element object */
diff --git a/src/html/html_opt_group_element.c b/src/html/html_opt_group_element.c
index cdee6e7..0181111 100644
--- a/src/html/html_opt_group_element.c
+++ b/src/html/html_opt_group_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_opt_group_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_opt_group_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_opt_group_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_opt_group_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_opt_group_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_opt_group_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_opt_group_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_opt_group_element object
*
- * \param doc The document object
- * \param ele The dom_html_opt_group_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_opt_group_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_opt_group_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_opt_group_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_opt_group_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_OPTGROUP],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_opt_group_element.h b/src/html/html_opt_group_element.h
index c7f8c13..94dcf9e 100644
--- a/src/html/html_opt_group_element.h
+++ b/src/html/html_opt_group_element.h
@@ -18,13 +18,13 @@ struct dom_html_opt_group_element {
};
/* Create a dom_html_opt_group_element object */
-dom_exception _dom_html_opt_group_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_opt_group_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_opt_group_element **ele);
/* Initialise a dom_html_opt_group_element object */
-dom_exception _dom_html_opt_group_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_opt_group_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_opt_group_element *ele);
/* Finalise a dom_html_opt_group_element object */
diff --git a/src/html/html_option_element.c b/src/html/html_option_element.c
index e352562..a4dec3c 100644
--- a/src/html/html_option_element.c
+++ b/src/html/html_option_element.c
@@ -29,12 +29,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_option_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_option_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_option_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_option_element **ele)
{
struct dom_node_internal *node;
@@ -48,26 +48,24 @@ dom_exception _dom_html_option_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_option_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_option_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_option_element object
*
- * \param doc The document object
- * \param ele The dom_html_option_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_option_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_option_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_option_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_option_element *ele)
{
ele->default_selected = false;
ele->default_selected_set = false;
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_OPTION],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_option_element.h b/src/html/html_option_element.h
index bc8ff6f..b1f8b64 100644
--- a/src/html/html_option_element.h
+++ b/src/html/html_option_element.h
@@ -20,13 +20,13 @@ struct dom_html_option_element {
};
/* Create a dom_html_option_element object */
-dom_exception _dom_html_option_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_option_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_option_element **ele);
/* Initialise a dom_html_option_element object */
-dom_exception _dom_html_option_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_option_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_option_element *ele);
/* Finalise a dom_html_option_element object */
diff --git a/src/html/html_paragraph_element.c b/src/html/html_paragraph_element.c
index 63c50b2..bb8c1b3 100644
--- a/src/html/html_paragraph_element.c
+++ b/src/html/html_paragraph_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_paragraph_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_paragraph_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_paragraph_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_paragraph_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_paragraph_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_paragraph_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_paragraph_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_paragraph_element object
*
- * \param doc The document object
- * \param ele The dom_html_paragraph_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_paragraph_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_paragraph_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_paragraph_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_paragraph_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_P],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_paragraph_element.h b/src/html/html_paragraph_element.h
index b6627dd..7495a76 100644
--- a/src/html/html_paragraph_element.h
+++ b/src/html/html_paragraph_element.h
@@ -19,13 +19,13 @@ struct dom_html_paragraph_element {
};
/* Create a dom_html_paragraph_element object */
-dom_exception _dom_html_paragraph_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_paragraph_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_paragraph_element **ele);
/* Initialise a dom_html_paragraph_element object */
-dom_exception _dom_html_paragraph_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_paragraph_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_paragraph_element *ele);
/* Finalise a dom_html_paragraph_element object */
diff --git a/src/html/html_param_element.c b/src/html/html_param_element.c
index a858717..4c7ee89 100644
--- a/src/html/html_param_element.c
+++ b/src/html/html_param_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_param_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_param_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_param_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_param_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_param_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_param_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_param_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_param_element object
*
- * \param doc The document object
- * \param ele The dom_html_param_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_param_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_param_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_param_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_param_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_PARAM],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_param_element.h b/src/html/html_param_element.h
index 2cd8150..f56a6a5 100644
--- a/src/html/html_param_element.h
+++ b/src/html/html_param_element.h
@@ -19,13 +19,13 @@ struct dom_html_param_element {
};
/* Create a dom_html_param_element object */
-dom_exception _dom_html_param_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_param_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_param_element **ele);
/* Initialise a dom_html_param_element object */
-dom_exception _dom_html_param_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_param_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_param_element *ele);
/* Finalise a dom_html_param_element object */
diff --git a/src/html/html_pre_element.c b/src/html/html_pre_element.c
index c5f7ced..502e4d8 100644
--- a/src/html/html_pre_element.c
+++ b/src/html/html_pre_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_pre_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_pre_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_pre_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_pre_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_pre_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_pre_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_pre_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_pre_element object
*
- * \param doc The document object
- * \param ele The dom_html_pre_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_pre_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_pre_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_pre_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_pre_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_PRE],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_pre_element.h b/src/html/html_pre_element.h
index 75d8df8..d9dc6d8 100644
--- a/src/html/html_pre_element.h
+++ b/src/html/html_pre_element.h
@@ -19,13 +19,13 @@ struct dom_html_pre_element {
};
/* Create a dom_html_pre_element object */
-dom_exception _dom_html_pre_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_pre_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_pre_element **ele);
/* Initialise a dom_html_pre_element object */
-dom_exception _dom_html_pre_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_pre_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_pre_element *ele);
/* Finalise a dom_html_pre_element object */
diff --git a/src/html/html_quote_element.c b/src/html/html_quote_element.c
index 17961c0..f2263c3 100644
--- a/src/html/html_quote_element.c
+++ b/src/html/html_quote_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_quote_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_quote_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_quote_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_quote_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_quote_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_quote_element_initialise(doc, tag_name,
- namespace, prefix, *ele);
+ return _dom_html_quote_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_quote_element object
*
- * \param doc The document object
- * \param ele The dom_html_quote_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_quote_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_quote_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_quote_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_quote_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- tag_name, namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_quote_element.h b/src/html/html_quote_element.h
index ee79ee1..f62f2ec 100644
--- a/src/html/html_quote_element.h
+++ b/src/html/html_quote_element.h
@@ -19,13 +19,13 @@ struct dom_html_quote_element {
};
/* Create a dom_html_quote_element object */
-dom_exception _dom_html_quote_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_quote_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_quote_element **ele);
/* Initialise a dom_html_quote_element object */
-dom_exception _dom_html_quote_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_quote_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_quote_element *ele);
/* Finalise a dom_html_quote_element object */
diff --git a/src/html/html_script_element.c b/src/html/html_script_element.c
index 3bdf8cd..534c390 100644
--- a/src/html/html_script_element.c
+++ b/src/html/html_script_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_script_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_script_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_script_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_script_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_script_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_script_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_script_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_script_element object
*
- * \param doc The document object
- * \param ele The dom_html_script_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_script_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_script_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_script_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_script_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_SCRIPT],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_script_element.h b/src/html/html_script_element.h
index dcb7b72..c15e445 100644
--- a/src/html/html_script_element.h
+++ b/src/html/html_script_element.h
@@ -19,13 +19,13 @@ struct dom_html_script_element {
};
/* Create a dom_html_script_element object */
-dom_exception _dom_html_script_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_script_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_script_element **ele);
/* Initialise a dom_html_script_element object */
-dom_exception _dom_html_script_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_script_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_script_element *ele);
/* Finalise a dom_html_script_element object */
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 438a365..fe06e5d 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -29,12 +29,12 @@ static bool is_option(struct dom_node_internal *node, void *ctx);
/**
* Create a dom_html_select_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_select_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_select_element **ele)
{
struct dom_node_internal *node;
@@ -48,25 +48,23 @@ dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_select_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_select_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_select_element object
*
- * \param doc The document object
- * \param ele The dom_html_select_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_select_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_select_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_select_element *ele)
{
ele->form = NULL;
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_SELECT],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_select_element.h b/src/html/html_select_element.h
index b0eaa91..d7dc0a4 100644
--- a/src/html/html_select_element.h
+++ b/src/html/html_select_element.h
@@ -23,13 +23,13 @@ struct dom_html_select_element {
};
/* Create a dom_html_select_element object */
-dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_select_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_select_element **ele);
/* Initialise a dom_html_select_element object */
-dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_select_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_select_element *ele);
/* Finalise a dom_html_select_element object */
diff --git a/src/html/html_style_element.c b/src/html/html_style_element.c
index c97955e..7434096 100644
--- a/src/html/html_style_element.c
+++ b/src/html/html_style_element.c
@@ -23,11 +23,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_style_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_style_element_create(struct dom_html_document *doc,
+dom_exception _dom_html_style_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_style_element **ele)
{
struct dom_node_internal *node;
@@ -41,31 +42,21 @@ dom_exception _dom_html_style_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_style_element_initialise(doc, *ele);
+ return _dom_html_style_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_style_element object
*
- * \param doc The document object
- * \param ele The dom_html_style_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_style_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_style_element_initialise(struct dom_html_document *doc,
+dom_exception _dom_html_style_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_style_element *ele)
{
- dom_string *name = NULL;
- dom_exception err;
-
- err = dom_string_create((const uint8_t *) "STYLE", SLEN("STYLE"),
- &name);
- if (err != DOM_NO_ERR)
- return err;
-
- err = _dom_html_element_initialise(doc, &ele->base, name, NULL, NULL);
- dom_string_unref(name);
-
- return err;
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_style_element.h b/src/html/html_style_element.h
index e7a47e5..e21b9cf 100644
--- a/src/html/html_style_element.h
+++ b/src/html/html_style_element.h
@@ -18,11 +18,13 @@ struct dom_html_style_element {
};
/* Create a dom_html_style_element object */
-dom_exception _dom_html_style_element_create(struct dom_html_document *doc,
+dom_exception _dom_html_style_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_style_element **ele);
/* Initialise a dom_html_style_element object */
-dom_exception _dom_html_style_element_initialise(struct dom_html_document *doc,
+dom_exception _dom_html_style_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_style_element *ele);
/* Finalise a dom_html_style_element object */
diff --git a/src/html/html_table_element.c b/src/html/html_table_element.c
index cdf1714..442e1d6 100644
--- a/src/html/html_table_element.c
+++ b/src/html/html_table_element.c
@@ -31,12 +31,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_table_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_element **ele)
{
struct dom_node_internal *node;
@@ -50,23 +50,21 @@ dom_exception _dom_html_table_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_table_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_table_element object
*
- * \param doc The document object
- * \param ele The dom_html_table_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_table_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_TABLE],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
@@ -432,13 +430,19 @@ dom_exception dom_html_table_element_create_caption(
return exp;
}
if((*caption) == NULL) {
- dom_html_document *doc = (dom_html_document *)
- ((dom_node_internal *) element)->owner;
dom_node *new_caption;
+ dom_html_document *doc = (dom_html_document *)
+ ((dom_node_internal *) element)->owner;
- exp = _dom_html_table_caption_element_create(doc,
- ((dom_node_internal *)element)->namespace,
- ((dom_node_internal *)element)->prefix,
+ struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_CAPTION,
+ .doc = doc,
+ .name = doc->elements[DOM_HTML_ELEMENT_TYPE_CAPTION],
+ .namespace = ((dom_node_internal *)element)->namespace,
+ .prefix = ((dom_node_internal *)element)->prefix
+ };
+
+ exp = _dom_html_table_caption_element_create(¶ms,
(dom_html_table_caption_element **)caption);
if(exp != DOM_NO_ERR) {
dom_node_unref(*caption);
@@ -499,14 +503,19 @@ dom_exception dom_html_table_element_create_t_foot(
return exp;
if ((*t_foot) == NULL) {
- dom_html_document *doc = (dom_html_document *)
- ((dom_node_internal *) element)->owner;
dom_node *new_t_foot;
+ dom_html_document *doc = (dom_html_document *)
+ ((dom_node_internal *) element)->owner;
- exp = _dom_html_table_section_element_create(doc,
- doc->elements[DOM_HTML_ELEMENT_TYPE_TFOOT],
- ((dom_node_internal *)element)->namespace,
- ((dom_node_internal *)element)->prefix,
+ struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TFOOT,
+ .doc = doc,
+ .name = doc->elements[DOM_HTML_ELEMENT_TYPE_TFOOT],
+ .namespace = ((dom_node_internal *)element)->namespace,
+ .prefix = ((dom_node_internal *)element)->prefix
+ };
+
+ exp = _dom_html_table_section_element_create(¶ms,
(dom_html_table_section_element **)t_foot);
if (exp != DOM_NO_ERR) {
dom_node_unref(*t_foot);
@@ -572,14 +581,19 @@ dom_exception dom_html_table_element_create_t_head(
}
if((*t_head) == NULL) {
dom_exception exp;
- dom_html_document *doc = (dom_html_document *)
- ((dom_node_internal *) element)->owner;
dom_node *new_t_head;
+ dom_html_document *doc = (dom_html_document *)
+ ((dom_node_internal *) element)->owner;
- exp = _dom_html_table_section_element_create(doc,
- doc->elements[DOM_HTML_ELEMENT_TYPE_THEAD],
- ((dom_node_internal *)element)->namespace,
- ((dom_node_internal *)element)->prefix,
+ struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_THEAD,
+ .doc = doc,
+ .name = doc->elements[DOM_HTML_ELEMENT_TYPE_THEAD],
+ .namespace = ((dom_node_internal *)element)->namespace,
+ .prefix = ((dom_node_internal *)element)->prefix
+ };
+
+ exp = _dom_html_table_section_element_create(¶ms,
(dom_html_table_section_element **)t_head);
if(exp != DOM_NO_ERR) {
dom_node_unref(*t_head);
@@ -650,15 +664,19 @@ dom_exception dom_html_table_element_create_t_body(
return exp;
}
if(len == 0) {
- dom_html_document *doc = (dom_html_document *)
- ((dom_node_internal *) element)->owner;
dom_node *new_t_body;
+ dom_html_document *doc = (dom_html_document *)
+ ((dom_node_internal *) element)->owner;
- exp = _dom_html_table_section_element_create(doc,
- doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY],
- ((dom_node_internal *)element)->namespace,
- ((dom_node_internal *)element)->prefix,
- t_body);
+ struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TBODY,
+ .doc = doc,
+ .name = doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY],
+ .namespace = ((dom_node_internal *)element)->namespace,
+ .prefix = ((dom_node_internal *)element)->prefix
+ };
+
+ exp = _dom_html_table_section_element_create(¶ms, t_body);
if(exp != DOM_NO_ERR) {
dom_node_unref(*t_body);
dom_html_collection_unref(t_bodies);
@@ -693,9 +711,17 @@ dom_exception dom_html_table_element_insert_row(
dom_exception exp;
dom_html_collection* rows;
uint32_t len;
- dom_html_document *doc = (dom_html_document *)
+ dom_html_document *doc = (dom_html_document *)
((dom_node_internal *) element)->owner;
+ struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TR,
+ .doc = doc,
+ .name = doc->elements[DOM_HTML_ELEMENT_TYPE_TR],
+ .namespace = ((dom_node_internal *)element)->namespace,
+ .prefix = ((dom_node_internal *)element)->prefix
+ };
+
exp = dom_html_table_element_get_rows(element,
&rows);
if(exp != DOM_NO_ERR) {
@@ -708,9 +734,7 @@ dom_exception dom_html_table_element_insert_row(
dom_html_collection_unref(rows);
return exp;
}
- exp = _dom_html_table_row_element_create(doc,
- ((dom_node_internal *)element)->namespace,
- ((dom_node_internal *)element)->prefix,
+ exp = _dom_html_table_row_element_create(¶ms,
(dom_html_table_row_element **)row);
if(exp != DOM_NO_ERR) {
dom_node_unref(*row);
diff --git a/src/html/html_table_element.h b/src/html/html_table_element.h
index 955ab88..4e4747c 100644
--- a/src/html/html_table_element.h
+++ b/src/html/html_table_element.h
@@ -18,13 +18,13 @@ struct dom_html_table_element {
};
/* Create a dom_html_table_element object */
-dom_exception _dom_html_table_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_element **ele);
/* Initialise a dom_html_table_element object */
-dom_exception _dom_html_table_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_element *ele);
/* Finalise a dom_html_table_element object */
diff --git a/src/html/html_tablecaption_element.c b/src/html/html_tablecaption_element.c
index ddb2d5c..5a4b1b1 100644
--- a/src/html/html_tablecaption_element.c
+++ b/src/html/html_tablecaption_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_table_caption_element object
*
- * \table_caption doc The document object
- * \table_caption ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_caption_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_caption_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_caption_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_table_caption_element_create(struct dom_html_document *d
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_caption_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_table_caption_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_table_caption_element object
*
- * \table_caption doc The document object
- * \table_caption ele The dom_html_table_caption_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_table_caption_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_caption_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_caption_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_caption_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_CAPTION],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_tablecaption_element.h b/src/html/html_tablecaption_element.h
index b1cfd3b..971c55c 100644
--- a/src/html/html_tablecaption_element.h
+++ b/src/html/html_tablecaption_element.h
@@ -19,13 +19,13 @@ struct dom_html_table_caption_element {
};
/* Create a dom_html_table_caption_element object */
-dom_exception _dom_html_table_caption_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_caption_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_caption_element **ele);
/* Initialise a dom_html_table_caption_element object */
-dom_exception _dom_html_table_caption_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_caption_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_caption_element *ele);
/* Finalise a dom_html_table_caption_element object */
diff --git a/src/html/html_tablecell_element.c b/src/html/html_tablecell_element.c
index c881440..c106b4f 100644
--- a/src/html/html_tablecell_element.c
+++ b/src/html/html_tablecell_element.c
@@ -28,12 +28,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_table_cell_element table_cell
*
- * \param doc The document table_cell
- * \param ele The returned element table_cell
+ * \param params The html element creation parameters
+ * \param ele The returned element table_cell
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_cell_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_cell_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_cell_element **ele)
{
struct dom_node_internal *node;
@@ -47,24 +47,21 @@ dom_exception _dom_html_table_cell_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_cell_element_initialise(doc, tag_name,
- namespace, prefix, *ele);
+ return _dom_html_table_cell_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_table_cell_element table_cell
*
- * \param doc The document table_cell
- * \param ele The dom_html_table_cell_element table_cell
+ * \param params The html element creation parameters
+ * \param ele The dom_html_table_cell_element table_cell
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_cell_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_cell_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_cell_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- tag_name,
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_tablecell_element.h b/src/html/html_tablecell_element.h
index 5a48439..5f40373 100644
--- a/src/html/html_tablecell_element.h
+++ b/src/html/html_tablecell_element.h
@@ -19,13 +19,13 @@ struct dom_html_table_cell_element {
};
/* Create a dom_html_table_cell_element object */
-dom_exception _dom_html_table_cell_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_cell_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_cell_element **ele);
/* Initialise a dom_html_table_cell_element object */
-dom_exception _dom_html_table_cell_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_cell_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_cell_element *ele);
/* Finalise a dom_html_table_cell_element object */
diff --git a/src/html/html_tablecol_element.c b/src/html/html_tablecol_element.c
index d3d985b..5df6d5b 100644
--- a/src/html/html_tablecol_element.c
+++ b/src/html/html_tablecol_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_table_col_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_col_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_col_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_col_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_table_col_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_col_element_initialise(doc, tag_name,
- namespace, prefix, *ele);
+ return _dom_html_table_col_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_table_col_element object
*
- * \param doc The document object
- * \param ele The dom_html_table_col_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_table_col_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_col_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_col_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_col_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- tag_name, namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_tablecol_element.h b/src/html/html_tablecol_element.h
index a8e6fa7..adfca2f 100644
--- a/src/html/html_tablecol_element.h
+++ b/src/html/html_tablecol_element.h
@@ -19,13 +19,13 @@ struct dom_html_table_col_element {
};
/* Create a dom_html_table_col_element object */
-dom_exception _dom_html_table_col_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_col_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_col_element **ele);
/* Initialise a dom_html_table_col_element object */
-dom_exception _dom_html_table_col_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_col_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_col_element *ele);
/* Finalise a dom_html_table_col_element object */
diff --git a/src/html/html_tablerow_element.c b/src/html/html_tablerow_element.c
index 0a0fb1e..0d4f3eb 100644
--- a/src/html/html_tablerow_element.c
+++ b/src/html/html_tablerow_element.c
@@ -30,12 +30,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_table_row_element table_row
*
- * \param doc The document table_row
- * \param ele The returned element table_row
+ * \param params The html element creation parameters
+ * \param ele The returned element table_row
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_row_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_row_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_row_element **ele)
{
struct dom_node_internal *node;
@@ -49,24 +49,21 @@ dom_exception _dom_html_table_row_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_row_element_initialise(doc,
- namespace, prefix, *ele);
+ return _dom_html_table_row_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_table_row_element table_row
*
- * \param doc The document table_row
- * \param ele The dom_html_table_row_element table_row
+ * \param params The html element creation parameters
+ * \param ele The dom_html_table_row_element table_row
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_row_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_row_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_row_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_TR],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
@@ -335,11 +332,16 @@ dom_exception dom_html_table_row_element_insert_cell(
dom_html_collection *cells; /*< The collection of cells in input table_row_element*/
uint32_t len; /*< The size of the cell collection */
dom_exception exp; /*< Variable for getting the exceptions*/
- exp = _dom_html_element_create(doc,
- doc->elements[DOM_HTML_ELEMENT_TYPE_TD],
- ((dom_node_internal *)element)->namespace,
- ((dom_node_internal *)element)->prefix,
- cell);
+
+ struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TD,
+ .doc = doc,
+ .name = doc->elements[DOM_HTML_ELEMENT_TYPE_TD],
+ .namespace = ((dom_node_internal *)element)->namespace,
+ .prefix = ((dom_node_internal *)element)->prefix
+ };
+
+ exp = _dom_html_element_create(¶ms, cell);
if (exp != DOM_NO_ERR)
return exp;
diff --git a/src/html/html_tablerow_element.h b/src/html/html_tablerow_element.h
index 2401790..ee081ba 100644
--- a/src/html/html_tablerow_element.h
+++ b/src/html/html_tablerow_element.h
@@ -18,13 +18,13 @@ struct dom_html_table_row_element {
};
/* Create a dom_html_table_row_element object */
-dom_exception _dom_html_table_row_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_row_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_row_element **ele);
/* Initialise a dom_html_table_row_element object */
-dom_exception _dom_html_table_row_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_row_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_row_element *ele);
/* Finalise a dom_html_table_row_element object */
diff --git a/src/html/html_tablesection_element.c b/src/html/html_tablesection_element.c
index 9718612..d570e1c 100644
--- a/src/html/html_tablesection_element.c
+++ b/src/html/html_tablesection_element.c
@@ -31,12 +31,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_table_section_element object
*
- * \table_section doc The document object
- * \table_section ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_section_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_section_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_section_element **ele)
{
struct dom_node_internal *node;
@@ -50,24 +50,21 @@ dom_exception _dom_html_table_section_element_create(struct dom_html_document *d
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_section_element_initialise(doc, tag_name,
- namespace, prefix, *ele);
+ return _dom_html_table_section_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_table_section_element object
*
- * \table_section doc The document object
- * \table_section ele The dom_html_table_section_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_table_section_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_table_section_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_section_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_section_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- tag_name,
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
@@ -211,9 +208,16 @@ dom_exception dom_html_table_section_element_insert_row(
dom_html_collection *rows; /*< The collection of rows in input table_section_element*/
uint32_t len; /*< The size of the row collection */
dom_exception exp; /*< Variable for getting the exceptions*/
- exp = _dom_html_table_row_element_create(doc,
- ((dom_node_internal *)element)->namespace,
- ((dom_node_internal *)element)->prefix,
+
+ struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TR,
+ .doc = doc,
+ .name = doc->elements[DOM_HTML_ELEMENT_TYPE_TR],
+ .namespace = ((dom_node_internal *)element)->namespace,
+ .prefix = ((dom_node_internal *)element)->prefix
+ };
+
+ exp = _dom_html_table_row_element_create(¶ms,
(dom_html_table_row_element **)new_row);
if(exp != DOM_NO_ERR)
return exp;
diff --git a/src/html/html_tablesection_element.h b/src/html/html_tablesection_element.h
index 387882a..6985abd 100644
--- a/src/html/html_tablesection_element.h
+++ b/src/html/html_tablesection_element.h
@@ -19,13 +19,13 @@ struct dom_html_table_section_element {
};
/* Create a dom_html_table_section_element object */
-dom_exception _dom_html_table_section_element_create(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_section_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_table_section_element **ele);
/* Initialise a dom_html_table_section_element object */
-dom_exception _dom_html_table_section_element_initialise(struct dom_html_document *doc,
- dom_string *tag_name, dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_table_section_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_table_section_element *ele);
/* Finalise a dom_html_table_section_element object */
diff --git a/src/html/html_text_area_element.c b/src/html/html_text_area_element.c
index cfc3bed..bbc9789 100644
--- a/src/html/html_text_area_element.c
+++ b/src/html/html_text_area_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_text_area_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_text_area_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_text_area_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_text_area_element **ele)
{
struct dom_node_internal *node;
@@ -46,18 +46,18 @@ dom_exception _dom_html_text_area_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_text_area_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_text_area_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_text_area_element object
*
- * \param doc The document object
- * \param ele The dom_html_text_area_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_text_area_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_text_area_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_text_area_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_text_area_element *ele)
{
ele->form = NULL;
@@ -66,9 +66,7 @@ dom_exception _dom_html_text_area_element_initialise(struct dom_html_document *d
ele->value = NULL;
ele->value_set = false;
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_TEXTAREA],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_text_area_element.h b/src/html/html_text_area_element.h
index a115e85..5c7b420 100644
--- a/src/html/html_text_area_element.h
+++ b/src/html/html_text_area_element.h
@@ -24,13 +24,13 @@ struct dom_html_text_area_element {
};
/* Create a dom_html_text_area_element object */
-dom_exception _dom_html_text_area_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_text_area_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_text_area_element **ele);
/* Initialise a dom_html_text_area_element object */
-dom_exception _dom_html_text_area_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_text_area_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_text_area_element *ele);
/* Finalise a dom_html_text_area_element object */
diff --git a/src/html/html_title_element.c b/src/html/html_title_element.c
index e2107c8..02c7820 100644
--- a/src/html/html_title_element.c
+++ b/src/html/html_title_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_title_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_title_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_title_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_title_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_title_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_title_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_title_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_title_element object
*
- * \param doc The document object
- * \param ele The dom_html_title_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_title_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_title_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_title_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_title_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_TITLE],
- namespace, prefix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_title_element.h b/src/html/html_title_element.h
index 51adaf9..1a7653a 100644
--- a/src/html/html_title_element.h
+++ b/src/html/html_title_element.h
@@ -18,13 +18,13 @@ struct dom_html_title_element {
};
/* Create a dom_html_title_element object */
-dom_exception _dom_html_title_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_title_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_title_element **ele);
/* Initialise a dom_html_title_element object */
-dom_exception _dom_html_title_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_title_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_title_element *ele);
/* Finalise a dom_html_title_element object */
diff --git a/src/html/html_ulist_element.c b/src/html/html_ulist_element.c
index 17d31a9..624c85f 100644
--- a/src/html/html_ulist_element.c
+++ b/src/html/html_ulist_element.c
@@ -27,12 +27,12 @@ static struct dom_element_protected_vtable _protect_vtable = {
/**
* Create a dom_html_u_list_element object
*
- * \param doc The document object
- * \param ele The returned element object
+ * \param params The html element creation parameters
+ * \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_u_list_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *u_listfix,
+dom_exception _dom_html_u_list_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_u_list_element **ele)
{
struct dom_node_internal *node;
@@ -46,23 +46,21 @@ dom_exception _dom_html_u_list_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_u_list_element_initialise(doc, namespace, u_listfix, *ele);
+ return _dom_html_u_list_element_initialise(params, *ele);
}
/**
* Initialise a dom_html_u_list_element object
*
- * \param doc The document object
- * \param ele The dom_html_u_list_element object
+ * \param params The html element creation parameters
+ * \param ele The dom_html_u_list_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_u_list_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *u_listfix,
+dom_exception _dom_html_u_list_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_u_list_element *ele)
{
- return _dom_html_element_initialise(doc, &ele->base,
- doc->elements[DOM_HTML_ELEMENT_TYPE_UL],
- namespace, u_listfix);
+ return _dom_html_element_initialise(params, &ele->base);
}
/**
diff --git a/src/html/html_ulist_element.h b/src/html/html_ulist_element.h
index 7e03f47..6e7e6f9 100644
--- a/src/html/html_ulist_element.h
+++ b/src/html/html_ulist_element.h
@@ -19,13 +19,13 @@ struct dom_html_u_list_element {
};
/* Create a dom_html_u_list_element object */
-dom_exception _dom_html_u_list_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_u_list_element_create(
+ struct dom_html_element_create_params *params,
struct dom_html_u_list_element **ele);
/* Initialise a dom_html_u_list_element object */
-dom_exception _dom_html_u_list_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+dom_exception _dom_html_u_list_element_initialise(
+ struct dom_html_element_create_params *params,
struct dom_html_u_list_element *ele);
/* Finalise a dom_html_u_list_element object */
--
Document Object Model library
7 years, 4 months