/* IRI related functions.
- Copyright (C) 2008 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2009 Free Software Foundation, Inc.
This file is part of GNU Wget.
{
if (!c_isascii (*s) || c_isspace (*s))
{
- logprintf (LOG_VERBOSE, "Encoding %s isn't valid\n", quote (encoding));
+ logprintf (LOG_VERBOSE, _("Encoding %s isn't valid\n"), quote (encoding));
return false;
}
/* That shouldn't happen, just in case */
if (!opt.locale)
{
- logprintf (LOG_VERBOSE, "open_locale_to_utf8: locale is unset\n");
+ logprintf (LOG_VERBOSE, _("locale_to_utf8: locale is unset\n"));
opt.locale = find_locale ();
}
l2u = iconv_open ("UTF-8", opt.locale);
if (l2u != (iconv_t)(-1))
{
- logprintf (LOG_VERBOSE, "Conversion from %s to %s isn't supported\n",
+ logprintf (LOG_VERBOSE, _("Conversion from %s to %s isn't supported\n"),
quote (opt.locale), quote ("UTF-8"));
return str;
}
{
if (!invalid)
logprintf (LOG_VERBOSE,
- "Incomplete or invalide multibyte sequence encountered\n");
+ _("Incomplete or invalid multibyte sequence encountered\n"));
invalid++;
**out = *in;
}
else /* Weird, we got an unspecified error */
{
- logprintf (LOG_VERBOSE, "Unhandled errno %d\n", errno);
+ logprintf (LOG_VERBOSE, _("Unhandled errno %d\n"), errno);
break;
}
}
if (ret != IDNA_SUCCESS)
{
/* sXXXav : free new when needed ! */
- logprintf (LOG_VERBOSE, "idn_encode failed (%d): %s\n", ret,
+ logprintf (LOG_VERBOSE, _("idn_encode failed (%d): %s\n"), ret,
quote (idna_strerror (ret)));
return NULL;
}
ret = idna_to_unicode_8zlz (host, &new, IDNA_FLAGS);
if (ret != IDNA_SUCCESS)
{
- logprintf (LOG_VERBOSE, "idn_decode failed (%d): %s\n", ret,
+ logprintf (LOG_VERBOSE, _("idn_decode failed (%d): %s\n"), ret,
quote (idna_strerror (ret)));
return NULL;
}
struct iri *
iri_new (void)
{
- struct iri *i = xmalloc (sizeof (struct iri));
+ struct iri *i = xmalloc (sizeof *i);
i->uri_encoding = opt.encoding_remote ? xstrdup (opt.encoding_remote) : NULL;
i->content_encoding = NULL;
+ i->orig_url = NULL;
i->utf8_encode = opt.enable_iri;
return i;
}
+struct iri *iri_dup (const struct iri *src)
+{
+ struct iri *i = xmalloc (sizeof *i);
+ i->uri_encoding = src->uri_encoding ? xstrdup (src->uri_encoding) : NULL;
+ i->content_encoding = (src->content_encoding ?
+ xstrdup (src->content_encoding) : NULL);
+ i->orig_url = src->orig_url ? xstrdup (src->orig_url) : NULL;
+ i->utf8_encode = src->utf8_encode;
+ return i;
+}
+
/* Completely free an iri structure. */
void
iri_free (struct iri *i)
{
xfree_null (i->uri_encoding);
xfree_null (i->content_encoding);
+ xfree_null (i->orig_url);
xfree (i);
}
void
set_uri_encoding (struct iri *i, char *charset, bool force)
{
- DEBUGP (("URI encoding = `%s'\n", charset ? quote (charset) : "None"));
+ DEBUGP (("URI encoding = %s\n", charset ? quote (charset) : "None"));
if (!force && opt.encoding_remote)
return;
if (i->uri_encoding)