in src/tzmapping.c [163:184]
dt_status_t tzmap_iterate(const tz_aliases_t *aliases, tz_alias_iterator_t **iterator, tz_alias_t **alias)
{
tz_alias_iterator_t *it = NULL;
if (aliases == NULL || iterator == NULL || alias == NULL) {
return DT_INVALID_ARGUMENT;
}
if (*iterator == TZMAP_BEGIN) {
*iterator = aliases->begin.next;
}
it = *iterator;
if (it == NULL) {
return DT_NO_MORE_ITEMS;
}
*alias = &it->node;
*iterator = it->next;
return DT_OK;
}