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

version» Context lines:

pike.git/lib/modules/Calendar.pmod/Timezone.pmod:202:    runtime_timezone_compiler=Runtime_timezone_compiler();      // int t=time(1);   // float t1=time(t);   // runtime_timezone_compiler->find_rule("EU");    object p=runtime_timezone_compiler->find_zone(tz);   // float t2=time(t);   // werror("%O\n",t2-t1);    if (p) return p;    -  if (sscanf(tz,"%s+%f",z,d)==2) +  if (sscanf(tz,"%s+%f",z,d)==2 && z!="")    return _make_new_timezone(z,d); -  if (sscanf(tz,"%s-%f",z,d)==2) +  if (sscanf(tz,"%s-%f",z,d)==2 && z!="")    return _make_new_timezone(z,-d);    if ((z=_military_tz[tz])) return `[](z); -  +  +  if (sscanf(tz,"%[-+]%[0-9]",string a,string b)==2 && +  (<"-","+">)[a]) +  switch (strlen(b)) +  { +  case 2: return _magic_timezone("UTC"+a+b[..1]); +  case 4: return _magic_timezone("UTC"+a+b[..1]+":"+b[2..]); +  case 6: return _magic_timezone("UTC"+a+b[..1]+":"+b[2..3]+":"+b[4..]); +  } +     return ::`[](replace(tz,"-/+"/1,"__p"/1));   }      Ruleset.Timezone `[](string tz)   {    mixed p=::`[](tz);    if (!p && tz=="locale") return locale=_locale();    if (!p) p=_magic_timezone(tz);    if (programp(p) || functionp(p)) return p();    return p;