mirror of
https://github.com/mirror/wget.git
synced 2024-12-29 14:30:48 +08:00
[svn] Fix for Borland's broken (on Win9X) `utime' function.
Submitted by Ian Abbott in <3CB33A8E.15259.1E52AF@localhost>. (Based on original patch by Chin-yuan Kuo in <20020321015049.16722.qmail@web16202.mail.tpe.yahoo.com>.)
This commit is contained in:
parent
07d72c3cd3
commit
c3c1c24f5c
@ -1,3 +1,8 @@
|
||||
2002-04-09 Ian Abbott <abbotti@mev.co.uk>
|
||||
|
||||
* windows/config.h.bor: define `HACK_BCC_UTIME_BUG'. Define `utime'
|
||||
as `borland_utime' if `HACK_BCC_UTIME_BUG' is defined.
|
||||
|
||||
2002-03-26 Ian Abbott <abbotti@mev.co.uk>
|
||||
|
||||
* windows/wget.dep: Updated several dependencies for object files.
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-04-09 Ian Abbott <abbotti@mev.co.uk>
|
||||
|
||||
* mswindows.c (borland_utime): New function conditionally defined
|
||||
when `HACK_BCC_UTIME_BUG' is defined. A reimplementation of
|
||||
`utime()' as Borland's `utime()' function is broken on Windows 9x
|
||||
systems. (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
|
||||
|
||||
2002-04-08 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||
|
||||
* ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
|
||||
|
@ -28,6 +28,17 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef HACK_BCC_UTIME_BUG
|
||||
# include <io.h>
|
||||
# include <fcntl.h>
|
||||
# ifdef HAVE_UTIME_H
|
||||
# include <utime.h>
|
||||
# endif
|
||||
# ifdef HAVE_SYS_UTIME_H
|
||||
# include <sys/utime.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include "wget.h"
|
||||
#include "utils.h"
|
||||
#include "url.h"
|
||||
@ -242,3 +253,30 @@ ws_startup (void)
|
||||
atexit (ws_cleanup);
|
||||
SetConsoleCtrlHandler (ws_handler, TRUE);
|
||||
}
|
||||
|
||||
/* Replacement utime function for buggy Borland C++Builder 5.5 compiler.
|
||||
(The Borland utime function only works on Windows NT.) */
|
||||
|
||||
#ifdef HACK_BCC_UTIME_BUG
|
||||
int borland_utime(const char *path, const struct utimbuf *times)
|
||||
{
|
||||
int fd;
|
||||
int res;
|
||||
struct ftime ft;
|
||||
struct tm *ptr_tm;
|
||||
|
||||
if ((fd = open (path, O_RDWR)) < 0)
|
||||
return -1;
|
||||
|
||||
ptr_tm = localtime (×->modtime);
|
||||
ft.ft_tsec = ptr_tm->tm_sec >> 1;
|
||||
ft.ft_min = ptr_tm->tm_min;
|
||||
ft.ft_hour = ptr_tm->tm_hour;
|
||||
ft.ft_day = ptr_tm->tm_mday;
|
||||
ft.ft_month = ptr_tm->tm_mon + 1;
|
||||
ft.ft_year = ptr_tm->tm_year - 80;
|
||||
res = setftime (fd, &ft);
|
||||
close (fd);
|
||||
return res;
|
||||
}
|
||||
#endif
|
||||
|
@ -23,6 +23,14 @@
|
||||
#define ftruncate chsize
|
||||
#define inline __inline
|
||||
|
||||
/* Define if the free Borland C++Builder 5.5 command-line compiler is used,
|
||||
because its utime() has a bug. */
|
||||
#define HACK_BCC_UTIME_BUG
|
||||
|
||||
#ifdef HACK_BCC_UTIME_BUG
|
||||
#define utime borland_utime
|
||||
#endif
|
||||
|
||||
/* Define if you have the <alloca.h> header file. */
|
||||
#undef HAVE_ALLOCA_H
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user