X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Firi.c;h=9b16639e6b2c03e7abf9e413576c89f6ce21d83f;hp=51c2329101f31ad940438e2e19f38744f3cecff1;hb=c9c0e4c6418350d913638d73e0a50bebdb5fd983;hpb=4a08094db88011153adadbf995103770b20d2a31 diff --git a/src/iri.c b/src/iri.c index 51c23291..9b16639e 100644 --- a/src/iri.c +++ b/src/iri.c @@ -1,5 +1,5 @@ /* IRI related functions. - Copyright (C) 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -110,13 +110,6 @@ check_encoding_name (char *encoding) return true; } -/* Try opening an iconv_t descriptor for conversion from locale to UTF-8 */ -static bool -open_locale_to_utf8 (void) -{ - -} - /* Try converting string str from locale to UTF-8. Return a new string on success, or str on error or if conversion isn't needed. */ const char * @@ -271,6 +264,21 @@ remote_to_utf8 (struct iri *i, const char *str, const char **new) if (!i->uri_encoding) return false; + /* When `i->uri_encoding' == "UTF-8" there is nothing to convert. But we must + test for non-ASCII symbols for correct hostname processing in `idn_encode' + function. */ + if (!strcmp (i->uri_encoding, "UTF-8")) + { + int i, len = strlen (str); + for (i = 0; i < len; i++) + if ((unsigned char) str[i] >= (unsigned char) '\200') + { + *new = strdup (str); + return true; + } + return false; + } + cd = iconv_open ("UTF-8", i->uri_encoding); if (cd == (iconv_t)(-1)) return false;