diff options
Diffstat (limited to 'windows/utils/ltime.c')
-rw-r--r-- | windows/utils/ltime.c | 27 |
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; +} |