mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
Fixed bug #23238: --no-clobber doesn't work with -O flag
"wget -nc -O file URL" now checks if "file" exists first. If it does, it terminates.
This commit is contained in:
parent
1ddd88d7c5
commit
888c30ba01
@ -1091,7 +1091,9 @@ ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con)
|
|||||||
if (!con->target)
|
if (!con->target)
|
||||||
con->target = url_file_name (u);
|
con->target = url_file_name (u);
|
||||||
|
|
||||||
if (opt.noclobber && file_exists_p (con->target))
|
/* If the output_document was given, then this check was already done and
|
||||||
|
the file doesn't exist. Hence the !opt.output_document */
|
||||||
|
if (opt.noclobber && !opt.output_document && file_exists_p (con->target))
|
||||||
{
|
{
|
||||||
logprintf (LOG_VERBOSE,
|
logprintf (LOG_VERBOSE,
|
||||||
_("File `%s' already there; not retrieving.\n"), con->target);
|
_("File `%s' already there; not retrieving.\n"), con->target);
|
||||||
|
10
src/http.c
10
src/http.c
@ -1821,10 +1821,11 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
|
|||||||
/* TODO: perform this check only once. */
|
/* TODO: perform this check only once. */
|
||||||
if (!hs->existence_checked && file_exists_p (hs->local_file))
|
if (!hs->existence_checked && file_exists_p (hs->local_file))
|
||||||
{
|
{
|
||||||
if (opt.noclobber)
|
if (opt.noclobber && !opt.output_document)
|
||||||
{
|
{
|
||||||
/* If opt.noclobber is turned on and file already exists, do not
|
/* If opt.noclobber is turned on and file already exists, do not
|
||||||
retrieve the file */
|
retrieve the file. But if the output_document was given, then this
|
||||||
|
test was already done and the file doesn't exist. Hence the !opt.output_document */
|
||||||
logprintf (LOG_VERBOSE, _("\
|
logprintf (LOG_VERBOSE, _("\
|
||||||
File `%s' already there; not retrieving.\n\n"), hs->local_file);
|
File `%s' already there; not retrieving.\n\n"), hs->local_file);
|
||||||
/* If the file is there, we suppose it's retrieved OK. */
|
/* If the file is there, we suppose it's retrieved OK. */
|
||||||
@ -2374,10 +2375,11 @@ http_loop (struct url *u, char **newloc, char **local_file, const char *referer,
|
|||||||
|
|
||||||
/* TODO: Ick! This code is now in both gethttp and http_loop, and is
|
/* TODO: Ick! This code is now in both gethttp and http_loop, and is
|
||||||
* screaming for some refactoring. */
|
* screaming for some refactoring. */
|
||||||
if (got_name && file_exists_p (hstat.local_file) && opt.noclobber)
|
if (got_name && file_exists_p (hstat.local_file) && opt.noclobber && !opt.output_document)
|
||||||
{
|
{
|
||||||
/* If opt.noclobber is turned on and file already exists, do not
|
/* If opt.noclobber is turned on and file already exists, do not
|
||||||
retrieve the file */
|
retrieve the file. But if the output_document was given, then this
|
||||||
|
test was already done and the file doesn't exist. Hence the !opt.output_document */
|
||||||
logprintf (LOG_VERBOSE, _("\
|
logprintf (LOG_VERBOSE, _("\
|
||||||
File `%s' already there; not retrieving.\n\n"),
|
File `%s' already there; not retrieving.\n\n"),
|
||||||
hstat.local_file);
|
hstat.local_file);
|
||||||
|
@ -905,6 +905,12 @@ WARNING: timestamping does nothing in combination with -O. See the manual\n\
|
|||||||
for details.\n\n"));
|
for details.\n\n"));
|
||||||
opt.timestamping = false;
|
opt.timestamping = false;
|
||||||
}
|
}
|
||||||
|
if (opt.noclobber && file_exists_p(opt.output_document))
|
||||||
|
{
|
||||||
|
/* Check if output file exists; if it does, exit. */
|
||||||
|
logprintf (LOG_VERBOSE, _("File `%s' already there; not retrieving.\n"), opt.output_document);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!nurl && !opt.input_filename)
|
if (!nurl && !opt.input_filename)
|
||||||
|
Loading…
Reference in New Issue
Block a user