static int GetTimeZoneInformationByName()

in src/win32/dt_win32.c [424:447]


static int GetTimeZoneInformationByName(DYNAMIC_TIME_ZONE_INFORMATION *ptzi, const char szStandardName[])
{
    size_t subKeySize = 0;
    char *tszSubkey = NULL;

    if (ptzi == NULL || szStandardName == NULL) {
        return EXIT_FAILURE;
    }

    subKeySize = strlen(REG_TIME_ZONES) + strlen(szStandardName) + 1;
    tszSubkey = (char *)malloc(subKeySize);

    memset(tszSubkey, 0, subKeySize );
    memset(ptzi, 0, sizeof(DYNAMIC_TIME_ZONE_INFORMATION));

    snprintf(tszSubkey, subKeySize, "%s%s", REG_TIME_ZONES, szStandardName);

    if (getTZIfromRegistry(tszSubkey, REG_TZI, ptzi, szStandardName) != EXIT_SUCCESS) {
        return EXIT_FAILURE;
    }

    free(tszSubkey);
    return EXIT_SUCCESS;
}