about summary refs log tree commit diff
path: root/src/time/mktime.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/time/mktime.c')
-rw-r--r--src/time/mktime.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/time/mktime.c b/src/time/mktime.c
new file mode 100644
index 00000000..858cd50d
--- /dev/null
+++ b/src/time/mktime.c
@@ -0,0 +1,24 @@
+#include <time.h>
+
+#include "__time.h"
+
+time_t mktime(struct tm *tm)
+{
+	int isdst = tm->tm_isdst;
+	time_t t, lt;
+
+	__tzset();
+
+	tm->tm_sec += __timezone;
+	if (isdst > 0) tm->tm_sec += __dst_offset;
+
+	t = __tm_to_time(tm);
+	
+	lt = t - __timezone;
+	if (isdst > 0) lt -= __dst_offset;
+	__time_to_tm(lt, tm);
+
+	__dst_adjust(tm);
+	
+	return t;
+}