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

version» Context lines:

pike.git/lib/modules/Calendar.pmod/mkrules.pike:114:    s=(a[4]=="-")?"":a[4];    break;    case 6:    [dayrule,comment,time,timetype,offset,s]=a;    break;    default:    error("illegal size of a\n");    }    }    -  string _sprintf(int t) +  protected string _sprintf(int t)    { -  return (t=='O')? +  return t=='O' &&    sprintf("Shift(%s,%d%s,%+d,%O)", -  dayrule,time,timetype,offset,s): -  0; +  dayrule,time,timetype,offset,s);    }       int `==(Shift other)    {    return ( dayrule==other->dayrule &&    time==other->time &&    timetype==other->timetype &&    offset==other->offset &&    s==other->s );    }
pike.git/lib/modules/Calendar.pmod/mkrules.pike:270:    int d,w;    if (sscanf(r,"FIX_L(%d)",d)) r=sprintf("FIXED(%d)",d+l);    else if (sscanf(r,"LDAYL(%d,%d)",d,w)==2)    r=sprintf("LDAY (%d,%d)",d+l,w);    }    return sprintf("({%-12s,%-10s,%-5d,%-6O}), %s",    r,t,offset,s,comment!=""?"// "+comment:"");    }   }    - class MyRule + class MyRule (string id)   { -  string id; -  +     mapping rules=([]);       multiset(string) symbols = (<>);       int amt=0;    -  void create(string _id) { id=_id; } -  +     void add(string line)    {    array a= array_sscanf(line, replace("%s %s %s %s %s %s %s %[^\t ]",    " ","%*[ \t]"));       if (sizeof(a)<8) complain("illegal rule line format\n");       a[7] = (a[7]/" #")[0];    if (a[7] == "-") a[7] = "";    symbols[a[7]] = 1;
pike.git/lib/modules/Calendar.pmod/mkrules.pike:462:       s=({last,@s});       last=Shift( ({"0","",0,"u",    s[-1]->offset,s[-1]->s}) );       return ({s, last});    }   }    - class Zone + class Zone (string id)   { -  string id; -  +     array rules=({});    -  void create(string _id) { id=_id; } -  +     void add(string line)    {    array a= array_sscanf(line, replace("%s %s %s %s",    " ","%*[ \t]"));    if (sizeof(a)<4)    complain("parse error\n");       a=({parse_offset(a[0]), // offset    a[1], // rule or added offset    a[2], // string
pike.git/lib/modules/Calendar.pmod/mkrules.pike:732:   int main(int ac,array(string) am)   {    array(string) files = am[1..];    if (!sizeof(files))    {    werror("defaulting to reading zonefiles from %s...",    combine_path(__FILE__, "../tzdata"));    files = get_dir(combine_path(__FILE__, "../tzdata"));    files = map(sort(files),    lambda(string fname) { -  if ((< "CVS", "factory", "leapseconds", >)[fname] || +  if ((< "factory", "leapseconds", >)[fname] ||    has_prefix(fname, "solar") ||    has_suffix(fname, ".sh") ||    has_suffix(fname, ".tab")) return 0;    return combine_path(__FILE__, "../tzdata", fname);    }) - ({ 0 });    }    map(files, collect_rules);       write("thinking...\n");   
pike.git/lib/modules/Calendar.pmod/mkrules.pike:1015:    array b=a[i+1];    if (jd<b[0]-1) break;    if (jd<b[0]+1 &&    ux<(b[0]-2440588)*86400+b[1]) break;    i++;    }       return ({offset_to_utc-a[i][2],tzformat(a[i][3])});    }    -  string _sprintf(int t) { return (t=='O')?\"Timezone(\"+name+\")\":0; } +  protected string _sprintf(int t) +  { +  return t=='O' && \"Timezone(\"+name+\")\"; +  }       int raw_utc_offset() { return offset_to_utc; }   }      // ----------------------------------------------------------------------   // DST Rules   // ----------------------------------------------------------------------      // useful macros   #define FIXED(D) (yjd+((D)-1))   #define FIX_L(D) (yjd+leap+((D)-1))   #define LDAY(D,W) (yjd+((D)-1)-( (yjd+((D)+(8-W)-1)) % 7))   #define LDAYL(D,W) (yjd+((D)-1)+leap-( (yjd+leap+((D)+(8-W)-1)) % 7))   #define UO offset_to_utc      // ----------------------------------------------------------------------   ";