Gitweb links:
...log
http://git.netsurf-browser.org/libdom.git/shortlog/68a89f33cc8d2d9e6b2fd82739b713b4ed323a9d
...commit
http://git.netsurf-browser.org/libdom.git/commit/68a89f33cc8d2d9e6b2fd82739b713b4ed323a9d
...tree
http://git.netsurf-browser.org/libdom.git/tree/68a89f33cc8d2d9e6b2fd82739b713b4ed323a9d
The branch, dsilvers/forms1 has been updated
via 68a89f33cc8d2d9e6b2fd82739b713b4ed323a9d (commit)
from f192fc62a9a59fa26f5be15a07e36a9c80d3121f (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=68a89f33cc8d2d9e6b2fd82739b713b4ed323a9d
commit 68a89f33cc8d2d9e6b2fd82739b713b4ed323a9d
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>
blech; initial radio nodelist stuff, nowhere near done
diff --git a/include/dom/html/html_radio_nodelist.h
b/include/dom/html/html_radio_nodelist.h
index 502df38..fd4c710 100644
--- a/include/dom/html/html_radio_nodelist.h
+++ b/include/dom/html/html_radio_nodelist.h
@@ -5,29 +5,29 @@
* Copyright 2018 Daniel Silverstone <[email protected]>
*/
-#ifndef dom_html_radionodelist_h_
-#define dom_html_radionodelist_h_
+#ifndef dom_html_radio_nodelist_h_
+#define dom_html_radio_nodelist_h_
#include <dom/core/exceptions.h>
#include <dom/core/string.h>
struct dom_node;
-typedef struct dom_html_radionodelist dom_html_radionodelist;
+typedef struct dom_html_radio_nodelist dom_html_radio_nodelist;
-dom_exception dom_html_radionodelist_get_length(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_get_length(dom_html_radio_nodelist *col,
uint32_t *len);
-dom_exception dom_html_radionodelist_item(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_item(dom_html_radio_nodelist *col,
uint32_t index, struct dom_node **node);
-dom_exception dom_html_radionodelist_get_value(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_get_value(dom_html_radio_nodelist *col,
dom_string **value);
-dom_exception dom_html_radionodelist_set_value(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_set_value(dom_html_radio_nodelist *col,
dom_string **value);
-void dom_html_radionodelist_ref(dom_html_radionodelist *col);
-void dom_html_radionodelist_unref(dom_html_radionodelist *col);
+void dom_html_radio_nodelist_ref(dom_html_radio_nodelist *col);
+void dom_html_radio_nodelist_unref(dom_html_radio_nodelist *col);
#endif
diff --git a/src/html/Makefile b/src/html/Makefile
index cf864bb..55a2d15 100644
--- a/src/html/Makefile
+++ b/src/html/Makefile
@@ -19,6 +19,7 @@ DIR_SOURCES := \
html_tablecell_element.c html_tablecol_element.c
html_tablesection_element.c \
html_table_element.c html_tablerow_element.c html_frameset_element.c \
html_frame_element.c html_iframe_element.c html_isindex_element.c \
+ html_radio_nodelist.c \
UNINMPLEMENTED_SOURCES := \
diff --git a/src/html/html_form_controls_collection.c
b/src/html/html_form_controls_collection.c
index 34a3bb4..241a44d 100644
--- a/src/html/html_form_controls_collection.c
+++ b/src/html/html_form_controls_collection.c
@@ -23,14 +23,12 @@
#include "core/element.h"
#include "core/string.h"
-static bool _dom_is_form_control(struct dom_node_internal *node, void *ctx);
-
/*-----------------------------------------------------------------------*/
/* Internal functions */
/* Callback function to test whether certain node is a form control, see
* src/html/html_collection.h for detail. */
-static bool _dom_is_form_control(struct dom_node_internal *node, void *ctx)
+bool _dom_is_form_control(struct dom_node_internal *node, void *ctx)
{
struct dom_html_document *doc =
(struct dom_html_document *)(node->owner);
diff --git a/src/html/html_form_controls_collection.h
b/src/html/html_form_controls_collection.h
index 36cdce0..2604c38 100644
--- a/src/html/html_form_controls_collection.h
+++ b/src/html/html_form_controls_collection.h
@@ -14,6 +14,9 @@
struct dom_html_form_element;
+/* Exposed so that the radio nodelist can use it as a sub-criterion */
+bool _dom_is_form_control(struct dom_node_internal *node, void *ctx);
+
dom_exception _dom_html_form_controls_collection_create(struct
dom_html_form_element *form,
dom_html_form_controls_collection **col);
diff --git a/src/html/html_radio_nodelist.c b/src/html/html_radio_nodelist.c
new file mode 100644
index 0000000..231900e
--- /dev/null
+++ b/src/html/html_radio_nodelist.c
@@ -0,0 +1,199 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2018 Daniel Silverstone <[email protected]>
+ */
+
+#include <assert.h>
+#include <stdlib.h>
+
+#include <libwapcaplet/libwapcaplet.h>
+
+#include <dom/html/html_radio_nodelist.h>
+
+#include "html/html_radio_nodelist.h"
+#include "html/html_form_controls_collection.h"
+#include "html/html_document.h"
+#include "html/html_form_element.h"
+
+#include "core/node.h"
+#include "core/element.h"
+#include "core/string.h"
+
+/*-----------------------------------------------------------------------*/
+/* Internal functions */
+
+/* Callback function to test whether certain node is a form control, see
+ * src/html/html_collection.h for detail. */
+static bool _dom_is_specific_form_control(struct dom_node_internal *node, void
*ctx)
+{
+ struct dom_html_document *doc =
+ (struct dom_html_document *)(node->owner);
+ struct dom_html_radio_nodelist *nodelist = ctx;
+ dom_string *str;
+ dom_exception exc;
+
+ if (_dom_is_form_control(node, nodelist->form)) {
+ /* It's the control we care about if id or name are equal
+ * to nodelist->name. We wouldn't be here if node wasn't
+ * an element node.
+ */
+ exc = _dom_element_get_id((struct dom_element *)node, &str);
+
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+ if (str != NULL && dom_string_isequal(str, nodelist->name)) {
+ dom_string_unref(str);
+ return true;
+ }
+
+ if (str != NULL)
+ dom_string_unref(str);
+
+ exc = _dom_element_get_attribute((struct dom_element *)node,
+ doc->memoised[hds_name], &str);
+
+ if (str != NULL && dom_string_isequal(str, nodelist->name)) {
+ dom_string_unref(str);
+ return true;
+ }
+
+ if (str != NULL)
+ dom_string_unref(str);
+ }
+
+ return false;
+}
+
+/**
+ * Create a dom_html_radio_nodelist
+ *
+ * \param form The HTML form element for the radio nodelist
+ * \param name The element id/name for the radio nodelist
+ * \param nodelist The result radio nodelist object
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_radio_nodelist_create(struct dom_html_form_element
*form,
+ dom_string *name,
+ struct dom_html_radio_nodelist **nodelist)
+{
+ dom_exception exc;
+ *nodelist = malloc(sizeof(struct dom_html_radio_nodelist));
+
+ if (*nodelist == NULL)
+ return DOM_NO_MEM_ERR;
+
+ exc = _dom_html_radio_nodelist_initialise(form, *nodelist, name);
+
+ if (exc != DOM_NO_ERR) {
+ /* This is safe because we only ever get an error before we
+ * ref anything which would need finalising
+ */
+ free(*nodelist);
+ *nodelist = NULL;
+ }
+
+ return exc;
+}
+
+/**
+ * Initialise a dom_html_radio_nodelist
+ *
+ * \param form The HTML form element for the radio nodelist
+ * \param nodelist The radio nodelist object to initialise
+ * \param name The element id/name for the radio nodelist
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_radio_nodelist_initialise(struct dom_html_form_element
*form,
+ struct dom_html_radio_nodelist *nodelist,
+ dom_string *name)
+{
+ dom_exception exc;
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(form);
+
+ assert(form != NULL);
+ assert(name != NULL);
+
+ assert(doc != NULL);
+
+ exc = _dom_html_collection_create(doc,
+ (dom_node_internal *) doc,
+ _dom_is_specific_form_control,
+ nodelist, &nodelist->col);
+
+ if (exc != DOM_NO_ERR)
+ return exc;
+
+ nodelist->form = form;
+ dom_node_ref(form);
+
+ nodelist->name = name;
+ dom_string_ref(name);
+
+ nodelist->refcnt = 1;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Finalise a dom_html_radio_nodelist object
+ *
+ * \param nodelist The dom_html_radio_nodelist object
+ */
+void _dom_html_radio_nodelist_finalise(struct dom_html_radio_nodelist
*nodelist)
+{
+ assert(nodelist->refcnt == 0);
+ dom_node_unref(nodelist->form);
+ nodelist->form = NULL;
+ dom_string_unref(nodelist->name);
+ nodelist->name = NULL;
+ dom_html_collection_unref(nodelist->col);
+ nodelist->col = NULL;
+}
+
+/**
+ * Destroy a dom_html_radio_nodelist object
+ *
+ * \param nodelist The dom_html_radio_nodelist object
+ */
+void _dom_html_radio_nodelist_destroy(struct dom_html_radio_nodelist *nodelist)
+{
+ _dom_html_radio_nodelist_finalise(nodelist);
+ free(nodelist);
+}
+
+/*-----------------------------------------------------------------------*/
+/* Public API */
+
+/**
+ * Claim a reference on this radio nodelist
+ *
+ * \param nodelist The radio nodelist object
+ */
+void dom_html_radio_nodelist_ref(dom_html_radio_nodelist *nodelist)
+{
+ if (nodelist == NULL)
+ return;
+
+ nodelist->refcnt ++;
+}
+
+/**
+ * Relese a reference on this radio nodelist
+ *
+ * \param nodelist The radio nodelist object
+ */
+void dom_html_radio_nodelist_unref(dom_html_radio_nodelist *nodelist)
+{
+ if (nodelist == NULL)
+ return;
+
+ if (nodelist->refcnt > 0)
+ nodelist->refcnt --;
+
+ if (nodelist->refcnt == 0)
+ _dom_html_radio_nodelist_destroy(nodelist);
+}
diff --git a/src/html/html_radio_nodelist.h b/src/html/html_radio_nodelist.h
new file mode 100644
index 0000000..ffb2b12
--- /dev/null
+++ b/src/html/html_radio_nodelist.h
@@ -0,0 +1,35 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2018 Daniel Silverstone <[email protected]>
+ */
+
+#ifndef dom_internal_html_radio_nodelist_h_
+#define dom_internal_html_radio_nodelist_h_
+
+#include <dom/html/html_collection.h>
+
+struct dom_html_form_element;
+
+struct dom_html_radio_nodelist {
+ uint32_t refcnt; /**< The reference count of the nodelist */
+ dom_string *name; /**< The name used for the nodelist */
+ struct dom_html_form_element *form; /**< The form on which we
constructed */
+ dom_html_collection *col; /**< the underlying collection */
+};
+
+dom_exception _dom_html_radio_nodelist_create(struct dom_html_form_element
*form,
+ dom_string *name,
+ struct dom_html_radio_nodelist **nodelist);
+
+dom_exception _dom_html_radio_nodelist_initialise(struct dom_html_form_element
*form,
+ struct dom_html_radio_nodelist *nodelist,
+ dom_string *name);
+
+void _dom_html_radio_nodelist_finalise(struct dom_html_radio_nodelist
*nodelist);
+
+void _dom_html_radio_nodelist_destroy(struct dom_html_radio_nodelist
*nodelist);
+
+
+#endif
-----------------------------------------------------------------------
Summary of changes:
include/dom/html/html_radio_nodelist.h | 18 +--
src/html/Makefile | 1 +
src/html/html_form_controls_collection.c | 4 +-
src/html/html_form_controls_collection.h | 3 +
src/html/html_radio_nodelist.c | 199 ++++++++++++++++++++++++++++++
src/html/html_radio_nodelist.h | 35 ++++++
6 files changed, 248 insertions(+), 12 deletions(-)
create mode 100644 src/html/html_radio_nodelist.c
create mode 100644 src/html/html_radio_nodelist.h
diff --git a/include/dom/html/html_radio_nodelist.h
b/include/dom/html/html_radio_nodelist.h
index 502df38..fd4c710 100644
--- a/include/dom/html/html_radio_nodelist.h
+++ b/include/dom/html/html_radio_nodelist.h
@@ -5,29 +5,29 @@
* Copyright 2018 Daniel Silverstone <[email protected]>
*/
-#ifndef dom_html_radionodelist_h_
-#define dom_html_radionodelist_h_
+#ifndef dom_html_radio_nodelist_h_
+#define dom_html_radio_nodelist_h_
#include <dom/core/exceptions.h>
#include <dom/core/string.h>
struct dom_node;
-typedef struct dom_html_radionodelist dom_html_radionodelist;
+typedef struct dom_html_radio_nodelist dom_html_radio_nodelist;
-dom_exception dom_html_radionodelist_get_length(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_get_length(dom_html_radio_nodelist *col,
uint32_t *len);
-dom_exception dom_html_radionodelist_item(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_item(dom_html_radio_nodelist *col,
uint32_t index, struct dom_node **node);
-dom_exception dom_html_radionodelist_get_value(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_get_value(dom_html_radio_nodelist *col,
dom_string **value);
-dom_exception dom_html_radionodelist_set_value(dom_html_radionodelist *col,
+dom_exception dom_html_radio_nodelist_set_value(dom_html_radio_nodelist *col,
dom_string **value);
-void dom_html_radionodelist_ref(dom_html_radionodelist *col);
-void dom_html_radionodelist_unref(dom_html_radionodelist *col);
+void dom_html_radio_nodelist_ref(dom_html_radio_nodelist *col);
+void dom_html_radio_nodelist_unref(dom_html_radio_nodelist *col);
#endif
diff --git a/src/html/Makefile b/src/html/Makefile
index cf864bb..55a2d15 100644
--- a/src/html/Makefile
+++ b/src/html/Makefile
@@ -19,6 +19,7 @@ DIR_SOURCES := \
html_tablecell_element.c html_tablecol_element.c
html_tablesection_element.c \
html_table_element.c html_tablerow_element.c html_frameset_element.c \
html_frame_element.c html_iframe_element.c html_isindex_element.c \
+ html_radio_nodelist.c \
UNINMPLEMENTED_SOURCES := \
diff --git a/src/html/html_form_controls_collection.c
b/src/html/html_form_controls_collection.c
index 34a3bb4..241a44d 100644
--- a/src/html/html_form_controls_collection.c
+++ b/src/html/html_form_controls_collection.c
@@ -23,14 +23,12 @@
#include "core/element.h"
#include "core/string.h"
-static bool _dom_is_form_control(struct dom_node_internal *node, void *ctx);
-
/*-----------------------------------------------------------------------*/
/* Internal functions */
/* Callback function to test whether certain node is a form control, see
* src/html/html_collection.h for detail. */
-static bool _dom_is_form_control(struct dom_node_internal *node, void *ctx)
+bool _dom_is_form_control(struct dom_node_internal *node, void *ctx)
{
struct dom_html_document *doc =
(struct dom_html_document *)(node->owner);
diff --git a/src/html/html_form_controls_collection.h
b/src/html/html_form_controls_collection.h
index 36cdce0..2604c38 100644
--- a/src/html/html_form_controls_collection.h
+++ b/src/html/html_form_controls_collection.h
@@ -14,6 +14,9 @@
struct dom_html_form_element;
+/* Exposed so that the radio nodelist can use it as a sub-criterion */
+bool _dom_is_form_control(struct dom_node_internal *node, void *ctx);
+
dom_exception _dom_html_form_controls_collection_create(struct
dom_html_form_element *form,
dom_html_form_controls_collection **col);
diff --git a/src/html/html_radio_nodelist.c b/src/html/html_radio_nodelist.c
new file mode 100644
index 0000000..231900e
--- /dev/null
+++ b/src/html/html_radio_nodelist.c
@@ -0,0 +1,199 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2018 Daniel Silverstone <[email protected]>
+ */
+
+#include <assert.h>
+#include <stdlib.h>
+
+#include <libwapcaplet/libwapcaplet.h>
+
+#include <dom/html/html_radio_nodelist.h>
+
+#include "html/html_radio_nodelist.h"
+#include "html/html_form_controls_collection.h"
+#include "html/html_document.h"
+#include "html/html_form_element.h"
+
+#include "core/node.h"
+#include "core/element.h"
+#include "core/string.h"
+
+/*-----------------------------------------------------------------------*/
+/* Internal functions */
+
+/* Callback function to test whether certain node is a form control, see
+ * src/html/html_collection.h for detail. */
+static bool _dom_is_specific_form_control(struct dom_node_internal *node, void
*ctx)
+{
+ struct dom_html_document *doc =
+ (struct dom_html_document *)(node->owner);
+ struct dom_html_radio_nodelist *nodelist = ctx;
+ dom_string *str;
+ dom_exception exc;
+
+ if (_dom_is_form_control(node, nodelist->form)) {
+ /* It's the control we care about if id or name are equal
+ * to nodelist->name. We wouldn't be here if node wasn't
+ * an element node.
+ */
+ exc = _dom_element_get_id((struct dom_element *)node, &str);
+
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+ if (str != NULL && dom_string_isequal(str, nodelist->name)) {
+ dom_string_unref(str);
+ return true;
+ }
+
+ if (str != NULL)
+ dom_string_unref(str);
+
+ exc = _dom_element_get_attribute((struct dom_element *)node,
+ doc->memoised[hds_name], &str);
+
+ if (str != NULL && dom_string_isequal(str, nodelist->name)) {
+ dom_string_unref(str);
+ return true;
+ }
+
+ if (str != NULL)
+ dom_string_unref(str);
+ }
+
+ return false;
+}
+
+/**
+ * Create a dom_html_radio_nodelist
+ *
+ * \param form The HTML form element for the radio nodelist
+ * \param name The element id/name for the radio nodelist
+ * \param nodelist The result radio nodelist object
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_radio_nodelist_create(struct dom_html_form_element
*form,
+ dom_string *name,
+ struct dom_html_radio_nodelist **nodelist)
+{
+ dom_exception exc;
+ *nodelist = malloc(sizeof(struct dom_html_radio_nodelist));
+
+ if (*nodelist == NULL)
+ return DOM_NO_MEM_ERR;
+
+ exc = _dom_html_radio_nodelist_initialise(form, *nodelist, name);
+
+ if (exc != DOM_NO_ERR) {
+ /* This is safe because we only ever get an error before we
+ * ref anything which would need finalising
+ */
+ free(*nodelist);
+ *nodelist = NULL;
+ }
+
+ return exc;
+}
+
+/**
+ * Initialise a dom_html_radio_nodelist
+ *
+ * \param form The HTML form element for the radio nodelist
+ * \param nodelist The radio nodelist object to initialise
+ * \param name The element id/name for the radio nodelist
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_radio_nodelist_initialise(struct dom_html_form_element
*form,
+ struct dom_html_radio_nodelist *nodelist,
+ dom_string *name)
+{
+ dom_exception exc;
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(form);
+
+ assert(form != NULL);
+ assert(name != NULL);
+
+ assert(doc != NULL);
+
+ exc = _dom_html_collection_create(doc,
+ (dom_node_internal *) doc,
+ _dom_is_specific_form_control,
+ nodelist, &nodelist->col);
+
+ if (exc != DOM_NO_ERR)
+ return exc;
+
+ nodelist->form = form;
+ dom_node_ref(form);
+
+ nodelist->name = name;
+ dom_string_ref(name);
+
+ nodelist->refcnt = 1;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Finalise a dom_html_radio_nodelist object
+ *
+ * \param nodelist The dom_html_radio_nodelist object
+ */
+void _dom_html_radio_nodelist_finalise(struct dom_html_radio_nodelist
*nodelist)
+{
+ assert(nodelist->refcnt == 0);
+ dom_node_unref(nodelist->form);
+ nodelist->form = NULL;
+ dom_string_unref(nodelist->name);
+ nodelist->name = NULL;
+ dom_html_collection_unref(nodelist->col);
+ nodelist->col = NULL;
+}
+
+/**
+ * Destroy a dom_html_radio_nodelist object
+ *
+ * \param nodelist The dom_html_radio_nodelist object
+ */
+void _dom_html_radio_nodelist_destroy(struct dom_html_radio_nodelist *nodelist)
+{
+ _dom_html_radio_nodelist_finalise(nodelist);
+ free(nodelist);
+}
+
+/*-----------------------------------------------------------------------*/
+/* Public API */
+
+/**
+ * Claim a reference on this radio nodelist
+ *
+ * \param nodelist The radio nodelist object
+ */
+void dom_html_radio_nodelist_ref(dom_html_radio_nodelist *nodelist)
+{
+ if (nodelist == NULL)
+ return;
+
+ nodelist->refcnt ++;
+}
+
+/**
+ * Relese a reference on this radio nodelist
+ *
+ * \param nodelist The radio nodelist object
+ */
+void dom_html_radio_nodelist_unref(dom_html_radio_nodelist *nodelist)
+{
+ if (nodelist == NULL)
+ return;
+
+ if (nodelist->refcnt > 0)
+ nodelist->refcnt --;
+
+ if (nodelist->refcnt == 0)
+ _dom_html_radio_nodelist_destroy(nodelist);
+}
diff --git a/src/html/html_radio_nodelist.h b/src/html/html_radio_nodelist.h
new file mode 100644
index 0000000..ffb2b12
--- /dev/null
+++ b/src/html/html_radio_nodelist.h
@@ -0,0 +1,35 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2018 Daniel Silverstone <[email protected]>
+ */
+
+#ifndef dom_internal_html_radio_nodelist_h_
+#define dom_internal_html_radio_nodelist_h_
+
+#include <dom/html/html_collection.h>
+
+struct dom_html_form_element;
+
+struct dom_html_radio_nodelist {
+ uint32_t refcnt; /**< The reference count of the nodelist */
+ dom_string *name; /**< The name used for the nodelist */
+ struct dom_html_form_element *form; /**< The form on which we
constructed */
+ dom_html_collection *col; /**< the underlying collection */
+};
+
+dom_exception _dom_html_radio_nodelist_create(struct dom_html_form_element
*form,
+ dom_string *name,
+ struct dom_html_radio_nodelist **nodelist);
+
+dom_exception _dom_html_radio_nodelist_initialise(struct dom_html_form_element
*form,
+ struct dom_html_radio_nodelist *nodelist,
+ dom_string *name);
+
+void _dom_html_radio_nodelist_finalise(struct dom_html_radio_nodelist
*nodelist);
+
+void _dom_html_radio_nodelist_destroy(struct dom_html_radio_nodelist
*nodelist);
+
+
+#endif
--
Document Object Model library
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org