From 007c7b16ab269fc16cc4d3a337d3b84319097368 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Tue, 6 Jan 2009 00:18:19 +0000 Subject: Make input filter correctly return _BADENCODING. svn path=/trunk/libparserutils/; revision=5964 --- src/input/filter.c | 8 +++++--- src/input/inputstream.c | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/input/filter.c b/src/input/filter.c index 7ed4ec6..7d7b340 100644 --- a/src/input/filter.c +++ b/src/input/filter.c @@ -381,7 +381,7 @@ parserutils_error filter_set_encoding(parserutils_filter *input, mibenum = parserutils_charset_mibenum_from_name(enc, strlen(enc)); if (mibenum == 0) - return PARSERUTILS_INVALID; + return PARSERUTILS_BADENCODING; /* Exit early if we're already using this encoding */ if (input->settings.encoding == mibenum) @@ -399,8 +399,10 @@ parserutils_error filter_set_encoding(parserutils_filter *input, input->cd = iconv_open( parserutils_charset_mibenum_to_name(input->int_enc), enc); - if (input->cd == (iconv_t) -1) - return PARSERUTILS_NOMEM; + if (input->cd == (iconv_t) -1) { + return (errno == EINVAL) ? PARSERUTILS_BADENCODING + : PARSERUTILS_NOMEM; + } #else if (input->read_codec != NULL) { parserutils_charset_codec_destroy(input->read_codec); diff --git a/src/input/inputstream.c b/src/input/inputstream.c index 5b2bd49..1a9be2a 100644 --- a/src/input/inputstream.c +++ b/src/input/inputstream.c @@ -113,8 +113,7 @@ parserutils_error parserutils_inputstream_create(const char *enc, error = parserutils_filter_setopt(s->input, PARSERUTILS_FILTER_SET_ENCODING, ¶ms); - if (error != PARSERUTILS_OK && - error != PARSERUTILS_INVALID) { + if (error != PARSERUTILS_OK) { parserutils_filter_destroy(s->input); parserutils_buffer_destroy(s->public.utf8); parserutils_buffer_destroy(s->raw); -- cgit v1.2.3