: lookup-country-names ( seq -- seq' ) [ lookup-country-name ] map ;
: timezone>country-map ( -- alist )
- parse-zonetabs [ second ] collect-key-by ;
+ parse-zonetabs [ nip ] collect-key-by ;
: country>timezones-map ( -- alist )
- parse-zonetabs [ first ] collect-value-by ;
+ parse-zonetabs [ drop ] collect-value-by ;
: country-timezones-map ( -- alist )
country>timezones-map [ dup lookup-country-names zip ] map-values ;
: zoneinfo-zones ( -- seq )
raw-zone-map keys
- [ "/" find-subseq? ] partition
+ [ "/" subseq-index? ] partition
[ natural-sort ] bi@ append ;
GENERIC: zone-matches? ( string rule -- ? )
: comparison-day-string ( timestamp string -- timestamp )
{
- { [ dup ">=" find-subseq? ] [ ">=" split1 swap [ string>number >>day ] dip day-abbrev>= ] }
- { [ dup "<=" find-subseq? ] [ "<=" split1 swap [ string>number >>day ] dip day-abbrev<= ] }
+ { [ dup ">=" subseq-index? ] [ ">=" split1 swap [ string>number >>day ] dip day-abbrev>= ] }
+ { [ dup "<=" subseq-index? ] [ "<=" split1 swap [ string>number >>day ] dip day-abbrev<= ] }
[ string>number >>day ]
} cond ;