More care with time types
[exim.git] / src / src / tod.c
index 9aa845c822b706596a3653ecd0450de460f7213a..0297e375e5c7940ed5200271c026136927071894 100644 (file)
@@ -59,7 +59,8 @@ if (type == tod_epoch_l)
   {
   struct timeval tv;
   gettimeofday(&tv, NULL);
-  (void) sprintf(CS timebuf, "%ld%06ld", tv.tv_sec, tv.tv_usec );  /* Unix epoch/usec format */
+  /* Unix epoch/usec format */
+  (void) sprintf(CS timebuf, "%ld%06ld", tv.tv_sec, (long) tv.tv_usec );
   return timebuf;
   }
 
@@ -73,8 +74,8 @@ if (type == tod_log) type = log_timezone? tod_log_zone : tod_log_bare;
 
 else if (type == tod_epoch)
   {
-  (void) sprintf(CS timebuf, "%d", (int)now);  /* Unix epoch format */
-  return timebuf;
+  (void) sprintf(CS timebuf, TIME_T_FMT, now);  /* Unix epoch format */
+  return timebuf;      /* NB the above will be wrong if time_t is FP */
   }
 
 else if (type == tod_zulu)