X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fhtml-url.c;fp=src%2Fhtml-url.c;h=ef93a7e49c5c61ded555c2b6c022be3346bbec2c;hp=75bec7d97e7c56709fea35044385480466ea8cfb;hb=b30a0dd817886f77a64be9218c5e5399bcbc2e67;hpb=b28a6abfe66e03dae1f749d8215f4ba2b7303e5a diff --git a/src/html-url.c b/src/html-url.c index 75bec7d9..ef93a7e4 100644 --- a/src/html-url.c +++ b/src/html-url.c @@ -44,6 +44,7 @@ as that of the covered work. */ #include "recur.h" #include "html-url.h" #include "css-url.h" +#include "iri.h" typedef void (*tag_handler_t) (int, struct taginfo *, struct map_context *); @@ -284,7 +285,9 @@ append_url (const char *link_uri, int position, int size, return NULL; } + set_ugly_no_encode (true); url = url_parse (link_uri, NULL); + set_ugly_no_encode (false); if (!url) { DEBUGP (("%s: link \"%s\" doesn't parse.\n", @@ -303,7 +306,9 @@ append_url (const char *link_uri, int position, int size, DEBUGP (("%s: merge(\"%s\", \"%s\") -> %s\n", ctx->document_file, base, link_uri, complete_uri)); + set_ugly_no_encode (true); url = url_parse (complete_uri, NULL); + set_ugly_no_encode (false); if (!url) { DEBUGP (("%s: merged link \"%s\" doesn't parse.\n", @@ -553,6 +558,25 @@ tag_handle_meta (int tagid, struct taginfo *tag, struct map_context *ctx) entry->link_expect_html = 1; } } + else if (http_equiv && 0 == strcasecmp (http_equiv, "content-type")) + { + /* Handle stuff like: + */ + + char *mcharset; + char *content = find_attr (tag, "content", NULL); + if (!content) + return; + + mcharset = parse_charset (content); + if (!mcharset) + return; + + /*logprintf (LOG_VERBOSE, "Meta tag charset : %s\n", quote (mcharset));*/ + + set_current_charset (mcharset); + xfree (mcharset); + } else if (name && 0 == strcasecmp (name, "robots")) { /* Handle stuff like: @@ -726,7 +750,9 @@ get_urls_file (const char *file) url_text = merged; } + set_ugly_no_encode (true); url = url_parse (url_text, &up_error_code); + set_ugly_no_encode (false); if (!url) { logprintf (LOG_NOTQUIET, _("%s: Invalid URL %s: %s\n"),