Commit | Line | Data |
---|---|---|
d8dc2544 | 1 | #ifndef lint |
67096651 | 2 | static char *sccsid = "@(#)hunt3.c 4.2 (Berkeley) %G%"; |
d8dc2544 BT |
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; | |
67096651 BT |
40 | if (p > buff + BSIZ) |
41 | fprintf(stderr, "query long than %d characters\n", BSIZ); | |
42 | assert(p < buff + BSIZ); | |
d8dc2544 BT |
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 | } |