moriyoshi Wed Nov 6 11:54:18 2002 EDT Modified files: /php4/ext/iconv iconv.c Log: Clean up Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.62 php4/ext/iconv/iconv.c:1.63 --- php4/ext/iconv/iconv.c:1.62 Wed Nov 6 11:29:16 2002 +++ php4/ext/iconv/iconv.c Wed Nov 6 11:54:18 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: iconv.c,v 1.62 2002/11/06 16:29:16 moriyoshi Exp $ */ +/* $Id: iconv.c,v 1.63 2002/11/06 16:54:18 moriyoshi Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -197,7 +197,8 @@ size_t result; typedef unsigned int ucs4_t; - in_size = in_len; + *out = NULL; + *out_len = 0; /* This is not the right way to get output size... @@ -208,17 +209,16 @@ */ out_size = in_len * sizeof(ucs4_t) + 15; out_left = out_size; - + + in_size = in_len; + cd = icv_open(out_charset, in_charset); if (cd == (iconv_t)(-1)) { - *out = NULL; - *out_len = 0; return PHP_ICONV_ERR_UNKNOWN; } out_buffer = (char *) emalloc(out_size + 1); - *out = out_buffer; out_p = out_buffer; result = icv(cd, (const char **) &in_p, &in_size, (char **) @@ -226,15 +226,15 @@ if (result == (size_t)(-1)) { efree(out_buffer); - *out = NULL; - *out_len = 0; return PHP_ICONV_ERR_UNKNOWN; } *out_len = out_size - out_left; out_buffer[*out_len] = '\0'; + *out = out_buffer; + icv_close(cd); - + return PHP_ICONV_ERR_SUCCESS; #else @@ -247,14 +247,15 @@ size_t bsz, result = 0; php_iconv_err_t retval = PHP_ICONV_ERR_SUCCESS; + *out = NULL; + *out_len = 0; + cd = icv_open(out_charset, in_charset); if (cd == (iconv_t)(-1)) { if (errno == EINVAL) { - *out = NULL; return PHP_ICONV_ERR_WRONG_CHARSET; } else { - *out = NULL; return PHP_ICONV_ERR_CONVERTER; } } @@ -305,8 +306,6 @@ /* other error */ retval = PHP_ICONV_ERR_UNKNOWN; efree(out_buf); - *out = NULL; - *out_len = 0; return PHP_ICONV_ERR_UNKNOWN; } }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php