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

version» Context lines:

pike.git/lib/modules/Calendar.pmod/module.pmod:1:   static private int stage=0; + static private int booted=0;   static private object defcal;   static private object iso_utc;   static private object default_rules;   static private multiset magic= // magic + indices(Calendar.ISO) without YMD   (<    "ISO_UTC","II", "default_rules",    "_sprintf", "set_timezone", "language", "Day", "Year", "Week",    "Month", "Hour", "Minute", "datetime", "format_iso",    "format_iso_short", "format_iso_tod", "YMD_Time", "parse", "dwim_day",    "dwim_time", "datetime_name", "datetime_short_name", "format_day_iso",
pike.git/lib/modules/Calendar.pmod/module.pmod:14:    "nulltimerange", "ruleset", "set_ruleset", "inano", "timezone",    "set_language", "default_rules", "TimeofDay",    "Second", "Fraction", "now" >);      #include "localization.h"      #if 1   mixed `[](string what)   {   // werror("%O\n",what); -  if ( !magic[what] || (stage && what!="default_rules")) return ([])[0]; -  switch (what) +  if (!booted)    { -  case "ISO_UTC": -  if (!iso_utc) -  { +  booted++;    stage++; -  + // bootstrap in the right order +  master()->resolv("Calendar")["Ruleset"]; +  master()->resolv("Calendar")["Timezone"]; +  master()->resolv("Calendar")["Language"]; +  master()->resolv("Calendar")["TimeRanges"]; +  master()->resolv("Calendar")["Calendar"]; +  master()->resolv("Calendar")["Time"]; +  master()->resolv("Calendar")["YMD"]; +  master()->resolv("Calendar")["Gregorian"]; +  + // load ISO    iso_utc=master()->resolv("Calendar")["ISO"]->set_timezone("UTC");    stage--;    object tz=    master()->resolv("Calendar")["Timezone"][default_timezone];    if (!tz)    error("Failed to make default timezone %O\n",default_timezone);    else    default_rules->timezone=tz; // destructive!    } -  +  if ( !magic[what] || (stage && what!="default_rules")) return ([])[0]; +  switch (what) +  { +  case "ISO_UTC":    return iso_utc;    case "II":    return 1;    case "default_rules":    if (!default_rules)    {    default_rules=master()->resolv("Calendar")["Ruleset"]();    default_rules=default_rules->set_language(default_language);    }    // load ISO_UTC and set timezone