ricardo@sdcc3.UUCP (Rich Antonorsi{zz32ra) (12/13/84)
Subject: refer does not work on the pyramids. Index: /usr/src/usr.bin/refer 4.2BSD Description: Refer does not work on the Pyramids. More specifically, it would core dump when creating the Index files ( using inv and mkey ). Repeat-By: It fails intermitently. ../refer/mkey $files | ../refer/inv -n $indexfiles Fix: I have included a set of fixes. Some of them might not be completely neccessary, i.e some of the casting. I also added a summary list of the changes. The file hunt9.c can be deleted completely. I still haven't found a use for it. If you know of any please send me mail. ADDBIB.c ******** got rid of unused variables : repeat and escape. Also defined correctly the type of status as union wait. Some casting was done. reset error on stdin after receiving EOF with clearerr(stdin). ============================================================================= DELIV2.c ******** got rid of function zalloc() all together.... added parenthesis to the hashing funcition to resolve ambiguities ============================================================================= GLUE1.c ******* changed the zalloc() calls to be calloc() and did some casting Reset usedir[] to find previously referenced items ============================================================================= GLUE2.c ******* defined status correctly as a union wait ============================================================================= GLUE4.c ******* got rid of *qf and int oldc that were never used.Some casting ============================================================================= GLUE5.c ******* got rid of zalloc() calls added some casting ============================================================================= HUNT1.c ******* redefined master so as to match the way it is passed as a parameter,i.e. to be a union. Also initialized the variable falseflg =0 since it was causing random behaviour on the pyramids. Some casting was also done Missing parameter indexdate was added to the call to findline. Reset usedir[] to find previously referenced items ============================================================================= HUNT2.c ******* changed zalloc() calls to be calloc() Also substituted prevcoord.b and .a with prevdrop.b or .a since prevcoord does not have a .b or .a field. Some casting ============================================================================= HUNT5.c ******* Modified master parameter to eliminate inconsistent declaration resulting in an error in result routine on Pyramids. RA/ss ============================================================================= HUNT6.c ******* got rid of variable got. Some casting ============================================================================= INV1.c ****** Made sure that *fd got initialized before being passed to newkeys ( IMPORTANT ) deleted variable *ftc. Defined status correctly ( union wait) Added the missing parameter 'nhash' to the call to recopy. Changed the syscall mv with a faster rename ============================================================================= INV5.c ****** made sure something was returned,i.e. return(nhash) was added ============================================================================= INV6.c ****** got rid of variable 'm' some casting added ============================================================================= MKEY2.c ******* variable *p was redefining the global version of it. Substituted it with *w. ============================================================================= REFER3.c ******** defined status correctly. Some casting was added. ============================================================================= *** /tmp/,RCSt1012559 Thu Dec 13 08:39:06 1984 --- addbib.c Tue Nov 20 09:27:12 1984 *************** *** 5,10 #include <stdio.h> #include <ctype.h> #include <signal.h> #define MAXENT 50 struct skeleton { --- 5,11 ----- #include <stdio.h> #include <ctype.h> #include <signal.h> + #include <sys/wait.h> #define MAXENT 50 struct skeleton { *************** *** 90,96 char *argv; { char line[BUFSIZ]; ! int i = 0, firstln, repeat = 0, escape = 0; printf("Instructions? "); fgets(line, BUFSIZ, stdin); --- 91,97 ----- char *argv; { char line[BUFSIZ]; ! int i = 0, firstln; printf("Instructions? "); (void)fgets(line, BUFSIZ, stdin); *************** *** 93,99 int i = 0, firstln, repeat = 0, escape = 0; printf("Instructions? "); ! fgets(line, BUFSIZ, stdin); if (line[0] == 'y' || line[0] == 'Y') instruct(); while (1) --- 94,100 ----- int i = 0, firstln; printf("Instructions? "); ! (void)fgets(line, BUFSIZ, stdin); if (line[0] == 'y' || line[0] == 'Y') instruct(); while (1) *************** *** 103,109 for (i = 0; i < entries; i++) { printf("%s\t", bibskel[i].prompt); ! fgets(line, BUFSIZ, stdin); if (line[0] == '-' && line[1] == '\n') { i -= 2; --- 104,110 ----- for (i = 0; i < entries; i++) { printf("%s\t", bibskel[i].prompt); ! (void)fgets(line, BUFSIZ, stdin); if (line[0] == '-' && line[1] == '\n') { i -= 2; *************** *** 126,132 } printf("> "); again: ! fgets(line, BUFSIZ, stdin); if (line[strlen(line)-2] == '\\') { line[strlen(line)-2] = '\n'; --- 127,133 ----- } printf("> "); again: ! (void)fgets(line, BUFSIZ, stdin); if (line[strlen(line)-2] == '\\') { line[strlen(line)-2] = '\n'; *************** *** 158,163 } fputs(line, fp); } } fflush(fp); /* write to file at end of each cycle */ if (ferror(fp)) --- 159,165 ----- } fputs(line, fp); } + clearerr(stdin); } (void)fflush(fp); /* write to file at end of each cycle */ if (ferror(fp)) *************** *** 159,165 fputs(line, fp); } } ! fflush(fp); /* write to file at end of each cycle */ if (ferror(fp)) { perror(argv); --- 161,167 ----- } clearerr(stdin); } ! (void)fflush(fp); /* write to file at end of each cycle */ if (ferror(fp)) { perror(argv); *************** *** 167,173 } editloop: printf("\nContinue? "); ! fgets(line, BUFSIZ, stdin); if (line[0] == 'e' || line[0] == 'v') { bibedit(fp, line, argv); --- 169,175 ----- } editloop: printf("\nContinue? "); ! (void)fgets(line, BUFSIZ, stdin); if (line[0] == 'e' || line[0] == 'v') { bibedit(fp, line, argv); *************** *** 197,203 FILE *fp; char *cmd, *arg; { ! int i = 0, status; fclose(fp); while (!isspace(cmd[i])) --- 199,206 ----- FILE *fp; char *cmd, *arg; { ! int i = 0; ! union wait status; (void)fclose(fp); while (!isspace(cmd[i])) *************** *** 199,205 { int i = 0, status; ! fclose(fp); while (!isspace(cmd[i])) i++; cmd[i] = NULL; --- 202,208 ----- int i = 0; union wait status; ! (void)fclose(fp); while (!isspace(cmd[i])) i++; cmd[i] = NULL; *************** *** 210,220 else /* either ed, ex, or edit */ execlp(cmd, cmd, arg, NULL); } ! signal(SIGINT, SIG_IGN); ! signal(SIGQUIT, SIG_IGN); ! wait(&status); ! signal(SIGINT, SIG_DFL); ! signal(SIGQUIT, SIG_DFL); if ((fp = fopen(arg, "a")) == NULL) { perror(arg); --- 213,223 ----- else /* either ed, ex, or edit */ execlp(cmd, cmd, arg, NULL); } ! (void)signal(SIGINT, SIG_IGN); ! (void)signal(SIGQUIT, SIG_IGN); ! (void)wait(&status); ! (void)signal(SIGINT, SIG_DFL); ! (void)signal(SIGQUIT, SIG_DFL); if ((fp = fopen(arg, "a")) == NULL) { perror(arg); *************** *** 274,278 } } entries = entry; ! fclose(pfp); } --- 277,281 ----- } } entries = entry; ! (void)fclose(pfp); } *** /tmp/,RCSt1012575 Thu Dec 13 08:40:12 1984 --- deliv2.c Tue Nov 20 10:08:15 1984 *************** *** 9,15 { int c, n; for(n=0; c= *s; s++) ! n += (c*n+ c << (n%4)); return(n>0 ? n : -n); } --- 9,16 ----- { int c, n; for(n=0; c= *s; s++) ! n += ( (c*n + c) << (n%4)); ! return(n>0 ? n : -n); } *************** *** 15,20 err (s, a) char *s; { fprintf(stderr, "Error: "); fprintf(stderr, s, a); --- 16,22 ----- err (s, a) char *s; + char *a; { fprintf(stderr, "Error: "); fprintf(stderr, s, a); *************** *** 41,58 if (*p ==c) return(p); return(0); - } - - zalloc(m,n) - { - char *calloc(); - int t; - # if D1 - fprintf(stderr, "calling calloc for %d*%d bytes\n",m,n); - # endif - t = (int) calloc(m,n); - # if D1 - fprintf(stderr, "calloc returned %o\n", t); - # endif - return(t); } --- 43,46 ----- if (*p ==c) return(p); return(0); } *** /tmp/,RCSt1012586 Thu Dec 13 08:40:58 1984 --- glue1.c Tue Nov 20 09:29:26 1984 *************** *** 6,11 #define unopen(fil) {if (fil!=NULL) {fclose(fil); fil=NULL;}} extern char refdir[]; int lmaster = 1000; int reached = 0; FILE *fd = 0; --- 6,12 ----- #define unopen(fil) {if (fil!=NULL) {fclose(fil); fil=NULL;}} extern char refdir[]; + extern char *calloc(); int lmaster = 1000; int reached = 0; FILE *fd = 0; *************** *** 18,23 int iflong; extern char *fgnames[], **fgnamp; extern FILE *iopen(); char *todir(); int prfreqs = 0; int typeindex = 0; --- 19,25 ----- int iflong; extern char *fgnames[], **fgnamp; extern FILE *iopen(); + extern int atoi(); char *todir(); int prfreqs = 0; int typeindex = 0; *************** *** 76,82 argc--; argv++; soutput = argv[1]; ! if (argv[2]<16000) { soutlen = argv[2]; argc--; --- 78,84 ----- argc--; argv++; soutput = argv[1]; ! if ((int)argv[2] < 16000) { soutlen = (int)argv[2]; argc--; *************** *** 78,84 soutput = argv[1]; if (argv[2]<16000) { ! soutlen = argv[2]; argc--; argv++; } --- 80,86 ----- soutput = argv[1]; if ((int)argv[2] < 16000) { ! soutlen = (int)argv[2]; argc--; argv++; } *************** *** 87,93 argc--; argv++; tagout = argv[1]; ! if (argv[2]<16000) { taglen = argv[2]; argc--; --- 89,95 ----- argc--; argv++; tagout = argv[1]; ! if ((int)argv[2] < 16000) { taglen = (int)argv[2]; argc--; *************** *** 89,95 tagout = argv[1]; if (argv[2]<16000) { ! taglen = argv[2]; argc--; argv++; } --- 91,97 ----- tagout = argv[1]; if ((int)argv[2] < 16000) { ! taglen = (int)argv[2]; argc--; argv++; } *************** *** 140,146 if (nhash > maxhash) { if (hpt) ! free (hpt, maxhash, sizeof(*hpt)); hpt=0; if (hfreq) free(hfreq, maxhash, sizeof(*hfreq)); --- 142,148 ----- if (nhash > maxhash) { if (hpt) ! free (hpt); hpt=0; if (hfreq) free(hfreq); *************** *** 143,149 free (hpt, maxhash, sizeof(*hpt)); hpt=0; if (hfreq) ! free(hfreq, maxhash, sizeof(*hfreq)); hfreq=0; maxhash=nhash; # if D1 --- 145,151 ----- free (hpt); hpt=0; if (hfreq) ! free(hfreq); hfreq=0; maxhash=nhash; # if D1 *************** *** 151,157 # endif } if (hpt==0) ! hpt = zalloc(nhash, sizeof(*hpt)); # if D1 fprintf(stderr, "hpt now %o\n",hpt); # endif --- 153,159 ----- # endif } if (hpt==0) ! hpt = ( long *)calloc(nhash, sizeof(*hpt)); # if D1 fprintf(stderr, "hpt now %o\n",hpt); # endif *************** *** 159,165 err ("No space for hash list (%d)", nhash); fread( hpt, sizeof(*hpt), nhash, fa); if (hfreq==0) ! hfreq=zalloc(nhash, sizeof(*hfreq)); if (hfreq==NULL) err ("No space for hash frequencies (%d)", nhash); frtbl = fread(hfreq, sizeof(*hfreq), nhash, fa); --- 161,167 ----- err ("No space for hash list (%d)", nhash); fread( hpt, sizeof(*hpt), nhash, fa); if (hfreq==0) ! hfreq=( int *)calloc(nhash, sizeof(*hfreq)); if (hfreq==NULL) err ("No space for hash frequencies (%d)", nhash); frtbl = fread(hfreq, sizeof(*hfreq), nhash, fa); *************** *** 169,175 # endif if (master.a == NULL) if (iflong) ! master.b = zalloc(lmaster, sizeof(long)); else master.a = zalloc(lmaster, sizeof(int)); if (master.a == NULL) --- 171,177 ----- # endif if (master.a == NULL) if (iflong) ! master.b = ( long *)calloc(lmaster, sizeof(long)); else master.a = ( unsigned *)calloc(lmaster, sizeof(int)); if (master.a == NULL) *************** *** 171,177 if (iflong) master.b = zalloc(lmaster, sizeof(long)); else ! master.a = zalloc(lmaster, sizeof(int)); if (master.a == NULL) err ("no space for answer list",0); } --- 173,179 ----- if (iflong) master.b = ( long *)calloc(lmaster, sizeof(long)); else ! master.a = ( unsigned *)calloc(lmaster, sizeof(int)); if (master.a == NULL) err ("no space for answer list",0); } *************** *** 252,257 char *t; { char *s; s=t; while (*s) s++; while (s>=t && *s != '/') s--; --- 254,262 ----- char *t; { char *s; + + usedir[0] = 0; /* Patch from CATT -- jbb */ + s=t; while (*s) s++; while (s>=t && *s != '/') s--; *** /tmp/,RCSt1012613 Thu Dec 13 08:41:59 1984 --- glue3.c Tue Nov 20 09:53:12 1984 *************** *** 3,8 #endif #include "refer..c" #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) --- 3,10 ----- #endif #include "refer..c" + #include <sys/wait.h> + #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) *************** *** 6,12 #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) ! char *in, *out, *rprog; { int pipev[2], fr1, fr2, fw1, fw2, n; --- 8,15 ----- #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) ! char *in, *out, *rprog, *arg; ! int outlen; { int pipev[2], fr1, fr2, fw1, fw2, n; *************** *** 14,20 return(callhunt(in, out, arg, outlen)); if (strcmp (rprog, "deliv")==0) return(dodeliv(in, out, arg, outlen)); ! pipe (pipev); fr1= pipev[0]; fw1 = pipev[1]; pipe (pipev); --- 17,23 ----- return(callhunt(in, out, arg, outlen)); if (strcmp (rprog, "deliv")==0) return(dodeliv(in, out, arg, outlen)); ! (void)pipe (pipev); fr1= pipev[0]; fw1 = pipev[1]; pipe (pipev); *************** *** 22,29 fw2 = pipev[1]; if (fork()==0) { ! close (fw1); ! close (fr2); move (fr1, 0); move (fw2, 1); if (rprog[0]!= '/') --- 25,32 ----- fw2 = pipev[1]; if (fork()==0) { ! (void)close (fw1); ! (void)close (fr2); move (fr1, 0); move (fw2, 1); if (rprog[0]!= '/') *************** *** 27,33 move (fr1, 0); move (fw2, 1); if (rprog[0]!= '/') ! chdir("/usr/lib/refer"); execl(rprog, "deliv", arg, 0); err ("Can't run %s", rprog); } --- 30,36 ----- move (fr1, 0); move (fw2, 1); if (rprog[0]!= '/') ! (void)chdir("/usr/lib/refer"); execl(rprog, "deliv", arg, 0); err ("Can't run %s", rprog); } *************** *** 31,41 execl(rprog, "deliv", arg, 0); err ("Can't run %s", rprog); } ! close(fw2); ! close(fr1); ! write (fw1, in , strlen(in)); ! close(fw1); ! wait(0); n = read (fr2, out, outlen); out[n]=0; close(fr2); --- 34,44 ----- execl(rprog, "deliv", arg, 0); err ("Can't run %s", rprog); } ! (void)close(fw2); ! (void)close(fr1); ! (void)write (fw1, in , strlen(in)); ! (void)close(fw1); ! (void)wait(( union wait *)0); n = read (fr2, out, outlen); out[n]=0; (void)close(fr2); *************** *** 38,44 wait(0); n = read (fr2, out, outlen); out[n]=0; ! close(fr2); } # define ALEN 50 --- 41,47 ----- (void)wait(( union wait *)0); n = read (fr2, out, outlen); out[n]=0; ! (void)close(fr2); } # define ALEN 50 *************** *** 45,50 callhunt(in, out, arg, outlen) char *in, *out, *arg; { char *argv[20], abuff[ALEN]; extern int typeindex; --- 48,54 ----- callhunt(in, out, arg, outlen) char *in, *out, *arg; + int outlen; { char *argv[20], abuff[ALEN]; extern int typeindex; *************** *** 49,54 char *argv[20], abuff[ALEN]; extern int typeindex; int argc; extern char one[]; extern int onelen; argv[0] = "hunt"; --- 53,59 ----- char *argv[20], abuff[ALEN]; extern int typeindex; int argc; + extern char *strcpy(); extern char one[]; extern int onelen; *************** *** 51,56 int argc; extern char one[]; extern int onelen; argv[0] = "hunt"; argv[1] = "-i"; argv[2] = in; --- 56,62 ----- extern char *strcpy(); extern char one[]; extern int onelen; + argv[0] = "hunt"; argv[1] = "-i"; argv[2] = in; *************** *** 63,69 argv[9] = one; argv[10] = onelen; argv[11] = abuff; ! strcpy (abuff,arg); if (strlen(abuff) > ALEN) err("abuff not big enough %d", strlen(abuff)); argc = 6; --- 69,75 ----- argv[9] = one; argv[10] = onelen; argv[11] = abuff; ! (void)strcpy (abuff,arg); if (strlen(abuff) > ALEN) err("abuff not big enough %d", strlen(abuff)); argc = 6; *************** *** 73,78 dodeliv(in, out, arg, outlen) char *in, *out, *arg; { # if D1 fprintf(stderr, "in dodeliv, arg /%s/\n", arg?arg:""); --- 79,85 ----- dodeliv(in, out, arg, outlen) char *in, *out, *arg; + int outlen; { # if D1 fprintf(stderr, "in dodeliv, arg /%s/\n", arg?arg:""); *************** *** 78,84 fprintf(stderr, "in dodeliv, arg /%s/\n", arg?arg:""); # endif if (arg && arg[0]) ! chdir(arg); findline(in, out, outlen, 0L); restodir(); } --- 85,91 ----- fprintf(stderr, "in dodeliv, arg /%s/\n", arg?arg:""); # endif if (arg && arg[0]) ! (void)chdir(arg); findline(in, out, outlen, 0L); restodir(); return(0); *************** *** 81,84 chdir(arg); findline(in, out, outlen, 0L); restodir(); } --- 88,92 ----- (void)chdir(arg); findline(in, out, outlen, 0L); restodir(); + return(0); } *** /tmp/,RCSt1012624 Thu Dec 13 08:42:47 1984 --- glue4.c Tue Nov 20 09:54:17 1984 *************** *** 11,18 char line[200], *s, argig[100], *cv[50]; char *inp, inb[500]; extern char gfile[]; ! FILE *qf, *gf; ! int c, oldc = 0, alph = 0, nv = 0; int sv0, sv1; strcpy (argig, arg); strcat(argig, ".ig"); --- 11,19 ----- char line[200], *s, argig[100], *cv[50]; char *inp, inb[500]; extern char gfile[]; ! extern char *strcpy(); ! FILE *gf; ! int c, alph = 0, nv = 0; int sv0, sv1; (void)strcpy (argig, arg); *************** *** 14,22 FILE *qf, *gf; int c, oldc = 0, alph = 0, nv = 0; int sv0, sv1; ! strcpy (argig, arg); ! strcat(argig, ".ig"); ! strcpy (inp=inb, in); if (gfile[0]==0) sprintf(gfile, "/tmp/rj%dg", getpid()); # if D1 --- 15,24 ----- FILE *gf; int c, alph = 0, nv = 0; int sv0, sv1; ! ! (void)strcpy (argig, arg); ! (void)strcat(argig, ".ig"); ! (void)strcpy (inp=inb, in); if (gfile[0]==0) (void)sprintf(gfile, "/tmp/rj%dg", getpid()); # if D1 *************** *** 18,24 strcat(argig, ".ig"); strcpy (inp=inb, in); if (gfile[0]==0) ! sprintf(gfile, "/tmp/rj%dg", getpid()); # if D1 fprintf(stderr, "in grepcall, gfile %s in %o out %o\n", gfile,in,out); # endif --- 20,26 ----- (void)strcat(argig, ".ig"); (void)strcpy (inp=inb, in); if (gfile[0]==0) ! (void)sprintf(gfile, "/tmp/rj%dg", getpid()); # if D1 fprintf(stderr, "in grepcall, gfile %s in %o out %o\n", gfile,in,out); # endif *************** *** 33,39 cv[nv++] = inp; if (alph > 6) *inp = 0; - oldc=c; } # if D1 fprintf(stderr, "%d args set up\n", nv); --- 35,40 ----- cv[nv++] = inp; if (alph > 6) *inp = 0; } # if D1 fprintf(stderr, "%d args set up\n", nv); *************** *** 40,46 # endif { sv0 = dup(0); ! close(0); if (open (argig, 0) != 0) err("Can't read fgrep index %s", argig); sv1 = dup(1); --- 41,47 ----- # endif { sv0 = dup(0); ! (void)close(0); if (open (argig, 0) != 0) err("Can't read fgrep index %s", argig); sv1 = dup(1); *************** *** 44,50 if (open (argig, 0) != 0) err("Can't read fgrep index %s", argig); sv1 = dup(1); ! close(1); if (creat(gfile, 0666) != 1) err("Can't write fgrep output %s", gfile); fgrep(nv, cv); --- 45,51 ----- if (open (argig, 0) != 0) err("Can't read fgrep index %s", argig); sv1 = dup(1); ! (void)close(1); if (creat(gfile, 0666) != 1) err("Can't write fgrep output %s", gfile); fgrep(nv, cv); *************** *** 51,62 # if D1 fprintf(stderr, "fgrep returned, output is..\n"); # endif ! close (0); ! dup(sv0); ! close(sv0); ! close (1); ! dup(sv1); ! close(sv1); } # if D1 --- 52,63 ----- # if D1 fprintf(stderr, "fgrep returned, output is..\n"); # endif ! (void)close (0); ! (void)dup(sv0); ! (void)close(sv0); ! (void)close (1); ! (void)dup(sv1); ! (void)close(sv1); } # if D1 *************** *** 78,84 *s++ = 0; } if (line[0]) ! strcat(out, line); # if D1 fprintf(stderr, "out now /%s/\n",out); # endif --- 79,85 ----- *s++ = 0; } if (line[0]) ! (void)strcat(out, line); # if D1 fprintf(stderr, "out now /%s/\n",out); # endif *************** *** 89,95 if (s[-1]!= '\n') while (!feof(gf) && getc(gf)!= '\n') ; } ! fclose(gf); # if D1 fprintf(stderr, "back from reading %, out %s\n",out); # else --- 90,96 ----- if (s[-1]!= '\n') while (!feof(gf) && getc(gf)!= '\n') ; } ! (void)fclose(gf); # if D1 fprintf(stderr, "back from reading %, out %s\n",out); # else *************** *** 93,99 # if D1 fprintf(stderr, "back from reading %, out %s\n",out); # else ! unlink (gfile); # endif return(0); } --- 94,100 ----- # if D1 fprintf(stderr, "back from reading %, out %s\n",out); # else ! (void)unlink (gfile); # endif return(0); } *************** *** 101,105 clfgrep() { if (gfile[0]) ! unlink(gfile); } --- 102,106 ----- clfgrep() { if (gfile[0]) ! (void)unlink(gfile); } *** /tmp/,RCSt1012647 Thu Dec 13 08:43:19 1984 --- glue5.c Tue Nov 20 09:55:23 1984 *************** *** 34,39 int numwords; int nfound; static int flag = 0; fgrep(argc, argv) char **argv; --- 34,40 ----- int numwords; int nfound; static int flag = 0; + extern char *calloc(); fgrep(argc, argv) char **argv; *************** *** 41,47 instr = nsucc = need = inct = rflag = numwords = nfound = 0; flag = 0; if (www==0) ! www = zalloc(MAXSIZ, sizeof (*www)); if (www==NULL) err("Can't get space for machines", 0); for (q=www; q<www+MAXSIZ; q++) { --- 42,48 ----- instr = nsucc = need = inct = rflag = numwords = nfound = 0; flag = 0; if (www==0) ! www = (struct words *)calloc(MAXSIZ, sizeof (struct words)); if (www==NULL) err("Can't get space for machines", 0); for (q=www; q<www+MAXSIZ; q++) { *************** *** 73,79 } if (xargc<=0) { ! write (2, "bad fgrep call\n", 15); exit(2); } # if D1 --- 74,80 ----- } if (xargc<=0) { ! (void)write (2, "bad fgrep call\n", 15); exit(2); } # if D1 *************** *** 142,148 fprintf(stderr, "roaming along in ex ch %c c %o\n",ch,c); # endif if (isupper(ch)) ch |= 040; ! if (c->inp == ch) { c = c->nst; } else if (c->link != 0) { --- 143,149 ----- fprintf(stderr, "roaming along in ex ch %c c %o\n",ch,c); # endif if (isupper(ch)) ch |= 040; ! if (c->inp == ch) c = c->nst; else if (c->link != 0) *************** *** 144,151 if (isupper(ch)) ch |= 040; if (c->inp == ch) { c = c->nst; ! } ! else if (c->link != 0) { c = c->link; goto nstate; } --- 145,153 ----- if (isupper(ch)) ch |= 040; if (c->inp == ch) c = c->nst; ! ! else if (c->link != 0) ! { c = c->link; goto nstate; } *************** *** 198,204 # if D2 fprintf(stderr, "p %o nlp %o buf %o\n",p,nlp,buf); if (p>nlp) ! {write (2, "XX\n", 3); write (2, nlp, p-nlp); write (2, "XX\n", 3);} # endif if (p > nlp) write(1, nlp, p-nlp); else { --- 200,209 ----- # if D2 fprintf(stderr, "p %o nlp %o buf %o\n",p,nlp,buf); if (p>nlp) ! { ! (void)write (2, "XX\n", 3); ! (void)write (2, nlp, p-nlp); ! (void)write (2, "XX\n", 3);} # endif if (p > nlp) (void)write(1, nlp, p-nlp); else { *************** *** 200,206 if (p>nlp) {write (2, "XX\n", 3); write (2, nlp, p-nlp); write (2, "XX\n", 3);} # endif ! if (p > nlp) write(1, nlp, p-nlp); else { write(1, nlp, &buf[2*BUFSIZ] - nlp); write(1, buf, p-&buf[0]); --- 205,211 ----- (void)write (2, nlp, p-nlp); (void)write (2, "XX\n", 3);} # endif ! if (p > nlp) (void)write(1, nlp, p-nlp); else { (void)write(1, nlp, &buf[2*BUFSIZ] - nlp); (void)write(1, buf, p-&buf[0]); *************** *** 202,209 # endif if (p > nlp) write(1, nlp, p-nlp); else { ! write(1, nlp, &buf[2*BUFSIZ] - nlp); ! write(1, buf, p-&buf[0]); } if (p[-1]!= '\n') write (1, "\n", 1); } --- 207,214 ----- # endif if (p > nlp) (void)write(1, nlp, p-nlp); else { ! (void)write(1, nlp, &buf[2*BUFSIZ] - nlp); ! (void)write(1, buf, p-&buf[0]); } if (p[-1]!= '\n') (void)write (1, "\n", 1); } *************** *** 205,211 write(1, nlp, &buf[2*BUFSIZ] - nlp); write(1, buf, p-&buf[0]); } ! if (p[-1]!= '\n') write (1, "\n", 1); } if (instr==0) { --- 210,216 ----- (void)write(1, nlp, &buf[2*BUFSIZ] - nlp); (void)write(1, buf, p-&buf[0]); } ! if (p[-1]!= '\n') (void)write (1, "\n", 1); } if (instr==0) { *************** *** 289,294 { flag=1; s = *xargv++; # if D1 fprintf(stderr, "next arg is %s xargc %d\n",s,xargc); # endif --- 294,300 ----- { flag=1; s = *xargv++; + if (xargc-- <=0) return(0); # if D1 fprintf(stderr, "next arg is %s xargc %d\n",s,xargc); # endif *************** *** 292,298 # if D1 fprintf(stderr, "next arg is %s xargc %d\n",s,xargc); # endif - if (xargc-- <=0) return(0); } if (*s) return(*s++); for(flag=0; flag<2*BUFSIZ; flag++) --- 298,303 ----- # if D1 fprintf(stderr, "next arg is %s xargc %d\n",s,xargc); # endif } if (*s) return(*s++); for(flag=0; flag<2*BUFSIZ; flag++) *************** *** 302,308 } overflo() { ! write(2,"wordlist too large\n", 19); exit(2); } cfail() { --- 307,313 ----- } overflo() { ! (void)write(2,"wordlist too large\n", 19); exit(2); } cfail() { *** /tmp/,RCSt1012654 Thu Dec 13 08:43:51 1984 --- hunt1.c Tue Nov 20 09:31:51 1984 *************** *** 4,10 # include <stdio.h> # include <assert.h> ! extern char refdir[]; extern int keepold; extern char *fgnames[]; extern char **fgnamp; --- 4,10 ----- # include <stdio.h> # include <assert.h> ! extern int keepold; extern char *fgnames[]; extern char **fgnamp; *************** *** 8,13 extern int keepold; extern char *fgnames[]; extern char **fgnamp; FILE *fd =NULL; int lmaster =500; int *hfreq, hfrflg; --- 8,17 ----- extern int keepold; extern char *fgnames[]; extern char **fgnamp; + + extern char *strcpy(),*strcat(); + extern int strlen(); + FILE *fd =NULL; int lmaster =500; int *hfreq, hfrflg; *************** *** 12,17 int lmaster =500; int *hfreq, hfrflg; int colevel =0; int measure=0; int soutlen =1000; int reached =0; --- 16,23 ----- int lmaster =500; int *hfreq, hfrflg; int colevel =0; + char gfile[50]; + int reached = 0; int measure=0; int soutlen =1000; int iflong =0; *************** *** 14,20 int colevel =0; int measure=0; int soutlen =1000; - int reached =0; int iflong =0; int prfreqs =0; char usedir[100]; --- 20,25 ----- int reached = 0; int measure=0; int soutlen =1000; int iflong =0; int prfreqs =0; char usedir[100]; *************** *** 18,26 int iflong =0; int prfreqs =0; char usedir[100]; ! char * calloc(); ! char * todir(); ! char gfile[50]; static int full =1000; static int tags =0; char *sinput, *soutput, *tagout; --- 23,30 ----- int iflong =0; int prfreqs =0; char usedir[100]; ! char *calloc(); ! char *todir(); static int full =1000; static int tags =0; char *sinput, *soutput, *tagout; *************** *** 36,41 static char oldname[30] ; static int was =0; /* these pointers are unions of pointer to int and pointer to long */ long *hpt; unsigned *master =0; int falseflg, nhash, nitem, nfound, frtbl, kk; --- 40,46 ----- static char oldname[30] ; static int was =0; /* these pointers are unions of pointer to int and pointer to long */ + long *hpt; /* *************** *** 37,44 static int was =0; /* these pointers are unions of pointer to int and pointer to long */ long *hpt; - unsigned *master =0; - int falseflg, nhash, nitem, nfound, frtbl, kk; /* special wart for refpart: default is tags only */ --- 42,47 ----- /* these pointers are unions of pointer to int and pointer to long */ long *hpt; /* * redefined master so as to match the way it is declared in the *************** *** 40,45 unsigned *master =0; int falseflg, nhash, nitem, nfound, frtbl, kk; /* special wart for refpart: default is tags only */ while (argv[1][0] == '-') --- 43,64 ----- long *hpt; + /* + * redefined master so as to match the way it is declared in the + * functions to which it is passed as param. + * Introduced a flag to check for initialization. + * unsigned *master = 0 could not be used anymore + */ + + union ptr { + unsigned *a; + long *b; + } master ; + int master_flag = 0 ; + + int falseflg = 0 ; + int nhash, nitem, nfound, frtbl, kk; + /* special wart for refpart: default is tags only */ while (argv[1][0] == '-') *************** *** 70,76 argc--; argv++; soutput = argv[1]; ! if (argv[2]<16000) { soutlen = (int)argv[2]; argc--; --- 89,95 ----- argc--; argv++; soutput = argv[1]; ! if ( (int)argv[2] < 16000) { soutlen = (int)argv[2]; argc--; *************** *** 106,112 argc--; argv++; } ! strcpy (nma, todir(argv[1])); if (was == 0 || strcmp (oldname, nma) !=0) { strcpy (oldname,nma); --- 125,131 ----- argc--; argv++; } ! (void)strcpy (nma, todir(argv[1])); if (was == 0 || strcmp (oldname, nma) !=0) { (void)strcpy (oldname,nma); *************** *** 109,122 strcpy (nma, todir(argv[1])); if (was == 0 || strcmp (oldname, nma) !=0) { ! strcpy (oldname,nma); ! strcpy (nmb, nma); ! strcpy (nmc, nmb); ! strcpy(nmd,nma); ! strcat (nma, ".ia"); ! strcat (nmb, ".ib"); ! strcat (nmc, ".ic"); ! strcat (nmd, ".id"); if (was) { fclose(fa); --- 128,141 ----- (void)strcpy (nma, todir(argv[1])); if (was == 0 || strcmp (oldname, nma) !=0) { ! (void)strcpy (oldname,nma); ! (void)strcpy (nmb, nma); ! (void)strcpy (nmc, nmb); ! (void)strcpy(nmd,nma); ! (void)strcat (nma, ".ia"); ! (void)strcat (nmb, ".ib"); ! (void)strcat (nmc, ".ic"); ! (void)strcat (nmd, ".id"); if (was) { (void)fclose(fa); *************** *** 119,127 strcat (nmd, ".id"); if (was) { ! fclose(fa); ! fclose(fb); ! fclose(fc); } fa = fopen(nma, "r"); --- 138,146 ----- (void)strcat (nmd, ".id"); if (was) { ! (void)fclose(fa); ! (void)fclose(fb); ! (void)fclose(fc); } fa = fopen(nma, "r"); *************** *** 127,133 fa = fopen(nma, "r"); if (fa==NULL) { ! strcpy(*fgnamp++ = calloc(strlen(oldname)+2,1), oldname); fb=NULL; goto search; } --- 146,152 ----- fa = fopen(nma, "r"); if (fa==NULL) { ! (void)strcpy(*fgnamp++ = calloc((unsigned)strlen(oldname)+2,1), oldname); fb=NULL; goto search; } *************** *** 142,153 indexdate = gdate(fb); fd = fopen(nmd, "r"); } ! fseek (fa, 0L, 0); ! fread (&nhash, sizeof(nhash), 1, fa); ! fread (&iflong, sizeof(iflong), 1, fa); ! if(master==0) ! master = calloc (lmaster, iflong? 4: 2); ! hpt = calloc(nhash, sizeof(*hpt)); kk=fread( hpt, sizeof(*hpt), nhash, fa); # if D1 fprintf(stderr,"read %d hashes, iflong %d, nhash %d\n", kk, iflong, nhash); --- 161,184 ----- indexdate = gdate(fb); fd = fopen(nmd, "r"); } ! (void)fseek (fa, 0L, 0); ! (void)fread (&nhash, sizeof(nhash), 1, fa); ! (void)fread (&iflong, sizeof(iflong), 1, fa); ! ! /* ! * check for initialization of master ! */ ! ! if(master_flag == 0 ) ! { ! if ( iflong ) ! master.b = (long *) calloc((unsigned)lmaster,sizeof(long)); ! else ! master.a = ( unsigned *) calloc((unsigned)lmaster,sizeof(unsigned)); ! ! master_flag = 1 ; ! } ! hpt = ( long *)calloc((unsigned)nhash, sizeof(*hpt)); kk=fread( hpt, sizeof(*hpt), nhash, fa); # if D1 fprintf(stderr,"read %d hashes, iflong %d, nhash %d\n", kk, iflong, nhash); *************** *** 153,159 fprintf(stderr,"read %d hashes, iflong %d, nhash %d\n", kk, iflong, nhash); # endif _assert (kk==nhash); ! hfreq = calloc(nhash, sizeof(*hfreq)); _assert (hfreq != NULL); frtbl = fread(hfreq, sizeof(*hfreq), nhash, fa); hfrflg = (frtbl == nhash); --- 184,190 ----- fprintf(stderr,"read %d hashes, iflong %d, nhash %d\n", kk, iflong, nhash); # endif _assert (kk==nhash); ! hfreq = (int *)calloc((unsigned)nhash, sizeof(*hfreq)); _assert (hfreq != NULL); frtbl = fread(hfreq, sizeof(*hfreq), nhash, fa); hfrflg = (frtbl == nhash); *************** *** 192,199 grepquery[0]=0; for(k=0; k<nitem; k++) { ! strcat(grepquery, " "); ! strcat(grepquery, qitem[k]); } # if D1 fprintf(stderr, "grepquery %s\n",grepquery); --- 223,230 ----- grepquery[0]=0; for(k=0; k<nitem; k++) { ! (void)strcat(grepquery, " "); ! (void)strcat(grepquery, qitem[k]); } # if D1 fprintf(stderr, "grepquery %s\n",grepquery); *************** *** 225,231 tagp++; if (*tagp) tagp++; ! findline(oldtagp, bout, 1000); fputs(bout,stdout); } } --- 256,262 ----- tagp++; if (*tagp) tagp++; ! findline(oldtagp, bout, 1000,indexdate); fputs(bout,stdout); } } *************** *** 242,247 char *t; { char *s; s=t; while (*s) s++; while (s>=t && *s != '/') s--; --- 273,281 ----- char *t; { char *s; + + usedir[0] = 0; /* Patch from CATT -- jbb */ + s=t; while (*s) s++; while (s>=t && *s != '/') s--; *************** *** 248,255 if (s<t) return(t); *s++ = 0; t = (*t ? t : "/"); ! chdir (t); ! strcpy (usedir,t); return(s); } setfrom(c) --- 282,289 ----- if (s<t) return(t); *s++ = 0; t = (*t ? t : "/"); ! (void)chdir (t); ! (void)strcpy (usedir,t); return(s); } setfrom(c) *** /tmp/,RCSt1012673 Thu Dec 13 08:45:25 1984 --- hunt2.c Tue Nov 20 09:57:18 1984 *************** *** 7,12 static int *coord = 0; int hh[50]; extern int *hfreq, hfrflg, hcomp(), hexch(); extern int prfreqs; doquery(hpt, nhash, fb, nitem, qitem, master) --- 7,13 ----- static int *coord = 0; int hh[50]; extern int *hfreq, hfrflg, hcomp(), hexch(); + extern char *calloc(); extern int prfreqs; doquery(hpt, nhash, fb, nitem, qitem, master) *************** *** 11,16 doquery(hpt, nhash, fb, nitem, qitem, master) long *hpt; FILE *fb; char *qitem[]; union ptr { --- 12,18 ----- doquery(hpt, nhash, fb, nitem, qitem, master) long *hpt; + int nhash; FILE *fb; int nitem; char *qitem[]; *************** *** 12,17 doquery(hpt, nhash, fb, nitem, qitem, master) long *hpt; FILE *fb; char *qitem[]; union ptr { unsigned *a; --- 14,20 ----- long *hpt; int nhash; FILE *fb; + int nitem; char *qitem[]; union ptr { unsigned *a; *************** *** 35,41 # endif _assert (lmaster>0); if (coord==0) ! coord = zalloc(lmaster, sizeof(lmaster)); if (colevel>0) { prevdrop.a=zalloc(lmaster,iflong?sizeof(long): sizeof(int)); --- 38,44 ----- # endif _assert (lmaster>0); if (coord==0) ! coord = (int *)calloc((unsigned)lmaster, (unsigned)sizeof(lmaster)); if (colevel>0) { prevdrop.a= (unsigned *)calloc((unsigned)lmaster,iflong?(unsigned)sizeof(long): (unsigned)sizeof(int)); *************** *** 38,45 coord = zalloc(lmaster, sizeof(lmaster)); if (colevel>0) { ! prevdrop.a=zalloc(lmaster,iflong?sizeof(long): sizeof(int)); ! prevcoord = zalloc(lmaster, sizeof(lmaster)); } else { --- 41,48 ----- coord = (int *)calloc((unsigned)lmaster, (unsigned)sizeof(lmaster)); if (colevel>0) { ! prevdrop.a= (unsigned *)calloc((unsigned)lmaster,iflong?(unsigned)sizeof(long): (unsigned)sizeof(int)); ! prevcoord = ( int *)calloc((unsigned)lmaster, (unsigned)sizeof(lmaster)); } else { *************** *** 77,82 _assert (fseek(fb,lp,0)==NULL); for(i=0; i<lmaster; i++) { if (iflong) master.b[i] = getl(fb); else --- 80,90 ----- _assert (fseek(fb,lp,0)==NULL); for(i=0; i<lmaster; i++) { + /* + * this section was core-dumping on pyramids + * the fixture in hunt1.c got rid of this problem + */ + if (iflong) master.b[i] = getl(fb); else *************** *** 95,101 } else { ! if (master.a[i] == -1) break; } } nf= i; --- 103,109 ----- } else { ! if ((int)master.a[i] == -1) break; } } nf= i; *************** *** 126,132 if (iflong) k = getl(fb); else ! k = getw(fb); if (k== -1) break; # if D2 fprintf(stderr,"next term finds %ld\n",k); --- 134,140 ----- if (iflong) k = getl(fb); else ! k = getw(fb); if (k== -1) break; # if D2 fprintf(stderr,"next term finds %ld\n",k); *************** *** 172,178 if (iflong) master.b[g]=k; else ! master.a[g]=k; coord[g++] = prevcoord[j++]+1; # if D1 if (iflong) --- 180,186 ----- if (iflong) master.b[g]=k; else ! master.a[g]=( unsigned )k; coord[g++] = prevcoord[j++]+1; # if D1 if (iflong) *************** *** 187,193 if (iflong) master.b[g]=k; else ! master.a[g]=k; coord[g++] = 1; } } --- 195,201 ----- if (iflong) master.b[g]=k; else ! master.a[g]=(unsigned)k; coord[g++] = 1; } } *************** *** 196,202 # endif if (colevel>0) for ( ; j<nf; j++) ! if ((iflong?prevcoord.b[j]:prevcoord.a[j])+colevel > nterm) { _assert(g<lmaster); if (iflong) --- 204,210 ----- # endif if (colevel>0) for ( ; j<nf; j++) ! if ((iflong?prevdrop.b[j]:prevdrop.a[j])+colevel > nterm) { _assert(g<lmaster); if (iflong) *************** *** 240,247 # endif if (colevel) { ! free(prevdrop, lmaster, iflong?sizeof(long): sizeof(int)); ! free(prevcoord, lmaster, sizeof (lmaster)); } # if D3 for(g=0;g<nf;g++) --- 248,255 ----- # endif if (colevel) { ! free(prevdrop); ! free(prevcoord); } # if D3 for(g=0;g<nf;g++) *************** *** 257,263 getl(fb) FILE *fb; { ! return(getw(fb)); } putl(ll, f) --- 265,271 ----- getl(fb) FILE *fb; { ! return((long)getw(fb)); } putl(ll, f) *************** *** 264,270 long ll; FILE *f; { ! putw(ll, f); } hcomp( n1, n2) --- 272,278 ----- long ll; FILE *f; { ! (void)putw(ll, f); } hcomp( n1, n2) *** /tmp/,RCSt1012726 Thu Dec 13 08:48:08 1984 --- hunt5.c Mon Nov 19 17:41:44 1984 *************** *** 12,18 union ptr { unsigned *a; long *b; ! } *master; FILE *fc; { int i, c; --- 12,18 ----- union ptr { unsigned *a; long *b; ! } master; FILE *fc; { int i, c; *************** *** 21,26 extern int iflong; char res[100]; for(i=0; i<nf; i++) { lp = iflong ? master.b[i] : master.a[i]; --- 21,29 ----- extern int iflong; char res[100]; + #ifdef EBUG + fprintf(stderr, "entering result\n"); + #endif for(i=0; i<nf; i++) { #ifdef EBUG *************** *** 23,28 for(i=0; i<nf; i++) { lp = iflong ? master.b[i] : master.a[i]; fseek(fc,lp, 0); fgets(res, 100, fc); --- 26,34 ----- #endif for(i=0; i<nf; i++) { + #ifdef EBUG + fprintf(stderr, "i=%d, iflong=%d\n", i, iflong); + #endif lp = iflong ? master.b[i] : master.a[i]; #ifdef EBUG fprintf(stderr, "lp=%ld\n", lp); *************** *** 24,29 for(i=0; i<nf; i++) { lp = iflong ? master.b[i] : master.a[i]; fseek(fc,lp, 0); fgets(res, 100, fc); for(s=res; c = *s; s++) --- 30,38 ----- fprintf(stderr, "i=%d, iflong=%d\n", i, iflong); #endif lp = iflong ? master.b[i] : master.a[i]; + #ifdef EBUG + fprintf(stderr, "lp=%ld\n", lp); + #endif fseek(fc,lp, 0); fgets(res, 100, fc); for(s=res; c = *s; s++) *************** *** 32,37 *s=0; break; } if (tagout !=0) { if (res[0]=='/' || usedir[0]==0) --- 41,49 ----- *s=0; break; } + #ifdef EBUG + fprintf(stderr, "result:%s\n", res); + #endif if (tagout !=0) { if (res[0]=='/' || usedir[0]==0) *** /tmp/,RCSt1012739 Thu Dec 13 08:48:49 1984 --- hunt6.c Tue Nov 20 09:58:32 1984 *************** *** 8,13 char *outbuf = 0; extern char *soutput; extern int soutlen, iflong; extern long indexdate; --- 8,14 ----- char *outbuf = 0; extern char *soutput; + extern char *strcpy(); extern int soutlen, iflong; extern long indexdate; *************** *** 21,27 char *qitem[], *rprog; { /* checks list of drops for real bad drops; finds items with "deliv" */ ! int i, g, j, need, got, na, len; long lp; char res[100], *ar[50], output[TXTLEN]; extern int colevel, reached; --- 22,28 ----- char *qitem[], *rprog; { /* checks list of drops for real bad drops; finds items with "deliv" */ ! int i, g, j, need, na, len; long lp; char res[100], *ar[50], output[TXTLEN]; extern int colevel, reached; *************** *** 44,51 fprintf(stderr, "i %d master %o lp %lo\n", i, master.a[i], lp); # endif ! fseek (fc, lp, 0); ! fgets( res, 100, fc); # if D1 fprintf(stderr, "tag %s", res); # endif --- 45,52 ----- fprintf(stderr, "i %d master %o lp %lo\n", i, master.a[i], lp); # endif ! (void)fseek (fc, lp, 0); ! (void)fgets( res, 100, fc); # if D1 fprintf(stderr, "tag %s", res); # endif *************** *** 64,70 break; } len = rprog ? ! corout (res, output, rprog, 0, TXTLEN) : findline (res, output, TXTLEN, indexdate); } # if D1 --- 65,71 ----- break; } len = rprog ? ! corout (res, output, rprog, (char *)0, TXTLEN) : findline (res, output, TXTLEN, indexdate); } # if D1 *************** *** 100,106 master.a[g++] = master.a[i]; if (full >= g) if (soutput==0) ! fputs(output, stdout); else strcpy (soutput, output); } --- 101,107 ----- master.a[g++] = master.a[i]; if (full >= g) if (soutput==0) ! (void)fputs(output, stdout); else (void)strcpy (soutput, output); } *************** *** 102,108 if (soutput==0) fputs(output, stdout); else ! strcpy (soutput, output); } # ifdef D1 fprintf(stderr, "after fgrep\n"); --- 103,109 ----- if (soutput==0) (void)fputs(output, stdout); else ! (void)strcpy (soutput, output); } # ifdef D1 fprintf(stderr, "after fgrep\n"); *** /tmp/,RCSt1012801 Thu Dec 13 08:51:48 1984 --- inv1.c Wed Nov 21 13:26:24 1984 *************** *** 4,9 #include <stdio.h> #include <assert.h> main(argc, argv) char *argv[]; --- 4,10 ----- #include <stdio.h> #include <assert.h> + #include <sys/wait.h> extern char *strcpy(),*strcat(); *************** *** 5,10 #include <stdio.h> #include <assert.h> main(argc, argv) char *argv[]; { --- 6,13 ----- #include <assert.h> #include <sys/wait.h> + extern char *strcpy(),*strcat(); + main(argc, argv) char *argv[]; { *************** *** 19,25 * If the files exist they are updated. */ ! FILE *fa, *fb, *fc, *fta, *ftb, *ftc, *fd; int nhash = 256; int appflg = 1; int keepkey = 0, pipein = 0; --- 22,28 ----- * If the files exist they are updated. */ ! FILE *fa, *fb, *fc, *fta, *ftb,*fd; int nhash = 256; int appflg = 1; int keepkey = 0, pipein = 0; *************** *** 26,33 char nma[100], nmb[100], nmc[100], com[100], nmd[100]; char tmpa[20], tmpb[20], tmpc[20]; char *remove = NULL; ! int chatty = 0, docs, hashes, fp[2], fr, fw, pfork, pwait, status; ! int i,j,k; long keys; int iflong =0; char *sortdir; --- 29,36 ----- char nma[100], nmb[100], nmc[100], com[100], nmd[100]; char tmpa[20], tmpb[20], tmpc[20]; char *remove = NULL; ! int chatty = 0, docs, hashes, fp[2], fr, fw, pfork, pwait; ! union wait status; long keys; int iflong =0; char *sortdir; *************** *** 56,62 pipein = 1; break; case 'i': /* input is on file, not stdin */ ! close(0); if (open(argv[2], 0) != 0) err("Can't read input %s", argv[2]); if (argv[1][2]=='u') /* unlink */ --- 59,65 ----- pipein = 1; break; case 'i': /* input is on file, not stdin */ ! (void)close(0); if (open(argv[2], 0) != 0) err("Can't read input %s", argv[2]); if (argv[1][2]=='u') /* unlink */ *************** *** 68,81 argc--; argv++; } ! strcpy (nma, argc >= 2 ? argv[1] : "Index"); ! strcpy (nmb, nma); ! strcpy (nmc, nma); ! strcpy (nmd, nma); ! strcat (nma, ".ia"); ! strcat (nmb, ".ib"); ! strcat (nmc, ".ic"); ! strcat (nmd, ".id"); sprintf(tmpa, "junk%di", getpid()); if (pipein) --- 71,84 ----- argc--; argv++; } ! (void)strcpy (nma, argc >= 2 ? argv[1] : "Index"); ! (void)strcpy (nmb, nma); ! (void)strcpy (nmc, nma); ! (void)strcpy (nmd, nma); ! (void)strcat (nma, ".ia"); ! (void)strcat (nmb, ".ib"); ! (void)strcat (nmc, ".ic"); ! (void)strcat (nmd, ".id"); (void)sprintf(tmpa, "junk%di", getpid()); if (pipein) *************** *** 77,83 strcat (nmc, ".ic"); strcat (nmd, ".id"); ! sprintf(tmpa, "junk%di", getpid()); if (pipein) { pipe(fp); --- 80,86 ----- (void)strcat (nmc, ".ic"); (void)strcat (nmd, ".id"); ! (void)sprintf(tmpa, "junk%di", getpid()); if (pipein) { (void)pipe(fp); *************** *** 80,86 sprintf(tmpa, "junk%di", getpid()); if (pipein) { ! pipe(fp); fr=fp[0]; fw=fp[1]; if ( (pfork=fork()) == 0) --- 83,89 ----- (void)sprintf(tmpa, "junk%di", getpid()); if (pipein) { ! (void)pipe(fp); fr=fp[0]; fw=fp[1]; if ( (pfork=fork()) == 0) *************** *** 85,92 fw=fp[1]; if ( (pfork=fork()) == 0) { ! close(fw); ! close(0); _assert(dup(fr)==0); close(fr); execl("/bin/sort", "sort", "-T", sortdir, "-o", tmpa, 0); --- 88,95 ----- fw=fp[1]; if ( (pfork=fork()) == 0) { ! (void)close(fw); ! (void)close(0); _assert(dup(fr)==0); (void)close(fr); execl("/bin/sort", "sort", "-T", sortdir, "-o", tmpa, 0); *************** *** 88,94 close(fw); close(0); _assert(dup(fr)==0); ! close(fr); execl("/bin/sort", "sort", "-T", sortdir, "-o", tmpa, 0); execl("/usr/bin/sort", "sort", "-T", sortdir, "-o", tmpa, 0); _assert(0); --- 91,97 ----- (void)close(fw); (void)close(0); _assert(dup(fr)==0); ! (void)close(fr); execl("/bin/sort", "sort", "-T", sortdir, "-o", tmpa, 0); execl("/usr/bin/sort", "sort", "-T", sortdir, "-o", tmpa, 0); _assert(0); *************** *** 94,100 _assert(0); } _assert(pfork!= -1); ! close(fr); fta = fopen("/dev/null", "w"); close(fta->_file); fta->_file = fw; --- 97,103 ----- _assert(0); } _assert(pfork!= -1); ! (void)close(fr); fta = fopen("/dev/null", "w"); (void)close(fta->_file); fta->_file = fw; *************** *** 96,102 _assert(pfork!= -1); close(fr); fta = fopen("/dev/null", "w"); ! close(fta->_file); fta->_file = fw; } else /* use tmp file */ --- 99,105 ----- _assert(pfork!= -1); (void)close(fr); fta = fopen("/dev/null", "w"); ! (void)close(fta->_file); fta->_file = fw; } else /* use tmp file */ *************** *** 109,115 { if (fb = fopen(nmb, "r")) { ! sprintf(tmpb, "junk%dj", getpid()); ftb = fopen(tmpb, "w"); if (ftb==NULL) err("Can't get scratch file %s",tmpb); --- 112,118 ----- { if (fb = fopen(nmb, "r")) { ! (void)sprintf(tmpb, "junk%dj", getpid()); ftb = fopen(tmpb, "w"); if (ftb==NULL) err("Can't get scratch file %s",tmpb); *************** *** 113,120 ftb = fopen(tmpb, "w"); if (ftb==NULL) err("Can't get scratch file %s",tmpb); ! nhash = recopy(ftb, fb, fopen(nma, "r")); ! fclose(ftb); } else appflg=0; --- 116,123 ----- ftb = fopen(tmpb, "w"); if (ftb==NULL) err("Can't get scratch file %s",tmpb); ! nhash = recopy(ftb, fb, fopen(nma, "r"),nhash); ! (void)fclose(ftb); } else appflg=0; *************** *** 120,127 appflg=0; } fc = fopen(nmc, appflg ? "a" : "w"); ! if (keepkey) ! fd = keepkey ? fopen(nmd, "w") : 0; docs = newkeys(fta, stdin, fc, nhash, fd, &iflong); fclose(stdin); if (remove != NULL) --- 123,132 ----- appflg=0; } fc = fopen(nmc, appflg ? "a" : "w"); ! /* ! * it was not initializing the variable *fd before ! */ ! fd = keepkey ? fopen(nmd, "w") : 0; docs = newkeys(fta, stdin, fc, nhash, fd, &iflong); (void)fclose(stdin); if (remove != NULL) *************** *** 123,129 if (keepkey) fd = keepkey ? fopen(nmd, "w") : 0; docs = newkeys(fta, stdin, fc, nhash, fd, &iflong); ! fclose(stdin); if (remove != NULL) unlink(remove); fclose(fta); --- 128,134 ----- */ fd = keepkey ? fopen(nmd, "w") : 0; docs = newkeys(fta, stdin, fc, nhash, fd, &iflong); ! (void)fclose(stdin); if (remove != NULL) (void)unlink(remove); (void)fclose(fta); *************** *** 125,132 docs = newkeys(fta, stdin, fc, nhash, fd, &iflong); fclose(stdin); if (remove != NULL) ! unlink(remove); ! fclose(fta); if (pipein) { pwait = wait(&status); --- 130,137 ----- docs = newkeys(fta, stdin, fc, nhash, fd, &iflong); (void)fclose(stdin); if (remove != NULL) ! (void)unlink(remove); ! (void)fclose(fta); if (pipein) { pwait = wait(&status); *************** *** 130,136 if (pipein) { pwait = wait(&status); ! printf("pfork %o pwait %o status %d\n",pfork,pwait,status); _assert(pwait==pfork); _assert(status==0); } --- 135,141 ----- if (pipein) { pwait = wait(&status); ! printf("pfork %o pwait %o status %d\n",pfork,pwait,status.w_status); _assert(pwait==pfork); _assert(status.w_status==0); } *************** *** 132,138 pwait = wait(&status); printf("pfork %o pwait %o status %d\n",pfork,pwait,status); _assert(pwait==pfork); ! _assert(status==0); } else { --- 137,143 ----- pwait = wait(&status); printf("pfork %o pwait %o status %d\n",pfork,pwait,status.w_status); _assert(pwait==pfork); ! _assert(status.w_status==0); } else { *************** *** 136,143 } else { ! sprintf(com, "sort -T %s %s -o %s", sortdir, tmpa, tmpa); ! system(com); } if (appflg) { --- 141,148 ----- } else { ! (void)sprintf(com, "sort -T %s %s -o %s", sortdir, tmpa, tmpa); ! (void)system(com); } if (appflg) { *************** *** 141,150 } if (appflg) { ! sprintf(tmpc, "junk%dk", getpid()); ! sprintf(com, "mv %s %s", tmpa, tmpc); ! system(com); ! sprintf(com, "sort -T %s -m %s %s -o %s", sortdir, tmpb, tmpc, tmpa); system(com); } --- 146,154 ----- } if (appflg) { ! (void)sprintf(tmpc, "junk%dk", getpid()); ! (void)rename(tmpa,tmpc); ! (void)sprintf(com, "sort -T %s -m %s %s -o %s", sortdir, tmpb, tmpc, tmpa); (void)system(com); (void)unlink(tmpc); *************** *** 146,152 system(com); sprintf(com, "sort -T %s -m %s %s -o %s", sortdir, tmpb, tmpc, tmpa); ! system(com); } fta = fopen(tmpa, "r"); fa = fopen(nma, "w"); --- 150,157 ----- (void)rename(tmpa,tmpc); (void)sprintf(com, "sort -T %s -m %s %s -o %s", sortdir, tmpb, tmpc, tmpa); ! (void)system(com); ! (void)unlink(tmpc); } fta = fopen(tmpa, "r"); fa = fopen(nma, "w"); *************** *** 152,158 fa = fopen(nma, "w"); fb = fopen(nmb, "w"); whash(fta, fa, fb, nhash, iflong, &keys, &hashes); ! fclose(fta); # ifndef D1 unlink(tmpa); # endif --- 157,163 ----- fa = fopen(nma, "w"); fb = fopen(nmb, "w"); whash(fta, fa, fb, nhash, iflong, &keys, &hashes); ! (void)fclose(fta); # ifndef D1 (void)unlink(tmpa); # endif *************** *** 154,160 whash(fta, fa, fb, nhash, iflong, &keys, &hashes); fclose(fta); # ifndef D1 ! unlink(tmpa); # endif if (appflg) { --- 159,165 ----- whash(fta, fa, fb, nhash, iflong, &keys, &hashes); (void)fclose(fta); # ifndef D1 ! (void)unlink(tmpa); # endif if (appflg) { *************** *** 158,165 # endif if (appflg) { ! unlink(tmpb); ! unlink(tmpc); } if (chatty) --- 163,170 ----- # endif if (appflg) { ! (void)unlink(tmpb); ! (void)unlink(tmpc); } if (chatty) *** /tmp/,RCSt1012823 Thu Dec 13 08:52:33 1984 --- inv5.c Tue Nov 20 10:02:13 1984 *************** *** 6,11 recopy (ft, fb, fa, nhash) FILE *ft, *fb, *fa; { /* copy fb (old hash items/pointers) to ft (new ones) */ int n, i, iflong; --- 6,12 ----- recopy (ft, fb, fa, nhash) FILE *ft, *fb, *fa; + int nhash; { /* copy fb (old hash items/pointers) to ft (new ones) */ int n, i, iflong; *************** *** 18,24 if (fa==NULL) { err("No old pointers",0); ! return; } fread(&n, sizeof(n), 1, fa); fread(&iflong, sizeof(iflong), 1, fa); --- 19,25 ----- if (fa==NULL) { err("No old pointers",0); ! return(nhash); } (void)fread(&n, sizeof(n), 1, fa); (void)fread(&iflong, sizeof(iflong), 1, fa); *************** *** 20,27 err("No old pointers",0); return; } ! fread(&n, sizeof(n), 1, fa); ! fread(&iflong, sizeof(iflong), 1, fa); if (iflong) { hpt_l = calloc(sizeof(*hpt_l), n+1); --- 21,28 ----- err("No old pointers",0); return(nhash); } ! (void)fread(&n, sizeof(n), 1, fa); ! (void)fread(&iflong, sizeof(iflong), 1, fa); if (iflong) { hpt_l =(long *)calloc((unsigned)sizeof(*hpt_l),(unsigned)(n+1)); *************** *** 24,30 fread(&iflong, sizeof(iflong), 1, fa); if (iflong) { ! hpt_l = calloc(sizeof(*hpt_l), n+1); n =fread(hpt_l, sizeof(*hpt_l), n, fa); } else --- 25,31 ----- (void)fread(&iflong, sizeof(iflong), 1, fa); if (iflong) { ! hpt_l =(long *)calloc((unsigned)sizeof(*hpt_l),(unsigned)(n+1)); n =fread(hpt_l, sizeof(*hpt_l), n, fa); } else *************** *** 29,35 } else { ! hpt_s = calloc(sizeof(*hpt_s), n+1); n =fread(hpt_s, sizeof(*hpt_s), n, fa); } if (n!= nhash) --- 30,36 ----- } else { ! hpt_s = (int *)calloc((unsigned)sizeof(*hpt_s),(unsigned)(n+1)); n =fread(hpt_s, sizeof(*hpt_s), n, fa); } if (n!= nhash) *************** *** 34,40 } if (n!= nhash) fprintf(stderr, "Changing hash value to old %d\n",n); ! fclose(fa); if (iflong) getfun = getl; else --- 35,41 ----- } if (n!= nhash) fprintf(stderr, "Changing hash value to old %d\n",n); ! (void)fclose(fa); if (iflong) getfun = getl; else *************** *** 45,51 lp = hpt_l[i]; else lp = hpt_s[i]; ! fseek(fb, lp, 0); while ( (k= (*getfun)(fb) ) != -1) fprintf(ft, "%04d %06ld\n",i,k); } --- 46,52 ----- lp = hpt_l[i]; else lp = hpt_s[i]; ! (void)fseek(fb, lp, 0); while ( (k= (*getfun)(fb) ) != -1) fprintf(ft, "%04d %06ld\n",i,k); } *************** *** 49,54 while ( (k= (*getfun)(fb) ) != -1) fprintf(ft, "%04d %06ld\n",i,k); } ! fclose(fb); return(n); } --- 50,55 ----- while ( (k= (*getfun)(fb) ) != -1) fprintf(ft, "%04d %06ld\n",i,k); } ! (void)fclose(fb); return(n); } *** /tmp/,RCSt1012832 Thu Dec 13 08:53:05 1984 --- inv6.c Tue Nov 20 10:02:56 1984 *************** *** 16,22 int ct = 0; long point; long opoint = -1; - int m; int k; long lp; long *hpt; --- 16,21 ----- int ct = 0; long point; long opoint = -1; int k; long lp; long *hpt; *************** *** 22,28 long *hpt; int *hfreq = NULL; ! hpt = calloc (nhash+1, sizeof(*hpt)); _assert (hpt != NULL); hfreq = calloc (nhash, sizeof(*hfreq)); _assert (hfreq !=NULL); --- 21,27 ----- long *hpt; int *hfreq = NULL; ! hpt = ( long *)calloc ((unsigned)(nhash+1),(unsigned)sizeof(*hpt)); _assert (hpt != NULL); hfreq = (int *)calloc ((unsigned)nhash,(unsigned)sizeof(*hfreq)); _assert (hfreq !=NULL); *************** *** 24,30 hpt = calloc (nhash+1, sizeof(*hpt)); _assert (hpt != NULL); ! hfreq = calloc (nhash, sizeof(*hfreq)); _assert (hfreq !=NULL); hpt[0] = 0; lp= 0; --- 23,29 ----- hpt = ( long *)calloc ((unsigned)(nhash+1),(unsigned)sizeof(*hpt)); _assert (hpt != NULL); ! hfreq = (int *)calloc ((unsigned)nhash,(unsigned)sizeof(*hfreq)); _assert (hfreq !=NULL); hpt[0] = 0; lp= 0; *************** *** 31,37 while (fgets(line, 100, ft)) { totct++; ! sscanf(line, "%d %ld", &k, &point); if (hash < k) { hused++; --- 30,36 ----- while (fgets(line, 100, ft)) { totct++; ! (void)sscanf(line, "%d %ld", &k, &point); if (hash < k) { hused++; *************** *** 36,42 { hused++; if (iflong) putl(-1L, fb); ! else putw(-1, fb); hfreq[hash]=ct; while (hash<k) { --- 35,42 ----- { hused++; if (iflong) putl(-1L, fb); ! else ! (void)putw(-1, fb); hfreq[hash]=ct; while (hash<k) { *************** *** 52,59 if (iflong) putl(opoint=point, fb); else ! putw( (int)(opoint=point), fb); ! lp += iflong? sizeof(long) : sizeof(int); ct++; } } --- 52,59 ----- if (iflong) putl(opoint=point, fb); else ! (void)putw( (int)(opoint=point), fb); ! lp += iflong? sizeof(long) : (int)sizeof(int); ct++; } } *************** *** 58,64 } } if (iflong) putl(-1L, fb); ! else putw(-1,fb); while (hash<nhash) hpt[++hash]=lp; fwrite(&nhash, sizeof(nhash), 1, fa); --- 58,65 ----- } } if (iflong) putl(-1L, fb); ! else ! (void)putw(-1,fb); while (hash<nhash) hpt[++hash]=lp; (void)fwrite(&nhash, sizeof(nhash), 1, fa); *************** *** 61,70 else putw(-1,fb); while (hash<nhash) hpt[++hash]=lp; ! fwrite(&nhash, sizeof(nhash), 1, fa); ! fwrite(&iflong, sizeof(iflong), 1, fa); ! fwrite(hpt, sizeof(*hpt), nhash, fa); ! fwrite (hfreq, sizeof(*hfreq), nhash, fa); *ptotct = totct; *phused = hused; } --- 62,71 ----- (void)putw(-1,fb); while (hash<nhash) hpt[++hash]=lp; ! (void)fwrite(&nhash, sizeof(nhash), 1, fa); ! (void)fwrite(&iflong, sizeof(iflong), 1, fa); ! (void)fwrite(hpt, sizeof(*hpt), nhash, fa); ! (void)fwrite (hfreq, sizeof(*hfreq), nhash, fa); *ptotct = totct; *phused = hused; } *************** *** 73,79 long ll; FILE *f; { ! putw(ll, f); } long --- 74,80 ----- long ll; FILE *f; { ! (void)putw(ll, f); } long *** /tmp/,RCSt1012841 Thu Dec 13 08:53:30 1984 --- mkey2.c Tue Nov 20 10:03:45 1984 *************** *** 47,53 chkey (c, name); if (used) putchar('\n'); } ! fclose(f); } outkey( ky, lead, trail) --- 47,53 ----- chkey (c, name); if (used) putchar('\n'); } ! (void)fclose(f); } outkey( ky, lead, trail) *************** *** 85,91 if (tm[0] == '%' || tm[0] == '.') curtype = tm[1]; if (tlen < MAXLINE && mindex(iglist,curtype)==0) ! strcat(s, tm); len = tlen; if (wholefile==0 && tm[0] == '\n') return(len); --- 85,91 ----- if (tm[0] == '%' || tm[0] == '.') curtype = tm[1]; if (tlen < MAXLINE && mindex(iglist,curtype)==0) ! (void)strcat(s, tm); len = tlen; if (wholefile==0 && tm[0] == '\n') return(len); *************** *** 91,97 return(len); if (wholefile>0 && len >= MAXLINE) { ! fseek (f, 0L, 2); return(ftell(f)); } } --- 91,97 ----- return(len); if (wholefile>0 && len >= MAXLINE) { ! (void)fseek (f, 0L, 2); return(ftell(f)); } } *************** *** 103,112 trimnl(ln) char *ln; { ! register char *p = ln; ! while (*p) p++; ! p--; ! if (*p == '\n') *p=0; return(ln); } --- 103,112 ----- trimnl(ln) char *ln; { ! register char *w = ln; ! while (*w) w++; ! w--; ! if (*w == '\n') *w=0; return(ln); } *** /tmp/,RCSt1012872 Thu Dec 13 08:55:26 1984 --- refer3.c Tue Nov 20 10:04:21 1984 *************** *** 3,8 #endif #include "refer..c" #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) --- 3,10 ----- #endif #include "refer..c" + #include <sys/wait.h> + #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) *************** *** 6,12 #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) ! char *in, *out, *rprog; { int pipev[2], fr1, fr2, fw1, fw2, n; int status; --- 8,14 ----- #define move(x, y) close(y); dup(x); close(x); corout(in, out, rprog, arg, outlen) ! char *in, *out, *rprog, *arg; { int pipev[2], fr1, fr2, fw1, fw2, n; union wait status; *************** *** 9,15 char *in, *out, *rprog; { int pipev[2], fr1, fr2, fw1, fw2, n; ! int status; pipe(pipev); fr1 = pipev[0]; --- 11,17 ----- char *in, *out, *rprog, *arg; { int pipev[2], fr1, fr2, fw1, fw2, n; ! union wait status; (void)pipe(pipev); fr1 = pipev[0]; *************** *** 11,17 int pipev[2], fr1, fr2, fw1, fw2, n; int status; ! pipe(pipev); fr1 = pipev[0]; fw1 = pipev[1]; pipe(pipev); --- 13,19 ----- int pipev[2], fr1, fr2, fw1, fw2, n; union wait status; ! (void)pipe(pipev); fr1 = pipev[0]; fw1 = pipev[1]; (void)pipe(pipev); *************** *** 14,20 pipe(pipev); fr1 = pipev[0]; fw1 = pipev[1]; ! pipe(pipev); fr2 = pipev[0]; fw2 = pipev[1]; if (fork() == 0) --- 16,22 ----- (void)pipe(pipev); fr1 = pipev[0]; fw1 = pipev[1]; ! (void)pipe(pipev); fr2 = pipev[0]; fw2 = pipev[1]; if (fork() == 0) *************** *** 19,26 fw2 = pipev[1]; if (fork() == 0) { ! close(fw1); ! close(fr2); move(fr1, 0); move(fw2, 1); execl(rprog, "deliv", arg, 0); --- 21,28 ----- fw2 = pipev[1]; if (fork() == 0) { ! (void)close(fw1); ! (void)close(fr2); move(fr1, 0); move(fw2, 1); execl(rprog, "deliv", arg, 0); *************** *** 26,36 execl(rprog, "deliv", arg, 0); err("Can't run %s", (void) rprog); } ! close(fw2); ! close(fr1); ! write(fw1, in , strlen(in)); ! close(fw1); ! wait(&status); n = read(fr2, out, outlen); out[n] = 0; close(fr2); --- 28,38 ----- execl(rprog, "deliv", arg, 0); err("Can't run %s", (void) rprog); } ! (void)close(fw2); ! (void)close(fr1); ! (void)write(fw1, in , strlen(in)); ! (void)close(fw1); ! (void)wait(&status); n = read(fr2, out, outlen); out[n] = 0; (void)close(fr2); *************** *** 33,38 wait(&status); n = read(fr2, out, outlen); out[n] = 0; ! close(fr2); return(n); } --- 35,40 ----- (void)wait(&status); n = read(fr2, out, outlen); out[n] = 0; ! (void)close(fr2); return(n); }