/* Conversion of links to local files.
Copyright (C) 2003, 2004, 2005, 2006, 2007,
- 2008 Free Software Foundation, Inc.
+ 2008, 2009 Free Software Foundation, Inc.
This file is part of GNU Wget.
/* Parse the file... */
urls = is_css ? get_urls_css_file (file, url) :
- get_urls_html (file, url, NULL);
+ get_urls_html (file, url, NULL, NULL);
/* We don't respect meta_disallow_follow here because, even if
the file is not followed, we might still want to convert the
/* Rather than just writing over the original .html file with the
converted version, save the former to *.orig. Note we only do
this for files we've _successfully_ downloaded, so we don't
- clobber .orig files sitting around from previous invocations. */
+ clobber .orig files sitting around from previous invocations.
+ On VMS, use "_orig" instead of ".orig". See "wget.h". */
/* Construct the backup filename as the original name plus ".orig". */
size_t filename_len = strlen (file);
else /* downloaded_file_return == FILE_DOWNLOADED_NORMALLY */
{
/* Append ".orig" to the name. */
- filename_plus_orig_suffix = alloca (filename_len + sizeof (".orig"));
+ filename_plus_orig_suffix = alloca (filename_len + sizeof (ORIG_SFX));
strcpy (filename_plus_orig_suffix, file);
- strcpy (filename_plus_orig_suffix + filename_len, ".orig");
+ strcpy (filename_plus_orig_suffix + filename_len, ORIG_SFX);
}
if (!converted_files)
We quote ? as %3F to avoid passing part of the file name as the
parameter when browsing the converted file through HTTP. However,
- it is safe to do this only when `--html-extension' is turned on.
+ it is safe to do this only when `--adjust-extension' is turned on.
This is because converting "index.html?foo=bar" to
"index.html%3Ffoo=bar" would break local browsing, as the latter
isn't even recognized as an HTML file! However, converting
"index.html?foo=bar.html" to "index.html%3Ffoo=bar.html" should be
safe for both local and HTTP-served browsing.
- We always quote "#" as "%23" and "%" as "%25" because those
- characters have special meanings in URLs. */
+ We always quote "#" as "%23", "%" as "%25" and ";" as "%3B"
+ because those characters have special meanings in URLs. */
static char *
local_quote_string (const char *file)
const char *from;
char *newname, *to;
- char *any = strpbrk (file, "?#%");
+ char *any = strpbrk (file, "?#%;");
if (!any)
return html_quote_string (file);
*to++ = '2';
*to++ = '3';
break;
+ case ';':
+ *to++ = '%';
+ *to++ = '3';
+ *to++ = 'B';
+ break;
case '?':
- if (opt.html_extension)
+ if (opt.adjust_extension)
{
*to++ = '%';
*to++ = '3';
However, our hash tables only accept pointers for keys and values.
So when we need a pointer, we use the address of a
downloaded_file_t variable of static storage. */
-
+
static downloaded_file_t *
downloaded_mode_to_ptr (downloaded_file_t mode)
{