From e0e86ccb1d2848678b5c32f65bf6239ba5fb9d24 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 29 Nov 2001 05:00:56 +0000 Subject: Update. * iconv/gconv_open.c (__gconv_open): Empty codeset name now means using the current locale's codeset. * iconv/iconv_open.c (iconv_open): Don't strip out everything for empty input string. * iconv/iconv_prog.c: Pass empty strings as default value for to- and from-charset. Don't determine locale's charset here. if libio is used [PR libc/2575]. --- iconv/iconv_open.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'iconv/iconv_open.c') diff --git a/iconv/iconv_open.c b/iconv/iconv_open.c index ac44af80cb..e0f6135575 100644 --- a/iconv/iconv_open.c +++ b/iconv/iconv_open.c @@ -40,14 +40,15 @@ iconv_open (const char *tocode, const char *fromcode) /* Normalize the name. We remove all characters beside alpha-numeric, '_', '-', '/', and '.'. */ tocode_len = strlen (tocode); - tocode_conv = alloca (tocode_len + 3); + tocode_conv = (char *) alloca (tocode_len + 3); strip (tocode_conv, tocode); - tocode = tocode_conv[2] == '\0' ? upstr (tocode_conv, tocode) : tocode_conv; + tocode = (tocode_conv[2] == '\0' && tocode[0] != '\0' + ? upstr (tocode_conv, tocode) : tocode_conv); fromcode_len = strlen (fromcode); - fromcode_conv = alloca (fromcode_len + 3); + fromcode_conv = (char *) alloca (fromcode_len + 3); strip (fromcode_conv, fromcode); - fromcode = (fromcode_conv[2] == '\0' + fromcode = (fromcode_conv[2] == '\0' && fromcode[0] != '\0' ? upstr (fromcode_conv, fromcode) : fromcode_conv); res = __gconv_open (tocode, fromcode, &cd, 0); -- cgit v1.2.3