/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* hack.rumors.c - version 1.0.3 */
#include "hack.h" /* for RUMORFILE and BSD (index) */
#define CHARSZ 8 /* number of bits in a char */
init_rumors(rumf
) register FILE *rumf
; {
while(skipline(rumf
)) n_rumors
++;
usedbits
= (char *) alloc((unsigned)(i
+1));
for( ; i
>=0; i
--) usedbits
[i
] = 0;
skipline(rumf
) register FILE *rumf
; {
if(!fgets(line
, sizeof(line
), rumf
)) return(0);
if(index(line
, '\n')) return(1);
outline(rumf
) register FILE *rumf
; {
if(!fgets(line
, sizeof(line
), rumf
)) return;
if((ep
= index(line
, '\n')) != 0) *ep
= 0;
pline("This cookie has a scrap of paper inside! It reads: ");
if(n_rumors
<= n_used_rumors
||
(rumf
= fopen(RUMORFILE
, "r")) == (FILE *) 0) return;
if(n_used_rumors
< 0) init_rumors(rumf
);
rn
= rn2(n_rumors
- n_used_rumors
);
usedbits
[i
/CHARSZ
] |= (1 << (i
% CHARSZ
));
used(i
) register int i
; {
return(usedbits
[i
/CHARSZ
] & (1 << (i
% CHARSZ
)));