xref: /csrg-svn/old/refer/hunt/hunt3.c (revision 12285)
1*12285Stut #ifndef lint
2*12285Stut static char *sccsid = "@(#)hunt3.c	4.1 (Berkeley) 05/06/83";
3*12285Stut #endif
4*12285Stut 
5*12285Stut #include "refer..c"
6*12285Stut #define BSIZ 250
7*12285Stut 
8*12285Stut getq(v)
9*12285Stut char *v[];
10*12285Stut {
11*12285Stut 	static char buff[BSIZ];
12*12285Stut 	static int eof = 0;
13*12285Stut 	extern char *sinput;
14*12285Stut 	char *p;
15*12285Stut 	int c, n = 0, las = 0;
16*12285Stut 	if (eof) return(-1);
17*12285Stut 	p = buff;
18*12285Stut 	while ( (c = (sinput ? *sinput++ : getchar()) ) > 0)
19*12285Stut 	{
20*12285Stut 		if (c== '\n')
21*12285Stut 			break;
22*12285Stut 		if (isalpha(c) || isdigit(c))
23*12285Stut 		{
24*12285Stut 			if (las==0)
25*12285Stut 			{
26*12285Stut 				v[n++] = p;
27*12285Stut 				las=1;
28*12285Stut 			}
29*12285Stut 			if (las++ <= 6)
30*12285Stut 				*p++ = c;
31*12285Stut 		}
32*12285Stut 		else
33*12285Stut 		{
34*12285Stut 			if (las>0)
35*12285Stut 				*p++ = 0;
36*12285Stut 			las=0;
37*12285Stut 		}
38*12285Stut 	}
39*12285Stut 	*p=0;
40*12285Stut 	assert(p<buff+BSIZ);
41*12285Stut 	if (sinput==0 && c<= 0) eof=1;
42*12285Stut # if D1
43*12285Stut 	fprintf(stderr, "no. keys %d\n",n);
44*12285Stut 	for(c=0; c<n; c++)
45*12285Stut 		fprintf(stderr, "keys X%sX\n", v[c]);
46*12285Stut # endif
47*12285Stut 	return(n);
48*12285Stut }
49