diff options
author | John-Mark Bell <jmb@netsurf-browser.org> | 2012-11-11 11:31:34 +0000 |
---|---|---|
committer | John-Mark Bell <jmb@netsurf-browser.org> | 2012-11-11 11:31:34 +0000 |
commit | ce640e59fdcb178a906cf644f7d45be905e6356d (patch) | |
tree | 11af4728c52874bf25af9af75381567992204648 /utils/libdom.c | |
parent | bb3a6bbb3b905287f94575fc3c65e44887b0ff58 (diff) | |
download | netsurf-ce640e59fdcb178a906cf644f7d45be905e6356d.tar.gz netsurf-ce640e59fdcb178a906cf644f7d45be905e6356d.tar.bz2 |
Report (and ignore) failure to load non-existent document. (Credit: Chris Young)
Diffstat (limited to 'utils/libdom.c')
-rw-r--r-- | utils/libdom.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/utils/libdom.c b/utils/libdom.c index 756465a02..ee911c3ff 100644 --- a/utils/libdom.c +++ b/utils/libdom.c @@ -259,7 +259,7 @@ static void ignore_dom_msg(uint32_t severity, void *ctx, const char *msg, ...) } /* exported interface documented in libdom.h */ -dom_document *libdom_parse_file(const char *filename, const char *encoding) +nserror libdom_parse_file(const char *filename, const char *encoding, dom_document **doc) { dom_hubbub_error error; dom_hubbub_parser *parser; @@ -270,14 +270,14 @@ dom_document *libdom_parse_file(const char *filename, const char *encoding) fp = fopen(filename, "r"); if (fp == NULL) { - return NULL; + return NSERROR_NOT_FOUND; } parser = dom_hubbub_parser_create(encoding, false, false, ignore_dom_msg, NULL, NULL, &document); if (parser == NULL) { fclose(fp); - return NULL; + return NSERROR_DOM; } while (feof(fp) == 0) { @@ -288,7 +288,7 @@ dom_document *libdom_parse_file(const char *filename, const char *encoding) dom_node_unref(document); dom_hubbub_parser_destroy(parser); fclose(fp); - return NULL; + return NSERROR_DOM; } } @@ -297,10 +297,11 @@ dom_document *libdom_parse_file(const char *filename, const char *encoding) dom_node_unref(document); dom_hubbub_parser_destroy(parser); fclose(fp); - return NULL; + return NSERROR_DOM; } dom_hubbub_parser_destroy(parser); - return document; + *doc = document; + return NSERROR_OK; } |