1*6748Srrh static char sccsid[] = " okplay.c 4.1 82/05/11 ";
26738Srrh
main(argc,argv)36738Srrh main(argc, argv)
46738Srrh int argc; char *argv[];
56738Srrh {
66738Srrh argv[argc] = 0;
76738Srrh okplay();
86738Srrh if (argc == 1)
96738Srrh advmotd();
106738Srrh execv("/usr/games/lib/adventure", argv);
116738Srrh write(2, "No adventure just now\n", 22);
126738Srrh exit(1);
136738Srrh }
146738Srrh
okplay()156738Srrh okplay()
166738Srrh {
176738Srrh int tvec[2];
186738Srrh register struct local {
196738Srrh int seconds,minutes,hours,daymo,month,year,daywk,dayyr,dst;
206738Srrh } *local;
216738Srrh
226738Srrh return;
236738Srrh time(tvec);
246738Srrh local = localtime(tvec);
256738Srrh local->month++;
266738Srrh if (local->daywk == 6||local->daywk == 0)
276738Srrh return;
286738Srrh if (local->hours>=9&&local->hours<18)
296738Srrh if (!holiday(local->month, local->daymo))
306738Srrh notinprime();
316738Srrh }
326738Srrh
holiday(mo,da)336738Srrh holiday(mo,da)
346738Srrh int mo,da;
356738Srrh {
366738Srrh int stbuf[30];
376738Srrh char *np, *op;
386738Srrh
396738Srrh np = "/usr/games/holiday/XXXX";
406738Srrh for(op=np;*op;op++);
416738Srrh *--op=(da%10)|'0';
426738Srrh *--op=(da/10)|'0';
436738Srrh *--op=(mo%10)|'0';
446738Srrh *--op=(mo/10)|'0';
456738Srrh return(stat(np,stbuf) == 0);
466738Srrh }
476738Srrh char notinm[] "No adventure in prime time (M-F 9am-5pm) except on holidays\n";
486738Srrh
notinprime()496738Srrh notinprime()
506738Srrh {
516738Srrh write(2, notinm, sizeof notinm);
526738Srrh exit(1);
536738Srrh }
546738Srrh
advmotd()556738Srrh advmotd()
566738Srrh {
576738Srrh char ch;
586738Srrh int fd;
596738Srrh
606738Srrh fd = open("/usr/games/lib/advmotd", 0);
616738Srrh if (fd < 0) return;
626738Srrh while(read(fd,&ch,1) ==1) write(1,&ch,1);
636738Srrh close(fd);
646738Srrh }
65