pike.git / lib / modules / Calendar.pmod / Timezone.pmod

version» Context lines:

pike.git/lib/modules/Calendar.pmod/Timezone.pmod:1349:    }    }       object find_zone(string s)    {   #ifdef RTTZC_DEBUG    werror("Searching for zone %O\n",s);   #endif    if (!zone_cache) parse_all_rules();    object ret = zone_cache[s]; -  if (ret) return ret; +  if (!zero_type(ret)) return ret || UNDEFINED;    Zone z; -  if (!(z = zones[s])) return UNDEFINED; +  if (!(z = zones[s])) { +  // Check if it's a known alias. +  // Note: TZnames.abbr2zones is sorted with +  // the most recent user first. +  array(string) a = .TZnames.abbr2zones[s]; +  if (a && sizeof(a)) +  return zone_cache[s] = find_zone(a[0]); +  return UNDEFINED; +  }    ret = z->compile();    foreach(z->aliases, string zone_alias) {    zone_cache[zone_alias] = ret;    m_delete(zones, zone_alias);    }    m_delete(zones, s);    return ret;    }       program find_rule(string s)