4.4BSD/usr/src/contrib/news/trn3/NEW

This file will aquaint you with the user-visible changes in trn 3.0.

For a list of bug fixes, see the ChangeLog file.

See the discussion of the -a option and 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 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.