X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Firi.c;h=08cfde40fb04d0d66a460c69ebb030d0d6d2c347;hp=e3909d50bb71f6767b8c23d9c0566f5098363b20;hb=2f6aa1d7417df1dfc58597777686fbd77179b9fd;hpb=090f1596ae2eb446c265a62849f59657a9ee9e07 diff --git a/src/iri.c b/src/iri.c index e3909d50..08cfde40 100644 --- a/src/iri.c +++ b/src/iri.c @@ -1,5 +1,5 @@ /* IRI related functions. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -31,7 +31,6 @@ as that of the covered work. */ #include #include -#include #include #include #include @@ -101,7 +100,7 @@ check_encoding_name (char *encoding) { 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; } @@ -111,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 * @@ -129,7 +121,7 @@ locale_to_utf8 (const char *str) /* 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 (); } @@ -138,8 +130,8 @@ locale_to_utf8 (const char *str) 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; } @@ -180,7 +172,7 @@ do_conversion (iconv_t cd, char *in, size_t inlen, char **out) { if (!invalid) logprintf (LOG_VERBOSE, - "Incomplete or invalide multibyte sequence encountered\n"); + _("Incomplete or invalid multibyte sequence encountered\n")); invalid++; **out = *in; @@ -205,7 +197,7 @@ do_conversion (iconv_t cd, char *in, size_t inlen, char **out) } else /* Weird, we got an unspecified error */ { - logprintf (LOG_VERBOSE, "Unhandled errno %d\n", errno); + logprintf (LOG_VERBOSE, _("Unhandled errno %d\n"), errno); break; } } @@ -234,7 +226,7 @@ idn_encode (struct iri *i, char *host) 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; } @@ -253,7 +245,7 @@ idn_decode (char *host) 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; } @@ -295,19 +287,32 @@ remote_to_utf8 (struct iri *i, const char *str, const char **new) 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); }