X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fstriconveh.c;h=56c0c04782accb0d2edeb448375d27f07e685c50;hb=2354d5ead305b61c925e53bcfb73d47de7c53162;hp=c1ef0b1fd121c52f6bc7a6fba4483ab7c31ffd3f;hpb=1a1741dd9da04c2a6e5b15fda129cd5d8b69ee03;p=gnulib.git diff --git a/lib/striconveh.c b/lib/striconveh.c index c1ef0b1fd..56c0c0478 100644 --- a/lib/striconveh.c +++ b/lib/striconveh.c @@ -28,12 +28,11 @@ #if HAVE_ICONV # include -# include "utf8-ucs4-safe.h" +# include "utf8-ucs4.h" # include "ucs4-utf8.h" # include "unistr.h" #endif -#include "strdup.h" #include "c-strcase.h" #include "c-strcaseeq.h" @@ -201,7 +200,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen, size_t length; size_t last_length = (size_t)(-1); /* only needed if offsets != NULL */ - if (*lengthp >= sizeof (tmpbuf)) + if (*resultp != NULL && *lengthp >= sizeof (tmpbuf)) { initial_result = *resultp; allocated = *lengthp; @@ -482,7 +481,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen, int n; int m; - n = u8_mbtouc_safe (&uc, (const uint8_t *) in1ptr, in1size); + n = u8_mbtouc (&uc, (const uint8_t *) in1ptr, in1size); if (uc == 0xfffd && !(n >= 3 && (uint8_t)in1ptr[0] == 0xEF @@ -644,8 +643,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen, int n; if (in2size == 0) abort (); - n = u8_mbtouc (&uc, (const uint8_t *) in2ptr, - in2size); + n = u8_mbtouc_unsafe (&uc, (const uint8_t *) in2ptr, + in2size); in2ptr += n; in2size -= n; }