blob: 64f1f151f19a5f10af88404145751c0a5fd8e96c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
$NetBSD: patch-ad,v 1.1.1.1 2001/04/27 14:06:05 wiz Exp $
--- unctime.y.orig Wed Dec 1 19:16:21 1999
+++ unctime.y Sun Jan 30 08:41:53 2000
@@ -80,6 +80,9 @@
# define USE_FTIME
# endif
#endif
+#ifdef HAS_MKTIME
+# define USE_MKTIME
+#endif
#ifdef USE_GETTOD
# include <sys/time.h>
@@ -331,6 +334,7 @@
/* Is y a leap year? */
#define leap(y) (((y) % 4 == 0 && (y) % 100 != 0) || (y) % 400 == 0)
+#ifndef USE_MKTIME
/* Number of leap years from 1970 to y (not including y itself) */
#define nleap(y) (((y) - 1969) / 4 - ((y) - 1901) / 100 + ((y) - 1601) / 400)
@@ -484,6 +488,7 @@
}
#endif /* not USE_GETTOD */
+#endif /* not USE_MKTIME */
static short monthlens[] =
{
@@ -563,6 +568,15 @@
return -1;
}
+#ifdef USE_MKTIME
+ tm->tm_year = year - 1900;
+ tm->tm_mon = month - 1;
+ tm->tm_mday = day;
+ tm->tm_hour = hour;
+ tm->tm_min = minute;
+ tm->tm_sec = second;
+ return mktime(tm);
+#else /* not USE_MKTIME */
/* Mostly for convenience in sunday() macro, we use zero-origin days. */
dayofyear = day - 1;
if (month > 2 && leap(year))
@@ -581,4 +595,5 @@
- correction()
#endif
;
+#endif /* not USE_MKTIME */
}
|