xref: /csrg-svn/old/refer/hunt/hunt3.c (revision 48296)
1*48296Sbostic /*-
2*48296Sbostic  * %sccs.include.proprietary.c%
3*48296Sbostic  */
4*48296Sbostic 
512285Stut #ifndef lint
6*48296Sbostic static char sccsid[] = "@(#)hunt3.c	4.3 (Berkeley) 04/18/91";
7*48296Sbostic #endif /* not lint */
812285Stut 
912285Stut #include "refer..c"
1012285Stut #define BSIZ 250
1112285Stut 
getq(v)1212285Stut getq(v)
1312285Stut char *v[];
1412285Stut {
1512285Stut 	static char buff[BSIZ];
1612285Stut 	static int eof = 0;
1712285Stut 	extern char *sinput;
1812285Stut 	char *p;
1912285Stut 	int c, n = 0, las = 0;
2012285Stut 	if (eof) return(-1);
2112285Stut 	p = buff;
2212285Stut 	while ( (c = (sinput ? *sinput++ : getchar()) ) > 0)
2312285Stut 	{
2412285Stut 		if (c== '\n')
2512285Stut 			break;
2612285Stut 		if (isalpha(c) || isdigit(c))
2712285Stut 		{
2812285Stut 			if (las==0)
2912285Stut 			{
3012285Stut 				v[n++] = p;
3112285Stut 				las=1;
3212285Stut 			}
3312285Stut 			if (las++ <= 6)
3412285Stut 				*p++ = c;
3512285Stut 		}
3612285Stut 		else
3712285Stut 		{
3812285Stut 			if (las>0)
3912285Stut 				*p++ = 0;
4012285Stut 			las=0;
4112285Stut 		}
4212285Stut 	}
4312285Stut 	*p=0;
4413438Stut 	if (p > buff + BSIZ)
4513438Stut 		fprintf(stderr, "query long than %d characters\n", BSIZ);
4613438Stut 	assert(p < buff + BSIZ);
4712285Stut 	if (sinput==0 && c<= 0) eof=1;
4812285Stut # if D1
4912285Stut 	fprintf(stderr, "no. keys %d\n",n);
5012285Stut 	for(c=0; c<n; c++)
5112285Stut 		fprintf(stderr, "keys X%sX\n", v[c]);
5212285Stut # endif
5312285Stut 	return(n);
5412285Stut }
55