summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--src/treebuilder/element-type.c19
-rw-r--r--src/treebuilder/element-type.h8
-rw-r--r--src/treebuilder/treebuilder.c19
-rw-r--r--test/tokeniser2.c4
-rw-r--r--test/tokeniser3.c4
6 files changed, 32 insertions, 24 deletions
diff --git a/Makefile b/Makefile
index 34bc7ec..846a5fb 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@
# Component settings
COMPONENT := hubbub
-COMPONENT_VERSION := 0.3.7
+COMPONENT_VERSION := 0.3.8
# Default to a static library
COMPONENT_TYPE ?= lib-static
diff --git a/src/treebuilder/element-type.c b/src/treebuilder/element-type.c
index f6d3247..7e2772c 100644
--- a/src/treebuilder/element-type.c
+++ b/src/treebuilder/element-type.c
@@ -28,3 +28,22 @@ element_type element_type_from_name(
return value->type;
}
+
+/**
+ * Convert an element type to a name
+ *
+ * \param type The element type
+ * \return Pointer to name
+ */
+const char *element_type_to_name(element_type type)
+{
+ size_t i;
+
+ for (i = 0; i < sizeof(wordlist) / sizeof(wordlist[0]); i++) {
+ if (wordlist[i].type == type) {
+ return wordlist[i].name;
+ }
+ }
+
+ return "UNKNOWN";
+}
diff --git a/src/treebuilder/element-type.h b/src/treebuilder/element-type.h
index 93b168c..75612fd 100644
--- a/src/treebuilder/element-type.h
+++ b/src/treebuilder/element-type.h
@@ -53,5 +53,13 @@ element_type element_type_from_name(
hubbub_treebuilder *treebuilder,
const hubbub_string *tag_name);
+/**
+ * Convert an element type to a name
+ *
+ * \param type The element type
+ * \return Pointer to name
+ */
+const char *element_type_to_name(element_type type);
+
#endif
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index 2d2d047..f11875e 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -1397,24 +1397,5 @@ void formatting_list_dump(hubbub_treebuilder *treebuilder, FILE *fp)
}
}
-/**
- * Convert an element type to a name
- *
- * \param type The element type
- * \return Pointer to name
- */
-const char *element_type_to_name(element_type type)
-{
- size_t i;
-
- for (i = 0;
- i < sizeof(name_type_map) / sizeof(name_type_map[0]);
- i++) {
- if (name_type_map[i].type == type)
- return name_type_map[i].name;
- }
-
- return "UNKNOWN";
-}
#endif
diff --git a/test/tokeniser2.c b/test/tokeniser2.c
index f38f7ab..f468d1c 100644
--- a/test/tokeniser2.c
+++ b/test/tokeniser2.c
@@ -438,7 +438,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
/* Expected token only contained part of the data
* Calculate how much is left, then try again with
* the next expected token */
- hubbub_token t;
+ hubbub_token t = *token;
t.type = HUBBUB_TOKEN_CHARACTER;
t.data.character.ptr += len;
@@ -446,7 +446,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
ctx->char_off = 0;
- token_handler(&t, pw);
+ return token_handler(&t, pw);
} else if (strlen(expstr + ctx->char_off) >
token->data.character.len) {
/* Tokeniser output only contained part of the data
diff --git a/test/tokeniser3.c b/test/tokeniser3.c
index 416ff5d..eb921ce 100644
--- a/test/tokeniser3.c
+++ b/test/tokeniser3.c
@@ -447,7 +447,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
/* Expected token only contained part of the data
* Calculate how much is left, then try again with
* the next expected token */
- hubbub_token t;
+ hubbub_token t = *token;
t.type = HUBBUB_TOKEN_CHARACTER;
t.data.character.ptr += len;
@@ -455,7 +455,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
ctx->char_off = 0;
- token_handler(&t, pw);
+ return token_handler(&t, pw);
} else if (strlen(expstr + ctx->char_off) >
token->data.character.len) {
/* Tokeniser output only contained part of the data