summaryrefslogtreecommitdiff
path: root/src/mir_core
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2020-04-28 18:39:17 +0300
committerGeorge Hazan <ghazan@miranda.im>2020-04-28 18:39:17 +0300
commit175ed5d764b1c35e0d97f949e030382acea8527e (patch)
tree318a3edb92296a08761a3bd821475a32aecc1f2b /src/mir_core
parenteb40a21481eaae317e7a8638ab51e8e624a7d817 (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.def1
-rw-r--r--src/mir_core/src/mir_core64.def1
-rw-r--r--src/mir_core/src/timezones.cpp24
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;
}