[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-wget] Download files and preserve their data and time
From: |
Giuseppe Scrivano |
Subject: |
Re: [Bug-wget] Download files and preserve their data and time |
Date: |
Sat, 20 Aug 2011 17:21:31 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
"David H. Lipman" <address@hidden> writes:
> WinXP/Vista -- Win32
>
> Y:\>wget --version
> GNU Wget 1.12-2504 built on mingw32.
the change introduced by the revision
address@hidden could be the reason of
the problem you have reported.
If it is possible for you to compile wget, could you try to revert this
patch? Does it solve the problem for you?
If you have problems to re-build wget then I'll try to setup the
environment here.
Thanks,
Giuseppe
=== modified file 'bootstrap.conf'
--- bootstrap.conf 2011-04-19 09:31:25 +0000
+++ bootstrap.conf 2011-04-19 10:33:46 +0000
@@ -30,9 +30,11 @@
announce-gen
bind
c-ctype
+clock-time
close
connect
fcntl
+futimens
getaddrinfo
getopt-gnu
getpass-gnu
=== modified file 'src/Makefile.am'
--- src/Makefile.am 2011-04-03 22:13:53 +0000
+++ src/Makefile.am 2011-04-19 10:33:46 +0000
@@ -37,7 +37,7 @@
# The following line is losing on some versions of make!
DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\"
-DLOCALEDIR=\"$(localedir)\"
-LIBS = @LIBICONV@ @LIBINTL@ @LIBS@
+LIBS = @LIBICONV@ @LIBINTL@ @LIBS@ $(LIB_CLOCK_GETTIME)
bin_PROGRAMS = wget
wget_SOURCES = cmpt.c connect.c convert.c cookies.c ftp.c \
=== modified file 'src/utils.c'
--- src/utils.c 2011-04-18 12:37:42 +0000
+++ src/utils.c 2011-04-19 10:33:46 +0000
@@ -51,8 +51,7 @@
#include <stdarg.h>
#include <locale.h>
-#include <sys/time.h>
-
+#include <sys/stat.h>
/* For TIOCGWINSZ and friends: */
#ifdef HAVE_SYS_IOCTL_H
@@ -488,15 +487,25 @@
void
touch (const char *file, time_t tm)
{
- struct timeval timevals[2];
-
- timevals[0].tv_sec = time (NULL);
- timevals[0].tv_usec = 0L;
- timevals[1].tv_sec = tm;
- timevals[1].tv_usec = 0L;
-
- if (utimes (file, timevals) == -1)
- logprintf (LOG_NOTQUIET, "utimes(%s): %s\n", file, strerror (errno));
+ struct timespec timespecs[2];
+ int fd;
+
+ fd = open (file, O_WRONLY);
+ if (fd < 0)
+ {
+ logprintf (LOG_NOTQUIET, "open(%s): %s\n", file, strerror (errno));
+ return;
+ }
+
+ timespecs[0].tv_sec = time (NULL);
+ timespecs[0].tv_nsec = 0L;
+ timespecs[1].tv_sec = tm;
+ timespecs[1].tv_nsec = 0L;
+
+ if (futimens (fd, timespecs) == -1)
+ logprintf (LOG_NOTQUIET, "futimens(%s): %s\n", file, strerror (errno));
+
+ close (fd);
}
/* Checks if FILE is a symbolic link, and removes it if it is. Does
=== modified file 'tests/Makefile.am'
--- tests/Makefile.am 2011-04-03 22:13:53 +0000
+++ tests/Makefile.am 2011-04-19 10:33:46 +0000
@@ -34,7 +34,7 @@
PERL = perl
PERLRUN = $(PERL) -I$(srcdir)
-LIBS = @LIBICONV@ @LIBINTL@ @LIBS@
+LIBS = @LIBICONV@ @LIBINTL@ @LIBS@ $(LIB_CLOCK_GETTIME)
.PHONY: test run-unit-tests run-px-tests