|
|
1.1 root 1: /* $Header: only.c,v 4.3 85/05/01 11:45:21 lwall Exp $
2: *
3: * $Log: only.c,v $
4: * Revision 4.3 85/05/01 11:45:21 lwall
5: * Baseline for release with 4.3bsd.
6: *
7: */
8:
9: #include "EXTERN.h"
10: #include "common.h"
11: #include "search.h"
12: #include "util.h"
13: #include "final.h"
14: #include "ngsrch.h"
15: #include "INTERN.h"
16: #include "only.h"
17:
18: void
19: only_init()
20: {
21: ;
22: }
23:
24: void
25: setngtodo(pat)
26: char *pat;
27: {
28: char *s;
29:
30: #ifdef ONLY
31: if (!*pat)
32: return;
33: if (maxngtodo < NGMAX) {
34: ngtodo[maxngtodo] = savestr(pat);
35: #ifdef SPEEDOVERMEM
36: #ifndef lint
37: compextodo[maxngtodo] = (COMPEX*)safemalloc(sizeof(COMPEX));
38: #endif lint
39: init_compex(compextodo[maxngtodo]);
40: compile(compextodo[maxngtodo],pat,TRUE,TRUE);
41: if ((s = ng_comp(compextodo[maxngtodo],pat,TRUE,TRUE)) != Nullch) {
42: /* compile regular expression */
43: printf("\n%s\n",s) FLUSH;
44: finalize(1);
45: }
46: #endif
47: maxngtodo++;
48: }
49: #else
50: notincl("o");
51: #endif
52: }
53:
54: /* if command line list is non-null, is this newsgroup wanted? */
55:
56: bool
57: inlist(ngnam)
58: char *ngnam;
59: {
60: #ifdef ONLY
61: register int i;
62: #ifdef SPEEDOVERMEM
63:
64: if (maxngtodo == 0)
65: return TRUE;
66: for (i=0; i<maxngtodo; i++) {
67: if (execute(compextodo[i],ngnam))
68: return TRUE;
69: }
70: return FALSE;
71: #else
72: COMPEX ilcompex;
73: char *s;
74:
75: if (maxngtodo == 0)
76: return TRUE;
77: init_compex(&ilcompex);
78: for (i=0; i<maxngtodo; i++) {
79: if ((s = ng_comp(&ilcompex,ngtodo[i],TRUE,TRUE)) != Nullch) {
80: /* compile regular expression */
81: printf("\n%s\n",s) FLUSH;
82: finalize(1);
83: }
84:
85: if (execute(&ilcompex,ngnam) != Nullch) {
86: free_compex(&ilcompex);
87: return TRUE;
88: }
89: }
90: free_compex(&ilcompex);
91: return FALSE;
92: #endif
93: #else
94: return TRUE;
95: #endif
96: }
97:
98: #ifdef ONLY
99: void
100: end_only()
101: {
102: if (maxngtodo) { /* did they specify newsgroup(s) */
103: int whicharg;
104:
105: #ifdef VERBOSE
106: IF(verbose)
107: printf("\nRestriction %s%s removed.\n",ngtodo[0],
108: maxngtodo > 1 ? ", etc." : nullstr) FLUSH;
109: ELSE
110: #endif
111: #ifdef TERSE
112: fputs("\nExiting \"only\".\n",stdout) FLUSH;
113: #endif
114: for (whicharg = 0; whicharg < maxngtodo; whicharg++) {
115: free(ngtodo[whicharg]);
116: #ifdef SPEEDOVERMEM
117: free_compex(compextodo[whicharg]);
118: #ifndef lint
119: free((char*)compextodo[whicharg]);
120: #endif lint
121: #endif
122: }
123: maxngtodo = 0;
124: }
125: }
126: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.