home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-19.28-src.tgz / tar.out / fsf / emacs / unixlib / src / amigatime.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  56 lines

  1. #include "amiga.h"
  2. #include "timeconvert.h"
  3. #include <sys/time.h>
  4. #include <sys/timeb.h>
  5. #include <string.h>
  6.  
  7. extern char *tzname[2];
  8. extern int daylight;
  9.  
  10. int gettimeofday(struct timeval *tp, struct timezone *tzp)
  11. {
  12.   struct timeval now;
  13.  
  14.   chkabort();
  15.  
  16.   _gettime(&now);
  17.   if (tp) *tp = now;
  18.  
  19.   if (tzp)
  20.     {
  21.       int dst;
  22.       struct tm *local;
  23.  
  24.       local = localtime(&now.tv_secs);
  25.       
  26.       tzp->tz_minuteswest = -local->tm_gmtoff / 60;
  27.       /* Guess a value for tz_dsttime, based on tzname[1] */
  28.       /* These guesses are not very good. */
  29.       dst = DST_NONE;
  30.       if (!strcmp(tzname[1], "MET DST")) dst = DST_MET;
  31.       else if (!strcmp(tzname[1], "WET DST")) dst = DST_WET;
  32.       else if (!strcmp(tzname[1], "EET DST")) dst = DST_EET;
  33.       else if (!strcmp(tzname[1], "EDT")) dst = DST_USA;
  34.       else if (!strcmp(tzname[1], "CDT")) dst = DST_USA;
  35.       else if (!strcmp(tzname[1], "MDT")) dst = DST_USA;
  36.       else if (!strcmp(tzname[1], "PDT")) dst = DST_USA;
  37.       else if (!strcmp(tzname[1], "AKDT")) dst = DST_USA;
  38.       tzp->tz_dsttime = dst;
  39.     }
  40.   return 0;
  41. }
  42.  
  43. int ftime(struct timeb *ft)
  44. {
  45.   struct timeval now;
  46.   struct timezone zone;
  47.  
  48.   gettimeofday(&now, &zone);
  49.   ft->time = now.tv_sec;
  50.   ft->millitm = now.tv_usec;
  51.   ft->timezone = zone.tz_minuteswest;
  52.   ft->dstflag = daylight;
  53.  
  54.   return 0;
  55. }
  56.