|
|
1.1 root 1: *** inews.old.c Tue Apr 30 14:34:19 1985
2: --- inews.c Tue Apr 30 14:34:33 1985
3: ***************
4: *** 416,421
5: /*
6: * Link ARTICLE into dir for ngname and update active file.
7: */
8: localize(ngname)
9: char *ngname;
10: {
11:
12: --- 416,424 -----
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: *** 453,458
24: mknewsg(cp, ngname);
25:
26: sprintf(bfr, "%s/%ld", cp, ngsize+1);
27: #ifdef VMS
28: if ((f2 = creat(bfr, 0666)) >=0 ) {
29: f1 = open(article, 0);
30:
31: --- 456,466 -----
32: mknewsg(cp, ngname);
33:
34: sprintf(bfr, "%s/%ld", cp, 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 !LINKART
40: #ifdef VMS
41: if ((f2 = creat(bfr, 0666)) >=0 ) {
42: f1 = open(article, 0);
43: ***************
44: *** 468,473
45: if (link(ARTICLE, bfr) == 0)
46: break;
47: #endif !VMS
48: e = errno; /* keep log from clobbering it */
49: logerr("Cannot install article as %s", bfr);
50: if (e != EEXIST) {
51:
52: --- 476,482 -----
53: if (link(ARTICLE, bfr) == 0)
54: break;
55: #endif !VMS
56: + #endif !LINKART
57: e = errno; /* keep log from clobbering it */
58: logerr("Cannot install article as %s", bfr);
59: if (e != EEXIST) {
60: ***************
61: *** 494,499
62: strcpy(firstbufname, bfr);
63: sprintf(bfr, "%s/%ld ", ngname, ngsize+1);
64: addhist(bfr);
65: return TRUE;
66: }
67:
68:
69: --- 503,509 -----
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: *** 495,500
79: sprintf(bfr, "%s/%ld ", ngname, ngsize+1);
80: addhist(bfr);
81: return TRUE;
82: }
83:
84: /*
85:
86: --- 505,513 -----
87: addhist(bfr);
88: #ifndef DOXREFS
89: return TRUE;
90: + #else DOXREFS
91: + return ngsize+1;
92: + #endif DOXREFS
93: }
94:
95: /*
96: ***************
97: *** 507,512
98: char c;
99: struct srec srec; /* struct for sys file lookup */
100: int is_invalid = FALSE;
101:
102: /* Fill up the rest of header. */
103: if (mode != PROC) {
104:
105: --- 520,529 -----
106: char c;
107: struct srec srec; /* struct for sys file lookup */
108: int is_invalid = FALSE;
109: + #ifdef DOXREFS
110: + register char *nextxref = header.xref;
111: + int numxrefs = 0;
112: + #endif DOXREFS
113:
114: /* Fill up the rest of header. */
115: if (mode != PROC) {
116: ***************
117: *** 527,532
118: if (!is_ctl && mode != CREATENG)
119: is_invalid = ngfcheck(mode == PROC);
120:
121: /* Write article to temp file. */
122: tfp = xfopen(mktemp(ARTICLE), "w");
123: if ( (c=getc(infp)) == ' ' || c == '\t' ) {
124:
125: --- 544,556 -----
126: if (!is_ctl && mode != CREATENG)
127: is_invalid = ngfcheck(mode == PROC);
128:
129: + #ifdef LINKART
130: + *ARTICLE = '\0'; /* tell mylink() to snarf the name */
131: + #else !LINKART
132: + #ifdef DOXREFS
133: + /* Open temp file for article, but link before writing */
134: + tfp = xfopen(mktemp(ARTICLE), "w");
135: + #else DOXREFS
136: /* Write article to temp file. */
137: tfp = xfopen(mktemp(ARTICLE), "w");
138: if ( (c=getc(infp)) == ' ' || c == '\t' ) {
139: ***************
140: *** 545,550
141: putc('\n',tfp);
142: fclose(tfp);
143: fclose(infp);
144:
145: if (is_invalid) {
146: logerr("No valid newsgroups found, moved to junk");
147:
148: --- 569,576 -----
149: putc('\n',tfp);
150: fclose(tfp);
151: fclose(infp);
152: + #endif DOXREFS
153: + #endif LINKART
154:
155: if (is_invalid) {
156: logerr("No valid newsgroups found, moved to junk");
157: ***************
158: *** 550,555
159: logerr("No valid newsgroups found, moved to junk");
160: if (localize("junk"))
161: savehist(histline);
162: xxit(1);
163: }
164:
165:
166: --- 576,582 -----
167: logerr("No valid newsgroups found, moved to junk");
168: if (localize("junk"))
169: savehist(histline);
170: + #ifndef DOXREFS
171: xxit(1);
172: #endif
173: }
174: ***************
175: *** 551,556
176: if (localize("junk"))
177: savehist(histline);
178: xxit(1);
179: }
180:
181: if (time((time_t)0) > (cgtdate(header.subdate) + DFLTEXP) ){
182:
183: --- 578,584 -----
184: savehist(histline);
185: #ifndef DOXREFS
186: xxit(1);
187: + #endif
188: }
189: #ifdef DOXREFS
190: else
191: ***************
192: *** 552,558
193: savehist(histline);
194: xxit(1);
195: }
196: !
197: if (time((time_t)0) > (cgtdate(header.subdate) + DFLTEXP) ){
198: logerr("Article too old, moved to junk");
199: if (localize("junk"))
200:
201: --- 580,588 -----
202: xxit(1);
203: #endif
204: }
205: ! #ifdef DOXREFS
206: ! else
207: ! #endif
208: if (time((time_t)0) > (cgtdate(header.subdate) + DFLTEXP) ){
209: logerr("Article too old, moved to junk");
210: if (localize("junk"))
211: ***************
212: *** 557,562
213: logerr("Article too old, moved to junk");
214: if (localize("junk"))
215: savehist(histline);
216: xxit(1);
217: }
218:
219:
220: --- 587,593 -----
221: logerr("Article too old, moved to junk");
222: if (localize("junk"))
223: savehist(histline);
224: + #ifndef DOXREFS
225: xxit(1);
226: #endif
227: }
228: ***************
229: *** 558,563
230: if (localize("junk"))
231: savehist(histline);
232: xxit(1);
233: }
234:
235: if (is_ctl) {
236:
237: --- 589,595 -----
238: savehist(histline);
239: #ifndef DOXREFS
240: xxit(1);
241: + #endif
242: }
243: #ifdef DOXREFS
244: else
245: ***************
246: *** 559,565
247: savehist(histline);
248: xxit(1);
249: }
250: !
251: if (is_ctl) {
252: control(&header);
253: localize("control");
254:
255: --- 591,599 -----
256: xxit(1);
257: #endif
258: }
259: ! #ifdef DOXREFS
260: ! else
261: ! #endif
262: if (is_ctl) {
263: #ifndef DOXREFS
264: control(&header);
265: ***************
266: *** 561,566
267: }
268:
269: if (is_ctl) {
270: control(&header);
271: localize("control");
272: } else {
273:
274: --- 595,601 -----
275: else
276: #endif
277: if (is_ctl) {
278: + #ifndef DOXREFS
279: control(&header);
280: #endif
281: localize("control");
282: ***************
283: *** 562,567
284:
285: if (is_ctl) {
286: control(&header);
287: localize("control");
288: } else {
289: if (s_find(&srec, FULLSYSNAME) == FALSE)
290:
291: --- 597,603 -----
292: if (is_ctl) {
293: #ifndef DOXREFS
294: control(&header);
295: + #endif
296: localize("control");
297: } else {
298: if (s_find(&srec, FULLSYSNAME) == FALSE)
299: ***************
300: *** 566,571
301: } else {
302: if (s_find(&srec, FULLSYSNAME) == FALSE)
303: xerror("Cannot find my name '%s' in %s", FULLSYSNAME, SUBFILE);
304: for (ptr = nbuf; *ptr;) {
305: if (ngmatch(ptr, srec.s_nbuf) || index(ptr,'.') == NULL)
306: localize(ptr);
307:
308: --- 602,611 -----
309: } else {
310: if (s_find(&srec, FULLSYSNAME) == FALSE)
311: xerror("Cannot find my name '%s' in %s", FULLSYSNAME, SUBFILE);
312: + #ifdef DOXREFS
313: + sprintf(nextxref,"%s ",FULLSYSNAME);
314: + nextxref += strlen(nextxref);
315: + #endif
316: for (ptr = nbuf; *ptr;) {
317: #ifndef DOXREFS
318: if (ngmatch(ptr, srec.s_nbuf) || index(ptr,'.') == NULL)
319: ***************
320: *** 567,572
321: if (s_find(&srec, FULLSYSNAME) == FALSE)
322: xerror("Cannot find my name '%s' in %s", FULLSYSNAME, SUBFILE);
323: for (ptr = nbuf; *ptr;) {
324: if (ngmatch(ptr, srec.s_nbuf) || index(ptr,'.') == NULL)
325: localize(ptr);
326: while (*ptr++)
327:
328: --- 607,613 -----
329: nextxref += strlen(nextxref);
330: #endif
331: for (ptr = nbuf; *ptr;) {
332: + #ifndef DOXREFS
333: if (ngmatch(ptr, srec.s_nbuf) || index(ptr,'.') == NULL)
334: localize(ptr);
335: #else DOXREFS
336: ***************
337: *** 569,574
338: for (ptr = nbuf; *ptr;) {
339: if (ngmatch(ptr, srec.s_nbuf) || index(ptr,'.') == NULL)
340: localize(ptr);
341: while (*ptr++)
342: ;
343: }
344:
345: --- 610,624 -----
346: #ifndef DOXREFS
347: if (ngmatch(ptr, srec.s_nbuf) || index(ptr,'.') == NULL)
348: localize(ptr);
349: + #else DOXREFS
350: + if (ngmatch(ptr, srec.s_nbuf) ||
351: + index(ptr,'.') == NULL) {
352: + sprintf(nextxref,"%s:%ld ",ptr,localize(ptr));
353: + numxrefs++;
354: + while (*nextxref)
355: + nextxref++;
356: + }
357: + #endif DOXREFS
358: while (*ptr++)
359: ;
360: }
361: ***************
362: *** 577,582
363: localize("junk");
364: }
365: }
366:
367: broadcast();
368: savehist(histline);
369:
370: --- 627,638 -----
371: localize("junk");
372: }
373: }
374: + #ifdef DOXREFS
375: + if (numxrefs >= 2)
376: + *(nextxref-1) = '\0'; /* wipe out the last space */
377: + else
378: + header.xref[0] = '\0'; /* wipe out the whole thing */
379: + #endif
380:
381: #ifdef LINKART
382: tfp = xfopen(ARTICLE,"w"); /* open 1st article localized */
383: ***************
384: *** 578,583
385: }
386: }
387:
388: broadcast();
389: savehist(histline);
390: xxit(0);
391:
392: --- 634,669 -----
393: header.xref[0] = '\0'; /* wipe out the whole thing */
394: #endif
395:
396: + #ifdef LINKART
397: + tfp = xfopen(ARTICLE,"w"); /* open 1st article localized */
398: + #endif
399: +
400: + #if defined(LINKART) || defined(DOXREFS)
401: + /* Now that xref is constructed, write article to temp file. */
402: + /* (We ought to detect no room at this point and clean up.) */
403: + if ( (c=getc(infp)) == ' ' || c == '\t' ) {
404: + header.intnumlines++;
405: + sprintf(header.numlines,"%d",header.intnumlines);
406: + }
407: + lhwrite(&header, tfp);
408: + /* Kludge to get around article truncation problem */
409: + if (c == ' ' || c == '\t' )
410: + putc('\n', tfp);
411: + putc(c,tfp);
412: + while (fgets(bfr, BUFLEN, infp) != NULL)
413: + fputs(bfr, tfp);
414: +
415: + if (bfr[strlen(bfr)-1] != '\n')
416: + putc('\n',tfp);
417: + fclose(tfp);
418: + fclose(infp);
419: + #endif LINKART || DOXREFS
420: +
421: + #ifdef DOXREFS
422: + if (is_ctl) /* moved here cuz checkgroups uses ARTICLE! */
423: + control(&header);
424: + #endif
425: +
426: broadcast();
427: savehist(histline);
428: xxit(0);
429: ***************
430: *** 853,855
431: }
432: return(NULL);
433: }
434:
435: --- 939,963 -----
436: }
437: return(NULL);
438: }
439: +
440: + #ifdef LINKART
441: + mylink(tmpart,linkfrom)
442: + char *tmpart, *linkfrom;
443: + {
444: + struct stat statbuf;
445: +
446: + if (stat(linkfrom,&statbuf)==0)
447: + return -1;
448: + if (!*tmpart) /* first article? */
449: + strcpy(tmpart,linkfrom); /* just remember name */
450: + else {
451: + FILE *linkfp = fopen(linkfrom,"w");
452: +
453: + if (!linkfp)
454: + return -1;
455: + fprintf(linkfp,"%s\n",tmpart); /* do "symbolic link" */
456: + fclose(linkfp);
457: + }
458: + return 0;
459: + }
460: + #endif LINKART
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.