51 lines
835 B
C
51 lines
835 B
C
#ifndef lint
|
|
static char sccsid[] = "@(#)hunt3.c 1.1 94/10/31 SMI"; /* from UCB 4.2 6/28/83 */
|
|
#endif
|
|
|
|
#include "refer..c"
|
|
#define BSIZ 250
|
|
|
|
getq(v)
|
|
char *v[];
|
|
{
|
|
static char buff[BSIZ];
|
|
static int eof = 0;
|
|
extern char *sinput;
|
|
char *p;
|
|
int c, n = 0, las = 0;
|
|
if (eof) return(-1);
|
|
p = buff;
|
|
while ( (c = (sinput ? *sinput++ : getchar()) ) > 0)
|
|
{
|
|
if (c== '\n')
|
|
break;
|
|
if (isalpha(c) || isdigit(c))
|
|
{
|
|
if (las==0)
|
|
{
|
|
v[n++] = p;
|
|
las=1;
|
|
}
|
|
if (las++ <= 6)
|
|
*p++ = c;
|
|
}
|
|
else
|
|
{
|
|
if (las>0)
|
|
*p++ = 0;
|
|
las=0;
|
|
}
|
|
}
|
|
*p=0;
|
|
if (p > buff + BSIZ)
|
|
fprintf(stderr, "query long than %d characters\n", BSIZ);
|
|
assert(p < buff + BSIZ);
|
|
if (sinput==0 && c<= 0) eof=1;
|
|
# if D1
|
|
fprintf(stderr, "no. keys %d\n",n);
|
|
for(c=0; c<n; c++)
|
|
fprintf(stderr, "keys X%sX\n", v[c]);
|
|
# endif
|
|
return(n);
|
|
}
|