diff options
author | George Hazan <ghazan@miranda.im> | 2020-04-28 18:39:17 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2020-04-28 18:39:17 +0300 |
commit | 175ed5d764b1c35e0d97f949e030382acea8527e (patch) | |
tree | 318a3edb92296a08761a3bd821475a32aecc1f2b /src/mir_core | |
parent | eb40a21481eaae317e7a8638ab51e8e624a7d817 (diff) |
fixes #2365 (NewStory: date/times are displayed according to the OS locale settings)
Diffstat (limited to 'src/mir_core')
-rw-r--r-- | src/mir_core/src/mir_core.def | 1 | ||||
-rw-r--r-- | src/mir_core/src/mir_core64.def | 1 | ||||
-rw-r--r-- | src/mir_core/src/timezones.cpp | 24 |
3 files changed, 19 insertions, 7 deletions
diff --git a/src/mir_core/src/mir_core.def b/src/mir_core/src/mir_core.def index 6927452795..7b5c2f8b23 100644 --- a/src/mir_core/src/mir_core.def +++ b/src/mir_core/src/mir_core.def @@ -1465,3 +1465,4 @@ XmlGetChildText @1645 ?EventsRev@DB@@YGPAVEventCursorBase@1@IAAUDBEVENTINFO@@@Z @1689 NONAME
?begin@EventCursorBase@DB@@QAEIXZ @1690 NONAME
?end@EventCursorBase@DB@@QAEIXZ @1691 NONAME
+TimeZone_GetSystemTime @1692
diff --git a/src/mir_core/src/mir_core64.def b/src/mir_core/src/mir_core64.def index adaccb1163..c66e248673 100644 --- a/src/mir_core/src/mir_core64.def +++ b/src/mir_core/src/mir_core64.def @@ -1465,3 +1465,4 @@ XmlGetChildText @1645 ?EventsRev@DB@@YAPEAVEventCursorBase@1@IAEAUDBEVENTINFO@@@Z @1689 NONAME
?begin@EventCursorBase@DB@@QEAAIXZ @1690 NONAME
?end@EventCursorBase@DB@@QEAAIXZ @1691 NONAME
+TimeZone_GetSystemTime @1692
diff --git a/src/mir_core/src/timezones.cpp b/src/mir_core/src/timezones.cpp index 54a46ee82e..c5008caa77 100644 --- a/src/mir_core/src/timezones.cpp +++ b/src/mir_core/src/timezones.cpp @@ -317,15 +317,20 @@ MIR_CORE_DLL(int) TimeZone_PrintDateTime(HANDLE hTZ, LPCTSTR szFormat, LPTSTR sz return 0;
}
-MIR_CORE_DLL(int) TimeZone_PrintTimeStamp(HANDLE hTZ, mir_time ts, LPCTSTR szFormat, LPTSTR szDest, size_t cbDest, DWORD dwFlags)
+MIR_CORE_DLL(int) TimeZone_GetSystemTime(HANDLE hTZ, mir_time ts, SYSTEMTIME *dest, DWORD dwFlags)
{
- MIM_TIMEZONE *tz = (MIM_TIMEZONE*)hTZ;
- if (tz == nullptr && (dwFlags & (TZF_DIFONLY | TZF_KNOWNONLY)))
+ if (dest == nullptr)
+ return 2;
+
+ MIM_TIMEZONE *tz = (MIM_TIMEZONE *)hTZ;
+ if (tz == nullptr && (dwFlags & (TZF_DIFONLY | TZF_KNOWNONLY))) {
+ memset(dest, 0, sizeof(SYSTEMTIME));
return 1;
+ }
if (tz == nullptr)
tz = &myInfo.myTZ;
-
+
FILETIME ft;
if (tz == UTC_TIME_HANDLE)
UnixTimeToFileTime(ts, &ft);
@@ -336,10 +341,15 @@ MIR_CORE_DLL(int) TimeZone_PrintTimeStamp(HANDLE hTZ, mir_time ts, LPCTSTR szFor UnixTimeToFileTime(ts + tz->offset, &ft);
}
- SYSTEMTIME st;
- FileTimeToSystemTime(&ft, &st);
+ FileTimeToSystemTime(&ft, dest);
+ return 0;
+}
- FormatTime(&st, szFormat, szDest, cbDest);
+MIR_CORE_DLL(int) TimeZone_PrintTimeStamp(HANDLE hTZ, mir_time ts, LPCTSTR szFormat, LPTSTR szDest, size_t cbDest, DWORD dwFlags)
+{
+ SYSTEMTIME st;
+ if (!TimeZone_GetSystemTime(hTZ, ts, &st, dwFlags))
+ FormatTime(&st, szFormat, szDest, cbDest);
return 0;
}
|