diff options
author | ache <ache@FreeBSD.org> | 1997-09-24 20:17:43 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1997-09-24 20:17:43 +0000 |
commit | 705dab002eab94c23d00d5594774f05e26e9cf14 (patch) | |
tree | a628143dfe8011c33dfbe92554e020b7dfbb44fa /games | |
parent | 5771b3d5f6004b8173c2a09ff90b23a26c09c16c (diff) | |
download | FreeBSD-src-705dab002eab94c23d00d5594774f05e26e9cf14.zip FreeBSD-src-705dab002eab94c23d00d5594774f05e26e9cf14.tar.gz |
Headers cleanup.
Add revoke before shell exit.
Fix mail sending procedure.
Convert to random()
Implement nap.
Diffstat (limited to 'games')
-rw-r--r-- | games/larn/bill.c | 31 | ||||
-rw-r--r-- | games/larn/data.c | 2 | ||||
-rw-r--r-- | games/larn/global.c | 5 | ||||
-rw-r--r-- | games/larn/header.h | 17 | ||||
-rw-r--r-- | games/larn/io.c | 22 | ||||
-rw-r--r-- | games/larn/main.c | 18 | ||||
-rw-r--r-- | games/larn/nap.c | 4 | ||||
-rw-r--r-- | games/larn/scores.c | 8 | ||||
-rw-r--r-- | games/larn/tok.c | 6 |
9 files changed, 60 insertions, 53 deletions
diff --git a/games/larn/bill.c b/games/larn/bill.c index dd74c11..4cf0cae 100644 --- a/games/larn/bill.c +++ b/games/larn/bill.c @@ -37,17 +37,14 @@ static char sccsid[] = "@(#)bill.c 5.2 (Berkeley) 5/28/91"; #include <sys/file.h> #include <sys/wait.h> -#include <string.h> -#include <stdlib.h> #include <stdio.h> -#include <unistd.h> #include "header.h" /* bill.c Larn is copyrighted 1986 by Noah Morgan. */ char *mail[] = { - "From: the LRS (Larn Revenue Service)\n", - "~s undeclared income\n", + "From: dev-null (the LRS - Larn Revenue Service)\n", + "Subject: undeclared income\n", "\n We have heard you survived the caverns of Larn. Let me be the", "\nfirst to congratulate you on your success. It was quite a feat.", "\nIt was also very profitable for you...", @@ -59,8 +56,8 @@ char *mail[] = { "\nmean penalties. Once again, congratulations, We look forward", "\nto your future successful expeditions.\n", NULL, - "From: His Majesty King Wilfred of Larndom\n", - "~s a noble deed\n", + "From: dev-null (His Majesty King Wilfred of Larndom)\n", + "Subject: a noble deed\n", "\n I have heard of your magnificent feat, and I, King Wilfred,", "\nforthwith declare today to be a national holiday. Furthermore,", "\nhence three days, ye be invited to the castle to receive the", @@ -68,15 +65,15 @@ char *mail[] = { "\n\nBravery and courage be yours.", "\n\nMay you live in happiness forevermore...\n", NULL, - "From: Count Endelford\n", - "~s You Bastard!\n", + "From: dev-null (Count Endelford)\n", + "Subject: You Bastard!\n", "\n I have heard (from sources) of your journey. Congratulations!", "\nYou Bastard! With several attempts I have yet to endure the", " caves,\nand you, a nobody, makes the journey! From this time", " onward, bewarned\nupon our meeting you shall pay the price!\n", NULL, - "From: Mainair, Duke of Larnty\n", - "~s High Praise\n", + "From: dev-null (Mainair, Duke of Larnty)\n", + "Subject: High Praise\n", "\n With certainty, a hero I declare to be amongst us! A nod of", "\nfavour I send to thee. Me thinks Count Endelford this day of", "\nright breath'eth fire as of dragon of whom ye are slayer. I", @@ -84,8 +81,8 @@ char *mail[] = { "\nunleash some of thy wealth upon those who be unfortunate, I,", "\nDuke Mainair, shall equal thy gift also.\n", NULL, - "From: St. Mary's Children's Home\n", - "~s these poor children\n", + "From: dev-null (St. Mary's Children's Home)\n", + "Subject: these poor children\n", "\n News of your great conquests has spread to all of Larndom.", "\nMight I have a moment of a great adventurers's time? We here at", "\nSt. Mary's Children's Home are very poor, and many children are", @@ -94,8 +91,8 @@ char *mail[] = { "\nin our plight? Whatever you could give will help much.", "\n(your gift is tax deductible)\n", NULL, - "From: The National Cancer Society of Larn\n", - "~s hope\n", + "From: dev-null (The National Cancer Society of Larn)\n", + "Subject: hope\n", "\nCongratulations on your successful expedition. We are sure much", "\ncourage and determination were needed on your quest. There are", "\nmany though, that could never hope to undertake such a journey", @@ -129,7 +126,7 @@ mailbill() sprintf(fname, "/tmp/#%dlarnmail", getpid()); for (i = 0; i < 6; i++) { if ((fd = open(fname, O_WRONLY | O_TRUNC | O_CREAT), - 0666) == -1) + 0660) == -1) exit(0); while (*cp != NULL) { if (*cp[0] == '1') { @@ -146,7 +143,7 @@ mailbill() cp++; close(fd); - sprintf(buf, "mail -I %s < %s > /dev/null", + sprintf(buf, "/usr/sbin/sendmail %s < %s > /dev/null", loginname, fname); system(buf); unlink(fname); diff --git a/games/larn/data.c b/games/larn/data.c index 4a113bd..01154a4 100644 --- a/games/larn/data.c +++ b/games/larn/data.c @@ -147,7 +147,7 @@ short lastpx,lastpy; /* 0 --- MAXX-1 or 0 --- MAXY-1 */ short oldx,oldy; short lasthx=0,lasthy=0; /* location of monster last hit by player */ short nobeep=0; /* true if program is not to beep */ -unsigned long randx=33601; /* the random number seed */ +/* unsigned long randx=33601; /* the random number seed */ long initialtime=0; /* time playing began */ long gtime=0; /* the clock for the game */ long outstanding_taxes=0; /* present tax bill from score file */ diff --git a/games/larn/global.c b/games/larn/global.c index bd84389..6bfb501 100644 --- a/games/larn/global.c +++ b/games/larn/global.c @@ -20,7 +20,6 @@ #include "header.h" extern int score[],srcount,dropflag; -extern int random;/* the random number seed */ extern short playerx,playery,lastnum; extern char cheat,level,monstnamelist[]; extern char lastmonst[],*what[],*who[]; @@ -610,12 +609,12 @@ packweight() rnd(x) int x; { - return((((randx=randx*1103515245+12345)>>7)%(x))+1); + return((random()%x)+1); } rund(x) int x; { - return((((randx=randx*1103515245+12345)>>7)%(x)) ); + return(random()%x); } #endif MACRORND diff --git a/games/larn/header.h b/games/larn/header.h index 37293b5..1a5be70 100644 --- a/games/larn/header.h +++ b/games/larn/header.h @@ -1,5 +1,11 @@ /* header.h Larn is copyrighted 1986 by Noah Morgan. */ +#include <stdlib.h> +#include <string.h> +#include <termcap.h> +#include <time.h> +#include <unistd.h> + #define MAXLEVEL 11 /* max # levels in the dungeon */ #define MAXVLEVEL 3 @@ -345,17 +351,15 @@ extern short iarg[MAXX][MAXY],ivenarg[],lasthx,lasthy,lastnum,lastpx,lastpy; extern short nobeep,oldx,oldy,playerx,playery; extern int dayplay,enable_scroll,srcount,yrepcount,userid,wisid,lfd,fd; extern long initialtime,outstanding_taxes,skill[],gtime,c[],cbak[]; -extern unsigned long randx; extern struct cel *cell; extern struct monst monster[]; extern struct sphere *spheres; extern struct _itm itm[]; -char *fortune(),*getenv(),*getlogin(),*lgetw(),*lgetl(),*ctime(); -char *tmcapcnv(),*tgetstr(),*tgoto(); -long paytaxes(),lgetc(),lrint(),time(); +char *fortune(),*lgetw(),*lgetl(); +char *tmcapcnv(); +long paytaxes(),lgetc(),lrint(); unsigned long readnum(); -void *malloc(); /* macro to create scroll #'s with probability of occurrence */ #define newscroll() (scprob[rund(81)]) @@ -415,9 +419,10 @@ void *malloc(); /* macro to output one byte to the output buffer */ #define lprc(ch) ((lpnt>=lpend)?(*lpnt++ =(ch), lflush()):(*lpnt++ =(ch))) +#ifdef MACRORND +extern unsigned long randx; /* macro to seed the random number generator */ #define srand(x) (randx=x) -#ifdef MACRORND /* macros to generate random numbers 1<=rnd(N)<=N 0<=rund(N)<=N-1 */ #define rnd(x) ((((randx=randx*1103515245+12345)>>7)%(x))+1) #define rund(x) ((((randx=randx*1103515245+12345)>>7)%(x)) ) diff --git a/games/larn/io.c b/games/larn/io.c index 27ec9b4..35ef52d 100644 --- a/games/larn/io.c +++ b/games/larn/io.c @@ -157,7 +157,7 @@ newgame() { register long *p,*pe; for (p=c,pe=c+100; p<pe; *p++ =0); - time(&initialtime); srand(initialtime); + time(&initialtime); srandomdev(); lcreat((char*)0); /* open buffering for output to terminal */ } @@ -614,12 +614,12 @@ init_term() switch (tgetent(termbuf, term = getenv("TERM"))) { case -1: - write(2, "Cannot open termcap file.\n", 26); exit(); + write(2, "Cannot open termcap file.\n", 26); exit(1); case 0: write(2, "Cannot find entry of ", 21); write(2, term, strlen (term)); write(2, " in termcap\n", 12); - exit(); + exit(1); }; if (gtty(0, &tt) == 0) @@ -640,19 +640,19 @@ init_term() { write(2, "Sorry, for a ",13); write(2, term, strlen(term)); write(2, ", I can't find the cursor motion entry in termcap\n",50); - exit(); + exit(1); } if (!CE) /* can't find clear to end of line entry */ { write(2, "Sorry, for a ",13); write(2, term, strlen(term)); write(2,", I can't find the clear to end of line entry in termcap\n",57); - exit(); + exit(1); } if (!CL) /* can't find clear entire screen entry */ { write(2, "Sorry, for a ",13); write(2, term, strlen(term)); write(2, ", I can't find the clear entire screen entry in termcap\n",56); - exit(); + exit(1); } if ((outbuf=malloc(BUFBIG+16))==0) /* get memory for decoded output buffer*/ { @@ -852,15 +852,15 @@ lflush() #endif VT100 #ifndef VT100 -static int index=0; +static int pindex=0; /* * putchar(ch) Print one character in decoded output buffer. */ int putchar(c) int c; { - outbuf[index++] = c; - if (index >= BUFBIG) flush_buf(); + outbuf[pindex++] = c; + if (pindex >= BUFBIG) flush_buf(); } /* @@ -868,8 +868,8 @@ int c; */ flush_buf() { - if (index) write(lfd, outbuf, index); - index = 0; + if (pindex) write(lfd, outbuf, pindex); + pindex = 0; } /* diff --git a/games/larn/main.c b/games/larn/main.c index 2889625..49d3a2d 100644 --- a/games/larn/main.c +++ b/games/larn/main.c @@ -58,7 +58,7 @@ main(argc,argv) if ((ptr = getenv("LOGNAME")) == 0) { noone: write(2, "Can't find your logname. Who Are You?\n",39); - exit(); + exit(1); } if (ptr==0) goto noone; if (strlen(ptr)==0) goto noone; @@ -93,7 +93,7 @@ main(argc,argv) if (j) { lprcat("Sorry, Larn needs a VT100 family terminal for all it's features.\n"); lflush(); - exit(); + exit(1); } #endif VT100 @@ -111,12 +111,12 @@ main(argc,argv) if (argv[i][0] == '-') switch(argv[i][1]) { - case 's': showscores(); exit(); /* show scoreboard */ + case 's': showscores(); exit(0); /* show scoreboard */ case 'l': /* show log file */ - diedlog(); exit(); + diedlog(); exit(0); - case 'i': showallscores(); exit(); /* show all scoreboard */ + case 'i': showallscores(); exit(0); /* show all scoreboard */ case 'c': /* anyone with password can create scoreboard */ lprcat("Preparing to initialize the scoreboard.\n"); @@ -124,7 +124,7 @@ main(argc,argv) { makeboard(); lprc('\n'); showscores(); } - exit(); + exit(0); case 'n': /* no welcome msg */ nowelcome=1; argv[i][0]=0; break; @@ -134,12 +134,12 @@ main(argc,argv) break; case 'h': /* print out command line arguments */ - write(1,cmdhelp,sizeof(cmdhelp)); exit(); + write(1,cmdhelp,sizeof(cmdhelp)); exit(0); case 'o': /* specify a .larnopts filename */ strncpy(optsfile,argv[i]+2,127); break; - default: printf("Unknown option <%s>\n",argv[i]); exit(); + default: printf("Unknown option <%s>\n",argv[i]); exit(1); }; if (argv[i][0] == '+') @@ -161,7 +161,7 @@ main(argc,argv) #else UIDSCORE userid = getplid(logname); /* obtain the players id number */ #endif UIDSCORE - if (userid < 0) { write(2,"Can't obtain playerid\n",22); exit(); } + if (userid < 0) { write(2,"Can't obtain playerid\n",22); exit(1); } #ifdef HIDEBYLINK /* diff --git a/games/larn/nap.c b/games/larn/nap.c index b7a877d..cbb1b56 100644 --- a/games/larn/nap.c +++ b/games/larn/nap.c @@ -17,7 +17,11 @@ nap(x) { if (x<=0) return; /* eliminate chance for infinite loop */ lflush(); +#if 0 if (x > 999) sleep(x/1000); else napms(x); +#else + usleep(x*1000); +#endif } #ifdef NONAP diff --git a/games/larn/scores.c b/games/larn/scores.c index e7771a6..a5a8807 100644 --- a/games/larn/scores.c +++ b/games/larn/scores.c @@ -487,7 +487,7 @@ invalid: clearvt100(); lflush(); f=0; if (ckpflag) unlink(ckpfile); /* remove checkpoint file if used */ if (x<0) { f++; x = -x; } /* if we are not to display the scores */ - if ((x == 300) || (x == 257)) exit(); /* for quick exit or saved game */ + if ((x == 300) || (x == 257)) exit(0); /* for quick exit or saved game */ if (x == 263) win = 1; else win = 0; c[GOLD] += c[BANKACCOUNT]; c[BANKACCOUNT] = 0; /* now enter the player at the end of the scoreboard */ @@ -504,7 +504,7 @@ invalid: { lcreat((char*)0); lprcat("\nCan't open record file: I can't post your score.\n"); - sncbr(); resetscroll(); lflush(); exit(); + sncbr(); resetscroll(); lflush(); exit(1); } chmod(logfile,0660); } @@ -541,9 +541,9 @@ invalid: if (sortboard()) scorerror = writeboard(); } } - if ((x==256) || (x==257) || (f != 0)) exit(); + if ((x==256) || (x==257) || (f != 0)) exit(0); if (scorerror == 0) showscores(); /* if we updated the scoreboard */ - if (x == 263) mailbill(); exit(); + if (x == 263) mailbill(); exit(0); } /* diff --git a/games/larn/tok.c b/games/larn/tok.c index d21848d..be7fdb3 100644 --- a/games/larn/tok.c +++ b/games/larn/tok.c @@ -40,7 +40,7 @@ yylex() savegame(ckpfile); #else wait(0); /* wait for other forks to finish */ - if (fork() == 0) { savegame(ckpfile); exit(); } + if (fork() == 0) { savegame(ckpfile); exit(0); } #endif @@ -71,7 +71,9 @@ yylex() resetscroll(); clear(); /* scrolling region, home, clear, no attributes */ if ((ic=fork())==0) /* child */ { - execl("/bin/csh",0); exit(); + /* revoke */ + setgid(getgid()); + execl("/bin/csh",0); exit(1); } wait(0); if (ic<0) /* error */ |