From db61675ec0440336842fbc2c1382fc71ef434776 Mon Sep 17 00:00:00 2001 From: Micah Cowan Date: Sun, 27 Apr 2008 02:15:31 -0700 Subject: [PATCH] Downgrade -r, -p with -O to a warning rather than an error; elaborate about bad combinations with -O. --- doc/ChangeLog | 5 +++++ doc/wget.texi | 18 ++++++++++++++++-- src/ChangeLog | 6 ++++++ src/main.c | 31 ++++++++++++++++++++----------- 4 files changed, 47 insertions(+), 13 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index af44b39e..7157a768 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2008-04-27 Micah Cowan + + * wget.texi (Download Options) <-O>: Elaborate on why certain + options make poor combinations with -O. + 2008-04-22 Mike Frysinger * sample.wgetrc: Added prefer_family example. Resolves bug diff --git a/doc/wget.texi b/doc/wget.texi index 583c7fcf..7a949bfe 100644 --- a/doc/wget.texi +++ b/doc/wget.texi @@ -551,9 +551,23 @@ analogous to shell redirection: @samp{wget -O - http://foo > file}; @file{file} will be truncated immediately, and @emph{all} downloaded content will be written there. +For this reason, @samp{-N} (for timestamp-checking) is not supported +in combination with @samp{-O}: since @var{file} is always newly +created, it will always have a very new timestamp. Contrary to some +users' expectations, the combination has never worked, and as of +version 1.11, it results in an error. + +Similarly, using @samp{-r} or @samp{-p} with @samp{-O} may not work as +you expect: Wget won't just download the first file to @var{file} and +then download the rest to their normal names: @emph{all} downloaded +content will be placed in @var{file}. This was disabled in version +1.11, but has been reinstated (with a warning) in 1.11.2, as there are +some cases where this behavior can actually have some use. + Note that a combination with @samp{-k} is only permitted when -downloading a single document, and combination with any of @samp{-r}, -@samp{-p}, or @samp{-N} is not allowed. +downloading a single document, as in that case it will just convert +all relative URIs to external ones; @samp{-k} makes no sense for +multiple URIs when they're all being downloaded to a single file. @cindex clobbering, file @cindex downloading multiple times diff --git a/src/ChangeLog b/src/ChangeLog index 2f8464bd..24ab9175 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2008-04-27 Micah Cowan + + * main.c (main): Downgrade -r, -p with -O to a warning rather than + an error; elaborate just a bit more for other -O combination + cases. + 2008-04-26 Micah Cowan * http.c (gethttp): Move proxy CONNECT handling to below the diff --git a/src/main.c b/src/main.c index b1e99695..1ad0a48c 100644 --- a/src/main.c +++ b/src/main.c @@ -880,22 +880,31 @@ Can't timestamp and not clobber old files at the same time.\n")); exit (1); } #endif - if (opt.output_document - && (opt.page_requisites - || opt.recursive - || opt.timestamping)) + if (opt.output_document) { - printf (_("Cannot specify -r, -p or -N if -O is given.\n")); + if (opt.convert_links + && (nurl > 1 || opt.page_requisites || opt.recursive)) + { + fputs (_("\ +Cannot specify both -k and -O if multiple URLs are given, or in combination\n\ +with -p or -r. See the manual for details.\n\n"), stdout); print_usage (); exit (1); - } - if (opt.output_document - && opt.convert_links - && nurl > 1) - { - printf (_("Cannot specify both -k and -O if multiple URLs are given.\n")); + } + if (opt.page_requisites + || opt.recursive) + { + logprintf (LOG_NOTQUIET, "%s", _("\ +WARNING: combining -O with -r or -p will mean that all downloaded content\n\ +will be placed in the single file you specified.\n\n")); + } + if (opt.timestamping) + { + fputs (_("\ +Cannot specify -N if -O is given. See the manual for details.\n\n"), stdout); print_usage (); exit (1); + } } if (!nurl && !opt.input_filename)