|
|
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.