|
|
1.1 root 1: # include "stdio.h"
2: # include "assert.h"
3: # include "ctype.h"
4: # include "signal.h"
5: /*
6: * select and send documents
7: * keys files look like
8: * *H tiles *P first paragraph *S whole story >Y write in Y
9: * or |C pipe to command C or >>Y append to Y.
10: * followed by keyword; keyword keyword ; keyword, keyword; keyword . keyword
11: * optional !keyword for negation of appearance
12: * no parens yet
13: * (this order, same sentence, same file)
14: */
15: char *fname, today[10];
16: int debug=0;
17: main(argc,argv)
18: char *argv[];
19: {
20: /*
21: * argv 1 list of users
22: * argv 2 list of stories
23: */
24: FILE *fs;
25: extern FILE *yyin;
26: char dline[250], *dp, *strchr();
27: int k;
28: long tm, time(); char *tx, *ctime();
29: extern FILE *yyin;
30: signal(SIGPIPE, SIG_IGN);
31: while (argv[1][0]=='-')
32: {
33: switch(argv[1][1])
34: {
35: case 'd': debug++; break;
36: }
37: argc--;argv++;
38: }
39: assert(argc>2);
40: tm = time(0);
41: tx = ctime(&tm);
42: sprintf(today, "%3.3s%02.2d", tx+4,atoi(tx+8));
43: fs = fopen(argv[2], "r");
44: assert(fs!=NULL);
45: stread();
46:
47: /* now read a data file */
48: fprintf(stderr, "finished stread\n");
49: while (fgets(dline, 200, fs))
50: {
51: trimnl(dline);
52: yyin = fopen(dline, "r");
53: fname=dline;
54: if (yyin==NULL)
55: continue;
56: process();
57: deliver();
58: fclose(yyin);
59: }
60: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.