Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'windows/utils/ltime.c')
-rw-r--r--windows/utils/ltime.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/windows/utils/ltime.c b/windows/utils/ltime.c
new file mode 100644
index 00000000..d4364509
--- /dev/null
+++ b/windows/utils/ltime.c
@@ -0,0 +1,27 @@
+/*
+ * Implementation of ltime() that avoids trouble with time() returning
+ * (time_t)-1 on Windows.
+ */
+
+#include "putty.h"
+#include <time.h>
+
+struct tm ltime(void)
+{
+ SYSTEMTIME st;
+ struct tm tm;
+
+ memset(&tm, 0, sizeof(tm)); /* in case there are any other fields */
+
+ GetLocalTime(&st);
+ tm.tm_sec=st.wSecond;
+ tm.tm_min=st.wMinute;
+ tm.tm_hour=st.wHour;
+ tm.tm_mday=st.wDay;
+ tm.tm_mon=st.wMonth-1;
+ tm.tm_year=(st.wYear>=1900?st.wYear-1900:0);
+ tm.tm_wday=st.wDayOfWeek;
+ tm.tm_yday=-1; /* GetLocalTime doesn't tell us */
+ tm.tm_isdst=0; /* GetLocalTime doesn't tell us */
+ return tm;
+}