static char dr
[100] = "";
char buff
[QLEN
], dbuff
[3*QLEN
], answer
[ANSLEN
], temp
[TLEN
];
char *p
, **sr
, *flds
[NFLD
], *r
;
int nf
, nr
, alph
, query
= 0, chp
, digs
;
if (control(line
[0])) query
=1;
strcat (query
? dbuff
: buff
, line
);
err("buff too big (%d)", strlen(buff
));
assert (strlen(dbuff
) <3*QLEN
);
if (strcmp (buff
, "$LIST$\n")==0)
fprintf(stderr
, "dump sorted list\n");
fprintf(stderr
, "query is %s\n",buff
);
if (isupper(*p
)) *p
|= 040;
if (isalpha(chp
= *p
)) alph
++;
if ( (alph
+digs
<3) || common(p
-alph
))
fprintf(stderr
, "number, %d long, text is %s\n",digs
,r
);
if (digs
!= 4 || (atoi(r
)/100 != 19))
fprintf(stderr
, "query translated to %s\n", buff
);
if (buff
[0]) /* do not search if no query */
for( sr
= rdata
; sr
< search
; sr
++)
fprintf(stderr
, "now searching %s\n", *sr
);
corout (buff
, temp
, "hunt", *sr
, TLEN
);
assert (strlen(temp
)<TLEN
);
if (strlen(temp
)+strlen(answer
)>LLINE
)
err("Accumulated answers too large",0);
if (strlen(answer
)>LLINE
)
err("answer too long (%d)", strlen(answer
));
if (newline(answer
) > 0) break;
fprintf(stderr
, "answer:\n%s****\n", answer
);
assert (strlen(one
)<ANSLEN
);
assert (strlen(answer
)<ANSLEN
);
fprintf (stderr
, "No such paper %s\n", buff
);
fprintf(stderr
, "too many hits for '%s'\n", trimnl(buff
));
fprintf(stderr
, "found one\n");
putsig (0, flds
, nr
, firline
, line
);
fprintf(stderr
, "one[0] was %o\n",one
[0]);
corout (answer
, one
, "deliv", dr
, QLEN
);
fprintf(stderr
, "one now %o\n",one
[0]);
assert (strlen(buff
)<QLEN
);
assert (strlen(one
)<ANSLEN
);
nf
+= tabs(flds
+nf
, dbuff
);
fprintf(stderr
, "one %.20s dbuff %.20s nf %d\n",one
,dbuff
, nf
);
if (sort
) putkey (nf
, flds
, refnum
, keystr
);
putsig (nf
, flds
, refnum
, firline
, line
);
fprintf(stderr
, "put signal\n");
fprintf(stderr
, "put ref\n");
char ob
[LLINE
], *p
, *r
, *q
, *t
;
corout (r
, ob
, "deliv", dr
, LLINE
);
if (nl
&& (q
[0] == '.' || q
[0] == '%') && q
[1] == 'T')
for (t
=q
; *t
&& *t
!= '\n'; t
++);
fprintf(stderr
, "%.70s\n", q
);
fprintf(stderr
, "??? at %s\n",r
);