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)1212285Stutgetq(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