home *** CD-ROM | disk | FTP | other *** search
- 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
- From: @tigerden.com (Peter J. Kappesser)
- Newsgroups: news.software.readers,news.answers
- Subject: [news.software.readers] trn newsreader FAQ, part 2: Advanced
- Supersedes: <trn-faq-2-1082972825@tigerden.com>
- Followup-To: poster
- Date: Tue, 11 May 2004 9:47:04 GMT
- Organization: Maintainer of the trn newsreader FAQ
- Lines: 938
- Approved: news-answers-request@MIT.EDU
- Expires: 15 Jun 2004 12:00 GMT
- Message-ID: <trn-faq-2-1084268821@tigerden.com>
- References: <trn-faq-1-1084268821@tigerden.com>
- Reply-To: @tigerden.com (Peter J. Kappesser)
- NNTP-Posting-Host: tiger.tigerden.com
- X-Trace: bengal.tigerden.com 1084268826 25430 198.30.162.10 (11 May 2004 09:47:06 GMT)
- X-Complaints-To: news@tigerden.com
- NNTP-Posting-Date: 11 May 2004 09:47:06 GMT
- Summary: Frequently-asked questions (and answers) about trn, a powerful,
- command-based USENET newsreader, and associated utility programs.
- Keywords: faq, trn, news, reader, newsrc, Pnews, Rnmail, kill, thread
- X-Note: <infopage@tigerden.com> does automatic posting for the maintainer.
- Xref: senator-bedfellow.mit.edu news.software.readers:174152 news.answers:271064
-
- Posted-By: auto-faq 3.3 beta (Perl 5.004)
- Archive-name: usenet/software/trn-faq/part2
- Posting-Frequency: Posted on the 11th and 26th of each month.
- Last-Modified: August 12, 1998
- Version: 3.5.3 (of FAQ)
- Changes-This-Version: Cliff Adams's e-mail address <caadams@frontiernet.net>;
- strn integrated into trn 4.0
-
- These articles summarize some frequently-asked questions (and answers)
- about the trn newsreader and associated programs such as Pnews and Rnmail.
-
- Part 2 has information on more advanced usage questions and bug workarounds.
- This FAQ is maintained by Peter J. Kappesser <Peter_Kappesser@promail.com>
- and is archived at <URL:ftp://rtfm.mit.edu/pub/usenet/news.software.readers/>.
- Anyone wishing to take over maintenance, please write.
-
- > Subject: BLYC: Patches for "leap year bug" (see Subject: UKAN)
- > Subject: ATKS: I want to set up a simple news archive. How can I run TRN
- > non-interactively (e.g. as a cron job)?
- > Subject: ICAU: If I read an article in one group, then mark it unread, how
- > can it still appear as unread in groups to which it is crossposted?
- > Subject: MDCX: Is there a command similar to 'D' that marks everything on the
- > current page as read, but without chasing xrefs?
- > Subject: KDHF: In a killfile, what's the difference between
- > /@domain-pattern/f:command and /@domain-pattern/Hfrom:command?
- > Subject: MPAS: How do I write a macro to easily reply to the current article
- > with some canned piece of text (e.g., instructions for getting FAQs)?
- > Subject: ADCU: In rn-compatibility mode, trn dumps core when I Unread
- > killed subjects.
- > Subject: INLS: Is it possible to build trn so that it can use either nntp
- > or a local spool depending on the newsgroup concerned?
- > Subject: BASP: Article selection problem in trn 3.4.1
- > Subject: ASUS: Slow performance with trn using SLIP
- > Subject: KIBF: trn 3.4.1 ignores some lines in big killfile
- > Subject: ACNB: Trn thinks certain newsgroups are bogus; TIN doesn't
- > Subject: APNU: Why might trn 3.6 prompt newsgroups with 0 unread articles?
- > Subject: OSTR: What's strn?
- > Subject: OVTC: I have an old version of trn. What changes have been made?
-
- ------------------------------
-
- Subject: BLYC: Patches for "leap year bug"
- Contributors: Duncan Gibson <duncan@yc.estec.esa.nl>,
- Erez Zadok <ezk@news.cs.columbia.edu>, John Line <jml4@cus.cam.ac.uk>,
- Peter Kappesser <Peter_Kappesser@promail.com>,
- Anne Bennett <anne@alcor.concordia.ca>
-
- Since January 1, 1996 on some systems, every time users run trn, they may be
- asked whether they want to subscribe to new newsgroups which they have
- previously declined by answering 'n' or 'N'. The reason is that, as of the
- first second of 1996, trn miscomputed the number of leap years, and was
- therefore off by one whole day, reporting that the date of the news server was
- exactly 24 hours into the future, thus thinking that these "new" newsgroups
- could not have been seen at all.
-
- Either of two patches will fix the problem. The "simple patch" works until the
- year 2100, and is preferred by Wayne Davison (since it uses a simple division,
- instead of a loop, and he doesn't expect people to still be using trn at that
- time anyway). The "fancy patch" is accurate until the year 2400.
-
- Although the line numbers are for trn 3.6, the code will work in strn-0.9.2 at
- the appropriate place.
-
-
- SIMPLE PATCH THAT WORKS UNTIL 2100
-
- Submitted by Miquel van Smoorenburg <miquels@debian.het.net>
-
- ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
- ------- nntp.c -------
- *** /tmp/da005NK Thu Jan 1 00:00:00 1970
- --- nntp.c Wed Jan 3 20:43:11 1996
- ***************
- *** 319,326 ****
- for (month--; month; month--)
- day += maxdays[month];
-
- ! ss = ((((year-1970) * 365 + (year-1968)/4 + day - 1) * 24L + hh) * 60
- ! + mm) * 60 + ss;
-
- return ss;
- }
- --- 319,326 ----
- for (month--; month; month--)
- day += maxdays[month];
-
- ! ss = ((((year-1970) * 365 + (year-1969)/4 + day - 1) * 24L + hh) * 60
- ! + mm) * 60 + ss;
-
- return ss;
- }
- ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
-
-
- FANCY PATCH THAT WORKS UNTIL 2400
-
- Submitted by Paul Close <pdc@lunch.engr.sgi.com>
-
- ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
- --- trn-3.6/nntp.c Fri Nov 18 22:01:23 1994
- +++ nntp.c.leap Fri Jan 5 16:38:33 1996
- @@ -285,12 +285,13 @@
-
- /* This is a 1-relative list */
- static int maxdays[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- +#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)
-
- time_t
- nntp_time()
- {
- char *s;
- - int year, month, day, hh, mm;
- + int year, month, day, hh, mm, y;
- time_t ss;
-
- nntp_command("XDATE" + (CompliantServer? 0 : 1));
- @@ -306,11 +307,11 @@
- s[4] = '\0';
- year = atoi(s);
-
- - /* This simple algorithm will be valid until the year 2400 */
- - if (year % 4)
- - maxdays[2] = 28;
- - else
- + if (isleap(year))
- maxdays[2] = 29;
- + else
- + maxdays[2] = 28;
- +
- if (month < 1 || month > 12 || day < 1 || day > maxdays[month]
- || hh < 0 || hh > 23 || mm < 0 || mm > 59
- || ss < 0 || ss > 59)
- @@ -319,8 +320,12 @@
- for (month--; month; month--)
- day += maxdays[month];
-
- - ss = ((((year-1970) * 365 + (year-1968)/4 + day - 1) * 24L + hh) * 60
- - + mm) * 60 + ss;
- + for (y = 1970; y < year; y++)
- + if (isleap(y))
- + day += 366;
- + else
- + day += 365;
- + ss += (((day - 1) * 24L + hh) * 60 + mm) * 60;
-
- return ss;
- }
- ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
-
- ------------------------------
-
- Subject: ATKS: I want to set up a simple news archive. How can I run TRN
- non-interactively (e.g. as a cron job)?
- Contributors: Michael Owings <mikey@waste.com>,
- Wayne Davison <trn@clari.net>,
- Peter J. Kappesser <Peter_Kappesser@promail.com>
-
- Run the "trnkill" script included below from cron and it will enter
- every subscribed group you have just long enough to run the kill file,
- and then exit.
-
- ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
- #!/bin/sh
- # trnkill - shell script to apply trn KILL files in the background
- # 14 Mar 89 created for rn by Jim Olsen <olsen@XN.LL.MIT.EDU>
- # 10 Sep 93 modified for trn 3 (or 2) by Wayne Davison <trn@clari.net>
- # Options: -d debug mode -- you see all gory action as it happens.
-
- # Visit all newsgroups (if trn asks about anything else, just say no)
- export TRNINIT TRNMACRO RNMACRO
- TRNINIT='-q -s -T -t -x +X'
- TRNMACRO=/tmp/trnkill$$
-
- # support for trn 2.x
- RNMACRO=$TRNMACRO
-
- # support for versions older than 3.6 on some systems
- TERM=dumb ; export TERM
-
- trap 'rm -f $TRNMACRO; exit' 1 2 3 15
- cat >$TRNMACRO <<'EOF'
- z %(%m=[nf]?.q^J:n)^(z^)
- ^m ^(z^)
- ^j ^(z^)
- EOF
- if test X$1 = X-d; then
- echo "z" | trn
- else
- echo "z" | trn >/dev/null 2>&1
- fi
- rm -f $TRNMACRO
- exit 0
- ---8<------8<------8<------8<---cut here--->8------>8------>8------>8---
-
- If trn crashes when you try to run it as a cron job, it's a problem with
- no terminal being set in the cron-run environment, which is confusing
- trn. Trn 3.6 fixes this problem by assuming that if you don't have TERM
- set in your environment that your terminal is "dumb". The commands
- "TERM=dumb" and "export TERM" in the trnkill script gets this to work
- with older trns.
-
- One application of this is to run trnkill in the background when you
- login, so it will "pre-kill" all your newsgroups and you won't have to
- wait as long for trn to process the killfiles when you're actually
- reading news, especially in high-volume, high-noise newsgroups. (Read
- your mail first, since you won't be able to run trn until trnkill
- finishes; or set up a cron job to run shortly before you usually login.)
-
- You can set up a simple news archive by setting the envariables DOTDIR,
- KILLGLOBAL and KILLLOCAL to point to a directory with a special-purpose
- .newsrc and killfiles. The killfiles contain commands to select and save
- the desired articles. (See Subject: CVNF and Subject: CSKF in Part 1 of
- this FAQ.) The maintainer of this FAQ uses this method to archive all
- articles that mention trn in news.software.readers.
-
- ------------------------------
-
- Subject: ICAU: If I read an article in one group, then mark it unread, how
- can it still appear as unread in groups to which it is crossposted?
- Contributors: David Joslin <joslin@cs.pitt.edu>,
- Wayne Davison <trn@clari.net>
-
- This is the MCHASE compile option in the common.h file. I turned
- this off in trn ages ago because I couldn't stand it. If I use
- 'M' to set an article as unread in a group, I want it to be there
- when I get back, even if I visit a group to which it is cross-
- posted and 'X' the whole group. With MCHASE on I have to be
- careful to always 'M' it in every cross-posted group I read until
- I actually finish with it.
-
- ------------------------------
-
- Subject: MDCX: Is there a command similar to 'D' that marks everything on the
- current page as read, but without chasing xrefs?
- Contributors: David Joslin <joslin@cs.pitt.edu>,
- Wayne Davison <trn@clari.net>,
- Mike Castle <mcastle@umr.edu>, Paul Clark <prc@sysmag.com>,
- Steven King, Software Archaeologist <king@wildebeest.cig.mot.com>
-
- One thing you can do is to turn off the chasing of xrefs in both
- the D and the X command via the -o switch. You could even do this
- via some macros (put them in your .trnmac file):
-
- D %(%m=t?&+o^JD:D)
- X %(%m=t?&+o^JX:X)
- *D %(%m=t?&-o^JD:)
- *X %(%m=t?&-o^JX:)
-
- How they work:
-
- When "D" is hit, if current mode (%m) is thread selector (t) then
- do the following (&+ocontrol-jD) else do (D)
-
- In short, if you press "D" in thread selector, it acts as if you
- had pressed the keys "&+o^JD", other wise it acts like you
- pressed the "D" key by itself. The ones for "X" work analagously.
-
- in pseudo code:
-
- when "D" is pressed
- if mode=thread_selector then
- pretend "&+o^JD" was hit
- else
- pretend "D" was hit
-
- (These are in fact sideways pictures of gorillas in clown outfits in
- four different states of inebriation. The fact that they make trn do
- something weird and wonderful is a particular piece of brilliance on Mr.
- Davison's part ;-) Just like in the Olden Days when your name performed
- some magical sequence of operations in TECO, we can feed the smiley
- dictionary to trn's macro processor and see what different smiley faces
- evoke strange and useful behavior. "I didn't like to use smilies at
- all," says Jethro Bodine of Beverly Hills, CA, "until I found that the
- sideways grinning cheshire cat smoking a cigar smiley actually causes
- trn to kill all posts mentioning Dave Rhodes. Great work, Mr. Davison!")
-
- ------------------------------
-
- Subject: KDHF: In a killfile, what's the difference between
- /@domain-pattern/f:command and /@domain-pattern/Hfrom:command?
- Contributor: Wayne Davison <trn@clari.net>
-
- You're matching an Internet address. The Hfrom: form ensures that trn
- has the full address, even if you're using a an mthreads database that
- only caches the real name. For non-mthreads-using people, use either
- one, but the rule is simple: /Hfrom: always matches the full From: line
- while /f matches whatever is cached by your database (if you don't have
- a database then the full From: line is all you have).
-
- ------------------------------
-
- Subject: MPAS: How do I write a macro to easily reply to the current article
- with some canned piece of text (e.g., instructions for getting FAQs)?
- Contributors: Jamshid Afshar <jamshid@ses.com>,
- Jeffrey Hurwit <jhurwit@netcom.com>,
- Peter J. Kappesser <Peter_Kappesser@promail.com>
-
- If you have formail (part of the procmail mail filter package) at your
- site, you can use the "|" command to stuff the article into the front
- end of a pipeline such as:
-
- | (formail -rk; cat canned.text.file) | /usr/lib/sendmail -t
-
- In your .trnmac file, assign this string to the key of your choice,
- substituting the correct location for sendmail your site. If you don't
- have formail, you can write a script, perhaps using perl, which will at
- least eat the piped-in article, change Reply-To: (if it exists,
- otherwise change From:) to To:, tack it on to your canned.text.file
- (which should have the Subject: and From: headers), and pipe the result
- to sendmail.
-
- ------------------------------
-
- Subject: ADCU: In rn-compatibility mode, trn dumps core when I Unread
- killed subjects.
- Contributors:
- Steven M. Schultz <sms@WLV.IIPO.GTEGSC.COM>,
- Wayne Davison <trn@clari.net>
-
- > Here's the scenario:
- >
- > rn # which is a hard link to trn 3.6
- > (enter a group)
- > =
- > read an article
- > k # to kill the subject
- > U # oops, I changed my mind
- > (get the "+tasn" prompt)
- > t
- > <dump!>
- >
- >The "SIGSEGV, restoring .newsrc" message is given.
-
- The "Ut" command erroneously assumes that the group is threaded. Tell
- your rn users to be brave and start running "rn -X -x" or "rn -X +x" and
- all will be well. :-)
-
- Alternatively, the following patch should fix the problem (the line number
- may well be wrong -- this is based on something newer than 3.6):
-
- Index:ng.c
- @@ -540,5 +540,8 @@
- return AS_ASK;
- else if (*buf == 't' && u_help_thread != nullstr) {
- - unkill_thread(artp->subj->thread);
- + if (artp->subj->thread)
- + unkill_thread(artp->subj->thread);
- + else
- + unkill_subject(artp->subj);
- if ((artp = first_art(artp->subj)) != NULL)
- art = article_num(artp);
-
- ------------------------------
-
- Subject: INLS: Is it possible to build trn so that it can use either nntp
- or a local spool depending on the newsgroup concerned?
- Contributors: David West <david_h_west@um.cc.umich.edu>,
- Wayne Davison <trn@clari.net>
-
- No, it's not yet possible. For now what you need to do is to Configure
- it once to read things locally, compile it and save the trn executable
- under some other name. Then Configure it for NNTP access and compile and
- install that (the NNTP scripts are usable locally but not visa versa, so
- this order is important). Finally, rename the installed trn executable
- trrn and move the saved-off local version to trn.
-
- Once you've done that you'll need to create a directory for your local
- newsrc that is in a different place than your NNTP newsrc and use the
- DOTDIR environment variable to tell trn which directory to use. A
- simple alias or a shell file in your local bin dir will take care of
- all the details.
-
- Trn 4.0 will allow multiple, simultaneous news sources to be open at the
- same time (both local and remote) with full control over what
- servers/local-directories are to be used available to each user (each
- source needs its own .newsrc file). You may either switch from server
- to server, or have multiple newsrcs open at the same time (if a group is
- available from multiple sources, it is read from the first newsrc that
- has it available). It even allows you to use a remote news source and a
- local (or nfs-mounted) active file, all configurable at run-time.
-
- ------------------------------
-
- Subject: BASP: Article selection problem in trn 3.4.1
- Contributors: Jesus R. Aguillon <aguillon@netcom.com>,
- Wayne Davison <trn@clari.net>
-
- > When I do an article selection with 'A' and then '+' using trn 3.3 I get
- > the following in my kill-file:
- >
- > /: *test/:++
- >
- > Assuming the title is "test". When I enter the newsgroup it does the
- > selection properly. With trn 3.4.1 I get:
- >
- > /: *test/:I:++
- >
- > When I enter the newsgroup I get:
- >
- > Processing memorized commands...
- >
- > /: *test/:I:++
- >
- > 9220 ???I:++
- >
- > (Interrupted at article 9220)
- >
- > And no articles get selected. If I remove the :I then it works just like
- > trn 3.3. Is there something different in this case between 3.3 and 3.4.1?
-
- This is a slight botch in 3.4.1 that got fixed in version 3.5 --
- the 'I' is a modifier to ignore the THRU line and should have read:
- "/: *test/I:++", but an extra ':' got stuck in there.
-
- ------------------------------
-
- Subject: ASUS: Slow performance with trn using SLIP
- Contributors: Jim Kaufman <jmk@maroon.tc.umn.edu>,
- Wayne Davison <trn@clari.net>
-
- > I am running a Linux system that occassionally connects to the
- > University's machine so I can read news or mail. This is a 14.4Kbps
- > SLIP connection.
- >
- > I notice that when trn starts up it reads the entire active file,
- > which is over 400K long. Also, when I then post news, the Pnews
- > script seems to want to do the same thing, as well as read the
- > newsgroups file. Is there some way to avoid this? Maybe point
- > trn at an older active file (or is this a really bad idea?)
-
- Yeah, this is a drag over a slip line. Version 3.6 supports a new
- server command to grab the active file in smaller chunks (as small as
- one newsgroup) which will improve this if your server upgrades their
- nntp server to either nntp-1.5.12 (scheduled for release soon), INN 1.5
- (ask Rich Salz for a release date), or a slightly-patched INN 1.4 (ask
- Wayne Davison <trn@clari.net> for the patch).
-
- If you post from within trn Pnews should be sharing the active file that
- trn grabbed. If it's not, you probably have a trn/Pnews combination
- that is either too old or out of sync.
-
- As for the newsgroups file, people on a slip line would do well to
- modify Pnews to point to a local copy that they update from time to time
- (at least through version 3.5).
-
- Trn 3.6 has an improved Pnews that defaults to not grabbing the files
- (instead getting the info in an interactive session), but since this is
- _slower_ over a fast net connection there is an option to do things the
- old way that each user can specify.
-
- ------------------------------
-
- Subject: KIBF: trn 3.4.1 ignores some lines in big killfile
- Contributors: James Buster <bitbug@netcom.com>,
- Wayne Davison <trn@clari.net>, Larry W. Virden <lvirden@cas.org>
-
- > I have a local killfile for news.answers, which is 772 lines long. It seems
- > that two or three patterns in the killfile are ignored each time that I
- > read news.answers (I read it once per day, usually). Exactly which
- > patterns is different each time, but the result is that I must (K)ill
- > that subject again, producing a duplicate entry in news/answers/KILL.
- > I use sort and uniq on the killfile to help me identify and delete those
- > duplicate entries. This on a Sun running SunOS Release 4.1.3_U1.
- > Is this a known bug that's been fixed in later releases?
-
- [Davison:]
- I've never heard of this problem before. Using 'K' to deposit the kill
- commands in the killfile puts a fairly specific version of the subject
- into the kill file -- are you sure that the subjects aren't changing
- slightly, maybe in spacing or something minor so that the kill commands
- look similar but aren't quite the same?
-
- One thing you might do is to modify your kill file to make it more
- generic on the subjects you want to kill. Another option is to switch
- to using "Tj" (if you are using trn 3.5) to kill the subjects by thread
- instead of subject. This is useful if you're trying to weed out all the
- stuff you're not interested in in news.answers because the thread-kill
- commands automatically expire after the discussion dies.
-
- [Virden:]
- What COULD be done is to split the kills up between all the smaller
- *.answer groups so that no kill file is so large. After you get done
- doing all the comp.answers, rec.answers , etc. then you can go into
- news.answers and see what is left.
-
- ------------------------------
-
- Subject: ACNB: Trn thinks certain newsgroups are bogus; TIN doesn't
- Contributors: Daniel Jacobs <danielj@snark.wizard.com>,
- Wayne Davison <trn@clari.net>
-
- > I have a user who just switched to trn from tin. Some groups that show
- > up fine in tin, trn calls bogus and marks them as unsubscribed in
- > .newsrc, so if he goes back into tin after not being able to read them
- > in trn, he has to resubscribe again. Any ideas?
-
- What version of trn are you using? In older versions trn used to
- complain about redirected newsgroups as bogus (those with '=' in the 4th
- field of the active file), but a modern trn reports the redirection and
- allows the user to finish reading the remaining articles before they
- expire. It might be that the groups are on their last legs.
-
- The only other thing I can think of is that you're not using the same
- server for both tin and trn, but then you'd REALLY be messed up using
- the same .newsrc file due to the lack of a common numbering system.
-
- ------------------------------
-
- Subject: APNU: Why might trn 3.6 prompt newsgroups with 0 unread articles?
- Contributors: Fletcher Mattox <fletcher@cs.utexas.edu>
- Wayne Davison <trn@clari.net>,
- Mike Iglesias <iglesias@draco.acs.uci.edu>
-
- > If you specify a restriction on the command line, trn 3.6 prompts you
- > to read a newsgroup even when there are no unread articles in it.
- > Trn 3.5 didn't do this. Is there any way to get the old behavior?
-
- This is a restoration of the old behavior. Instead of typing "trn group"
- start trn and type "O group" (capital O). Another solution is to
- reinstall trn, removing the only line in sw.c that sets "emptyOnly" to
- TRUE. Here's the patch in case someone needs it, from Mike Iglesias:
-
- *** sw.c.dist Fri Nov 18 22:01:26 1994
- --- sw.c Thu Dec 8 22:27:48 1994
- ***************
- *** 164,170 ****
- #endif
- if (*s != '-' && *s != '+') { /* newsgroup pattern */
- setngtodo(s);
- - emptyOnly = TRUE;
- }
- else { /* normal switch */
- bool upordown = *s == '-' ? TRUE : FALSE;
- --- 164,169 ----
-
- ------------------------------
-
- Subject: OSTR: What's strn?
- Contributor: Clifford A. Adams <caadams@frontiernet.net>
-
- Strn was written by Clifford A. Adams <caadams@frontiernet.net>. It's
- based on trn 3.4.1, but adds many new capabilities to trn, such as a
- newsgroup browser, virtual newsgroups, scoring/rating of articles, and
- easy configuration menus. Strn has been developed and tested over the
- past year with the help of more than 50 alpha testers. The beta release
- is intended to make the current version more widely available, test out
- some of the new concepts (such as index-moderation using virtual
- newsgroups), and gather suggestions for improvement.
-
- Strn is still under development, although most of its planned features
- are implemented. Future versions of strn will mainly improve the
- documentation, scoring ease-of-use, and configurability of the program.
- Version 1.0 release is expected in a finite amount of time.
-
- More information, as well as source code for the beta-test version
- 0.9.2, is available from the following FTP sites:
- (North America, Eastern US): <URL:ftp://ftp.uu.net/news/trn/strn/>
- <URL:ftp://ftp.digex.net/pub/news/>
- (North America, Southwest US): <URL:ftp://perseus.unm.edu/pub/strn/>
- (United Kingdom):
- <URL:ftp://src.doc.ic.ac.uk/computing/news/software/readers/trn/strn/>
- (Europe, Netherlands): <URL:ftp://ftp.twi.tudelft.nl/pub/news/>
- (South Africa): <URL:ftp://ftp.ee.und.ac.za/pub/news/strn/>
-
- ------------------------------
-
- Subject: OVTC: I have an old version of trn. What changes have been made?
- Contributors: Peter J. Kappesser <Peter_Kappesser@promail.com>,
- Wayne Davison <trn@clari.net>
-
- Well, you could find out by ftp'ing the latest version of trn, uncompressing
- and de-tar-ing the NEW file... or I could just append most of it here.
- (Changes from trn 3.5 to 3.6 are listed in Part 1, Subject: OLVW.)
-
- ======================================================================
- If you're upgrading from trn 2.x see the discussion of the -a option,
- the 't' command (newsgroup selection level), and the 'T' command
- (article level & in kill files) for slight incompatibilities between
- trn 2.5 and trn 3.0.
-
- Changes from trn 3.4.1 to trn 3.5:
-
- o Enhanced the -p option to allow you to select how you'd like
- your postings to be selected. The default (which works the same
- as before) is -p (select your posting and its replies). Also
- available is -p+ (select all postings in the thread) and -pp
- (select the *parent* article and its replies).
- o Added the forward (^F) command to forward an article via mail.
- o Improved the tab command (skip cited text) to skip empty lines
- and choose the quotation character more intelligently.
- o You can now junk an article in just the current group via
- a search command using 'x'. E.g. /subject/:x
- o Included some code from Olaf Titz <uknf@rz.uni-karlsruhe.de>
- that allows you to tell trn to transform high-bit characters
- into their 7-bit ascii equivilents. See the _C command and
- the -Q option.
- o Added the back-scroll command: 'B'.
- o Added the -J<n> option to allow you to join truncated subjects
- into a common thread. The default for -J is 30 chars, not counting
- the Re: portion. I have the lines "&-J27" and "X&+J" in my Babylon
- 5 kill file to join all the Genie posts that get truncated into the
- proper thread.
- o Added the -K option to keep a group static (no new articles) while
- you read it. Useful for people who have a really slow kill file
- for a group -- use "&-K" and "X&+K" in such a kill file to make
- only that group stop growing until you exit the group and re-enter.
- o Added optional mouse support in an xterm window.
- o Added a new intrp (%q) to get the value of the last quoted input
- (%"). Useful for using elm for forwarding articles as it needs
- the answer to the question "To?" on the command line:
- -EFORWARDPOSTER="elm -i %h -s '%'[subject]' %q"
- (though you may wish to redefine the FORWARDHEADER variable too).
- o Fixed bugs in the handling of thread kills in partially-threaded
- groups (Tj now works even if the -a option wasn't specified) and
- and in the handling of the subject-kill command (Aj).
- o New files, HINTS.TRN is like HINTS but in a better format.
- (I renamed it to avoid conflicts with the directory "hints").
- o Portability enhancements to Configure and the support scripts.
- o Some fairly major and minor bugs fixed.
-
- Changes from trn 3.3 to trn 3.4.1:
-
- o Made the kill-file handling more consistent in how it
- deals with the THRU line. It now only ignores the THRU
- line for all selection commands. You can turn off this
- exception (and thus make all commands obey the THRU line)
- by turning off the -k option (using +k). You can also
- specify the 'I' modifier or the 'N' modifier to killfile
- searches to have them either ignore or not-ignore the
- THRU line, respectively.
- o Changed the %'s interp to not supply the leading and
- trailing single quotes to make it more useful.
- o The NNTP trn attempts to reconnect to the news server
- after it times out. If it is successful, trn continues.
- o The command /subj/M no longer assumes you meant /subj/r:M.
- o Automatically-generated killfile commands (e.g. the 'K'
- command) now escape a '/' that occurs in the subject string.
- o The _+ command (select whole thread) now starts reading
- the thread from the first unread article.
- o The -p self-matching code was improved to match a user's
- name more exactly so that people with short login names
- don't get improper matches.
- o Pnews was enhanced to deal with Followup-To: poster better
- when you choose to post anyway -- it now puts the user's
- address into the Cc: header and automatically corrects the
- Newsgroups: line.
- o Pnews returns to the prompt after an inews error instead of
- aborting. You can still choose to 'a'bort, if you like.
- o Speller now passes the ispell_options from Configure to
- spell, and Configure has been enhanced to prompt you for
- the options if either ispell or (new!) vspell can't be
- found.
- o Added the file Policy.sh.SH that puts your policy choices
- from the config.sh file into hints/Policy.sh. This allows
- you to use the Policy.sh file to prime the Configure choices
- on multiple machines or in the mthreads package without
- machine-specific selections getting in the way.
- o Upgraded Configure to the latest metaconfig release.
- o Fixed some MIME bugs and made the handling a little smarter.
- o Nested comment warnings removed from various include files.
- o Fixed several crash bugs and several nusiance bugs, including:
- * the problem with the NNTP trn mangling the date of
- new news groups (which caused either groups to get missed
- or groups to be re-offered).
- * the problem with the NNTP trn that caused it to think
- certain lines that begin with a '.' are the end of the
- list marker and quit when it got confused.
- * and lots more...
-
- Changes from trn 3.2 to trn 3.3:
-
- o Newsetup now looks for NEWSLIB/subscriptions for a default list
- of groups to subscribe the user to. If the file doesn't exist
- the NNTP version will attempt to grab it via the LIST SUBSCRIPTIONS
- command (available in INN and some nntp patches).
- [HINT: if you want your subscription file to default to all
- groups in the active file, link your subscription file to your
- active file -- trn will strip the info past the first space
- when it processes the .newsrc.]
- o The file newsnews will now default to a simple version update
- message instead of a welcome-to trn message (which is now provided
- by the newsetup file when creating a new .newsrc for a user).
- I still encourage you to install your own custom newsnews
- when trn is updated (and trn still doesn't install newsnews
- automatically -- you have to make this decision for your self).
- o Redirected and disabled groups (marked by '=' or 'x' in the active
- file) are now handled better, allowing you to read any remaining
- articles after a group gets redirected or disabled and warning you
- to either start using the new group name or that the group will
- not be receiving any new news.
- o Mime support is now prompted for in Configure and your system's
- display/store commands are remembered. We also handle a continued
- Content-Type header correctly now.
- o The tick (') interp modifier will generate a tick-quoted string
- with all ticks inside the string quoted. For example, %'s might
- generate (INCLUDING the "'"s) 'Ticks aren\'t a problem.'
- o If the environment variable FAST_PNEWS == y Pnews skips the "Are
- you sure?" question and the "include file" prompt. You can put
- -EFAST_PNEWS=y in the global INIT file, if you so desire.
- o Various bug fixes.
-
- Changes from trn 3.1 to trn 3.2:
-
- o Configure and the include file structure has been improved to
- install easier on more systems.
- o Fixed some non-portable test statements in Pnews.
- o Added the -Z option to allow you to turn on/off support for the
- two different database formats (-Zt, -Zo, -Zot, or +Z).
- o Configure now allows you set the default database support to
- thread files, overview files, both or none.
- o Trn and its support scripts handle ~/dirs in the newslib or
- rnlib better.
- o Various bug fixes.
-
- Changes from trn 3.0 to trn 3.1:
-
- o Added a new header-searching syntax: /string/Hheader:cmd.
- This allows you to match a string on any header that trn
- knows about and is faster on the NNTP side than full-header
- matching. Example: /: .../Hlines:j would junk all postings
- longer than 99 lines.
- o Two new commands can be put into a group's kill file: *j
- (kill all articles from THRU to the end of the group) and *X
- (kill all unselected articles from THRU to the end of the group).
- o Pnews (using artcheck) now checks the active file as well as
- the newsgroups file for each group on the Newsgroups line. This
- lets you know whenever you specify a group that doesn't exist.
- Also, the NNTP version has been fixed to provide full checking.
- o Pnews/Rnmail have been modified to allow you to type either upper
- or lower case for the response letters, and use "sp*ell" in addition
- to "c*heck" for the spelling checker ("s*end" is unchanged).
- o Pnews/Rnmail each have a pre-edit signature appending option.
- If you use the file DOTDIR/.news_sig INSTEAD of .signature Pnews
- will append your signature before you edit the file. Rnmail uses
- the file DOTDIR/.mail_sig. Note also that the names may be
- customized with the environment variables NEWSSIGNATURE and
- MAILSIGNATURE, if desired (allowing a per-group signature).
- o Added the modifiers '>' and ')' to interpreted strings. For
- example: %>f gives you the address only on the From line,
- while %)f gives you the real name portion.
- o Added the 'O' command (newsgroup level) that works just like 'o'
- except that it does not visit empty groups.
- o The killfile is fully saved before manual editing with Ctrl-K
- (message-id commands used to be saved only on exit from the group).
- o The screen is now refreshed when the window size changes.
- o Trn now makes use of stdlib.h, unistd.h (if available) and does a
- more intelligent inclusion of time.h & sys/time.h (as needed).
- o Trn doesn't loop through the current thread if unread articles
- still exist in it. Also fixed various problems with '>' & 'P'.
- o The 'D' command in the selector no longer jumps back to the top.
- o The NNTP version has a different new-article aquisition strategy.
- Your nntp server must send up-to-date information in response to
- the GROUP command (INN's nnrpd does) for a group to expand while
- you're in it. Also, you can now set the minimum time for trn to
- wait (see -z) before it refetches the active file at the end of
- the newsgroups. The default is 5 minutes.
- o Optional metamail support pauses between the headers and the
- metamail-interpreted article. Also, the 'v' command displays the
- raw article without metamail processing.
- o Numerous portability changes and bug fixes.
-
- Changes from trn 2.5 to trn 3.0:
-
- o Trn is now capable of reading more news database formats. It
- currently supports news overview (.overview files), mthreads
- (.thread files), and direct threading of the articles. The
- NNTP version supports the XTHREAD and XOVER NNTP extensions.
- If you compile trn with support for both formats it will figure
- out which groups (or which server) has which type of data and
- act accordingly.
- o Mthreads is now a separate package from trn since not everyone
- will need to use it. Look for it in the same place you found
- trn.
- o Trn attempts to build some useful default macros for your
- terminal's arrow keys. On the article level they move around
- in the thread; in the selector they change pages (left/right)
- and switch selections (up/down); on the newsgroup level they
- move by group (up/down) and enter a group (right). If you
- don't like this, turn it off with the +A option.
- o There's a new search scope -- the from line. For example:
- use /author/f+ to search for and select 'author's articles.
- o The thread selector has been extended to be a subject and
- article selector. Use the 'S'et selector command to change
- modes or use '=' to toggle between the article selector and
- the subject/thread selector (whichever was last in use).
- o The selector can now be sorted in a variety of ways: by date,
- subject, author, article count (in the subject/thread selector),
- or a combination of subject and date (in the article selector).
- The default is date order of the oldest unread article in a thread.
- Use the 'O'rder command to pick a new one or use 'R' to reverse
- the sort. See also the "-O<mode><order>" option to set your
- favorite mode and order. You can even put a "&-Oas" command (for
- example) into a group's kill file to set a per-group default.
- o The selector allows you to exclude all the non-selected articles
- from the display (i.e. narrow it) -- use 'E' to toggle this mode.
- o The selector has two new selection commands: '*' is used to select
- (or deselect) the current item and all other items with the same
- subject (useful in the article selector); '#' is used to make an
- overriding selection that immediately reads the current item
- ignoring all other selections.
- o You can now type 'M' in the selector to mark the current item's
- articles as read-but-returning and press 'Y' to yank back and
- select these articles before exiting the group.
- o Selections via searches are article-oriented (/subj/+) or
- thread-/subject-oriented (/subj/++). The article selector's
- default command is "+", while the thread/subject selector's is
- "++". In other words doing a "/subj" search with no specified
- command selects whatever type of object you're looking at in the
- selector.
- o If you specify the "-p" option, your postings and any replies to
- them are auto-selected whenever trn encounters them.
- o The '+' command in a non-threaded group visits the subject selector.
- You can also use "_a", "_s", "_t" or "_T" to force the article,
- subject, thread, or thread-but-I'll-settle-for-subject selector.
- o The selector displays subjects/threads that are partially-selected
- with a '*'. Fully-selected items are marked with a '+', as before.
- Use the article selector (possibly with 'E'xclusive set) to see
- which articles are selected in a partially-selected group (or just
- read them).
- o The selector remembers which subjects you selected (and didn't kill)
- and marks any newly-arriving articles in these subjects as selected
- until you exit the group.
- o The medium display mode of the thread selector has been improved
- to make it more readable.
- o The selector will leave out the middle portion of a subject that is
- too long to display the last two words of the subject. If you don't
- like this, use the -u option to leave them unbroken.
- o 'T'hread KILL commands now use message-ids to either junk
- or select articles. The 'T' command has been extended to be
- more flexible on the article level and has been added to the
- selector.
- o Another new command 'A'dds selection or kill commands to the KILL
- file, and works from both the article level and the selector.
- o The tree display has been updated to display unread-but-not-
- selected articles as <x>. Other unread articles are still [x],
- while read articles still display as (x).
- o Trn can enter a group without thread information available and
- thread it in the background while you read. Articles that have
- references that may or may not exist show up as "(?)". If you
- visit an article like this and wait there, the screen will update
- when we know for sure one way or the other (after processing more
- of the group).
- o The -a option is used to tell trn to thread all of the
- articles on entry to the group. If you don't specify this
- option a group may have a few (or many) articles that get
- threaded in the background and won't show up on the tree
- display until trn processes them.
- o Pressing "_+" on the article level will select the entire thread
- associated with the current article -- useful if you've selected
- individual articles and wish to read the rest of the discussion.
- Use "_-" to deselect the current thread.
- o The commands _N and _P move to the next and previous article
- in numberical (arrival) order (article level). Thus, you can
- use the command "._P" on the newsgroup level to start reading
- a group from the very last article to arrive.
- o The 't' command on the newsgroup level now turns OFF reading a
- group with threads (this setting is stored in the .newsrc file,
- so it is remembered from session to session). Trn 2.x used this
- to force threading to be turned ON, but it wasn't usually needed
- for normal operation. To temporarily turn threads on once inside
- a non-threaded group, use the 't' or "_t" commands (article level)
- or the "St" command (selector).
- o Trn now checks for the environment variable TRNMACRO on startup
- (which defaults to DOTDIR/.trnmac) before checking for the usual
- RNMACRO (DOTDIR/.rnmac) file. If you're running trn in its rn-
- compatible mode, only RNMACRO is tried.
- o The threaded and non-threaded data in a group has been unified,
- resulting in more cached information on the non-threaded side
- (such as the from line) and more efficient handling of missing
- articles, just to name two benefits.
- o The newsgroup information is freed when we enter a new group,
- not when we exit the current group. This means that if you
- quit out of a group (even accidentally), you can go back in
- and everything is still there except the selections, which
- get cleared on group exit.
- o KILL file processing will now ignore the THRU line as much as
- possible without slowing down the handling of KILL files.
- If you have really slow searches (header or article searches)
- or you use trn without a database it will use the THRU line
- to only search an article one time (as it would in rn). This
- means that if you have subject-oriented selection commands you
- don't have to worry about missing articles if you don't read all
- of them the first time you enter a group after they arrive. This
- also means that you won't have to edit your local kill file to
- remove the THRU line to force a re-scan -- this is now unnecessary.
- o Header parsing is now done in-memory, making threading and
- caching of articles much faster. This especially helps out
- NNTP users because trn used to write a tmp file for every
- header parse.
- o Several new mode letters (accessed by %m in macros) were added.
- The most significant are 'f' for the end (Finis) of the newsgroup
- selection level (instead of 'n') and 'e' for the end of the article
- reading level (instead of 'a').
- o A new % modifier has been introduced: "%:FMTx". This allows you
- to apply a printf-style column format to a regular %x expansion.
- For example, %:-50.50s would left-justify the subject into 50
- characters, exactly.
- o The -f option will make trn go a little faster by getting rid of the
- delay/prompt after kill file processing, printing the "skipping
- article" message, and printing the "Depositing KILL command" message.
- This is the default if -t (terse) is specified, but can be overriden
- by specifying +f after the -t option.
- o A new option for the gadget-conscious (-B) displays a spinner when
- trn is processing articles in the background.
- o Added the -G option to make the newsgroup 'g'o command look for
- near matches (for those typing mistakes).
- o New newsgroups that are left unsubscribed are not appended to the
- .newsrc unless you use the -I option or you're running an NNTP
- version that does not use the NEWGROUPS code.
- o Support for metamail's mime handling is now built into the code --
- see the METAMAIL define in common.h.
- o Pnews does more checking of your article before posting, has a
- spelling-check option, and allows the Cc: header to be used to
- send mail while posting the article.
-
- Changes from trn 1.0.3 to trn 2.5:
-
- o Added the '(' and ')' commands (article level) to move to an
- article's previous/next sibling, including "cousin" siblings.
- o The 'A'bandon command (newsgroup level) forgets all changes to the
- current newsgroup since you first started trn.
- o The thread selector now allows you type type 'c'/'y' to catchup
- the group without chasing cross-references.
- o Added 'z' and 'Z' commands (article level) supersede the current
- article ('Z' also including the original text).
- o The g command (newsgroup level) will go to a newsgroup by number
- where the the number corresponds to that shown in the 'L'ist
- command.
- o Added the "-o" option to use the old method of junking articles in
- the thread commands (they didn't chase cross-references in trn 1.x)
- o Added the "-b" option to read articles in a breadth-first descent
- of the article tree. You can specify this command at runtime to
- switch from breadth-first (type "&-b") to depth-first ("&+b).
- o Added the "-j" option to tell trn to pass control characters through
- the pager unharmed.
-
- ------------------------------
- End of trn newsreader FAQ, part 2/2.
-