mp@whuxle.UUCP (Mark Plotnick) (03/28/84)
addbib (part of refer) has the old 4.2bsd sticky-EOF misfeature, and will go into an infinite loop after you enter an abstract. The following fix (1) adds a clearerr() after the read-in-the-abstract loop and (2) returns if the user hits EOF again. *** addbib.c.bsd Sun May 8 17:34:26 1983 --- addbib.c Tue Mar 27 14:53:16 1984 *************** *** 158,163 } fputs(line, fp); } } fflush(fp); /* write to file at end of each cycle */ if (ferror(fp)) --- 158,164 ----- } fputs(line, fp); } + clearerr(stdin); } fflush(fp); /* write to file at end of each cycle */ if (ferror(fp)) *************** *** 167,173 } editloop: printf("\nContinue? "); ! fgets(line, BUFSIZ, stdin); if (line[0] == 'e' || line[0] == 'v') { bibedit(fp, line, argv); --- 168,175 ----- } editloop: printf("\nContinue? "); ! if(fgets(line, BUFSIZ, stdin) == NULL) ! return; if (line[0] == 'e' || line[0] == 'v') { bibedit(fp, line, argv); Mark Plotnick Home of the UNIX Molecule