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