summaryrefslogtreecommitdiff
path: root/worldtime/timezone.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'worldtime/timezone.cpp')
-rw-r--r--worldtime/timezone.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/worldtime/timezone.cpp b/worldtime/timezone.cpp
index 5b2c31b..5839229 100644
--- a/worldtime/timezone.cpp
+++ b/worldtime/timezone.cpp
@@ -1,18 +1,18 @@
#include "common.h"
#include "timezone.h"
-TimeList timezone_list, geo_timezone_list;
+TimeList timezone_list(10), geo_timezone_list(10, LS_TZREG::compare);
-bool LS_TZREG::operator<(const LS_TZREG &other) {
+int LS_TZREG::compare(const LS_TZREG *p1, const LS_TZREG *p2) {
//return Index < other.Index;
- return TZI.Bias < other.TZI.Bias;
+ return p1->TZI.Bias - p2->TZI.Bias;
}
bool build_timezone_list() {
HKEY HKlmtz;
HKEY KKtz;
DWORD dwIndex = 0;
- CHAR tcName[MAX_SIZE];
+ TCHAR tcName[MAX_SIZE];
DWORD dwcbName = MAX_SIZE;
DWORD dwcbValue;
DWORD dwcbSTD;
@@ -34,26 +34,27 @@ bool build_timezone_list() {
return false;
}
- strncpy(Temp.tcName, tcName, MAX_SIZE);
+ _tcsncpy(Temp.tcName, tcName, MAX_SIZE);
dwcbValue = MAX_SIZE;
- RegQueryValueEx(KKtz,"Display",NULL,NULL,(BYTE*)Temp.tcDisp,&dwcbValue);
+ RegQueryValueEx(KKtz, _T("Display"), NULL, NULL, (LPBYTE)Temp.tcDisp, &dwcbValue);
dwcbDLT = MAX_SIZE;
- RegQueryValueEx(KKtz,"Dlt",NULL,NULL,(BYTE*)Temp.tcDLT,&dwcbDLT);
+ RegQueryValueEx(KKtz, _T("Dlt"), NULL, NULL, (LPBYTE)Temp.tcDLT, &dwcbDLT);
dwcbSTD = MAX_SIZE;
- RegQueryValueEx(KKtz,"Std",NULL,NULL,(BYTE*)Temp.tcSTD,&dwcbSTD);
+ RegQueryValueEx(KKtz, _T("Std"), NULL, NULL, (LPBYTE)Temp.tcSTD, &dwcbSTD);
dwcbValue = MAX_SIZE;
- RegQueryValueEx(KKtz,"MapID",NULL,NULL,(BYTE*)Temp.MapID,&dwcbValue);
+ RegQueryValueEx(KKtz, _T("MapID"), NULL, NULL, (LPBYTE)Temp.MapID, &dwcbValue);
if(!win9x) {
dwcbValue = sizeof(DWORD);
- RegQueryValueEx(KKtz,"Index",NULL,NULL,(BYTE*)&Temp.Index,&dwcbValue);
+ RegQueryValueEx(KKtz, _T("Index"), NULL, NULL, (LPBYTE)&Temp.Index, &dwcbValue);
}
dwcbValue = sizeof(Temp.TZI);
- RegQueryValueEx(KKtz,"TZI",NULL,NULL,(BYTE*)&Temp.TZI,&dwcbValue);
+ RegQueryValueEx(KKtz, _T("TZI"), NULL, NULL, (LPBYTE)&Temp.TZI, &dwcbValue);
RegCloseKey(KKtz);
Temp.list_index = dwIndex;
- timezone_list.push_back(Temp);
+ timezone_list.insert(new LS_TZREG(Temp));
+ geo_timezone_list.insert(new LS_TZREG(Temp));
dwcbName = MAX_SIZE;
dwIndex++;
@@ -61,9 +62,6 @@ bool build_timezone_list() {
RegCloseKey(HKlmtz);
- geo_timezone_list = timezone_list;
- std::sort(geo_timezone_list.begin(), geo_timezone_list.end());
-
return true;
}