62 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|   (c) Copyright 1992 Eric Backus
 | |
| 
 | |
|   This software may be used freely so long as this copyright notice is
 | |
|   left intact.  There is no warrantee on this software.
 | |
| */
 | |
| 
 | |
| #include <time.h>
 | |
| #include <sys/time.h>
 | |
| #include "dos.h"
 | |
| 
 | |
| static int daylight, gmtoffset;
 | |
| 
 | |
| int
 | |
| gettimeofday (struct timeval *tp, struct timezone *tzp)
 | |
| {
 | |
| 
 | |
|   if (tp)
 | |
|   {
 | |
|     struct time t;
 | |
|     struct date d;
 | |
|     struct tm tmrec;
 | |
| 
 | |
|     gettime (&t);
 | |
|     getdate (&d);
 | |
|     tmrec.tm_year = d.da_year - 1900;
 | |
|     tmrec.tm_mon = d.da_mon - 1;
 | |
|     tmrec.tm_mday = d.da_day;
 | |
|     tmrec.tm_hour = t.ti_hour;
 | |
|     tmrec.tm_min = t.ti_min;
 | |
|     tmrec.tm_sec = t.ti_sec;
 | |
| /*    tmrec.tm_gmtoff = gmtoffset;*/
 | |
|     tmrec.tm_isdst = daylight;
 | |
|     tp->tv_sec = mktime (&tmrec);
 | |
|     tp->tv_usec = t.ti_hund * (1000000 / 100);
 | |
|   }
 | |
|   if (tzp)
 | |
|   {
 | |
|     tzp->tz_minuteswest = gmtoffset;
 | |
|     tzp->tz_dsttime = daylight;
 | |
|   }
 | |
| 
 | |
|   return 0;
 | |
| }
 | |
| 
 | |
| void
 | |
| __gettimeofday_init ()
 | |
| {
 | |
|   time_t ltm, gtm;
 | |
|   struct tm *lstm;
 | |
| 
 | |
|   daylight = 0;
 | |
|   gmtoffset = 0;
 | |
|   ltm = gtm = time (NULL);
 | |
|   ltm = mktime (lstm = localtime (<m));
 | |
|   gtm = mktime (gmtime (>m));
 | |
|   daylight = lstm->tm_isdst;
 | |
|   gmtoffset = (int)(gtm - ltm) / 60;
 | |
| 
 | |
| }
 | |
| 
 |