in src/win32/dt_win32.c [630:660]
static int createYearsArray(HKEY hkey_tz, YEARS_ARRAY yearsArray)
{
DWORD dw = sizeof(DWORD);
DWORD wYear = 0;
DWORD dwEnumIndex = 0;
char yearValueName[255] = {0,};
DWORD dwErrorCode = ERROR_RESOURCE_NOT_FOUND;
for (dwErrorCode = ERROR_SUCCESS; dwErrorCode != ERROR_NO_MORE_ITEMS ||
(dwErrorCode != ERROR_SUCCESS && dwErrorCode != ERROR_NO_MORE_ITEMS);) {
dw = sizeof(yearValueName);
dwErrorCode = RegEnumValueA(hkey_tz, dwEnumIndex, yearValueName, &dw, NULL, NULL, NULL, NULL);
dwEnumIndex++;
if (strcmp(yearValueName, DYNAMIC_DST_FIRST_ENTRY) == 0
|| strcmp(yearValueName, DYNAMIC_DST_LAST_ENTRY) == 0) {
continue;
}
if (EOF == sscanf_s(yearValueName, "%d", &wYear)) {
continue;
}
InsertYearToArray(wYear, &yearsArray);
}
if (dwErrorCode != ERROR_SUCCESS && dwErrorCode != ERROR_NO_MORE_ITEMS) {
free(yearsArray.years);
return EXIT_FAILURE;
}
qsort_s(yearsArray.years, yearsArray.count, sizeof(DWORD), years_compare, NULL);
return EXIT_SUCCESS;
}