bug in /usr/bin/calendar: "Thu+1" doesn't match on 7th or December

Winston wbe at psr.com
Thu Jun 7 00:28:08 UTC 2012


Bug report for /usr/bin/calendar

SUMMARY:  calendar does not match "Thu+1" or "Mon+1" in some months.

With one exception, it looks like calendar file dates such as "Thu+1"
and "Mon+1" are failing to match in two cases: (1) the 7th of Jan-Nov,
and (2) December.


DETAILS/EXAMPLES:

FreeBSD crystal 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

The bug occurs whether or not the command line options below are used.
I first noticed it today (a Wednesday) because a Thu+1 event tomorrow was
not in calendar's output.

Example 1: Thu+1

~/.calendar/calendar: 
Thu+1	foo		(that's "Thu+1\tfoo\n" in C)

foreach i ( 1 2 3 4 5 6 7 8 9 10 11 12 )
&calendar -t 1.$i.2011 -W 9
&end
Jan  6* foo
Feb  3* foo
Mar  3* foo
	<----- Apr 7 absent
May  5* foo
Jun  2* foo
	<----- Jul 7 absent
Aug  4* foo
Sep  1* foo
Oct  6* foo
Nov  3* foo
	<----- Dec 1 absent

foreach i ( 1 2 3 4 5 6 7 8 9 10 11 12 )
&calendar -t 1.$i.2012 -W 9
&end
Jan  5* foo
Feb  2* foo
Mar  1* foo
Apr  5* foo
May  3* foo
	<----- Jun 7 absent
Jul  5* foo
Aug  2* foo
Sep  6* foo
Oct  4* foo
Nov  1* foo
	<----- Dec 6 absent

foreach i ( 1 2 3 4 5 6 7 8 9 10 11 12 )
&calendar -t 1.$i.2013 -W 9
&end
Jan  3* foo
	<----- Feb 7 absent
	<----- Mar 7 absent
Apr  4* foo
May  2* foo
Jun  6* foo
Jul  4* foo
Aug  1* foo
Sep  5* foo
Oct  3* foo
	<----- Nov 7 absent
	<----- Dec 5 absent

Example 2: Mon+1

foo:
Mon+1	foo		("Mon+1\tfoo\n")

foreach i ( 1 2 3 4 5 6 7 8 9 10 11 12 )
&calendar -t 1.$i.2011 -W 9 -f foo
&end
Jan  3* foo
	<----- Feb 7 absent
	<----- Mar 7 absent
Apr  4* foo
May  2* foo
Jun  6* foo
Jul  4* foo
Aug  1* foo
Sep  5* foo
Oct  3* foo
	<----- Nov 7 absent
	<----- Dec 5 absent

foreach i ( 1 2 3 4 5 6 7 8 9 10 11 12 )
&calendar -t 1.$i.2012 -W 9 -f foo
&end
Jan  2* foo
Feb  6* foo
Mar  5* foo
Apr  2* foo
	<----- May 3 absent <------- EXCEPTION!
Jun  4* foo
Jul  2* foo
Aug  6* foo
Sep  3* foo
Oct  1* foo
Nov  5* foo
	<----- Dec 3 absent

foreach i ( 1 2 3 4 5 6 7 8 9 10 11 12 )
&calendar -t 1.$i.2013 -W 9 -f foo
&end
	<----- Jan 7 absent
Feb  4* foo
Mar  4* foo
Apr  1* foo
May  6* foo
Jun  3* foo
Jul  1* foo
Aug  5* foo
Sep  2* foo
	<----- Oct 7 absent
Nov  4* foo
	<----- Dec 2 absent

HTH,
 -WBE


More information about the freebsd-questions mailing list