1 static char sccsid[] = " okplay.c 4.1 82/05/11 ";
2
main(argc,argv)3 main(argc, argv)
4 int argc; char *argv[];
5 {
6 argv[argc] = 0;
7 okplay();
8 if (argc == 1)
9 advmotd();
10 execv("/usr/games/lib/adventure", argv);
11 write(2, "No adventure just now\n", 22);
12 exit(1);
13 }
14
okplay()15 okplay()
16 {
17 int tvec[2];
18 register struct local {
19 int seconds,minutes,hours,daymo,month,year,daywk,dayyr,dst;
20 } *local;
21
22 return;
23 time(tvec);
24 local = localtime(tvec);
25 local->month++;
26 if (local->daywk == 6||local->daywk == 0)
27 return;
28 if (local->hours>=9&&local->hours<18)
29 if (!holiday(local->month, local->daymo))
30 notinprime();
31 }
32
holiday(mo,da)33 holiday(mo,da)
34 int mo,da;
35 {
36 int stbuf[30];
37 char *np, *op;
38
39 np = "/usr/games/holiday/XXXX";
40 for(op=np;*op;op++);
41 *--op=(da%10)|'0';
42 *--op=(da/10)|'0';
43 *--op=(mo%10)|'0';
44 *--op=(mo/10)|'0';
45 return(stat(np,stbuf) == 0);
46 }
47 char notinm[] "No adventure in prime time (M-F 9am-5pm) except on holidays\n";
48
notinprime()49 notinprime()
50 {
51 write(2, notinm, sizeof notinm);
52 exit(1);
53 }
54
advmotd()55 advmotd()
56 {
57 char ch;
58 int fd;
59
60 fd = open("/usr/games/lib/advmotd", 0);
61 if (fd < 0) return;
62 while(read(fd,&ch,1) ==1) write(1,&ch,1);
63 close(fd);
64 }
65