|
|
1.1 root 1: *** inews.c.1.std Tue Oct 2 16:09:59 1984
2: --- inews.c.1 Fri Sep 21 14:50:49 1984
3: ***************
4: *** 483,488
5: /*
6: * Link ARTICLE into dir for ngname and update active file.
7: */
8: localize(ngname)
9: char *ngname;
10: {
11:
12: --- 483,491 -----
13: /*
14: * Link ARTICLE into dir for ngname and update active file.
15: */
16: + #ifdef DOXREFS
17: + long
18: + #endif
19: localize(ngname)
20: char *ngname;
21: {
22: ***************
23: *** 515,520
24: }
25: for (;;) {
26: sprintf(bfr, "%s/%ld", dirname(ngname), ngsize+1);
27: if (link(ARTICLE, bfr) == 0) break;
28: e = errno; /* keep log from clobbering it */
29: fprintf(stderr, "Cannot install article as %s\n", bfr);
30:
31: --- 518,528 -----
32: }
33: for (;;) {
34: sprintf(bfr, "%s/%ld", dirname(ngname), ngsize+1);
35: + #ifdef LINKART
36: + if (mylink(ARTICLE, bfr) == 0) break;
37: + /* on first file inits ARTICLE, on subsequent */
38: + /* files "links" to first article */
39: + #else
40: if (link(ARTICLE, bfr) == 0) break;
41: #endif
42: e = errno; /* keep log from clobbering it */
43: ***************
44: *** 516,521
45: for (;;) {
46: sprintf(bfr, "%s/%ld", dirname(ngname), ngsize+1);
47: if (link(ARTICLE, bfr) == 0) break;
48: e = errno; /* keep log from clobbering it */
49: fprintf(stderr, "Cannot install article as %s\n", bfr);
50: log("Cannot install article as %s", bfr);
51:
52: --- 524,530 -----
53: /* files "links" to first article */
54: #else
55: if (link(ARTICLE, bfr) == 0) break;
56: + #endif
57: e = errno; /* keep log from clobbering it */
58: fprintf(stderr, "Cannot install article as %s\n", bfr);
59: log("Cannot install article as %s", bfr);
60: ***************
61: *** 542,547
62: strcpy(firstbufname, bfr);
63: sprintf(bfr, "%s/%ld ", ngname, ngsize+1);
64: addhist(bfr);
65: return TRUE;
66: }
67:
68:
69: --- 551,557 -----
70: strcpy(firstbufname, bfr);
71: sprintf(bfr, "%s/%ld ", ngname, ngsize+1);
72: addhist(bfr);
73: + #ifndef DOXREFS
74: return TRUE;
75: #else DOXREFS
76: return ngsize+1;
77: ***************
78: *** 543,548
79: sprintf(bfr, "%s/%ld ", ngname, ngsize+1);
80: addhist(bfr);
81: return TRUE;
82: }
83:
84: /*
85:
86: --- 553,561 -----
87: addhist(bfr);
88: #ifndef DOXREFS
89: return TRUE;
90: + #else DOXREFS
91: + return ngsize+1;
92: + #endif DOXREFS
93: }
94:
95: /*
96: ***************
97: *** 553,558
98: register char *ptr;
99: register FILE *tfp;
100: int badgroup = 0, goodgroup = 0;
101:
102: /* Fill up the rest of header. */
103: if (mode != PROC) {
104:
105: --- 566,574 -----
106: register char *ptr;
107: register FILE *tfp;
108: int badgroup = 0, goodgroup = 0;
109: + #ifdef DOXREFS
110: + register char *nextxref = header.xref;
111: + #endif DOXREFS
112:
113: /* Fill up the rest of header. */
114: if (mode != PROC) {
115: ***************
116: *** 565,570
117: if (mode==PROC)
118: log("from %s relay %s", header.from, header.relayversion);
119:
120: /* Write article to temp file. */
121: tfp = xfopen(mktemp(ARTICLE), "w");
122: lhwrite(&header, tfp);
123:
124: --- 581,593 -----
125: if (mode==PROC)
126: log("from %s relay %s", header.from, header.relayversion);
127:
128: + #ifdef LINKART
129: + *ARTICLE = '\0'; /* tell mylink() to snarf the name */
130: + #else !LINKART
131: + #ifdef DOXREFS
132: + /* Open temp file for article, but link before writing */
133: + tfp = xfopen(mktemp(ARTICLE), "w");
134: + #else DOXREFS
135: /* Write article to temp file. */
136: tfp = xfopen(mktemp(ARTICLE), "w");
137: lhwrite(&header, tfp);
138: ***************
139: *** 577,582
140: }
141: fclose(tfp);
142: fclose(infp);
143:
144: if (is_ctl) {
145: control(&header);
146:
147: --- 600,607 -----
148: }
149: fclose(tfp);
150: fclose(infp);
151: + #endif DOXREFS
152: + #endif LINKART
153:
154: if (is_ctl) {
155: control(&header);
156: ***************
157: *** 593,598
158: }
159: }
160: } else {
161: for (ptr = nbuf; *ptr;) {
162: if (*ptr == '-') {
163: while (*ptr++)
164:
165: --- 618,627 -----
166: }
167: }
168: } else {
169: + #ifdef DOXREFS
170: + sprintf(nextxref,"%s ",SYSNAME);
171: + nextxref += strlen(nextxref);
172: + #endif
173: for (ptr = nbuf; *ptr;) {
174: if (*ptr == '-') {
175: while (*ptr++)
176: ***************
177: *** 610,615
178: }
179: else
180: goodgroup++;
181: if (*nbuf)
182: localize(ptr);
183: while (*ptr++)
184:
185: --- 639,645 -----
186: }
187: else
188: goodgroup++;
189: + #ifndef DOXREFS
190: if (*nbuf)
191: localize(ptr);
192: #else DOXREFS
193: ***************
194: *** 612,617
195: goodgroup++;
196: if (*nbuf)
197: localize(ptr);
198: while (*ptr++)
199: ;
200: }
201:
202: --- 642,653 -----
203: #ifndef DOXREFS
204: if (*nbuf)
205: localize(ptr);
206: + #else DOXREFS
207: + if (*nbuf)
208: + sprintf(nextxref,"%s:%ld ",ptr,localize(ptr));
209: + while (*nextxref)
210: + nextxref++;
211: + #endif DOXREFS
212: while (*ptr++)
213: ;
214: }
215: ***************
216: *** 616,621
217: ;
218: }
219: }
220:
221: #ifdef NOFORWARD
222: if (*nbuf)
223:
224: --- 652,663 -----
225: ;
226: }
227: }
228: + #ifdef DOXREFS
229: + if (goodgroup < 2)
230: + header.xref[0] = '\0';
231: + else
232: + *(nextxref-1) = '\0';
233: + #endif
234:
235: #ifdef LINKART
236: tfp = xfopen(ARTICLE,"w"); /* open 1st article localized */
237: ***************
238: *** 617,622
239: }
240: }
241:
242: #ifdef NOFORWARD
243: if (*nbuf)
244: #endif
245:
246: --- 659,683 -----
247: *(nextxref-1) = '\0';
248: #endif
249:
250: + #ifdef LINKART
251: + tfp = xfopen(ARTICLE,"w"); /* open 1st article localized */
252: + #endif
253: +
254: + #if defined(LINKART) || defined(DOXREFS)
255: + /* Now that xref is constructed, write article to temp file. */
256: + /* (We ought to detect no room at this point and clean up.) */
257: + lhwrite(&header, tfp);
258: + while (fgets(bfr, BUFLEN, infp) != NULL) {
259: + /*
260: + if (!strncmp(bfr, "From ", 5))
261: + putc('>', tfp);
262: + */
263: + fputs(bfr, tfp);
264: + }
265: + fclose(tfp);
266: + fclose(infp);
267: + #endif LINKART || DOXREFS
268: +
269: #ifdef NOFORWARD
270: if (*nbuf)
271: #endif
272: ***************
273: *** 861,863
274: mclose(fd);
275: }
276: }
277:
278: --- 922,946 -----
279: mclose(fd);
280: }
281: }
282: +
283: + #ifdef LINKART
284: + mylink(tmpart,linkfrom)
285: + char *tmpart, *linkfrom;
286: + {
287: + struct stat statbuf;
288: +
289: + if (stat(linkfrom,&statbuf)==0)
290: + return -1;
291: + if (!*tmpart)
292: + strcpy(tmpart,linkfrom);
293: + else {
294: + FILE *linkfp = fopen(linkfrom,"w");
295: +
296: + if (!linkfp)
297: + return -1;
298: + fprintf(linkfp,"%s\n",tmpart);
299: + fclose(linkfp);
300: + }
301: + return 0;
302: + }
303: + #endif LINKART
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.