/etc/init -> /bin/init
Arthur David Olson
ado at elsie.UUCP
Tue May 17 05:11:42 AEST 1988
In article <33321 at felix.UUCP>, nes at prcrs.UUCP (Nancy Shoemaker) writes:
> . . .
> Section 2.5.18 reports that there are limits to the length of the
> regular expression that can be handled by ed, ex and the grep type
> commands. [Surprise?] The SPR reported that the limit will sometimes
> be exceeded by the command /usr/bin/calendar. When the month ends on
> a Saturday or Sunday, the regular expression generated on the last
> Friday will be longer than egrep can handle and calendar will abort.
> Don't expect Ultrix v{1.1,1.2,2.0,2.2} "calendar" to remind you of
> anything important on Friday, April 29, 1988!
Don't know if this will work around your April bug; in any event. . .
!From ado Sun Nov 30 19:16:40 1986
!...
!Subject: MORE/bsd 4.3 /usr/lib/calendar foils egrep on Fridays late in the year
!...
!
!Index: usr.bin/calendar/calendar.c MORE/bsd 4.3 Fix
!
!Description:
! The "egrep" scripts generated by "/usr/lib/calendar" are rejected
! by "egrep" on Fridays late in the year.
!
!Repeat-By:
! Run the commands
! date 8611281200
! /usr/lib/calendar > /tmp/try
! egrep -f /tmp/try < /dev/null
! and note the result:
! egrep: regular expression too long
!
!Fix:
! Here are context differences between the version of "calendar.c"
! distributed with MORE/bsd 4.3 and a version that produces a
! different regular expression that egrep can handle. The different
! regular expression does not accept "011" as a synonym for "November"
! but does still accept "01" (. . ."09") as a synonym for "January"
! (. . ."September").
!
!*** old/calendar.c Sun Nov 30 19:08:44 1986
!--- new/calendar.c Sat Nov 29 10:42:20 1986
!***************
!*** 1,3 ****
!--- 1,8 ----
!+ #ifndef ASWAS
!+ #ifdef OBJECTID
!+ static char elsieid[] = "@(#)calendar.c 3.2";
!+ #endif /* OBJECTID */
!+ #endif /* !ASWAS */
! static char *sccsid = "@(#)calendar.c 4.5 (Berkeley) 84/05/07";
! /* /usr/lib/calendar produces an egrep -f file
! that will select today's and tomorrow's
!***************
!*** 30,35 ****
!--- 35,51 ----
! {
! struct tm *tm;
! tm = localtime(&t);
!+ #ifndef ASWAS
!+ /*
!+ ** Prevent "egrep: regular expression too long" error.
!+ */
!+ if ((tm->tm_mon + 1) >= 10)
!+ (void) printf(
!+ "(^|[ (,;])((%s[^ \t]*[ \t]*|%d/)0*%d)([^0123456789]|$)\n",
!+ month[tm->tm_mon],
!+ tm->tm_mon + 1, tm->tm_mday);
!+ else
!+ #endif /* !ASWAS */
! printf("(^|[ (,;])((%s[^ \t]*[ \t]*|(0%d|%d)/)0*%d)([^0123456789]|$)\n",
! month[tm->tm_mon],
! tm->tm_mon + 1, tm->tm_mon + 1, tm->tm_mday);
--
ado at ncifcrf.gov ADO is a trademark of Ampex.
More information about the Comp.unix.ultrix
mailing list