delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/08/13/10:13:50

X-Authentication-Warning: new-smtp1.ihug.com.au: Host p273-tnt2.syd.ihug.com.au [203.173.131.19] claimed to be acceleron
Message-ID: <022b01c12401$73724380$0a02a8c0@acceleron>
From: "Andrew Cottrell" <acottrel AT ihug DOT com DOT au>
To: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
Cc: <djgpp-workers AT delorie DOT com>, <sandmann AT clio DOT rice DOT edu>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1010808181731 DOT 27271C-100000 AT is> <007701c120c6$2d72db80$0a02a8c0 AT acceleron> <7458-Thu09Aug2001183844+0300-eliz AT is DOT elta DOT co DOT il> <00af01c12197$68628570$0a02a8c0 AT acceleron> <2561-Mon13Aug2001124204+0300-eliz AT is DOT elta DOT co DOT il> <018901c123f6$2b64fc50$0a02a8c0 AT acceleron> <9628-Mon13Aug2001162401+0300-eliz AT is DOT elta DOT co DOT il>
Subject: Re: Windows 2000 patch for utime.c v1
Date: Tue, 14 Aug 2001 00:08:37 +1000
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Reply-To: djgpp-workers AT delorie DOT com

This is a multi-part message in MIME format.

------=_NextPart_000_0228_01C12455.44318280
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

> > Overall looks like utime_2.dif is the correct patch to use as it allows
> > directory times to be updated on Win2K.
> 
> Please post this utime_2.dif patch again.  I guess I got confused by
> all those patches flying around ;-)

utime_2.dif attached.
 

------=_NextPart_000_0228_01C12455.44318280
Content-Type: application/octet-stream;
	name="utime_v2.dif"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="utime_v2.dif"

*** utimeold.c	Sun Mar 11 00:10:04 2001
--- utime.c	Thu Aug  9 21:18:06 2001
***************
*** 1,3 ****
--- 1,4 ----
+ /* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  #include <libc/stubs.h>
***************
*** 8,13 ****
--- 9,16 ----
  #include <errno.h>		/* For errno */
  #include <go32.h>
  #include <dpmi.h>
+ #include <dos.h>
+ #include <libc/dosio.h>
  
  /* An implementation of utime() for DJGPP.  The utime() function
     specifies an access time and a modification time.  DOS has only one
***************
*** 24,33 ****
    unsigned int dostime, dosdate;
    int retval = 0, e = 0;
  
-   /* DOS wants the file open */
-   fildes = open(path, O_RDONLY);
-   if (fildes == -1) return -1;
- 
    /* NULL times means use current time */
    if (times == NULL)
      modtime = time((time_t *) 0);
--- 27,32 ----
***************
*** 41,46 ****
--- 40,81 ----
    dostime = tm->tm_sec / 2 + (tm->tm_min << 5) +
      (tm->tm_hour << 11);
  
+ 
+   if (_osmajor == 5 &&
+       (_USE_LFN)    &&
+       (_get_dos_version(1) == 0x532)) /* LFN and NT (or 2000 or XP) */
+   {
+ 
+      _put_path(path);
+      r.x.ds = __tb_segment;  /* DS:DX -> ASCIZ filename */
+      r.x.dx = __tb_offset;
+ 
+      r.x.cx = dostime; /* New time */
+      r.x.di = dosdate; /* New date */
+      r.x.si = 0x00;    /* Set to zero just in case */
+      
+      r.x.ax = 0x7143;  /* LFN API for extended get and set time */
+      r.x.bx = 0x03;    /* Set last write date / time */
+      __dpmi_int(0x21, &r);
+      
+      if (!(r.x.flags & 1))  /* Pass then continue */
+      {
+          /* Uses date allready in r.x.di */
+          r.x.ax = 0x7143;  /* LFN API for extended get and set time */
+          r.x.bx = 0x05;    /* Set last access date / time */
+          __dpmi_int(0x21, &r);
+          if (!(r.x.flags & 1))  /* Pass then continue */
+          {
+              return 0;
+          }
+      }
+   }
+ 
+   /* DOS wants the file open */
+   fildes = open(path, O_RDONLY);
+   if (fildes == -1) return -1;
+ 
+ 
    /* Set the file timestamp */
    r.h.ah = 0x57; /* DOS FileTimes call */
    r.h.al = 0x01; /* Set date/time request */

------=_NextPart_000_0228_01C12455.44318280--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019