--- Schedule.pm-orig Tue Mar 21 13:52:38 2000 +++ Schedule.pm Tue Mar 21 22:54:58 2000 @@ -32,7 +32,7 @@ use vars qw($MaxNum $ContentTemplate $BeginTemplate $EndTemplate @WeekString @ABCString $Unfixed $Range); $MaxNum = 8; # max number of showing -@WeekString = ('Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'); +@WeekString = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); @ABCString = ('Early', 'Middle', 'Later'); $Unfixed = "??"; @@ -68,7 +68,7 @@ my %abc = (A => 10.5, B => 20.5, C => 31.5, a => 10.5, b => 20.5, c => 31.5); my %dowNum = ('sun', 0, 'mon', 1, 'tue', 2, 'wed', 3, - 'thr', 4, 'fri', 5, 'sat', 6, + 'thu', 4, 'fri', 5, 'sat', 6, 'su', 0, 'mo', 1, 'tu', 2, 'we', 3, 'th', 4, 'fr', 5, 'sa', 6, 'Æü', 0, '·î', 1, '²Ð', 2, '¿å', 3, @@ -118,22 +118,27 @@ # add repeat plan my $filename = "$HNS::System::DiaryDir/repeat"; + my @repeats; + open(F, $filename); + while(){ + next if /^\s*#/; + next if /^\s*$/; + my ($num, $content) = /^(\S+)\s+(.*)$/; + push(@repeats, [$num, $content]); + } + close F; $date->year($HNS::Status->start_time->year); $date->month($HNS::Status->start_time->month); $date->day($HNS::Status->start_time->day); for (0 .. $Range) { my ($y, $m) = ($date->year, $date->month); - open(F, $filename) || next; $date+='1M'; - while(){ - next if /^\s*#/; - next if /^\s*$/; + foreach(@repeats){ my $tmpd = new DateTime::Date(year=>$y, month=>$m, day=>1); my $dmonth = $tmpd->DaysMonth(); - my ($num, $content) = /^(\S+)\s+(.*)$/; + my ($num, $content) = ($_->[0], $_->[1]); my $d; my $m2; - my $i; if ($num =~ m!^(\d+)/(\d+)$!){ # yearly 1/31 content.. $m2 = $1; $d = $2; @@ -172,7 +177,7 @@ my $dow = $num; $dow =~ tr/A-Z/a-z/; if ($dowNum{$dow} ne '') { # weekly - for ($i = 1; $i <= 5; $i++) { + for (my $i = 1; $i <= 5; $i++) { $d = get_nth_dow($y, $m, $i, $dowNum{$dow}); if ($d >= 1 && $d <= $dmonth) { my $tmpd2 = new DateTime::Date(year=>$y, month=>$m, day=>$d); @@ -190,7 +195,6 @@ push(@{$self->contents}, {date=>$tmpd, content=>$content}); } } - close F; } }