home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume3 / modnotes < prev    next >
Internet Message Format  |  1986-11-30  |  33KB

  1. From: genrad!mit-eddie!mirror!rs (Rich Salz)
  2. Subject: changes to notes
  3. Newsgroups: mod.sources
  4. Approved: jpn@panda.UUCP
  5.  
  6. Mod.sources:  Volume 2, Issue 36
  7. Submitted by: genrad!mit-eddie!mirror!rs (Rich Salz)
  8.  
  9.  
  10. This note contains modifications to the latest version of notes, 1.7.
  11.  
  12. The diffs listed below will modify notes (version 1.7, at least) to
  13. understand moderated newsgroups, as well as "local" notesfiles.
  14.  
  15. In a MODERATED notesfile, any attempt to write a note or send mail
  16. is turned into a call that sends mail to the moderator.  For example,
  17. is the MODERATED flag is on for net.announce, any attempt to post
  18. their will instead be sent as mail to mark@cbosgd.att (or whatever).
  19. Note that it is still possible to "Copy" a note into a MODERATED
  20. notesfile.  This can be prohibited by (a) turning off write permission
  21. on the all MODERATED notesfiles, or (b) added some trivial code to
  22. adnote.c.  I did (a); if anyone wants the code for (b), let me know.
  23.  
  24. The mapping of notesfile names to moderators is done in a file
  25. named "moderators" in the notesfile utility directory (default is
  26. /usr/spool/notes/.utilities).  This file contains lines like:
  27.     notesfile_name <spaces_or_tabs> mail_address
  28. Blank lines, or lines starting with '#', are ignored.  Here are
  29. a couple of lines from my "moderators" file:
  30.  
  31. Here are a couple of lines from my .utilties/moderator file:
  32. # This comes from the posting by Gene Spafford
  33. # Correct addresses for mirror systems by R$, 19aug85.
  34. mod.map        wjh12!ihnp4!cbosgd!mark
  35. mod.map.uucp    wjh12!ihnp4!cbosgd!uucpmap
  36. # Here's handling an ARPA gateway'd list
  37. fa.laser-lover        furuta%washington@cca
  38.  
  39. # Here's one that we gateway ourselves
  40. ms.loops        loops-users%berkeley@cca
  41. # Any valid address is ok
  42. ms.prisoner        inmet!masscomp!allegra!sjuvax!ianucci
  43.  
  44. Enough talk, here are the diffs.
  45. NOTE:  THE RCS REVISIONS SHOW ARE WRONG.  I BLEW IT!
  46.  
  47. ===============================CUT HERE===============================
  48.  
  49. # This is a shell archive.  Remove anything before this line,
  50. # then unpack it by saving it in a file and typing "sh file".
  51. #
  52. # Wrapped by mirror!rs on Tue Aug 20 12:22:27 EDT 1985
  53. # Contents:  DIFFS
  54.  
  55. echo x - DIFFS
  56. sed 's/^XX//' > "DIFFS" <<'@//E*O*F DIFFS//'
  57. XXRCS file: RCS/dropt.c,v
  58. XXretrieving revision 1.1
  59. XXdiff -c -r1.1 dropt.c
  60. XX*** /tmp/,RCSt1001754    Tue Aug 20 12:16:53 1985
  61. XX--- dropt.c    Tue Aug 20 11:53:19 1985
  62. XX***************
  63. XX*** 2,8
  64. XX  #include "structs.h"
  65. XX  
  66. XX  #ifdef    RCSIDENT
  67. XX! static char rcsid[] = "$Header: dropt.c,v 1.1 85/08/19 15:50:25 rs Exp $";
  68. XX  #endif    RCSIDENT
  69. XX  
  70. XX  #define BUFSZ    128
  71.  
  72. XX--- 2,8 -----
  73. XX  #include "structs.h"
  74. XX  
  75. XX  #ifdef    RCSIDENT
  76. XX! static char rcsid[] = "$Header: dropt.c,v 1.6 85/08/20 11:52:58 rs Exp $";
  77. XX  #endif    RCSIDENT
  78. XX  
  79. XX  #define BUFSZ    128
  80. XX***************
  81. XX*** 24,29
  82. XX   *         -4 if the user hit cntrl d ( to total exit)
  83. XX   *
  84. XX   *    original author/outliner : Ray Essick may 29, 1981
  85. XX   *
  86. XX   */
  87. XX  
  88.  
  89. XX--- 24,31 -----
  90. XX   *         -4 if the user hit cntrl d ( to total exit)
  91. XX   *
  92. XX   *    original author/outliner : Ray Essick may 29, 1981
  93. XX+  *      added the "moderated" flag:Rich $alz  aug 19, 1985
  94. XX+  *      added "local" flag, toggle, YorN:    Rich $alz  aug 19, 1985
  95. XX   *
  96. XX   */
  97. XX  
  98. XX***************
  99. XX*** 35,41
  100. XX              netrow,                    /* networked */
  101. XX              expirerow,                    /* expire age */
  102. XX              longrow,                    /* longest ok text */
  103. XX!             worksetrow;                    /* working set */
  104. XX  static int  lastrow;
  105. XX  
  106. XX  direct (io) struct io_f *io;
  107.  
  108. XX--- 37,45 -----
  109. XX              netrow,                    /* networked */
  110. XX              expirerow,                    /* expire age */
  111. XX              longrow,                    /* longest ok text */
  112. XX!             worksetrow,                    /* working set */
  113. XX!         modrow,                    /* moderated flag */
  114. XX!         localrow;                    /* local flag */
  115. XX  static int  lastrow;
  116. XX  
  117. XX  #define YorN(c)        ((c) != 0 ? YES : NO)
  118. XX***************
  119. XX*** 38,43
  120. XX              worksetrow;                    /* working set */
  121. XX  static int  lastrow;
  122. XX  
  123. XX  direct (io) struct io_f *io;
  124. XX  {
  125. XX      int     i;                        /* scratch */
  126.  
  127. XX--- 42,51 -----
  128. XX          localrow;                    /* local flag */
  129. XX  static int  lastrow;
  130. XX  
  131. XX+ #define YorN(c)        ((c) != 0 ? YES : NO)
  132. XX+ static char YES[] = "YES";
  133. XX+ static char NO[] = "NO ";
  134. XX+ 
  135. XX  direct (io) struct io_f *io;
  136. XX  {
  137. XX      int     i;                        /* scratch */
  138. XX***************
  139. XX*** 113,129
  140. XX          break;                    /* skipt out of the loop */
  141. XX  
  142. XX          case 'a':                     /* toggle anonymous option */
  143. XX!         locknf (io, DSCRLOCK);            /* lock the thing for a minute */
  144. XX!         getdscr (io, &io -> descr);        /* get up to date descriptor */
  145. XX!         if (io -> descr.d_stat & ANONOK)
  146. XX!             io -> descr.d_stat &= NOT ANONOK;
  147. XX!         else
  148. XX!             io -> descr.d_stat |= ANONOK;
  149. XX!         putdscr (io, &io -> descr);
  150. XX!         unlocknf (io, DSCRLOCK);
  151. XX!         at (anonrow, 18);
  152. XX!         printf (io -> descr.d_stat & ANONOK ? "ON " : "OFF");
  153. XX!         redraw = 0;
  154. XX          break;
  155. XX  
  156. XX          case 'A':                     /* Archive option */
  157.  
  158. XX--- 121,127 -----
  159. XX          break;                    /* skipt out of the loop */
  160. XX  
  161. XX          case 'a':                     /* toggle anonymous option */
  162. XX!         toggle(io, ANONOK, anonrow);
  163. XX          break;
  164. XX  
  165. XX          case 'A':                     /* Archive option */
  166. XX***************
  167. XX*** 127,143
  168. XX          break;
  169. XX  
  170. XX          case 'A':                     /* Archive option */
  171. XX!         locknf (io, DSCRLOCK);            /* lock the thing for a minute */
  172. XX!         getdscr (io, &io -> descr);        /* get up to date descriptor */
  173. XX!         if (io -> descr.d_stat & ISARCH)
  174. XX!             io -> descr.d_stat &= NOT ISARCH;
  175. XX!         else
  176. XX!             io -> descr.d_stat |= ISARCH;
  177. XX!         putdscr (io, &io -> descr);
  178. XX!         unlocknf (io, DSCRLOCK);
  179. XX!         at (archrow, 18);
  180. XX!         printf (io -> descr.d_stat & ISARCH ? "YES" : "NO ");
  181. XX!         redraw = 0;
  182. XX          break;
  183. XX  
  184. XX          case 'l':                     /* message length */
  185.  
  186. XX--- 125,131 -----
  187. XX          break;
  188. XX  
  189. XX          case 'A':                     /* Archive option */
  190. XX!         toggle(io, ISARCH, archrow);
  191. XX          break;
  192. XX  
  193. XX          case 'l':                     /* message length */
  194. XX***************
  195. XX*** 173,179
  196. XX          unlocknf (io, DSCRLOCK);        /* all done ... */
  197. XX          at (longrow, 27);
  198. XX          printf ("%ld bytes   ", io -> descr.d_longnote);
  199. XX-         redraw = 0;
  200. XX          break;
  201. XX  
  202. XX          case 'c':                     /* compress the notefile */
  203.  
  204. XX--- 161,166 -----
  205. XX          unlocknf (io, DSCRLOCK);        /* all done ... */
  206. XX          at (longrow, 27);
  207. XX          printf ("%ld bytes   ", io -> descr.d_longnote);
  208. XX          break;
  209. XX  
  210. XX          case 'c':                     /* compress the notefile */
  211. XX***************
  212. XX*** 177,183
  213. XX          break;
  214. XX  
  215. XX          case 'c':                     /* compress the notefile */
  216. XX-         redraw = 0;
  217. XX          if (io -> descr.d_stat & OPEN)
  218. XX          {
  219. XX              at (lastrow, 10);
  220.  
  221. XX--- 164,169 -----
  222. XX          break;
  223. XX  
  224. XX          case 'c':                     /* compress the notefile */
  225. XX          if (io -> descr.d_stat & OPEN)
  226. XX          {
  227. XX              at (lastrow, 10);
  228. XX***************
  229. XX*** 265,271
  230. XX              printf ("%ld days     ", io -> descr.d_archtime);
  231. XX              break;
  232. XX          }
  233. XX-         redraw = 0;
  234. XX          break;
  235. XX  
  236. XX          case 'W':                     /* working Set size */
  237.  
  238. XX--- 251,256 -----
  239. XX              printf ("%ld days     ", io -> descr.d_archtime);
  240. XX              break;
  241. XX          }
  242. XX          break;
  243. XX  
  244. XX          case 'W':                     /* working Set size */
  245. XX***************
  246. XX*** 311,317
  247. XX              default: 
  248. XX              printf ("%ld Notes    ", io -> descr.d_workset);
  249. XX          }
  250. XX-         redraw = 0;
  251. XX          break;
  252. XX  
  253. XX          case 'E':                     /* keep/delete/default */
  254.  
  255. XX--- 296,301 -----
  256. XX              default: 
  257. XX              printf ("%ld Notes    ", io -> descr.d_workset);
  258. XX          }
  259. XX          break;
  260. XX  
  261. XX          case 'E':                     /* keep/delete/default */
  262. XX***************
  263. XX*** 348,354
  264. XX              printf ("UNKNOWN");
  265. XX              break;
  266. XX          }
  267. XX-         redraw = 0;
  268. XX          break;
  269. XX  
  270. XX          case 'D':                     /* Archive dirmsg */
  271.  
  272. XX--- 332,337 -----
  273. XX              printf ("UNKNOWN");
  274. XX              break;
  275. XX          }
  276. XX          break;
  277. XX  
  278. XX          case 'D':                     /* Archive dirmsg */
  279. XX***************
  280. XX*** 391,397
  281. XX              printf ("UNKNOWN  ");
  282. XX              break;
  283. XX          }
  284. XX-         redraw = 0;
  285. XX          break;
  286. XX  
  287. XX          case 'o':                     /* toggle open status */
  288.  
  289. XX--- 374,379 -----
  290. XX              printf ("UNKNOWN  ");
  291. XX              break;
  292. XX          }
  293. XX          break;
  294. XX  
  295. XX          case 'o':                     /* toggle open status */
  296. XX***************
  297. XX*** 395,411
  298. XX          break;
  299. XX  
  300. XX          case 'o':                     /* toggle open status */
  301. XX!         locknf (io, DSCRLOCK);
  302. XX!         getdscr (io, &io -> descr);
  303. XX!         if (io -> descr.d_stat & OPEN)
  304. XX!             io -> descr.d_stat &= NOT OPEN;
  305. XX!         else
  306. XX!             io -> descr.d_stat |= OPEN;
  307. XX!         putdscr (io, &io -> descr);
  308. XX!         unlocknf (io, DSCRLOCK);
  309. XX!         at (openrow, 18);
  310. XX!         printf (io -> descr.d_stat & OPEN ? "OPEN  " : "CLOSED");
  311. XX!         redraw = 0;
  312. XX          break;
  313. XX  
  314. XX          case 'n':                     /* toggle network status */
  315.  
  316. XX--- 377,383 -----
  317. XX          break;
  318. XX  
  319. XX          case 'o':                     /* toggle open status */
  320. XX!         toggle (io, OPEN, openrow);
  321. XX          break;
  322. XX  
  323. XX          case 'M':                     /* toggle moderated status */
  324. XX***************
  325. XX*** 408,413
  326. XX          redraw = 0;
  327. XX          break;
  328. XX  
  329. XX          case 'n':                     /* toggle network status */
  330. XX          locknf (io, DSCRLOCK);
  331. XX          getdscr (io, &io -> descr);
  332.  
  333. XX--- 380,393 -----
  334. XX          toggle (io, OPEN, openrow);
  335. XX          break;
  336. XX  
  337. XX+         case 'M':                     /* toggle moderated status */
  338. XX+         toggle (io, MODERATED, modrow);
  339. XX+         break;
  340. XX+ 
  341. XX+         case 'L':                     /* toggle local status */
  342. XX+         toggle(io, LOCAL, localrow);
  343. XX+         break;
  344. XX+ 
  345. XX          case 'n':                     /* toggle network status */
  346. XX          toggle(io, NETWRKD, netrow);
  347. XX          break;
  348. XX***************
  349. XX*** 409,429
  350. XX          break;
  351. XX  
  352. XX          case 'n':                     /* toggle network status */
  353. XX!         locknf (io, DSCRLOCK);
  354. XX!         getdscr (io, &io -> descr);
  355. XX!         if (io -> descr.d_stat & NETWRKD)
  356. XX!         {
  357. XX!             io -> descr.d_stat &= NOT NETWRKD;
  358. XX!         }
  359. XX!         else
  360. XX!         {
  361. XX!             io -> descr.d_stat |= NETWRKD;
  362. XX!         }
  363. XX!         putdscr (io, &io -> descr);
  364. XX!         unlocknf (io, DSCRLOCK);
  365. XX!         at (netrow, 18);
  366. XX!         printf (io -> descr.d_stat & NETWRKD ? "YES" : "NO ");
  367. XX!         redraw = 0;
  368. XX          break;
  369. XX  
  370. XX  
  371.  
  372. XX--- 389,395 -----
  373. XX          break;
  374. XX  
  375. XX          case 'n':                     /* toggle network status */
  376. XX!         toggle(io, NETWRKD, netrow);
  377. XX          break;
  378. XX  
  379. XX  
  380. XX***************
  381. XX*** 524,530
  382. XX  
  383. XX          default: 
  384. XX          printf ("\07");
  385. XX-         redraw = 0;
  386. XX          goto getkey;                /* hit a bad key */
  387. XX  
  388. XX      }
  389.  
  390. XX--- 490,495 -----
  391. XX  
  392. XX          default: 
  393. XX          printf ("\07");
  394. XX          goto getkey;                /* hit a bad key */
  395. XX  
  396. XX      }
  397. XX***************
  398. XX*** 553,559
  399. XX      printf (io -> descr.d_stat & OPEN ? "OPEN  " : "CLOSED");
  400. XX      at (netrow = atrow++, atcol);
  401. XX      printf ("(n) Networked:   ");            /* at(5,18); */
  402. XX!     printf (io -> descr.d_stat & NETWRKD ? "YES" : "NO ");
  403. XX      at (archrow = atrow++, atcol);
  404. XX      printf ("(A) Is Archive:  ");            /* at(6,18); */
  405. XX      printf (io -> descr.d_stat & ISARCH ? "YES" : "NO");
  406.  
  407. XX--- 518,524 -----
  408. XX      printf (io -> descr.d_stat & OPEN ? "OPEN  " : "CLOSED");
  409. XX      at (netrow = atrow++, atcol);
  410. XX      printf ("(n) Networked:   ");            /* at(5,18); */
  411. XX!     printf (YorN(io -> descr.d_stat & NETWRKD));
  412. XX      at (archrow = atrow++, atcol);
  413. XX      printf ("(A) Is Archive:  ");            /* at(6,18); */
  414. XX      printf (YorN(io -> descr.d_stat & ISARCH));
  415. XX***************
  416. XX*** 556,562
  417. XX      printf (io -> descr.d_stat & NETWRKD ? "YES" : "NO ");
  418. XX      at (archrow = atrow++, atcol);
  419. XX      printf ("(A) Is Archive:  ");            /* at(6,18); */
  420. XX!     printf (io -> descr.d_stat & ISARCH ? "YES" : "NO");
  421. XX      at (expirerow = atrow++, atcol);
  422. XX      printf ("(e) Expiration Threshold: ");        /* at (6,27); */
  423. XX      switch ((int) (io -> descr.d_archtime))
  424.  
  425. XX--- 521,533 -----
  426. XX      printf (YorN(io -> descr.d_stat & NETWRKD));
  427. XX      at (archrow = atrow++, atcol);
  428. XX      printf ("(A) Is Archive:  ");            /* at(6,18); */
  429. XX!     printf (YorN(io -> descr.d_stat & ISARCH));
  430. XX!     at (modrow = atrow++, atcol);
  431. XX!     printf ("(M) Moderated:   ");
  432. XX!     printf (YorN(io -> descr.d_stat & MODERATED));
  433. XX!     at (localrow = atrow++, atcol);
  434. XX!     printf ("(L) Local:       ");
  435. XX!     printf (YorN(io -> descr.d_stat & LOCAL));
  436. XX      at (expirerow = atrow++, atcol);
  437. XX      printf ("(e) Expiration Threshold: ");        /* at (6,27); */
  438. XX      switch ((int) (io -> descr.d_archtime))
  439. XX***************
  440. XX*** 631,637
  441. XX      atrow = 4;
  442. XX      atcol = 40;
  443. XX      at (atrow++, atcol);
  444. XX!     printf ("Policy Note Exists: %s", io -> descr.d_plcy ? "YES" : "NO");
  445. XX      at (atrow++, atcol);
  446. XX      printf ("Next note in slot: %d", io -> descr.d_nnote + 1);
  447. XX      at (atrow++, atcol);
  448.  
  449. XX--- 602,608 -----
  450. XX      atrow = 4;
  451. XX      atcol = 40;
  452. XX      at (atrow++, atcol);
  453. XX!     printf ("Policy Note Exists: %s", YorN(io -> descr.d_plcy));
  454. XX      at (atrow++, atcol);
  455. XX      printf ("Next note in slot: %d", io -> descr.d_nnote + 1);
  456. XX      at (atrow++, atcol);
  457. XX***************
  458. XX*** 646,649
  459. XX      if (atrow > lastrow)
  460. XX      lastrow = atrow;
  461. XX      lastrow++;
  462. XX  }
  463.  
  464. XX--- 617,637 -----
  465. XX      if (atrow > lastrow)
  466. XX      lastrow = atrow;
  467. XX      lastrow++;
  468. XX+ }
  469. XX+ 
  470. XX+ toggle(io, flag, row)
  471. XX+     struct io_f *io;
  472. XX+     int flag;
  473. XX+     int row;
  474. XX+ {
  475. XX+     locknf (io, DSCRLOCK);
  476. XX+     getdscr (io, &io -> descr);
  477. XX+     if (io -> descr.d_stat & flag)
  478. XX+     io -> descr.d_stat &= NOT flag;
  479. XX+     else
  480. XX+     io -> descr.d_stat |= flag;
  481. XX+     putdscr (io, &io -> descr);
  482. XX+     unlocknf (io, DSCRLOCK);
  483. XX+     at (row, 18);
  484. XX+     printf (YorN(io -> descr.d_stat & flag));
  485. XX  }
  486. XX===================================================================
  487. XXRCS file: RCS/gtext.c,v
  488. XXretrieving revision 1.1
  489. XXdiff -c -r1.1 gtext.c
  490. XX*** /tmp/,RCSt1001754    Tue Aug 20 12:17:05 1985
  491. XX--- gtext.c    Tue Aug 20 12:10:09 1985
  492. XX***************
  493. XX*** 2,8
  494. XX  #include "structs.h"
  495. XX  
  496. XX  #ifdef    RCSIDENT
  497. XX! static char rcsid[] = "$Header: gtext.c,v 1.1 85/08/19 19:50:41 rs Exp $";
  498. XX  #endif    RCSIDENT
  499. XX  
  500. XX  /*
  501.  
  502. XX--- 2,8 -----
  503. XX  #include "structs.h"
  504. XX  
  505. XX  #ifdef    RCSIDENT
  506. XX! static char rcsid[] = "$Header: gtext.c,v 1.4 85/08/20 12:09:38 rs Exp $";
  507. XX  #endif    RCSIDENT
  508. XX  
  509. XX  /*
  510. XX***************
  511. XX*** 17,22
  512. XX   *    modified again:    rbe 12 nov 81    fix to version 7 and general shtuff
  513. XX   *    modified a third time to add insert-text for user
  514. XX   *        Ray Essick    December 1981
  515. XX   */
  516. XX  
  517. XX  long    gettext (io, where, preface, editflag)
  518.  
  519. XX--- 17,26 -----
  520. XX   *    modified again:    rbe 12 nov 81    fix to version 7 and general shtuff
  521. XX   *    modified a third time to add insert-text for user
  522. XX   *        Ray Essick    December 1981
  523. XX+  *    modified to add non-portable way of appending a signature file.
  524. XX+  *        Rich $alz    July, 1985
  525. XX+  *    did signatures the "right" way (better, at least) - LOCAL flag
  526. XX+  *        Rich $alz    August, 1985
  527. XX   */
  528. XX  
  529. XX  extern char hissig[];
  530. XX***************
  531. XX*** 19,24
  532. XX   *        Ray Essick    December 1981
  533. XX   */
  534. XX  
  535. XX  long    gettext (io, where, preface, editflag)
  536. XX  struct io_f *io;
  537. XX  struct daddr_f *where;                    /* where we left it */
  538.  
  539. XX--- 23,29 -----
  540. XX   *        Rich $alz    August, 1985
  541. XX   */
  542. XX  
  543. XX+ extern char hissig[];
  544. XX  long    gettext (io, where, preface, editflag)
  545. XX  struct io_f *io;
  546. XX  struct daddr_f *where;                    /* where we left it */
  547. XX***************
  548. XX*** 58,63
  549. XX      {
  550. XX      unlink (fn);                    /* might just be protections */
  551. XX      return ((long) 0);
  552. XX      }
  553. XX  
  554. XX      count = pagein (io, scr, where);            /* move text in */
  555.  
  556. XX--- 63,91 -----
  557. XX      {
  558. XX      unlink (fn);                    /* might just be protections */
  559. XX      return ((long) 0);
  560. XX+     }
  561. XX+ 
  562. XX+     if (hissig[0] && io -> descr.d_stat & NETWRKD
  563. XX+      && !(io -> descr.d_stat & LOCAL))
  564. XX+     {
  565. XX+     c = askyn ("Add signature (y/n): ");
  566. XX+     printf ("\r                      \r");
  567. XX+     if (c == 'y')
  568. XX+     {
  569. XX+         FILE * siggy;
  570. XX+ 
  571. XX+         if ((siggy = fopen (hissig, "r")) == NULL)
  572. XX+         printf ("Can't find %s", hissig);
  573. XX+         else
  574. XX+         {
  575. XX+         /* Flop to append mode, append, flip back to read */
  576. XX+         freopen (fn, "a", scr);
  577. XX+         while ((c = getc (siggy)) != EOF)
  578. XX+             putc (c, scr);
  579. XX+         fclose (siggy);
  580. XX+         freopen (fn, "r", scr);
  581. XX+         }
  582. XX+     }
  583. XX      }
  584. XX  
  585. XX      count = pagein (io, scr, where);            /* move text in */
  586. XX===================================================================
  587. XXRCS file: RCS/index.c,v
  588. XXretrieving revision 1.1
  589. XXdiff -c -r1.1 index.c
  590. XX*** /tmp/,RCSt1001754    Tue Aug 20 12:17:12 1985
  591. XX--- index.c    Tue Aug 20 10:12:39 1985
  592. XX***************
  593. XX*** 2,8
  594. XX  #include    "structs.h"
  595. XX  
  596. XX  #ifdef    RCSIDENT
  597. XX! static char rcsid[] = "$Header: index.c,v 1.1 85/08/19 17:42:07 rs Exp $";
  598. XX  #endif    RCSIDENT
  599. XX  
  600. XX  /*
  601.  
  602. XX--- 2,8 -----
  603. XX  #include    "structs.h"
  604. XX  
  605. XX  #ifdef    RCSIDENT
  606. XX! static char rcsid[] = "$Header: index.c,v 1.3 85/08/20 10:10:23 rs Exp $";
  607. XX  #endif    RCSIDENT
  608. XX  
  609. XX  /*
  610. XX***************
  611. XX*** 20,25
  612. XX   *
  613. XX   *    Original Coding:    Rob Kolstad    Winter 1980
  614. XX   *    modifications:        Ray Essick    December 1981
  615. XX   */
  616. XX  
  617. XX  indx (io, firstdis, lastdis, respnum)
  618.  
  619. XX--- 20,27 -----
  620. XX   *
  621. XX   *    Original Coding:    Rob Kolstad    Winter 1980
  622. XX   *    modifications:        Ray Essick    December 1981
  623. XX+  *    added MODERATED code:    Rich $alz    August 1985
  624. XX+  *    added LOCAL flag:    Rich $alz    August 1985
  625. XX   */
  626. XX  
  627. XX  static char YES[] = "YES";
  628. XX***************
  629. XX*** 22,27
  630. XX   *    modifications:        Ray Essick    December 1981
  631. XX   */
  632. XX  
  633. XX  indx (io, firstdis, lastdis, respnum)
  634. XX  struct io_f *io;
  635. XX  int    *firstdis,
  636.  
  637. XX--- 24,33 -----
  638. XX   *    added LOCAL flag:    Rich $alz    August 1985
  639. XX   */
  640. XX  
  641. XX+ static char YES[] = "YES";
  642. XX+ static char NO[] = "NO ";
  643. XX+ #define YorN(c)        ((c) != 0 ? YES : NO)
  644. XX+ 
  645. XX  indx (io, firstdis, lastdis, respnum)
  646. XX  struct io_f *io;
  647. XX  int    *firstdis,
  648. XX***************
  649. XX*** 58,65
  650. XX  
  651. XX          case 'W':                     /* this too shall write a note */
  652. XX          case 'w':                     /* write a note */
  653. XX!         return addnote (io, NULL, "Edit Note text:", "Note Title: ", NULL, EDIT);
  654. XX!                             /* do it */
  655. XX  
  656. XX          case 'B':                     /* bitch, bitch, bitch */
  657. XX          if (init (&io2, GRIPES) < 0)        /* no gripe file */
  658.  
  659. XX--- 64,80 -----
  660. XX  
  661. XX          case 'W':                     /* this too shall write a note */
  662. XX          case 'w':                     /* write a note */
  663. XX!         if ( ! (io -> descr.d_stat & MODERATED ) )
  664. XX!             return addnote (io, NULL, "Edit Note text:", "Note Title: ", NULL, EDIT);
  665. XX!         if (askyn ("Moderated; send mail to moderator? ") == 'y')
  666. XX!         {
  667. XX!             at (0, 1);
  668. XX!             printf ("Subject: ");
  669. XX!             if (gline (nfname, WDLEN) > 1)
  670. XX!             mailit(io, (struct daddr_f *)0, (struct auth_f *)0,
  671. XX!                 (struct when_f *)0, nfname, 0, 0);
  672. XX!         }
  673. XX!         return (-1);
  674. XX  
  675. XX  
  676. XX          case 'B':                     /* bitch, bitch, bitch */
  677. XX***************
  678. XX*** 61,66
  679. XX          return addnote (io, NULL, "Edit Note text:", "Note Title: ", NULL, EDIT);
  680. XX                              /* do it */
  681. XX  
  682. XX          case 'B':                     /* bitch, bitch, bitch */
  683. XX          if (init (&io2, GRIPES) < 0)        /* no gripe file */
  684. XX          {
  685.  
  686. XX--- 76,82 -----
  687. XX          }
  688. XX          return (-1);
  689. XX  
  690. XX+ 
  691. XX          case 'B':                     /* bitch, bitch, bitch */
  692. XX          if (init (&io2, GRIPES) < 0)        /* no gripe file */
  693. XX          {
  694. XX***************
  695. XX*** 168,176
  696. XX          else
  697. XX          {
  698. XX              at (0, 10);
  699. XX!             printf (" Anonymous: %s   Networked: %s",
  700. XX!                 (io -> descr.d_stat & ANONOK) ? "YES" : "NO",
  701. XX!                 (io -> descr.d_stat & NETWRKD) ? "YES" : "NO");
  702. XX              continue;
  703. XX          }
  704. XX  
  705.  
  706. XX--- 184,196 -----
  707. XX          else
  708. XX          {
  709. XX              at (0, 10);
  710. XX!             printf (
  711. XX!          "Anonymous: %s   Networked: %s   Moderated: %s   Local: %s",
  712. XX!                 YorN (io -> descr.d_stat & ANONOK),
  713. XX!                 YorN (io -> descr.d_stat & NETWRKD),
  714. XX!                 YorN (io -> descr.d_stat & MODERATED),
  715. XX!                 YorN (io -> descr.d_stat & LOCAL));
  716. XX! 
  717. XX              continue;
  718. XX          }
  719. XX  
  720. XX===================================================================
  721. XXRCS file: RCS/mailit.c,v
  722. XXretrieving revision 1.1
  723. XXdiff -c -r1.1 mailit.c
  724. XX*** /tmp/,RCSt1001754    Tue Aug 20 12:17:19 1985
  725. XX--- mailit.c    Mon Aug 19 19:32:00 1985
  726. XX***************
  727. XX*** 2,8
  728. XX  #include "structs.h"
  729. XX  
  730. XX  #ifdef    RCSIDENT
  731. XX! static char rcsid[] = "$Header: mailit.c,v 1.1 85/08/19 16:34:03 rs Exp $";
  732. XX  #endif    RCSIDENT
  733. XX  
  734. XX  /*
  735.  
  736. XX--- 2,8 -----
  737. XX  #include "structs.h"
  738. XX  
  739. XX  #ifdef    RCSIDENT
  740. XX! static char rcsid[] = "$Header: mailit.c,v 1.2 85/08/19 19:31:29 rs Exp $";
  741. XX  #endif    RCSIDENT
  742. XX  
  743. XX  /*
  744. XX***************
  745. XX*** 20,25
  746. XX   *    modified:    Ray Essick    December 1981.
  747. XX   *    modified again:    Thanks to Malcolm Slaney of Purdue EE dept.
  748. XX   *        added the SUPERMAILER processing. May 25, 1982
  749. XX   *
  750. XX   */
  751. XX  
  752.  
  753. XX--- 20,27 -----
  754. XX   *    modified:    Ray Essick    December 1981.
  755. XX   *    modified again:    Thanks to Malcolm Slaney of Purdue EE dept.
  756. XX   *        added the SUPERMAILER processing. May 25, 1982
  757. XX+  *    added code to handle the MODERATED flag.
  758. XX+  *        rich $alz, mirror systems, august 19, 1985
  759. XX   *
  760. XX   */
  761. XX  
  762. XX***************
  763. XX*** 41,47
  764. XX  #ifdef    SUPERMAILER
  765. XX      char    subject[TITLEN + 20];            /* subject line for super mailer */
  766. XX  #endif
  767. XX-     int     i;
  768. XX      FILE * txtfile;
  769. XX  
  770. XX      if (toauth)
  771.  
  772. XX--- 43,48 -----
  773. XX  #ifdef    SUPERMAILER
  774. XX      char    subject[TITLEN + 20];            /* subject line for super mailer */
  775. XX  #endif
  776. XX      FILE * txtfile;
  777. XX  
  778. XX      if (io -> descr.d_stat & MODERATED)
  779. XX***************
  780. XX*** 44,50
  781. XX      int     i;
  782. XX      FILE * txtfile;
  783. XX  
  784. XX!     if (toauth)
  785. XX      {
  786. XX      if (strcmp (author -> aname, "Anonymous") == 0)
  787. XX      {
  788.  
  789. XX--- 45,51 -----
  790. XX  #endif
  791. XX      FILE * txtfile;
  792. XX  
  793. XX!     if (io -> descr.d_stat & MODERATED)
  794. XX      {
  795. XX      if (modaddress (io -> nf, whoto) == 1)
  796. XX      {
  797. XX***************
  798. XX*** 46,51
  799. XX  
  800. XX      if (toauth)
  801. XX      {
  802. XX      if (strcmp (author -> aname, "Anonymous") == 0)
  803. XX      {
  804. XX          printf ("Can't send to Anonymous\n");
  805.  
  806. XX--- 47,63 -----
  807. XX  
  808. XX      if (io -> descr.d_stat & MODERATED)
  809. XX      {
  810. XX+     if (modaddress (io -> nf, whoto) == 1)
  811. XX+     {
  812. XX+         at (0, 1);
  813. XX+         printf ("\nComplain to a guru; can't find moderator!\007\n");
  814. XX+         fflush (stdout);
  815. XX+         sleep (1);
  816. XX+         return (-1);                /* no letter sent */
  817. XX+     }
  818. XX+     }
  819. XX+     else if (toauth)
  820. XX+     {
  821. XX      if (strcmp (author -> aname, "Anonymous") == 0)
  822. XX      {
  823. XX          printf ("Can't send to Anonymous\n");
  824. XX***************
  825. XX*** 53,62
  826. XX          sleep (1);
  827. XX          return (-1);
  828. XX      }
  829. XX-     }
  830. XX- 
  831. XX-     if (toauth)
  832. XX-     {
  833. XX      if (strcmp (System, author -> asystem) != 0)
  834. XX      {
  835. XX  #ifdef    USERHOST
  836.  
  837. XX--- 65,70 -----
  838. XX          sleep (1);
  839. XX          return (-1);
  840. XX      }
  841. XX      if (strcmp (System, author -> asystem) != 0)
  842. XX      {
  843. XX  #ifdef    USERHOST
  844. XX***************
  845. XX*** 169,172
  846. XX  #endif    SUPERMAILER
  847. XX  
  848. XX      return 0;
  849. XX  }
  850.  
  851. XX--- 177,219 -----
  852. XX  #endif    SUPERMAILER
  853. XX  
  854. XX      return 0;
  855. XX+ }
  856. XX+ 
  857. XX+ modaddress (notesname, address)
  858. XX+     char *notesname;
  859. XX+     char *address;
  860. XX+ {
  861. XX+     char buff[WDLEN];
  862. XX+     register FILE *mods;
  863. XX+     register char *p;
  864. XX+ 
  865. XX+     sprintf (buff, "%s/%s/moderators", MSTDIR, UTILITY);
  866. XX+ 
  867. XX+     if ((mods = fopen (buff, "r")) == NULL)
  868. XX+     {
  869. XX+     printf ("Can't open moderators file!\n");
  870. XX+     return 1;
  871. XX+     }
  872. XX+ 
  873. XX+     while (fgets ( buff, sizeof buff, mods))
  874. XX+     {
  875. XX+     /* read lines of the form <name><whitespace>path; blanks and lines */
  876. XX+     /* starting with "#" are comments. */
  877. XX+     if (buff[0] == '\0' || buff[0] == '#'
  878. XX+      || (((p=index(buff, ' ')) == NULL) && (p=index(buff, '\t')) == NULL))
  879. XX+         continue;
  880. XX+     *p++ = '\0';                    /* split into halves */
  881. XX+     while (*p == ' ' || *p == '\t')
  882. XX+         p++;                    /* skip whitespace */
  883. XX+     if (!strcmp (notesname, buff))
  884. XX+     {
  885. XX+         strcpy (address, p);
  886. XX+         address[strlen(address) - 1] = '\0';    /* kill the \n */
  887. XX+         fclose (mods);
  888. XX+         return 0;
  889. XX+     }
  890. XX+     }
  891. XX+ 
  892. XX+     fclose (mods);
  893. XX+     return 1;
  894. XX  }
  895. XX===================================================================
  896. XXRCS file: RCS/main.c,v
  897. XXretrieving revision 1.1
  898. XXdiff -c -r1.1 main.c
  899. XX*** /tmp/,RCSt1001754    Tue Aug 20 12:17:27 1985
  900. XX--- main.c    Mon Aug 19 19:57:27 1985
  901. XX***************
  902. XX*** 3,9
  903. XX  #include    "structs.h"
  904. XX  
  905. XX  #ifdef    RCSIDENT
  906. XX! static char rcsid[] = "$Header: main.c,v 1.1 85/08/19 19:54:09 rs Exp $";
  907. XX  #endif    RCSIDENT
  908. XX  
  909. XX  /*
  910.  
  911. XX--- 3,9 -----
  912. XX  #include    "structs.h"
  913. XX  
  914. XX  #ifdef    RCSIDENT
  915. XX! static char rcsid[] = "$Header: main.c,v 1.2 85/08/19 19:57:11 rs Exp $";
  916. XX  #endif    RCSIDENT
  917. XX  
  918. XX  /*
  919. XX***************
  920. XX*** 16,21
  921. XX   *    Original author: Rob Kolstad    Winter, 1980.
  922. XX   *    Modifications:    Ray Essick    June, 1981.
  923. XX   *    Modified more:    Ray Essick    May, 1982.
  924. XX   *
  925. XX   *
  926. XX   */
  927.  
  928. XX--- 16,23 -----
  929. XX   *    Original author: Rob Kolstad    Winter, 1980.
  930. XX   *    Modifications:    Ray Essick    June, 1981.
  931. XX   *    Modified more:    Ray Essick    May, 1982.
  932. XX+  *    modified:    Rich $alz    July, 1985
  933. XX+  *        To add the hissig (signature file) variable.
  934. XX   *
  935. XX   */
  936. XX  
  937. XX***************
  938. XX*** 17,23
  939. XX   *    Modifications:    Ray Essick    June, 1981.
  940. XX   *    Modified more:    Ray Essick    May, 1982.
  941. XX   *
  942. XX-  *
  943. XX   */
  944. XX  
  945. XX  
  946.  
  947. XX--- 19,24 -----
  948. XX   *    modified:    Rich $alz    July, 1985
  949. XX   *        To add the hissig (signature file) variable.
  950. XX   *
  951. XX   */
  952. XX  
  953. XX  
  954. XX***************
  955. XX*** 22,27
  956. XX  
  957. XX  
  958. XX  static int  seqon = NOSEQ;                /* sequencer mode */
  959. XX  
  960. XX  main (argc, argv)
  961. XX  char  **argv;
  962.  
  963. XX--- 23,29 -----
  964. XX  
  965. XX  
  966. XX  static int  seqon = NOSEQ;                /* sequencer mode */
  967. XX+ char hissig[WDLEN];                    /* signature file */
  968. XX  
  969. XX  main (argc, argv)
  970. XX  char  **argv;
  971. XX***************
  972. XX*** 60,65
  973. XX  /*
  974. XX   *    grab some variables from the environment
  975. XX   */
  976. XX      if ((p = getenv ("SHELL")) != 0)
  977. XX      hisshell = p;                    /* his shell */
  978. XX      if ((p = getenv ("NFED")) != 0)
  979.  
  980. XX--- 62,69 -----
  981. XX  /*
  982. XX   *    grab some variables from the environment
  983. XX   */
  984. XX+     if ((p = getenv ("NFSIG")) != 0 && access (p, 04) >= 0)
  985. XX+     strcpy(hissig, p);                /* his signature file */
  986. XX      if ((p = getenv ("SHELL")) != 0)
  987. XX      hisshell = p;                    /* his shell */
  988. XX      if ((p = getenv ("NFED")) != 0)
  989. XX===================================================================
  990. XXRCS file: RCS/readem.c,v
  991. XXretrieving revision 1.1
  992. XXdiff -c -r1.1 readem.c
  993. XX*** /tmp/,RCSt1001754    Tue Aug 20 12:17:55 1985
  994. XX--- readem.c    Tue Aug 20 10:22:09 1985
  995. XX***************
  996. XX*** 4,10
  997. XX  #include    <sys/stat.h>
  998. XX  
  999. XX  #ifdef    RCSIDENT
  1000. XX! static char rcsid[] = "$Header: readem.c,v 1.1 85/08/19 16:33:49 rs Exp $";
  1001. XX  #endif    RCSIDENT
  1002. XX  
  1003. XX  
  1004.  
  1005. XX--- 4,10 -----
  1006. XX  #include    <sys/stat.h>
  1007. XX  
  1008. XX  #ifdef    RCSIDENT
  1009. XX! static char rcsid[] = "$Header: readem.c,v 1.3 85/08/20 10:21:11 rs Exp $";
  1010. XX  #endif    RCSIDENT
  1011. XX  
  1012. XX  
  1013. XX***************
  1014. XX*** 19,24
  1015. XX  *    modified    : ray essick may 22, 1981
  1016. XX  *    modified (again): Ray Essick December 1981
  1017. XX  *    modified (more):  Ray Essick, February 1982
  1018. XX  *
  1019. XX  */
  1020. XX  readem (io, readnum, firstdis, resp)
  1021.  
  1022. XX--- 19,26 -----
  1023. XX  *    modified    : ray essick may 22, 1981
  1024. XX  *    modified (again): Ray Essick December 1981
  1025. XX  *    modified (more):  Ray Essick, February 1982
  1026. XX+ *    added MODERATED:  Rich $alz, August 1985
  1027. XX+ *    added LOCAL and YorN: Rich $alz, August 1985
  1028. XX  *
  1029. XX  */
  1030. XX  static char YES[] = "YES";
  1031. XX***************
  1032. XX*** 21,26
  1033. XX  *    modified (more):  Ray Essick, February 1982
  1034. XX  *
  1035. XX  */
  1036. XX  readem (io, readnum, firstdis, resp)
  1037. XX  struct io_f *io;
  1038. XX  int    *firstdis;
  1039.  
  1040. XX--- 23,32 -----
  1041. XX  *    added LOCAL and YorN: Rich $alz, August 1985
  1042. XX  *
  1043. XX  */
  1044. XX+ static char YES[] = "YES";
  1045. XX+ static char NO[] = "NO ";
  1046. XX+ #define YorN(c)        ((c) != 0 ? YES : NO)
  1047. XX+ 
  1048. XX  readem (io, readnum, firstdis, resp)
  1049. XX  struct io_f *io;
  1050. XX  int    *firstdis;
  1051. XX***************
  1052. XX*** 333,338
  1053. XX          toauth = 0;
  1054. XX          wtext = 1;                /* to others with text */
  1055. XX          goto sendmail;
  1056. XX          case 'P': 
  1057. XX          toauth = 1;
  1058. XX          wtext = 1;                /* to author with text */
  1059.  
  1060. XX--- 339,345 -----
  1061. XX          toauth = 0;
  1062. XX          wtext = 1;                /* to others with text */
  1063. XX          goto sendmail;
  1064. XX+         /* mail to author, possibly with text. */
  1065. XX          case 'P': 
  1066. XX          case 'p': 
  1067. XX  #ifdef NO_Pp_FOR_MODERATED
  1068. XX***************
  1069. XX*** 334,342
  1070. XX          wtext = 1;                /* to others with text */
  1071. XX          goto sendmail;
  1072. XX          case 'P': 
  1073. XX-         toauth = 1;
  1074. XX-         wtext = 1;                /* to author with text */
  1075. XX-         goto sendmail;
  1076. XX          case 'p': 
  1077. XX          toauth = 1;
  1078. XX          wtext = 0;                /* to author, no text */
  1079.  
  1080. XX--- 341,346 -----
  1081. XX          goto sendmail;
  1082. XX          /* mail to author, possibly with text. */
  1083. XX          case 'P': 
  1084. XX          case 'p': 
  1085. XX  #ifdef NO_Pp_FOR_MODERATED
  1086. XX          /* some people may want this */
  1087. XX***************
  1088. XX*** 338,343
  1089. XX          wtext = 1;                /* to author with text */
  1090. XX          goto sendmail;
  1091. XX          case 'p': 
  1092. XX          toauth = 1;
  1093. XX          wtext = 0;                /* to author, no text */
  1094. XX          goto sendmail;
  1095.  
  1096. XX--- 342,356 -----
  1097. XX          /* mail to author, possibly with text. */
  1098. XX          case 'P': 
  1099. XX          case 'p': 
  1100. XX+ #ifdef NO_Pp_FOR_MODERATED
  1101. XX+         /* some people may want this */
  1102. XX+         if (io -> d_descr.d_stat & MODERATED)
  1103. XX+         {
  1104. XX+             at (0, 10);
  1105. XX+             printf ("Moderated; use 'm' or 'M' command\n");
  1106. XX+             continue;
  1107. XX+         }
  1108. XX+ #endif NO_Pp_FOR_MODERATED
  1109. XX          toauth = 1;
  1110. XX          wtext = c == 'P';            /* to author with text */
  1111. XX      sendmail:                     /* jump to here once set mail parms */
  1112. XX***************
  1113. XX*** 339,347
  1114. XX          goto sendmail;
  1115. XX          case 'p': 
  1116. XX          toauth = 1;
  1117. XX!         wtext = 0;                /* to author, no text */
  1118. XX!         goto sendmail;
  1119. XX! 
  1120. XX      sendmail:                     /* jump to here once set mail parms */
  1121. XX          if (resp)
  1122. XX          {
  1123.  
  1124. XX--- 352,358 -----
  1125. XX          }
  1126. XX  #endif NO_Pp_FOR_MODERATED
  1127. XX          toauth = 1;
  1128. XX!         wtext = c == 'P';            /* to author with text */
  1129. XX      sendmail:                     /* jump to here once set mail parms */
  1130. XX          if (resp)
  1131. XX          {
  1132. XX***************
  1133. XX*** 454,462
  1134. XX          if (allow (io, DRCTOK) == 0)
  1135. XX          {                    /* tell him what's up */
  1136. XX              at (0, 10);
  1137. XX!             printf (" Anonymous: %s   Networked: %s",
  1138. XX!                 (io -> descr.d_stat & ANONOK) ? "YES" : "NO",
  1139. XX!                 (io -> descr.d_stat & NETWRKD) ? "YES" : "NO");
  1140. XX              replot = 0;                /* leave on screen */
  1141. XX              goto showit;
  1142. XX          }
  1143.  
  1144. XX--- 465,476 -----
  1145. XX          if (allow (io, DRCTOK) == 0)
  1146. XX          {                    /* tell him what's up */
  1147. XX              at (0, 10);
  1148. XX!             printf (
  1149. XX!          "Anonymous: %s   Networked: %s   Moderated: %s   Local: %s",
  1150. XX!                 YorN (io -> descr.d_stat & ANONOK),
  1151. XX!                 YorN (io -> descr.d_stat & NETWRKD),
  1152. XX!                 YorN (io -> descr.d_stat & MODERATED),
  1153. XX!                 YorN (io -> descr.d_stat & LOCAL));
  1154. XX              replot = 0;                /* leave on screen */
  1155. XX              goto showit;
  1156. XX          }
  1157. XX***************
  1158. XX*** 527,532
  1159. XX          case 'W':                     /* write a response with the text */
  1160. XX          case 'w':                     /* let him write a response */
  1161. XX          getdscr (io, &io -> descr);        /* get up to date */
  1162. XX          if (allow (io, RESPOK) == 0)
  1163. XX          {
  1164. XX              at (0, 10);
  1165.  
  1166. XX--- 541,553 -----
  1167. XX          case 'W':                     /* write a response with the text */
  1168. XX          case 'w':                     /* let him write a response */
  1169. XX          getdscr (io, &io -> descr);        /* get up to date */
  1170. XX+ 
  1171. XX+         if (io -> descr.d_stat & MODERATED)
  1172. XX+         {
  1173. XX+             wtext = c == 'W';            /* don't care about toauth */
  1174. XX+             goto sendmail;
  1175. XX+         }
  1176. XX+ 
  1177. XX          if (allow (io, RESPOK) == 0)
  1178. XX          {
  1179. XX              at (0, 10);
  1180. XX===================================================================
  1181. XXRCS file: RCS/structs.h,v
  1182. XXretrieving revision 1.1
  1183. XXdiff -c -r1.1 structs.h
  1184. XX*** /tmp/,RCSt1001754    Tue Aug 20 12:18:12 1985
  1185. XX--- structs.h    Tue Aug 20 10:27:02 1985
  1186. XX***************
  1187. XX*** 1,7
  1188. XX  #include <stdio.h>
  1189. XX  
  1190. XX  #if    defined(RCSIDENT) && defined(MAINLINE)
  1191. XX! static char zzstructs[] = "$Header: structs.h,v 1.1 85/08/19 16:04:13 rs Exp $";
  1192. XX  #endif    defined(RCSIDENT) && defined(MAINLINE)
  1193. XX  
  1194. XX  /*
  1195.  
  1196. XX--- 1,7 -----
  1197. XX  #include <stdio.h>
  1198. XX  
  1199. XX  #if    defined(RCSIDENT) && defined(MAINLINE)
  1200. XX! static char zzstructs[] = "$Header: structs.h,v 1.7 85/08/20 10:25:43 rs Exp $";
  1201. XX  #endif    defined(RCSIDENT) && defined(MAINLINE)
  1202. XX  
  1203. XX  /*
  1204. XX***************
  1205. XX*** 105,110
  1206. XX  #define        WRITONLY   0100                /* writeonly access when written */
  1207. XX  #define        ORPHND       0200                /* foster parent */
  1208. XX  #define        ISARCH       0400                /* is an archive */
  1209. XX  
  1210. XX  /*    change these only after modifying the table in access.c        */
  1211. XX  #define        READOK    01                /* allow user to read */
  1212.  
  1213. XX--- 105,112 -----
  1214. XX  #define        WRITONLY   0100                /* writeonly access when written */
  1215. XX  #define        ORPHND       0200                /* foster parent */
  1216. XX  #define        ISARCH       0400                /* is an archive */
  1217. XX+ #define        MODERATED 01000                /* mail to moderator */
  1218. XX+ #define        LOCAL     02000                /* no signature */
  1219. XX  
  1220. XX  /*    change these only after modifying the table in access.c        */
  1221. XX  #define        READOK    01                /* allow user to read */
  1222. @//E*O*F DIFFS//
  1223. chmod u=rw,g=rw,o=rw DIFFS
  1224.  
  1225. echo Inspecting for damage in transit...
  1226. temp=/tmp/shar$$; dtemp=/tmp/.shar$$
  1227. trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
  1228. cat > $temp <<\!!!
  1229.     1165    4297   28165 DIFFS
  1230. !!!
  1231. wc  DIFFS | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp
  1232. if [ -s $dtemp ]
  1233. then echo "Ouch [diff of wc output]:" ; cat $dtemp
  1234. else echo "No problems found."
  1235. fi
  1236. exit 0
  1237.  
  1238.