home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / usenet / software / trn-faq / part2 < prev   
Encoding:
Text File  |  2004-05-12  |  43.8 KB  |  963 lines

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!newsfeed.stanford.edu!news.ems.psu.edu!news.cis.ohio-state.edu!malgudi.oar.net!news1.tigerden.com!tiger.tigerden.com!infopage
  2. From: @tigerden.com (Peter J. Kappesser)
  3. Newsgroups: news.software.readers,news.answers
  4. Subject: [news.software.readers] trn newsreader FAQ, part 2: Advanced
  5. Supersedes: <trn-faq-2-1082972825@tigerden.com>
  6. Followup-To: poster
  7. Date: Tue, 11 May 2004  9:47:04 GMT
  8. Organization: Maintainer of the trn newsreader FAQ
  9. Lines: 938
  10. Approved: news-answers-request@MIT.EDU
  11. Expires: 15 Jun 2004 12:00 GMT
  12. Message-ID: <trn-faq-2-1084268821@tigerden.com>
  13. References: <trn-faq-1-1084268821@tigerden.com>
  14. Reply-To: @tigerden.com (Peter J. Kappesser)
  15. NNTP-Posting-Host: tiger.tigerden.com
  16. X-Trace: bengal.tigerden.com 1084268826 25430 198.30.162.10 (11 May 2004 09:47:06 GMT)
  17. X-Complaints-To: news@tigerden.com
  18. NNTP-Posting-Date: 11 May 2004 09:47:06 GMT
  19. Summary: Frequently-asked questions (and answers) about trn, a powerful,
  20.     command-based USENET newsreader, and associated utility programs.
  21. Keywords: faq, trn, news, reader, newsrc, Pnews, Rnmail, kill, thread
  22. X-Note: <infopage@tigerden.com> does automatic posting for the maintainer.
  23. Xref: senator-bedfellow.mit.edu news.software.readers:174152 news.answers:271064
  24.  
  25. Posted-By: auto-faq 3.3 beta (Perl 5.004)
  26. Archive-name: usenet/software/trn-faq/part2
  27. Posting-Frequency: Posted on the 11th and 26th of each month.
  28. Last-Modified: August 12, 1998
  29. Version: 3.5.3 (of FAQ)
  30. Changes-This-Version: Cliff Adams's e-mail address <caadams@frontiernet.net>;
  31.     strn integrated into trn 4.0
  32.  
  33. These articles summarize some frequently-asked questions (and answers)
  34. about the trn newsreader and associated programs such as Pnews and Rnmail.
  35.  
  36. Part 2 has information on more advanced usage questions and bug workarounds.
  37. This FAQ is maintained by Peter J. Kappesser <Peter_Kappesser@promail.com>
  38. and is archived at <URL:ftp://rtfm.mit.edu/pub/usenet/news.software.readers/>.
  39. Anyone wishing to take over maintenance, please write.
  40.  
  41. > Subject: BLYC: Patches for "leap year bug" (see Subject: UKAN)
  42. > Subject: ATKS: I want to set up a simple news archive. How can I run TRN
  43. >         non-interactively (e.g. as a cron job)?
  44. > Subject: ICAU: If I read an article in one group, then mark it unread, how
  45. >         can it still appear as unread in groups to which it is crossposted?
  46. > Subject: MDCX: Is there a command similar to 'D' that marks everything on the
  47. >         current page as read, but without chasing xrefs?
  48. > Subject: KDHF: In a killfile, what's the difference between
  49. >         /@domain-pattern/f:command and /@domain-pattern/Hfrom:command?
  50. > Subject: MPAS: How do I write a macro to easily reply to the current article
  51. >         with some canned piece of text (e.g., instructions for getting FAQs)?
  52. > Subject: ADCU: In rn-compatibility mode, trn dumps core when I Unread
  53. >         killed subjects.
  54. > Subject: INLS: Is it possible to build trn so that it can use either nntp
  55. >         or a local spool depending on the newsgroup concerned?
  56. > Subject: BASP: Article selection problem in trn 3.4.1
  57. > Subject: ASUS: Slow performance with trn using SLIP
  58. > Subject: KIBF: trn 3.4.1 ignores some lines in big killfile
  59. > Subject: ACNB: Trn thinks certain newsgroups are bogus; TIN doesn't
  60. > Subject: APNU: Why might trn 3.6 prompt newsgroups with 0 unread articles?
  61. > Subject: OSTR: What's strn?
  62. > Subject: OVTC: I have an old version of trn. What changes have been made?
  63.  
  64. ------------------------------
  65.  
  66. Subject: BLYC: Patches for "leap year bug"
  67. Contributors: Duncan Gibson <duncan@yc.estec.esa.nl>, 
  68.     Erez Zadok <ezk@news.cs.columbia.edu>, John Line <jml4@cus.cam.ac.uk>,
  69.     Peter Kappesser <Peter_Kappesser@promail.com>,
  70.     Anne Bennett <anne@alcor.concordia.ca>
  71.  
  72. Since January 1, 1996 on some systems, every time users run trn, they may be
  73. asked whether they want to subscribe to new newsgroups which they have
  74. previously declined by answering 'n' or 'N'. The reason is that, as of the
  75. first second of 1996, trn miscomputed the number of leap years, and was
  76. therefore off by one whole day, reporting that the date of the news server was
  77. exactly 24 hours into the future, thus thinking that these "new" newsgroups
  78. could not have been seen at all.
  79.  
  80. Either of two patches will fix the problem. The "simple patch" works until the
  81. year 2100, and is preferred by Wayne Davison (since it uses a simple division,
  82. instead of a loop, and he doesn't expect people to still be using trn at that
  83. time anyway). The "fancy patch" is accurate until the year 2400.
  84.  
  85. Although the line numbers are for trn 3.6, the code will work in strn-0.9.2 at
  86. the appropriate place.
  87.  
  88.  
  89. SIMPLE PATCH THAT WORKS UNTIL 2100
  90.  
  91. Submitted by Miquel van Smoorenburg <miquels@debian.het.net>
  92.  
  93. ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
  94. ------- nntp.c -------
  95. *** /tmp/da005NK    Thu Jan  1 00:00:00 1970
  96. --- nntp.c    Wed Jan  3 20:43:11 1996
  97. ***************
  98. *** 319,326 ****
  99.       for (month--; month; month--)
  100.       day += maxdays[month];
  101.  
  102. !     ss = ((((year-1970) * 365 + (year-1968)/4 + day - 1) * 24L + hh) * 60
  103. !       + mm) * 60 + ss;
  104.  
  105.       return ss;
  106.   }
  107. --- 319,326 ----
  108.       for (month--; month; month--)
  109.       day += maxdays[month];
  110.  
  111. !     ss = ((((year-1970) * 365 + (year-1969)/4 + day - 1) * 24L + hh) * 60
  112. !         + mm) * 60 + ss;
  113.  
  114.       return ss;
  115.   }
  116. ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
  117.  
  118.  
  119. FANCY PATCH THAT WORKS UNTIL 2400
  120.  
  121. Submitted by Paul Close <pdc@lunch.engr.sgi.com>
  122.  
  123. ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
  124. --- trn-3.6/nntp.c    Fri Nov 18 22:01:23 1994
  125. +++ nntp.c.leap    Fri Jan  5 16:38:33 1996
  126. @@ -285,12 +285,13 @@
  127.  
  128.  /* This is a 1-relative list */
  129.  static int maxdays[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  130. +#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)
  131.  
  132.  time_t
  133.  nntp_time()
  134.  {
  135.      char *s;
  136. -    int year, month, day, hh, mm;
  137. +    int year, month, day, hh, mm, y;
  138.      time_t ss;
  139.  
  140.      nntp_command("XDATE" + (CompliantServer? 0 : 1));
  141. @@ -306,11 +307,11 @@
  142.      s[4] = '\0';
  143.      year = atoi(s);
  144.  
  145. -    /* This simple algorithm will be valid until the year 2400 */
  146. -    if (year % 4)
  147. -    maxdays[2] = 28;
  148. -    else
  149. +    if (isleap(year))
  150.      maxdays[2] = 29;
  151. +    else
  152. +    maxdays[2] = 28;
  153. +
  154.      if (month < 1 || month > 12 || day < 1 || day > maxdays[month]
  155.       || hh < 0 || hh > 23 || mm < 0 || mm > 59
  156.       || ss < 0 || ss > 59)
  157. @@ -319,8 +320,12 @@
  158.      for (month--; month; month--)
  159.      day += maxdays[month];
  160.  
  161. -    ss = ((((year-1970) * 365 + (year-1968)/4 + day - 1) * 24L + hh) * 60
  162. -      + mm) * 60 + ss;
  163. +    for (y = 1970; y < year; y++)
  164. +    if (isleap(y))
  165. +        day += 366;
  166. +    else
  167. +        day += 365;
  168. +    ss += (((day - 1) * 24L + hh) * 60 + mm) * 60;
  169.  
  170.      return ss;
  171.  }
  172. ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
  173.  
  174. ------------------------------
  175.  
  176. Subject: ATKS: I want to set up a simple news archive. How can I run TRN
  177.         non-interactively (e.g. as a cron job)?
  178. Contributors: Michael Owings <mikey@waste.com>,
  179.         Wayne Davison <trn@clari.net>,
  180.         Peter J. Kappesser <Peter_Kappesser@promail.com>
  181.  
  182. Run the "trnkill" script included below from cron and it will enter
  183. every subscribed group you have just long enough to run the kill file,
  184. and then exit.
  185.  
  186. ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
  187. #!/bin/sh
  188. # trnkill - shell script to apply trn KILL files in the background
  189. # 14 Mar 89  created for rn by Jim Olsen <olsen@XN.LL.MIT.EDU>
  190. # 10 Sep 93  modified for trn 3 (or 2) by Wayne Davison <trn@clari.net>
  191. # Options: -d    debug mode -- you see all gory action as it happens.
  192.  
  193. # Visit all newsgroups (if trn asks about anything else, just say no)
  194. export TRNINIT TRNMACRO RNMACRO
  195. TRNINIT='-q -s -T -t -x +X'
  196. TRNMACRO=/tmp/trnkill$$
  197.  
  198. # support for trn 2.x
  199. RNMACRO=$TRNMACRO
  200.  
  201. # support for versions older than 3.6 on some systems
  202. TERM=dumb ; export TERM
  203.  
  204. trap 'rm -f $TRNMACRO; exit' 1 2 3 15
  205. cat >$TRNMACRO <<'EOF'
  206. z  %(%m=[nf]?.q^J:n)^(z^)
  207. ^m ^(z^)
  208. ^j ^(z^)
  209. EOF
  210. if test X$1 = X-d; then
  211.     echo "z" | trn
  212. else
  213.     echo "z" | trn >/dev/null 2>&1
  214. fi
  215. rm -f $TRNMACRO
  216. exit 0
  217. ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
  218.  
  219. If trn crashes when you try to run it as a cron job, it's a problem with
  220. no terminal being set in the cron-run environment, which is confusing
  221. trn.  Trn 3.6 fixes this problem by assuming that if you don't have TERM
  222. set in your environment that your terminal is "dumb". The commands
  223. "TERM=dumb" and "export TERM" in the trnkill script gets this to work
  224. with older trns.
  225.  
  226. One application of this is to run trnkill in the background when you
  227. login, so it will "pre-kill" all your newsgroups and you won't have to
  228. wait as long for trn to process the killfiles when you're actually
  229. reading news, especially in high-volume, high-noise newsgroups. (Read
  230. your mail first, since you won't be able to run trn until trnkill
  231. finishes; or set up a cron job to run shortly before you usually login.)
  232.  
  233. You can set up a simple news archive by setting the envariables DOTDIR,
  234. KILLGLOBAL and KILLLOCAL to point to a directory with a special-purpose
  235. .newsrc and killfiles. The killfiles contain commands to select and save
  236. the desired articles. (See Subject: CVNF and Subject: CSKF in Part 1 of
  237. this FAQ.) The maintainer of this FAQ uses this method to archive all
  238. articles that mention trn in news.software.readers.
  239.  
  240. ------------------------------
  241.  
  242. Subject: ICAU: If I read an article in one group, then mark it unread, how
  243.         can it still appear as unread in groups to which it is crossposted?
  244. Contributors: David Joslin <joslin@cs.pitt.edu>,
  245.         Wayne Davison <trn@clari.net>
  246.  
  247. This is the MCHASE compile option in the common.h file.  I turned
  248. this off in trn ages ago because I couldn't stand it.  If I use
  249. 'M' to set an article as unread in a group, I want it to be there
  250. when I get back, even if I visit a group to which it is cross-
  251. posted and 'X' the whole group.  With MCHASE on I have to be
  252. careful to always 'M' it in every cross-posted group I read until
  253. I actually finish with it.
  254.  
  255. ------------------------------
  256.  
  257. Subject: MDCX: Is there a command similar to 'D' that marks everything on the
  258.         current page as read, but without chasing xrefs?
  259. Contributors: David Joslin <joslin@cs.pitt.edu>,
  260.         Wayne Davison <trn@clari.net>,
  261.         Mike Castle <mcastle@umr.edu>, Paul Clark <prc@sysmag.com>,
  262.         Steven King, Software Archaeologist <king@wildebeest.cig.mot.com>
  263.  
  264. One thing you can do is to turn off the chasing of xrefs in both
  265. the D and the X command via the -o switch.  You could even do this
  266. via some macros (put them in your .trnmac file):
  267.  
  268. D    %(%m=t?&+o^JD:D)
  269. X    %(%m=t?&+o^JX:X)
  270. *D    %(%m=t?&-o^JD:)
  271. *X    %(%m=t?&-o^JX:)
  272.  
  273. How they work:
  274.  
  275. When "D" is hit, if current mode (%m) is thread selector (t) then
  276. do the following (&+ocontrol-jD) else do (D)
  277.  
  278. In short, if  you press "D" in thread selector, it acts as if you
  279. had pressed the keys "&+o^JD", other wise it acts like you
  280. pressed the "D" key by itself. The ones for "X" work analagously.
  281.  
  282. in pseudo code:
  283.  
  284.  when "D" is pressed
  285.   if mode=thread_selector then
  286.      pretend "&+o^JD" was hit
  287.   else
  288.      pretend "D" was hit
  289.  
  290. (These are in fact sideways pictures of gorillas in clown outfits in
  291. four different states of inebriation.  The fact that they make trn do
  292. something weird and wonderful is a particular piece of brilliance on Mr.
  293. Davison's part  ;-) Just like in the Olden Days when your name performed
  294. some magical sequence of operations in TECO, we can feed the smiley
  295. dictionary to trn's macro processor and see what different smiley faces
  296. evoke strange and useful behavior. "I didn't like to use smilies at
  297. all," says Jethro Bodine of Beverly Hills, CA, "until I found that the
  298. sideways grinning cheshire cat smoking a cigar smiley actually causes
  299. trn to kill all posts mentioning Dave Rhodes.  Great work, Mr. Davison!")
  300.  
  301. ------------------------------
  302.  
  303. Subject: KDHF: In a killfile, what's the difference between
  304.         /@domain-pattern/f:command and /@domain-pattern/Hfrom:command?
  305. Contributor: Wayne Davison <trn@clari.net>
  306.  
  307. You're matching an Internet address. The Hfrom: form ensures that trn
  308. has the full address, even if you're using a an mthreads database that
  309. only caches the real name.  For non-mthreads-using people, use either
  310. one, but the rule is simple: /Hfrom: always matches the full From: line
  311. while /f matches whatever is cached by your database (if you don't have
  312. a database then the full From: line is all you have).
  313.  
  314. ------------------------------
  315.  
  316. Subject: MPAS: How do I write a macro to easily reply to the current article
  317.         with some canned piece of text (e.g., instructions for getting FAQs)?
  318. Contributors: Jamshid Afshar <jamshid@ses.com>,
  319.         Jeffrey Hurwit <jhurwit@netcom.com>,
  320.         Peter J. Kappesser <Peter_Kappesser@promail.com>
  321.  
  322. If you have formail (part of the procmail mail filter package) at your
  323. site, you can use the "|" command to stuff the article into the front
  324. end of a pipeline such as:
  325.  
  326. | (formail -rk; cat canned.text.file) | /usr/lib/sendmail -t
  327.  
  328. In your .trnmac file, assign this string to the key of your choice,
  329. substituting the correct location for sendmail your site. If you don't
  330. have formail, you can write a script, perhaps using perl, which will at
  331. least eat the piped-in article, change Reply-To: (if it exists,
  332. otherwise change From:) to To:, tack it on to your canned.text.file
  333. (which should have the Subject: and From: headers), and pipe the result
  334. to sendmail.
  335.  
  336. ------------------------------
  337.  
  338. Subject: ADCU: In rn-compatibility mode, trn dumps core when I Unread
  339.         killed subjects.
  340. Contributors:
  341. Steven M. Schultz <sms@WLV.IIPO.GTEGSC.COM>,
  342. Wayne Davison <trn@clari.net>
  343.  
  344. > Here's the scenario:
  345. >
  346. >       rn  # which is a hard link to trn 3.6
  347. >       (enter a group)
  348. >       =
  349. >       read an article
  350. >       k   # to kill the subject
  351. >       U   # oops, I changed my mind
  352. >       (get the "+tasn" prompt)
  353. >       t
  354. >       <dump!>
  355. >
  356. >The "SIGSEGV, restoring .newsrc" message is given.
  357.  
  358. The "Ut" command erroneously assumes that the group is threaded.  Tell
  359. your rn users to be brave and start running "rn -X -x" or "rn -X +x" and
  360. all will be well.  :-)
  361.  
  362. Alternatively, the following patch should fix the problem (the line number
  363. may well be wrong -- this is based on something newer than 3.6):
  364.  
  365. Index:ng.c
  366. @@ -540,5 +540,8 @@
  367.          return AS_ASK;
  368.      else if (*buf == 't' && u_help_thread != nullstr) {
  369. -        unkill_thread(artp->subj->thread);
  370. +        if (artp->subj->thread)
  371. +        unkill_thread(artp->subj->thread);
  372. +        else
  373. +        unkill_subject(artp->subj);
  374.          if ((artp = first_art(artp->subj)) != NULL)
  375.          art = article_num(artp);
  376.  
  377. ------------------------------
  378.  
  379. Subject: INLS: Is it possible to build trn so that it can use either nntp
  380.         or a local spool depending on the newsgroup concerned?
  381. Contributors: David West <david_h_west@um.cc.umich.edu>,
  382.         Wayne Davison <trn@clari.net>
  383.  
  384. No, it's not yet possible. For now what you need to do is to Configure
  385. it once to read things locally, compile it and save the trn executable
  386. under some other name. Then Configure it for NNTP access and compile and
  387. install that (the NNTP scripts are usable locally but not visa versa, so
  388. this order is important).  Finally, rename the installed trn executable
  389. trrn and move the saved-off local version to trn.
  390.  
  391. Once you've done that you'll need to create a directory for your local
  392. newsrc that is in a different place than your NNTP newsrc and use the
  393. DOTDIR environment variable to tell trn which directory to use.  A
  394. simple alias or a shell file in your local bin dir will take care of
  395. all the details.
  396.  
  397. Trn 4.0 will allow multiple, simultaneous news sources to be open at the
  398. same time (both local and remote) with full control over what
  399. servers/local-directories are to be used available to each user (each
  400. source needs its own .newsrc file).  You may either switch from server
  401. to server, or have multiple newsrcs open at the same time (if a group is
  402. available from multiple sources, it is read from the first newsrc that
  403. has it available).  It even allows you to use a remote news source and a
  404. local (or nfs-mounted) active file, all configurable at run-time.
  405.  
  406. ------------------------------
  407.  
  408. Subject: BASP: Article selection problem in trn 3.4.1
  409. Contributors: Jesus R. Aguillon <aguillon@netcom.com>,
  410.         Wayne Davison <trn@clari.net>
  411.  
  412. > When I do an article selection with 'A' and then '+' using trn 3.3 I get
  413. > the following in my kill-file:
  414. >
  415. > /: *test/:++
  416. >
  417. > Assuming the title is "test". When I enter the newsgroup it does the
  418. > selection properly. With trn 3.4.1 I get:
  419. >
  420. > /: *test/:I:++
  421. >
  422. > When I enter the newsgroup I get:
  423. >
  424. > Processing memorized commands...
  425. >
  426. > /: *test/:I:++
  427. >
  428. > 9220    ???I:++
  429. >
  430. > (Interrupted at article 9220)
  431. >
  432. > And no articles get selected.  If I remove the :I then it works just like
  433. > trn 3.3.  Is there something different in this case between 3.3 and 3.4.1?
  434.  
  435. This is a slight botch in 3.4.1 that got fixed in version 3.5 --
  436. the 'I' is a modifier to ignore the THRU line and should have read:
  437. "/: *test/I:++", but an extra ':' got stuck in there.
  438.  
  439. ------------------------------
  440.  
  441. Subject: ASUS: Slow performance with trn using SLIP
  442. Contributors: Jim Kaufman <jmk@maroon.tc.umn.edu>,
  443.         Wayne Davison <trn@clari.net>
  444.  
  445. > I am running a Linux system that occassionally connects to the
  446. > University's machine so I can read news or mail. This is a 14.4Kbps
  447. > SLIP connection.
  448. >
  449. > I notice that when trn starts up it reads the entire active file,
  450. > which is over 400K long. Also, when I then post news, the Pnews
  451. > script seems to want to do the same thing, as well as read the
  452. > newsgroups file. Is there some way to avoid this? Maybe point
  453. > trn at an older active file (or is this a really bad idea?)
  454.  
  455. Yeah, this is a drag over a slip line.  Version 3.6 supports a new
  456. server command to grab the active file in smaller chunks (as small as
  457. one newsgroup) which will improve this if your server upgrades their
  458. nntp server to either nntp-1.5.12 (scheduled for release soon), INN 1.5
  459. (ask Rich Salz for a release date), or a slightly-patched INN 1.4 (ask
  460. Wayne Davison <trn@clari.net> for the patch).
  461.  
  462. If you post from within trn Pnews should be sharing the active file that
  463. trn grabbed.  If it's not, you probably have a trn/Pnews combination
  464. that is either too old or out of sync.
  465.  
  466. As for the newsgroups file, people on a slip line would do well to
  467. modify Pnews to point to a local copy that they update from time to time
  468. (at least through version 3.5).
  469.  
  470. Trn 3.6 has an improved Pnews that defaults to not grabbing the files
  471. (instead getting the info in an interactive session), but since this is
  472. _slower_ over a fast net connection there is an option to do things the
  473. old way that each user can specify.
  474.  
  475. ------------------------------
  476.  
  477. Subject: KIBF: trn 3.4.1 ignores some lines in big killfile
  478. Contributors: James Buster <bitbug@netcom.com>,
  479.         Wayne Davison <trn@clari.net>, Larry W. Virden <lvirden@cas.org>
  480.  
  481. > I have a local killfile for news.answers, which is 772 lines long. It seems
  482. > that two or three patterns in the killfile are ignored each time that I
  483. > read news.answers (I read it once per day, usually). Exactly which
  484. > patterns is different each time, but the result is that I must (K)ill
  485. > that subject again, producing a duplicate entry in news/answers/KILL.
  486. > I use sort and uniq on the killfile to help me identify and delete those
  487. > duplicate entries. This on a Sun running SunOS Release 4.1.3_U1.
  488. > Is this a known bug that's been fixed in later releases?
  489.  
  490. [Davison:]
  491. I've never heard of this problem before.  Using 'K' to deposit the kill
  492. commands in the killfile puts a fairly specific version of the subject
  493. into the kill file -- are you sure that the subjects aren't changing
  494. slightly, maybe in spacing or something minor so that the kill commands
  495. look similar but aren't quite the same?
  496.  
  497. One thing you might do is to modify your kill file to make it more
  498. generic on the subjects you want to kill.  Another option is to switch
  499. to using "Tj" (if you are using trn 3.5) to kill the subjects by thread
  500. instead of subject.  This is useful if you're trying to weed out all the
  501. stuff you're not interested in in news.answers because the thread-kill
  502. commands automatically expire after the discussion dies.
  503.  
  504. [Virden:]
  505. What COULD be done is to split the kills up between all the smaller
  506. *.answer groups so that no kill file is so large.  After you get done
  507. doing all the comp.answers, rec.answers , etc. then you can go into
  508. news.answers and see what is left.
  509.  
  510. ------------------------------
  511.  
  512. Subject: ACNB: Trn thinks certain newsgroups are bogus; TIN doesn't
  513. Contributors: Daniel Jacobs <danielj@snark.wizard.com>,
  514.         Wayne Davison <trn@clari.net>
  515.  
  516. > I have a user who just switched to trn from tin. Some groups that show
  517. > up fine in tin, trn calls bogus and marks them as unsubscribed in
  518. > .newsrc, so if he goes back into tin after not being able to read them
  519. > in trn, he has to resubscribe again. Any ideas?
  520.  
  521. What version of trn are you using?  In older versions trn used to
  522. complain about redirected newsgroups as bogus (those with '=' in the 4th
  523. field of the active file), but a modern trn reports the redirection and
  524. allows the user to finish reading the remaining articles before they
  525. expire.  It might be that the groups are on their last legs.
  526.  
  527. The only other thing I can think of is that you're not using the same
  528. server for both tin and trn, but then you'd REALLY be messed up using
  529. the same .newsrc file due to the lack of a common numbering system.
  530.  
  531. ------------------------------
  532.  
  533. Subject: APNU: Why might trn 3.6 prompt newsgroups with 0 unread articles?
  534. Contributors: Fletcher Mattox <fletcher@cs.utexas.edu>
  535.         Wayne Davison <trn@clari.net>,
  536.         Mike Iglesias <iglesias@draco.acs.uci.edu>
  537.  
  538. > If you specify a restriction on the command line, trn 3.6 prompts you
  539. > to read a newsgroup even when there are no unread articles in it.
  540. > Trn 3.5 didn't do this.  Is there any way to get the old behavior?
  541.  
  542. This is a restoration of the old behavior. Instead of typing "trn group"
  543. start trn and type "O group" (capital O). Another solution is to
  544. reinstall trn, removing the only line in sw.c that sets "emptyOnly" to
  545. TRUE. Here's the patch in case someone needs it, from Mike Iglesias:
  546.  
  547. *** sw.c.dist    Fri Nov 18 22:01:26 1994
  548. --- sw.c    Thu Dec  8 22:27:48 1994
  549. ***************
  550. *** 164,170 ****
  551.   #endif
  552.       if (*s != '-' && *s != '+') {    /* newsgroup pattern */
  553.       setngtodo(s);
  554. -     emptyOnly = TRUE;
  555.       }
  556.       else {                /* normal switch */
  557.       bool upordown = *s == '-' ? TRUE : FALSE;
  558. --- 164,169 ----
  559.  
  560. ------------------------------
  561.  
  562. Subject: OSTR: What's strn?
  563. Contributor: Clifford A. Adams <caadams@frontiernet.net>
  564.  
  565. Strn was written by Clifford A. Adams <caadams@frontiernet.net>. It's
  566. based on trn 3.4.1, but adds many new capabilities to trn, such as a
  567. newsgroup browser, virtual newsgroups, scoring/rating of articles, and
  568. easy configuration menus. Strn has been developed and tested over the
  569. past year with the help of more than 50 alpha testers. The beta release
  570. is intended to make the current version more widely available, test out
  571. some of the new concepts (such as index-moderation using virtual
  572. newsgroups), and gather suggestions for improvement.
  573.  
  574. Strn is still under development, although most of its planned features
  575. are implemented. Future versions of strn will mainly improve the
  576. documentation, scoring ease-of-use, and configurability of the program.
  577. Version 1.0 release is expected in a finite amount of time.
  578.  
  579. More information, as well as source code for the beta-test version
  580. 0.9.2, is available from the following FTP sites:
  581. (North America, Eastern US): <URL:ftp://ftp.uu.net/news/trn/strn/>
  582.                              <URL:ftp://ftp.digex.net/pub/news/>
  583. (North America, Southwest US): <URL:ftp://perseus.unm.edu/pub/strn/>
  584. (United Kingdom):
  585.         <URL:ftp://src.doc.ic.ac.uk/computing/news/software/readers/trn/strn/>
  586. (Europe, Netherlands): <URL:ftp://ftp.twi.tudelft.nl/pub/news/>
  587. (South Africa): <URL:ftp://ftp.ee.und.ac.za/pub/news/strn/>
  588.  
  589. ------------------------------
  590.  
  591. Subject: OVTC: I have an old version of trn. What changes have been made?
  592. Contributors: Peter J. Kappesser <Peter_Kappesser@promail.com>,
  593.         Wayne Davison <trn@clari.net>
  594.  
  595. Well, you could find out by ftp'ing the latest version of trn, uncompressing
  596. and de-tar-ing the NEW file... or I could just append most of it here.
  597. (Changes from trn 3.5 to 3.6 are listed in Part 1, Subject: OLVW.)
  598.  
  599. ======================================================================
  600. If you're upgrading from trn 2.x see the discussion of the -a option,
  601. the 't' command (newsgroup selection level), and the 'T' command
  602. (article level & in kill files) for slight incompatibilities between
  603. trn 2.5 and trn 3.0.
  604.  
  605. Changes from trn 3.4.1 to trn 3.5:
  606.  
  607.    o    Enhanced the -p option to allow you to select how you'd like
  608.     your postings to be selected.  The default (which works the same
  609.     as before) is -p (select your posting and its replies).  Also
  610.     available is -p+ (select all postings in the thread) and -pp
  611.     (select the *parent* article and its replies).
  612.    o    Added the forward (^F) command to forward an article via mail.
  613.    o    Improved the tab command (skip cited text) to skip empty lines
  614.     and choose the quotation character more intelligently.
  615.    o    You can now junk an article in just the current group via
  616.     a search command using 'x'.  E.g.  /subject/:x
  617.    o    Included some code from Olaf Titz <uknf@rz.uni-karlsruhe.de>
  618.     that allows you to tell trn to transform high-bit characters
  619.     into their 7-bit ascii equivilents.  See the _C command and
  620.     the -Q option.
  621.    o    Added the back-scroll command: 'B'.
  622.    o    Added the -J<n> option to allow you to join truncated subjects
  623.     into a common thread.  The default for -J is 30 chars, not counting
  624.     the Re: portion.  I have the lines "&-J27" and "X&+J" in my Babylon
  625.     5 kill file to join all the Genie posts that get truncated into the
  626.     proper thread.
  627.    o    Added the -K option to keep a group static (no new articles) while
  628.     you read it.  Useful for people who have a really slow kill file
  629.     for a group -- use "&-K" and "X&+K" in such a kill file to make
  630.     only that group stop growing until you exit the group and re-enter.
  631.    o    Added optional mouse support in an xterm window.
  632.    o    Added a new intrp (%q) to get the value of the last quoted input
  633.     (%").  Useful for using elm for forwarding articles as it needs
  634.     the answer to the question "To?" on the command line:
  635.         -EFORWARDPOSTER="elm -i %h -s '%'[subject]' %q"
  636.     (though you may wish to redefine the FORWARDHEADER variable too).
  637.    o    Fixed bugs in the handling of thread kills in partially-threaded
  638.     groups (Tj now works even if the -a option wasn't specified) and
  639.     and in the handling of the subject-kill command (Aj).
  640.    o    New files, HINTS.TRN is like HINTS but in a better format.
  641.     (I renamed it to avoid conflicts with the directory "hints").
  642.    o    Portability enhancements to Configure and the support scripts.
  643.    o    Some fairly major and minor bugs fixed.
  644.  
  645. Changes from trn 3.3 to trn 3.4.1:
  646.  
  647.    o    Made the kill-file handling more consistent in how it
  648.     deals with the THRU line.  It now only ignores the THRU
  649.     line for all selection commands.  You can turn off this
  650.     exception (and thus make all commands obey the THRU line)
  651.     by turning off the -k option (using +k).  You can also
  652.     specify the 'I' modifier or the 'N' modifier to killfile
  653.     searches to have them either ignore or not-ignore the
  654.     THRU line, respectively.
  655.    o    Changed the %'s interp to not supply the leading and
  656.     trailing single quotes to make it more useful.
  657.    o    The NNTP trn attempts to reconnect to the news server
  658.     after it times out.  If it is successful, trn continues.
  659.    o    The command /subj/M no longer assumes you meant /subj/r:M.
  660.    o    Automatically-generated killfile commands (e.g. the 'K'
  661.     command) now escape a '/' that occurs in the subject string.
  662.    o    The _+ command (select whole thread) now starts reading
  663.     the thread from the first unread article.
  664.    o    The -p self-matching code was improved to match a user's
  665.     name more exactly so that people with short login names
  666.     don't get improper matches.
  667.    o    Pnews was enhanced to deal with Followup-To: poster better
  668.     when you choose to post anyway -- it now puts the user's
  669.     address into the Cc: header and automatically corrects the
  670.     Newsgroups: line.
  671.    o    Pnews returns to the prompt after an inews error instead of
  672.     aborting.  You can still choose to 'a'bort, if you like.
  673.    o    Speller now passes the ispell_options from Configure to
  674.     spell, and Configure has been enhanced to prompt you for
  675.     the options if either ispell or (new!) vspell can't be
  676.     found.
  677.    o    Added the file Policy.sh.SH that puts your policy choices
  678.     from the config.sh file into hints/Policy.sh.  This allows
  679.     you to use the Policy.sh file to prime the Configure choices
  680.     on multiple machines or in the mthreads package without
  681.     machine-specific selections getting in the way.
  682.    o    Upgraded Configure to the latest metaconfig release.
  683.    o    Fixed some MIME bugs and made the handling a little smarter.
  684.    o    Nested comment warnings removed from various include files.
  685.    o    Fixed several crash bugs and several nusiance bugs, including:
  686.        *    the problem with the NNTP trn mangling the date of
  687.         new news groups (which caused either groups to get missed
  688.         or groups to be re-offered).
  689.        *    the problem with the NNTP trn that caused it to think
  690.         certain lines that begin with a '.' are the end of the
  691.         list marker and quit when it got confused.
  692.        *    and lots more...
  693.  
  694. Changes from trn 3.2 to trn 3.3:
  695.  
  696.    o    Newsetup now looks for NEWSLIB/subscriptions for a default list
  697.     of groups to subscribe the user to.  If the file doesn't exist
  698.     the NNTP version will attempt to grab it via the LIST SUBSCRIPTIONS
  699.     command (available in INN and some nntp patches).
  700.     [HINT:  if you want your subscription file to default to all
  701.     groups in the active file, link your subscription file to your
  702.     active file -- trn will strip the info past the first space
  703.     when it processes the .newsrc.]
  704.    o    The file newsnews will now default to a simple version update
  705.     message instead of a welcome-to trn message (which is now provided
  706.     by the newsetup file when creating a new .newsrc for a user).
  707.     I still encourage you to install your own custom newsnews
  708.     when trn is updated (and trn still doesn't install newsnews
  709.     automatically -- you have to make this decision for your self).
  710.    o    Redirected and disabled groups (marked by '=' or 'x' in the active
  711.     file) are now handled better, allowing you to read any remaining
  712.     articles after a group gets redirected or disabled and warning you
  713.     to either start using the new group name or that the group will
  714.     not be receiving any new news.
  715.    o    Mime support is now prompted for in Configure and your system's
  716.     display/store commands are remembered.  We also handle a continued
  717.     Content-Type header correctly now.
  718.    o    The tick (') interp modifier will generate a tick-quoted string
  719.     with all ticks inside the string quoted.  For example, %'s might
  720.     generate (INCLUDING the "'"s)  'Ticks aren\'t a problem.'
  721.    o    If the environment variable FAST_PNEWS == y Pnews skips the "Are
  722.     you sure?" question and the "include file" prompt.  You can put
  723.     -EFAST_PNEWS=y in the global INIT file, if you so desire.
  724.    o    Various bug fixes.
  725.  
  726. Changes from trn 3.1 to trn 3.2:
  727.  
  728.    o    Configure and the include file structure has been improved to
  729.     install easier on more systems.
  730.    o    Fixed some non-portable test statements in Pnews.
  731.    o    Added the -Z option to allow you to turn on/off support for the
  732.     two different database formats (-Zt, -Zo, -Zot, or +Z).
  733.    o    Configure now allows you set the default database support to
  734.     thread files, overview files, both or none.
  735.    o    Trn and its support scripts handle ~/dirs in the newslib or
  736.     rnlib better.
  737.    o    Various bug fixes.
  738.  
  739. Changes from trn 3.0 to trn 3.1:
  740.  
  741.    o    Added a new header-searching syntax:  /string/Hheader:cmd.
  742.     This allows you to match a string on any header that trn
  743.     knows about and is faster on the NNTP side than full-header
  744.     matching.  Example:  /: .../Hlines:j  would junk all postings
  745.     longer than 99 lines.
  746.    o    Two new commands can be put into a group's kill file: *j
  747.     (kill all articles from THRU to the end of the group) and *X
  748.     (kill all unselected articles from THRU to the end of the group).
  749.    o    Pnews (using artcheck) now checks the active file as well as
  750.     the newsgroups file for each group on the Newsgroups line.  This
  751.     lets you know whenever you specify a group that doesn't exist.
  752.     Also, the NNTP version has been fixed to provide full checking.
  753.    o    Pnews/Rnmail have been modified to allow you to type either upper
  754.     or lower case for the response letters, and use "sp*ell" in addition
  755.     to "c*heck" for the spelling checker ("s*end" is unchanged).
  756.    o    Pnews/Rnmail each have a pre-edit signature appending option.
  757.     If you use the file DOTDIR/.news_sig INSTEAD of .signature Pnews
  758.     will append your signature before you edit the file.  Rnmail uses
  759.     the file DOTDIR/.mail_sig.  Note also that the names may be
  760.     customized with the environment variables NEWSSIGNATURE and
  761.     MAILSIGNATURE, if desired (allowing a per-group signature).
  762.    o    Added the modifiers '>' and ')' to interpreted strings.  For
  763.     example:  %>f gives you the address only on the From line,
  764.     while %)f gives you the real name portion.
  765.    o    Added the 'O' command (newsgroup level) that works just like 'o'
  766.     except that it does not visit empty groups.
  767.    o    The killfile is fully saved before manual editing with Ctrl-K
  768.     (message-id commands used to be saved only on exit from the group).
  769.    o    The screen is now refreshed when the window size changes.
  770.    o    Trn now makes use of stdlib.h, unistd.h (if available) and does a
  771.     more intelligent inclusion of time.h & sys/time.h (as needed).
  772.    o    Trn doesn't loop through the current thread if unread articles
  773.     still exist in it.  Also fixed various problems with '>' & 'P'.
  774.    o    The 'D' command in the selector no longer jumps back to the top.
  775.    o    The NNTP version has a different new-article aquisition strategy.
  776.     Your nntp server must send up-to-date information in response to
  777.     the GROUP command (INN's nnrpd does) for a group to expand while
  778.     you're in it.  Also, you can now set the minimum time for trn to
  779.     wait (see -z) before it refetches the active file at the end of
  780.     the newsgroups.  The default is 5 minutes.
  781.    o    Optional metamail support pauses between the headers and the
  782.     metamail-interpreted article.  Also, the 'v' command displays the
  783.     raw article without metamail processing.
  784.    o    Numerous portability changes and bug fixes.
  785.  
  786. Changes from trn 2.5 to trn 3.0:
  787.  
  788.    o    Trn is now capable of reading more news database formats.  It
  789.     currently supports news overview (.overview files), mthreads
  790.     (.thread files), and direct threading of the articles.  The
  791.     NNTP version supports the XTHREAD and XOVER NNTP extensions.
  792.     If you compile trn with support for both formats it will figure
  793.     out which groups (or which server) has which type of data and
  794.     act accordingly.
  795.    o    Mthreads is now a separate package from trn since not everyone
  796.     will need to use it.  Look for it in the same place you found
  797.     trn.
  798.    o    Trn attempts to build some useful default macros for your
  799.     terminal's arrow keys.  On the article level they move around
  800.     in the thread; in the selector they change pages (left/right)
  801.     and switch selections (up/down); on the newsgroup level they
  802.     move by group (up/down) and enter a group (right).  If you
  803.     don't like this, turn it off with the +A option.
  804.    o    There's a new search scope -- the from line.  For example:
  805.     use /author/f+ to search for and select 'author's articles.
  806.    o    The thread selector has been extended to be a subject and
  807.     article selector.  Use the 'S'et selector command to change
  808.     modes or use '=' to toggle between the article selector and
  809.     the subject/thread selector (whichever was last in use).
  810.    o    The selector can now be sorted in a variety of ways:  by date,
  811.     subject, author, article count (in the subject/thread selector),
  812.     or a combination of subject and date (in the article selector).
  813.     The default is date order of the oldest unread article in a thread.
  814.     Use the 'O'rder command to pick a new one or use 'R' to reverse
  815.     the sort.  See also the "-O<mode><order>" option to set your
  816.     favorite mode and order.  You can even put a "&-Oas" command (for
  817.     example) into a group's kill file to set a per-group default.
  818.    o    The selector allows you to exclude all the non-selected articles
  819.     from the display (i.e. narrow it) -- use 'E' to toggle this mode.
  820.    o    The selector has two new selection commands:  '*' is used to select
  821.     (or deselect) the current item and all other items with the same
  822.     subject (useful in the article selector); '#' is used to make an
  823.     overriding selection that immediately reads the current item
  824.     ignoring all other selections.
  825.    o    You can now type 'M' in the selector to mark the current item's
  826.     articles as read-but-returning and press 'Y' to yank back and
  827.     select these articles before exiting the group.
  828.    o    Selections via searches are article-oriented (/subj/+) or
  829.     thread-/subject-oriented (/subj/++).  The article selector's
  830.     default command is "+", while the thread/subject selector's is
  831.     "++".  In other words doing a "/subj" search with no specified
  832.     command selects whatever type of object you're looking at in the
  833.     selector.
  834.    o    If you specify the "-p" option, your postings and any replies to
  835.     them are auto-selected whenever trn encounters them.
  836.    o    The '+' command in a non-threaded group visits the subject selector.
  837.     You can also use "_a", "_s", "_t" or "_T" to force the article,
  838.     subject, thread, or thread-but-I'll-settle-for-subject selector.
  839.    o    The selector displays subjects/threads that are partially-selected
  840.     with a '*'.  Fully-selected items are marked with a '+', as before.
  841.     Use the article selector (possibly with 'E'xclusive set) to see
  842.     which articles are selected in a partially-selected group (or just
  843.     read them).
  844.    o    The selector remembers which subjects you selected (and didn't kill)
  845.     and marks any newly-arriving articles in these subjects as selected
  846.     until you exit the group.
  847.    o    The medium display mode of the thread selector has been improved
  848.     to make it more readable.
  849.    o    The selector will leave out the middle portion of a subject that is
  850.     too long to display the last two words of the subject.  If you don't
  851.     like this, use the -u option to leave them unbroken.
  852.    o    'T'hread KILL commands now use message-ids to either junk
  853.     or select articles.  The 'T' command has been extended to be
  854.     more flexible on the article level and has been added to the
  855.     selector.
  856.    o    Another new command 'A'dds selection or kill commands to the KILL
  857.     file, and works from both the article level and the selector.
  858.    o    The tree display has been updated to display unread-but-not-
  859.     selected articles as <x>.  Other unread articles are still [x],
  860.     while read articles still display as (x).
  861.    o    Trn can enter a group without thread information available and
  862.     thread it in the background while you read.  Articles that have
  863.     references that may or may not exist show up as "(?)".  If you
  864.     visit an article like this and wait there, the screen will update
  865.     when we know for sure one way or the other (after processing more
  866.     of the group).
  867.    o    The -a option is used to tell trn to thread all of the
  868.     articles on entry to the group.  If you don't specify this
  869.     option a group may have a few (or many) articles that get
  870.     threaded in the background and won't show up on the tree
  871.     display until trn processes them.
  872.    o    Pressing "_+" on the article level will select the entire thread
  873.     associated with the current article -- useful if you've selected
  874.     individual articles and wish to read the rest of the discussion.
  875.     Use "_-" to deselect the current thread.
  876.    o    The commands _N and _P move to the next and previous article
  877.     in numberical (arrival) order (article level).  Thus, you can
  878.     use the command "._P" on the newsgroup level to start reading
  879.     a group from the very last article to arrive.
  880.    o    The 't' command on the newsgroup level now turns OFF reading a
  881.     group with threads (this setting is stored in the .newsrc file,
  882.     so it is remembered from session to session).  Trn 2.x used this
  883.     to force threading to be turned ON, but it wasn't usually needed
  884.     for normal operation.  To temporarily turn threads on once inside
  885.     a non-threaded group, use the 't' or "_t" commands (article level)
  886.     or the "St" command (selector).
  887.    o    Trn now checks for the environment variable TRNMACRO on startup
  888.     (which defaults to DOTDIR/.trnmac) before checking for the usual
  889.     RNMACRO (DOTDIR/.rnmac) file.  If you're running trn in its rn-
  890.     compatible mode, only RNMACRO is tried.
  891.    o    The threaded and non-threaded data in a group has been unified,
  892.     resulting in more cached information on the non-threaded side
  893.     (such as the from line) and more efficient handling of missing
  894.     articles, just to name two benefits.
  895.    o    The newsgroup information is freed when we enter a new group,
  896.     not when we exit the current group.  This means that if you
  897.     quit out of a group (even accidentally), you can go back in
  898.     and everything is still there except the selections, which
  899.     get cleared on group exit.
  900.    o    KILL file processing will now ignore the THRU line as much as
  901.     possible without slowing down the handling of KILL files.
  902.     If you have really slow searches (header or article searches)
  903.     or you use trn without a database it will use the THRU line
  904.     to only search an article one time (as it would in rn).  This
  905.     means that if you have subject-oriented selection commands you
  906.     don't have to worry about missing articles if you don't read all
  907.     of them the first time you enter a group after they arrive.  This
  908.     also means that you won't have to edit your local kill file to
  909.     remove the THRU line to force a re-scan -- this is now unnecessary.
  910.    o    Header parsing is now done in-memory, making threading and
  911.     caching of articles much faster.  This especially helps out
  912.     NNTP users because trn used to write a tmp file for every
  913.     header parse.
  914.    o    Several new mode letters (accessed by %m in macros) were added.
  915.     The most significant are 'f' for the end (Finis) of the newsgroup
  916.     selection level (instead of 'n') and 'e' for the end of the article
  917.     reading level (instead of 'a').
  918.    o    A new % modifier has been introduced: "%:FMTx".  This allows you
  919.     to apply a printf-style column format to a regular %x expansion.
  920.     For example, %:-50.50s would left-justify the subject into 50
  921.     characters, exactly.
  922.    o    The -f option will make trn go a little faster by getting rid of the
  923.     delay/prompt after kill file processing, printing the "skipping
  924.     article" message, and printing the "Depositing KILL command" message.
  925.     This is the default if -t (terse) is specified, but can be overriden
  926.     by specifying +f after the -t option.
  927.    o    A new option for the gadget-conscious (-B) displays a spinner when
  928.     trn is processing articles in the background.
  929.    o    Added the -G option to make the newsgroup 'g'o command look for
  930.     near matches (for those typing mistakes).
  931.    o    New newsgroups that are left unsubscribed are not appended to the
  932.     .newsrc unless you use the -I option or you're running an NNTP
  933.     version that does not use the NEWGROUPS code.
  934.    o    Support for metamail's mime handling is now built into the code --
  935.     see the METAMAIL define in common.h.
  936.    o    Pnews does more checking of your article before posting, has a
  937.     spelling-check option, and allows the Cc: header to be used to
  938.     send mail while posting the article.
  939.  
  940. Changes from trn 1.0.3 to trn 2.5:
  941.  
  942.    o    Added the '(' and ')' commands (article level) to move to an
  943.     article's previous/next sibling, including "cousin" siblings.
  944.    o    The 'A'bandon command (newsgroup level) forgets all changes to the
  945.     current newsgroup since you first started trn.
  946.    o    The thread selector now allows you type type 'c'/'y' to catchup
  947.     the group without chasing cross-references.
  948.    o    Added 'z' and 'Z' commands (article level) supersede the current
  949.     article ('Z' also including the original text).
  950.    o    The g command (newsgroup level) will go to a newsgroup by number
  951.     where the the number corresponds to that shown in the 'L'ist
  952.     command.
  953.    o    Added the "-o" option to use the old method of junking articles in
  954.     the thread commands (they didn't chase cross-references in trn 1.x)
  955.    o    Added the "-b" option to read articles in a breadth-first descent
  956.     of the article tree.  You can specify this command at runtime to
  957.     switch from breadth-first (type "&-b") to depth-first ("&+b).
  958.    o    Added the "-j" option to tell trn to pass control characters through
  959.     the pager unharmed.
  960.  
  961. ------------------------------
  962. End of trn newsreader FAQ, part 2/2.
  963.