mirror of
https://github.com/mirror/wget.git
synced 2025-03-28 21:10:20 +08:00
[svn] Fix -O timestamp bug.
From <sxs7l57u6o6.fsf@florida.arsdigita.de>.
This commit is contained in:
parent
62b876401e
commit
d5cd691b12
@ -1,3 +1,8 @@
|
|||||||
|
2000-12-11 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||||
|
|
||||||
|
* http.c (http_loop): Furthermore, touch output_document only if
|
||||||
|
it is known to be an existing regular file.
|
||||||
|
|
||||||
2000-12-11 Hrvoje Niksic <hniksic@arsdigita.com>
|
2000-12-11 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||||
|
|
||||||
* ftp.c (ftp_retrieve_list): Ditto.
|
* ftp.c (ftp_retrieve_list): Ditto.
|
||||||
|
14
src/ftp.c
14
src/ftp.c
@ -1370,8 +1370,18 @@ Already have correct symlink %s -> %s\n\n"),
|
|||||||
&& dlthis
|
&& dlthis
|
||||||
&& file_exists_p (u->local))
|
&& file_exists_p (u->local))
|
||||||
{
|
{
|
||||||
const char *fl = opt.output_document ? opt.output_document : u->local;
|
/* #### This code repeats in http.c and ftp.c. Move it to a
|
||||||
touch (fl, f->tstamp);
|
function! */
|
||||||
|
const char *fl = NULL;
|
||||||
|
if (opt.output_document)
|
||||||
|
{
|
||||||
|
if (opt.od_known_regular)
|
||||||
|
fl = opt.output_document;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fl = u->local;
|
||||||
|
if (fl)
|
||||||
|
touch (fl, f->tstamp);
|
||||||
}
|
}
|
||||||
else if (f->tstamp == -1)
|
else if (f->tstamp == -1)
|
||||||
logprintf (LOG_NOTQUIET, _("%s: corrupt time-stamp.\n"), u->local);
|
logprintf (LOG_NOTQUIET, _("%s: corrupt time-stamp.\n"), u->local);
|
||||||
|
14
src/http.c
14
src/http.c
@ -1533,8 +1533,18 @@ The sizes do not match (local %ld) -- retrieving.\n"), local_size);
|
|||||||
((hstat.contlen == -1) ||
|
((hstat.contlen == -1) ||
|
||||||
(hstat.len >= hstat.contlen && !opt.kill_longer)))))
|
(hstat.len >= hstat.contlen && !opt.kill_longer)))))
|
||||||
{
|
{
|
||||||
const char *fl = opt.output_document ? opt.output_document : u->local;
|
/* #### This code repeats in http.c and ftp.c. Move it to a
|
||||||
touch (fl, tmr);
|
function! */
|
||||||
|
const char *fl = NULL;
|
||||||
|
if (opt.output_document)
|
||||||
|
{
|
||||||
|
if (opt.od_known_regular)
|
||||||
|
fl = opt.output_document;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fl = u->local;
|
||||||
|
if (fl)
|
||||||
|
touch (fl, tmr);
|
||||||
}
|
}
|
||||||
/* End of time-stamping section. */
|
/* End of time-stamping section. */
|
||||||
|
|
||||||
|
@ -726,12 +726,15 @@ Can't timestamp and not clobber old files at the same time.\n"));
|
|||||||
opt.dfp = stdout;
|
opt.dfp = stdout;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
struct stat st;
|
||||||
opt.dfp = fopen (opt.output_document, "wb");
|
opt.dfp = fopen (opt.output_document, "wb");
|
||||||
if (opt.dfp == NULL)
|
if (opt.dfp == NULL)
|
||||||
{
|
{
|
||||||
perror (opt.output_document);
|
perror (opt.output_document);
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
if (fstat (fileno (opt.dfp), &st) == 0 && S_ISREG (st.st_mode))
|
||||||
|
opt.od_known_regular = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +73,9 @@ struct options
|
|||||||
FTP. */
|
FTP. */
|
||||||
char *output_document; /* The output file to which the
|
char *output_document; /* The output file to which the
|
||||||
documents will be printed. */
|
documents will be printed. */
|
||||||
|
int od_known_regular; /* whether output_document is a
|
||||||
|
regular file we can manipulate,
|
||||||
|
i.e. not `-' or a device file. */
|
||||||
FILE *dfp; /* The file pointer to the output
|
FILE *dfp; /* The file pointer to the output
|
||||||
document. */
|
document. */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user