From 80b0ecad6b60c69b8bef41b85e4e53fe37364d55 Mon Sep 17 00:00:00 2001 From: Peter Verthez Date: Sun, 27 Oct 2002 15:47:49 +0000 Subject: [PATCH] Set conv_fails on total conversion failure too. --- utf8/utf8-locale.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utf8/utf8-locale.c b/utf8/utf8-locale.c index 6db205b..9d58b62 100644 --- a/utf8/utf8-locale.c +++ b/utf8/utf8-locale.c @@ -70,8 +70,10 @@ char* convert_utf8_to_locale(const char* input, int *conv_fails) char *outptr; size_t nconv; - if (utf8_to_locale == (iconv_t) -1 && (open_conversion_contexts() == -1)) + if (utf8_to_locale == (iconv_t) -1 && (open_conversion_contexts() == -1)) { + if (conv_fails != NULL) *conv_fails = insize; return NULL; + } assert(utf8_to_locale != (iconv_t) -1); /* make sure we start from an empty state */ iconv(utf8_to_locale, NULL, NULL, NULL, NULL); @@ -113,6 +115,7 @@ char* convert_utf8_to_locale(const char* input, int *conv_fails) else { /* EINVAL should not happen, since we convert entire strings */ /* EBADF is an error which should be captured by the assert above */ + if (conv_fails != NULL) *conv_fails += insize; return NULL; } nconv = iconv(utf8_to_locale, &inptr, &insize, &outptr, &outsize); -- 2.30.2