From 7b30a5520cfb56e651f0eb4da85a3e07747da7dc Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 23 Jun 2007 22:40:25 +0000 Subject: Import hubbub -- an HTML parsing library. Plenty of work still to do (like tree generation ;) svn path=/trunk/hubbub/; revision=3359 --- src/hubbub.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/hubbub.c (limited to 'src/hubbub.c') diff --git a/src/hubbub.c b/src/hubbub.c new file mode 100644 index 0000000..32e0a1f --- /dev/null +++ b/src/hubbub.c @@ -0,0 +1,63 @@ +/* + * This file is part of Hubbub. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell + */ + +#include + +#include "charset/aliases.h" +#include "tokeniser/entities.h" + +/** + * Initialise the Hubbub library for use. + * + * This _must_ be called before using any hubbub functions + * + * \param aliases_file Pointer to name of file containing encoding alias data + * \param alloc Pointer to (de)allocation function + * \param pw Pointer to client-specific private data (may be NULL) + * \return HUBBUB_OK on success, applicable error otherwise. + */ +hubbub_error hubbub_initialise(const char *aliases_file, + hubbub_alloc alloc, void *pw) +{ + hubbub_error error; + + if (aliases_file == NULL || alloc == NULL) + return HUBBUB_BADPARM; + + error = hubbub_aliases_create(aliases_file, alloc, pw); + if (error != HUBBUB_OK) + return error; + + error = hubbub_entities_create(alloc, pw); + if (error != HUBBUB_OK) { + hubbub_aliases_destroy(alloc, pw); + return error; + } + + return HUBBUB_OK; +} + +/** + * Clean up after Hubbub + * + * \param alloc Pointer to (de)allocation function + * \param pw Pointer to client-specific private data (may be NULL) + * \return HUBBUB_OK on success, applicable error otherwise. + */ +hubbub_error hubbub_finalise(hubbub_alloc alloc, void *pw) +{ + if (alloc == NULL) + return HUBBUB_BADPARM; + + hubbub_entities_destroy(alloc, pw); + + hubbub_aliases_destroy(alloc, pw); + + return HUBBUB_OK; +} + + -- cgit v1.2.3