]> sjero.net Git - wget/blobdiff - src/iri.c
Fix compiler warnings
[wget] / src / iri.c
index 08cfde40fb04d0d66a460c69ebb030d0d6d2c347..dcab3ea1533fc2ea9e9d3429a134a9b9471060ee 100644 (file)
--- a/src/iri.c
+++ b/src/iri.c
@@ -256,15 +256,30 @@ idn_decode (char *host)
 /* Try to transcode string str from remote encoding to UTF-8. On success, *new
    contains the transcoded string. *new content is unspecified otherwise. */
 bool
-remote_to_utf8 (struct iri *i, const char *str, const char **new)
+remote_to_utf8 (struct iri *iri, const char *str, const char **new)
 {
   iconv_t cd;
   bool ret = false;
 
-  if (!i->uri_encoding)
+  if (!iri->uri_encoding)
     return false;
 
-  cd = iconv_open ("UTF-8", i->uri_encoding);
+  /* 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 (iri->uri_encoding, "UTF-8"))
+    {
+      const char *p = str;
+      for (p = str; *p; p++)
+        if (*p < 0)
+          {
+            *new = strdup (str);
+            return true;
+          }
+      return false;
+    }
+
+  cd = iconv_open ("UTF-8", iri->uri_encoding);
   if (cd == (iconv_t)(-1))
     return false;