xref: /csrg-svn/old/refer/hunt/hunt3.c (revision 13438)
112285Stut #ifndef lint
2*13438Stut static char *sccsid = "@(#)hunt3.c	4.2 (Berkeley) 06/28/83";
312285Stut #endif
412285Stut 
512285Stut #include "refer..c"
612285Stut #define BSIZ 250
712285Stut 
812285Stut getq(v)
912285Stut char *v[];
1012285Stut {
1112285Stut 	static char buff[BSIZ];
1212285Stut 	static int eof = 0;
1312285Stut 	extern char *sinput;
1412285Stut 	char *p;
1512285Stut 	int c, n = 0, las = 0;
1612285Stut 	if (eof) return(-1);
1712285Stut 	p = buff;
1812285Stut 	while ( (c = (sinput ? *sinput++ : getchar()) ) > 0)
1912285Stut 	{
2012285Stut 		if (c== '\n')
2112285Stut 			break;
2212285Stut 		if (isalpha(c) || isdigit(c))
2312285Stut 		{
2412285Stut 			if (las==0)
2512285Stut 			{
2612285Stut 				v[n++] = p;
2712285Stut 				las=1;
2812285Stut 			}
2912285Stut 			if (las++ <= 6)
3012285Stut 				*p++ = c;
3112285Stut 		}
3212285Stut 		else
3312285Stut 		{
3412285Stut 			if (las>0)
3512285Stut 				*p++ = 0;
3612285Stut 			las=0;
3712285Stut 		}
3812285Stut 	}
3912285Stut 	*p=0;
40*13438Stut 	if (p > buff + BSIZ)
41*13438Stut 		fprintf(stderr, "query long than %d characters\n", BSIZ);
42*13438Stut 	assert(p < buff + BSIZ);
4312285Stut 	if (sinput==0 && c<= 0) eof=1;
4412285Stut # if D1
4512285Stut 	fprintf(stderr, "no. keys %d\n",n);
4612285Stut 	for(c=0; c<n; c++)
4712285Stut 		fprintf(stderr, "keys X%sX\n", v[c]);
4812285Stut # endif
4912285Stut 	return(n);
5012285Stut }
51