V10/cmd/refer/hunt3.c

Compare this file to the similar file:
Show the results in this format:

# include "refer..c"
getq(v)
	char *v[];
{
# define BSIZ 250
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;
assert(p<buff+BSIZ);
if (sinput==0 && c<= 0) eof=1;
n = keycomp(v,n);
# 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);
}
keycomp(v,n) /* compress keys */
	char *v[];
{
int i, j, k;
for(i=j=0; i<n; i++)
	{
	for(k=0; k<j; k++)
		if (strcmp(v[i], v[k])==0)
			break;
	if (k<j) /* found it */
		continue;
	v[j++] = v[i];
	}
return(j);
}