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