ray@unlv.UUCP (Ray Tripamer) (03/03/86)
Thanks to Joe Flake from NCR for the diffs for SYSV machines. I've put them into my source, and here are the diffs for the Makefile, random.c, and final.c. Note: I found a small bug in final.c. It seems that if you compile w/o the #define SCORES, the compiler blows up because the variable "sfile" (note the variable name change) is undefined in myexit(). This is fixed. Also, as stated above, I've changed the variable *file to *sfile. It seems there was a clash in the <sys/file.h> include file on SysV. --Ray Tripamer University of Nevada, Las Vegas !seismo!unrvax!unlv!ray ------------------------- diffs for Makefile ----------------------------- *** Makefile Sun Mar 2 13:10:55 1986 --- Makefile.old Sun Mar 2 13:23:02 1986 *************** *** 7,13 **** # # -DBSD42 for Berkeley Unix 4.2 # -DBSD29 for Berkeley Unix 2.9 - # -DSYSV for System V machines # CFLAGS = -O -DBSD42 --- 7,12 ---- ------------------------ diffs for random.c ------------------------------- *** random.c Sun Mar 2 13:10:22 1986 --- random.c.old Sun Mar 2 13:23:30 1986 *************** *** 13,33 **** #ifdef BSD42 struct timeval tp; struct timezone tpz; gettimeofday(&tp,&tpz); srandom((int)tp.tv_sec); ! #endif ! #ifdef BSD29 randomize(); #endif - #ifdef SYSV - long seed; - long time(); - void srand48(); - - time(&seed); - srand48(seed); - #endif } /* --- 13,26 ---- #ifdef BSD42 struct timeval tp; struct timezone tpz; + #endif + #ifdef BSD42 gettimeofday(&tp,&tpz); srandom((int)tp.tv_sec); ! #else randomize(); #endif } /* *************** *** 38,51 **** { #ifdef BSD42 long random(); ! return( (int) random() % 6 + 1); ! #endif ! #ifdef BSD29 double ranm(); - return( (int) (ranm() * 6.0) + 1.0); #endif ! #ifdef SYSV ! double drand48(); ! return( (int) (drand48() * 6.0) + 1.0); #endif } --- 31,43 ---- { #ifdef BSD42 long random(); ! #else double ranm(); #endif ! ! #ifdef BSD42 ! return( (int) random() % 6 + 1); ! #else ! return( (int) (ranm() * 6.0) + 1.0); #endif } -------------------------- diffs for final.c -------------------------------- *** final.c Sun Mar 2 13:20:08 1986 --- nfinal.c Sun Mar 2 13:18:18 1986 *************** *** 10,20 **** * */ ! #ifdef SCORES ! char *file="/users/intern/ray/craps.list"; ! char *reclock="/users/intern/ray/craps.lock"; ! typedef struct node { struct node *next; int uid; --- 10,19 ---- * */ ! char *sfile="/usr/games/lib/craps.list"; ! char *reclock="/usr/games/lib/craps.lock"; ! #ifdef SCORES typedef struct node { struct node *next; int uid; *************** *** 39,45 **** clear(); refresh(); signal(SIGHUP,SIG_IGN); signal(SIGINT,SIG_IGN); ! while(link(file, reclock) == -1) { perror(reclock); if(!sleepct--) { puts("I give up. Sorry."); --- 38,44 ---- clear(); refresh(); signal(SIGHUP,SIG_IGN); signal(SIGINT,SIG_IGN); ! while(link(sfile, reclock) == -1) { perror(reclock); if(!sleepct--) { puts("I give up. Sorry."); *************** *** 51,68 **** fflush(stdout); sleep(1); } ! if((list=fopen(file,"r"))==NULL) { ! fprintf(stderr,"can't open %s\n",file); myexit(); return(0); } while((fscanf(list,"%d %f %ld %s",&i,&x,&l,s))!=EOF) n++; rewind(list); score=(scores *)malloc((n+1)*sizeof(scores)); cuid=getuid(); i=0; while(1) { if((fscanf(list,"%d %f %ld %s", &score[i].uid, &score[i].amt, &score[i].ngames, --- 50,75 ---- fflush(stdout); sleep(1); } ! if((list=fopen(sfile,"r"))==NULL) { ! fprintf(stderr,"can't open %s\n",sfile); myexit(); return(0); } + #ifdef SYSV + while((fscanf(list,"%d %lf %ld %s",&i,&x,&l,s))!=EOF) n++; + #else while((fscanf(list,"%d %f %ld %s",&i,&x,&l,s))!=EOF) n++; + #endif rewind(list); score=(scores *)malloc((n+1)*sizeof(scores)); cuid=getuid(); i=0; while(1) { + #ifdef SYSV + if((fscanf(list,"%d %lf %ld %s", + #else if((fscanf(list,"%d %f %ld %s", + #endif &score[i].uid, &score[i].amt, &score[i].ngames, *************** *** 81,92 **** score[n].amt = (wins-loss); score[n].ngames = 1; if(getenv("CRAPSNAME")==NULL) strcpy(score[n].name,getenv("USER")); else strcpy(score[n].name,getenv("CRAPSNAME")); n++; } qsort(score,n,sizeof(scores),comp); ! list=fopen(file,"w"); for(i=0;i<n;i++) fprintf(list,"%d %.2f %ld %s\n", score[i].uid, --- 88,103 ---- score[n].amt = (wins-loss); score[n].ngames = 1; if(getenv("CRAPSNAME")==NULL) + #ifdef SYSV + strcpy(score[n].name,getenv("LOGNAME")); + #else strcpy(score[n].name,getenv("USER")); + #endif else strcpy(score[n].name,getenv("CRAPSNAME")); n++; } qsort(score,n,sizeof(scores),comp); ! list=fopen(sfile,"w"); for(i=0;i<n;i++) fprintf(list,"%d %.2f %ld %s\n", score[i].uid,