diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2007-06-23 22:40:25 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2007-06-23 22:40:25 +0000 |
commit | 7b30a5520cfb56e651f0eb4da85a3e07747da7dc (patch) | |
tree | 5d6281c071c089e1e7a8ae6f8044cecaf6a7db16 /src/hubbub.c | |
download | libhubbub-7b30a5520cfb56e651f0eb4da85a3e07747da7dc.tar.gz libhubbub-7b30a5520cfb56e651f0eb4da85a3e07747da7dc.tar.bz2 |
Import hubbub -- an HTML parsing library.
Plenty of work still to do (like tree generation ;)
svn path=/trunk/hubbub/; revision=3359
Diffstat (limited to 'src/hubbub.c')
-rw-r--r-- | src/hubbub.c | 63 |
1 files changed, 63 insertions, 0 deletions
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 <jmb@netsurf-browser.org> + */ + +#include <hubbub/hubbub.h> + +#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; +} + + |