1This file will aquaint you with the user-visible changes in trn 3.x.
2
3If you're upgrading from trn 2.x see the discussion of the -a option,
4the 't' command (newsgroup selection level), and the 'T' command
5(article level & in kill files) for slight incompatibilities between
6trn 2.5 and trn 3.0.
7
8Changes from trn 3.5 to trn 3.6:
9
10   o	Added support for slow network connections by: (1) making use
11	of the LIST ACTIVE <group.name> extension (if available),
12	(2) beginning to display the received article as it is received
13	from nntp, and (3) making the Pnews (posting) script query the
14	group info more efficiently.
15   o	Changed nntplist's command-line syntax slightly so that it is
16	more orthoganal and so that it can pass an argument to LIST
17	ACTIVE or LIST NEWSGROUPS.  ** If you use nntplist in your own
18	scripts you'll need to switch them over to using the -o (output)
19	option. **
20   o	Added the Ctrl-E command to display the end of the current article.
21   o	Enhanced the ':' command to operate on non selected thread/articles
22	(use ::cmd) or to operateon just the current thread (use :.cmd or
23	::.cmd).
24   o	Added a 't' modifier for the search command to start the search
25	at the top of the group.  E.g.:  /subject string/t:+
26	The default for searches in the selector has always been the top
27	of the group, so this only affects the command while reading
28	articles.
29   o	Improved the catchup command to allow you to specify an
30	article count to leave unread in the group.
31   o	Added a new sort order for the article selector -- by 'n'umber.
32   o	Enhanced the %( arg = regex ? : ) syntax to allow a % expansion
33	in the regex portion of the comparison.
34   o	Enhanced xref code to not go sub-optimal on C news's single-group
35	xref lines.
36   o	Added support for generic authentification (available in the
37	reference NNTP 1.5.12 and INN 1.5).
38   o	Fixed an elusive crash bug that would not let some people run
39	trn from cron.
40   o	Other misc. bug fixes.
41
42Changes from trn 3.4.1 to trn 3.5:
43
44   o	Enhanced the -p option to allow you to select how you'd like
45	your postings to be selected.  The default (which works the same
46	as before) is -p (select your posting and its replies).  Also
47	available is -p+ (select all postings in the thread) and -pp
48	(select the *parent* article and its replies).
49   o	Added the forward (^F) command to forward an article via mail.
50   o	Improved the tab command (skip cited text) to skip empty lines
51	and choose the quotation character more intelligently.
52   o	You can now junk an article in just the current group via
53	a search command using 'x'.  E.g.  /subject/:x
54   o	Included some code from Olaf Titz <uknf@rz.uni-karlsruhe.de>
55	that allows you to tell trn to transform high-bit characters
56	into their 7-bit ascii equivilents.  See the _C command and
57	the -Q option.
58   o	Added the back-scroll command: 'B'.
59   o	Added the -J<n> option to allow you to join truncated subjects
60	into a common thread.  The default for -J is 30 chars, not counting
61	the Re: portion.  I have the lines "&-J27" and "X&+J" in my Babylon
62	5 kill file to join all the Genie posts that get truncated into the
63	proper thread.
64   o	Added the -K option to keep a group static (no new articles) while
65	you read it.  Useful for people who have a really slow kill file
66	for a group -- use "&-K" and "X&+K" in such a kill file to make
67	only that group stop growing until you exit the group and re-enter.
68   o	Added optional mouse support in an xterm window.
69   o	Added a new intrp (%q) to get the value of the last quoted input
70	(%").  Useful for using elm for forwarding articles as it needs
71	the answer to the question "To?" on the command line:
72		-EFORWARDPOSTER="elm -i %h -s '%'[subject]' %q"
73	(though you may wish to redefine the FORWARDHEADER variable too).
74   o	Fixed bugs in the handling of thread kills in partially-threaded
75	groups (Tj now works even if the -a option wasn't specified) and
76	and in the handling of the subject-kill command (Aj).
77   o	New files, HINTS.TRN is like HINTS but in a better format.
78	(I renamed it to avoid conflicts with the directory "hints").
79   o	Portability enhancements to Configure and the support scripts.
80   o	Some fairly major and minor bugs fixed.
81
82Changes from trn 3.3 to trn 3.4.1:
83
84   o	Made the kill-file handling more consistent in how it
85	deals with the THRU line.  It now only ignores the THRU
86	line for all selection commands.  You can turn off this
87	exception (and thus make all commands obey the THRU line)
88	by turning off the -k option (using +k).  You can also
89	specify the 'I' modifier or the 'N' modifier to killfile
90	searches to have them either ignore or not-ignore the
91	THRU line, respectively.
92   o	Changed the %'s interp to not supply the leading and
93	trailing single quotes to make it more useful.
94   o	The NNTP trn attempts to reconnect to the news server
95	after it times out.  If it is successful, trn continues.
96   o	The command /subj/M no longer assumes you meant /subj/r:M.
97   o	Automatically-generated killfile commands (e.g. the 'K'
98	command) now escape a '/' that occurs in the subject string.
99   o	The _+ command (select whole thread) now starts reading
100	the thread from the first unread article.
101   o	The -p self-matching code was improved to match a user's
102	name more exactly so that people with short login names
103	don't get improper matches.
104   o	Pnews was enhanced to deal with Followup-To: poster better
105	when you choose to post anyway -- it now puts the user's
106	address into the Cc: header and automatically corrects the
107	Newsgroups: line.
108   o	Pnews returns to the prompt after an inews error instead of
109	aborting.  You can still choose to 'a'bort, if you like.
110   o	Speller now passes the ispell_options from Configure to
111	spell, and Configure has been enhanced to prompt you for
112	the options if either ispell or (new!) vspell can't be
113	found.
114   o	Added the file Policy.sh.SH that puts your policy choices
115	from the config.sh file into hints/Policy.sh.  This allows
116	you to use the Policy.sh file to prime the Configure choices
117	on multiple machines or in the mthreads package without
118	machine-specific selections getting in the way.
119   o	Upgraded Configure to the latest metaconfig release.
120   o	Fixed some MIME bugs and made the handling a little smarter.
121   o	Nested comment warnings removed from various include files.
122   o	Fixed several crash bugs and several nusiance bugs, including:
123	   *	the problem with the NNTP trn mangling the date of
124		new news groups (which caused either groups to get missed
125		or groups to be re-offered).
126	   *	the problem with the NNTP trn that caused it to think
127		certain lines that begin with a '.' are the end of the
128		list marker and quit when it got confused.
129	   *	and lots more...
130
131Changes from trn 3.2 to trn 3.3:
132
133   o	Newsetup now looks for NEWSLIB/subscriptions for a default list
134	of groups to subscribe the user to.  If the file doesn't exist
135	the NNTP version will attempt to grab it via the LIST SUBSCRIPTIONS
136	command (available in INN and some nntp patches).
137	[HINT:  if you want your subscription file to default to all
138	groups in the active file, link your subscription file to your
139	active file -- trn will strip the info past the first space
140	when it processes the .newsrc.]
141   o	The file newsnews will now default to a simple version update
142	message instead of a welcome-to trn message (which is now provided
143	by the newsetup file when creating a new .newsrc for a user).
144	I still encourage you to install your own custom newsnews
145	when trn is updated (and trn still doesn't install newsnews
146	automatically -- you have to make this decision for your self).
147   o	Redirected and disabled groups (marked by '=' or 'x' in the active
148	file) are now handled better, allowing you to read any remaining
149	articles after a group gets redirected or disabled and warning you
150	to either start using the new group name or that the group will
151	not be receiving any new news.
152   o	Mime support is now prompted for in Configure and your system's
153	display/store commands are remembered.  We also handle a continued
154	Content-Type header correctly now.
155   o	The tick (') interp modifier will generate a tick-quoted string
156	with all ticks inside the string quoted.  For example, %'s might
157	generate (INCLUDING the "'"s)  'Ticks aren\'t a problem.'
158   o	If the environment variable FAST_PNEWS == y Pnews skips the "Are
159	you sure?" question and the "include file" prompt.  You can put
160	-EFAST_PNEWS=y in the global INIT file, if you so desire.
161   o	Various bug fixes.
162
163Changes from trn 3.1 to trn 3.2:
164
165   o	Configure and the include file structure has been improved to
166	install easier on more systems.
167   o	Fixed some non-portable test statements in Pnews.
168   o	Added the -Z option to allow you to turn on/off support for the
169	two different database formats (-Zt, -Zo, -Zot, or +Z).
170   o	Configure now allows you set the default database support to
171	thread files, overview files, both or none.
172   o	Trn and its support scripts handle ~/dirs in the newslib or
173	rnlib better.
174   o	Various bug fixes.
175
176Changes from trn 3.0 to trn 3.1:
177
178   o	Added a new header-searching syntax:  /string/Hheader:cmd.
179	This allows you to match a string on any header that trn
180	knows about and is faster on the NNTP side than full-header
181	matching.  Example:  /: .../Hlines:j  would junk all postings
182	longer than 99 lines.
183   o	Two new commands can be put into a group's kill file: *j
184	(kill all articles from THRU to the end of the group) and *X
185	(kill all unselected articles from THRU to the end of the group).
186   o	Pnews (using artcheck) now checks the active file as well as
187	the newsgroups file for each group on the Newsgroups line.  This
188	lets you know whenever you specify a group that doesn't exist.
189	Also, the NNTP version has been fixed to provide full checking.
190   o	Pnews/Rnmail have been modified to allow you to type either upper
191	or lower case for the response letters, and use "sp*ell" in addition
192	to "c*heck" for the spelling checker ("s*end" is unchanged).
193   o	Pnews/Rnmail each have a pre-edit signature appending option.
194	If you use the file DOTDIR/.news_sig INSTEAD of .signature Pnews
195	will append your signature before you edit the file.  Rnmail uses
196	the file DOTDIR/.mail_sig.  Note also that the names may be
197	customized with the environment variables NEWSSIGNATURE and
198	MAILSIGNATURE, if desired (allowing a per-group signature).
199   o	Added the modifiers '>' and ')' to interpreted strings.  For
200	example:  %>f gives you the address only on the From line,
201	while %)f gives you the real name portion.
202   o	Added the 'O' command (newsgroup level) that works just like 'o'
203	except that it does not visit empty groups.
204   o	The killfile is fully saved before manual editing with Ctrl-K
205	(message-id commands used to be saved only on exit from the group).
206   o	The screen is now refreshed when the window size changes.
207   o	Trn now makes use of stdlib.h, unistd.h (if available) and does a
208	more intelligent inclusion of time.h & sys/time.h (as needed).
209   o	Trn doesn't loop through the current thread if unread articles
210	still exist in it.  Also fixed various problems with '>' & 'P'.
211   o	The 'D' command in the selector no longer jumps back to the top.
212   o	The NNTP version has a different new-article aquisition strategy.
213	Your nntp server must send up-to-date information in response to
214	the GROUP command (INN's nnrpd does) for a group to expand while
215	you're in it.  Also, you can now set the minimum time for trn to
216	wait (see -z) before it refetches the active file at the end of
217	the newsgroups.  The default is 5 minutes.
218   o	Optional metamail support pauses between the headers and the
219	metamail-interpreted article.  Also, the 'v' command displays the
220	raw article without metamail processing.
221   o	Numerous portability changes and bug fixes.
222
223Changes from trn 2.5 to trn 3.0:
224
225   o	Trn is now capable of reading more news database formats.  It
226	currently supports news overview (.overview files), mthreads
227	(.thread files), and direct threading of the articles.  The
228	NNTP version supports the XTHREAD and XOVER NNTP extensions.
229	If you compile trn with support for both formats it will figure
230	out which groups (or which server) has which type of data and
231	act accordingly.
232   o	Mthreads is now a separate package from trn since not everyone
233	will need to use it.  Look for it in the same place you found
234	trn.
235   o	Trn attempts to build some useful default macros for your
236	terminal's arrow keys.  On the article level they move around
237	in the thread; in the selector they change pages (left/right)
238	and switch selections (up/down); on the newsgroup level they
239	move by group (up/down) and enter a group (right).  If you
240	don't like this, turn it off with the +A option.
241   o	There's a new search scope -- the from line.  For example:
242	use /author/f+ to search for and select 'author's articles.
243   o	The thread selector has been extended to be a subject and
244	article selector.  Use the 'S'et selector command to change
245	modes or use '=' to toggle between the article selector and
246	the subject/thread selector (whichever was last in use).
247   o	The selector can now be sorted in a variety of ways:  by date,
248	subject, author, article count (in the subject/thread selector),
249	or a combination of subject and date (in the article selector).
250	The default is date order of the oldest unread article in a thread.
251	Use the 'O'rder command to pick a new one or use 'R' to reverse
252	the sort.  See also the "-O<mode><order>" option to set your
253	favorite mode and order.  You can even put a "&-Oas" command (for
254	example) into a group's kill file to set a per-group default.
255   o	The selector allows you to exclude all the non-selected articles
256	from the display (i.e. narrow it) -- use 'E' to toggle this mode.
257   o	The selector has two new selection commands:  '*' is used to select
258	(or deselect) the current item and all other items with the same
259	subject (useful in the article selector); '#' is used to make an
260	overriding selection that immediately reads the current item
261	ignoring all other selections.
262   o	You can now type 'M' in the selector to mark the current item's
263	articles as read-but-returning and press 'Y' to yank back and
264	select these articles before exiting the group.
265   o	Selections via searches are article-oriented (/subj/+) or
266	thread-/subject-oriented (/subj/++).  The article selector's
267	default command is "+", while the thread/subject selector's is
268	"++".  In other words doing a "/subj" search with no specified
269	command selects whatever type of object you're looking at in the
270	selector.
271   o	If you specify the "-p" option, your postings and any replies to
272	them are auto-selected whenever trn encounters them.
273   o	The '+' command in a non-threaded group visits the subject selector.
274	You can also use "_a", "_s", "_t" or "_T" to force the article,
275	subject, thread, or thread-but-I'll-settle-for-subject selector.
276   o	The selector displays subjects/threads that are partially-selected
277	with a '*'.  Fully-selected items are marked with a '+', as before.
278	Use the article selector (possibly with 'E'xclusive set) to see
279	which articles are selected in a partially-selected group (or just
280	read them).
281   o	The selector remembers which subjects you selected (and didn't kill)
282	and marks any newly-arriving articles in these subjects as selected
283	until you exit the group.
284   o	The medium display mode of the thread selector has been improved
285	to make it more readable.
286   o	The selector will leave out the middle portion of a subject that is
287	too long to display the last two words of the subject.  If you don't
288	like this, use the -u option to leave them unbroken.
289   o	'T'hread KILL commands now use message-ids to either junk
290	or select articles.  The 'T' command has been extended to be
291	more flexible on the article level and has been added to the
292	selector.
293   o	Another new command 'A'dds selection or kill commands to the KILL
294	file, and works from both the article level and the selector.
295   o	The tree display has been updated to display unread-but-not-
296	selected articles as <x>.  Other unread articles are still [x],
297	while read articles still display as (x).
298   o	Trn can enter a group without thread information available and
299	thread it in the background while you read.  Articles that have
300	references that may or may not exist show up as "(?)".  If you
301	visit an article like this and wait there, the screen will update
302	when we know for sure one way or the other (after processing more
303	of the group).
304   o	The -a option is used to tell trn to thread all of the
305	articles on entry to the group.  If you don't specify this
306	option a group may have a few (or many) articles that get
307	threaded in the background and won't show up on the tree
308	display until trn processes them.
309   o	Pressing "_+" on the article level will select the entire thread
310	associated with the current article -- useful if you've selected
311	individual articles and wish to read the rest of the discussion.
312	Use "_-" to deselect the current thread.
313   o	The commands _N and _P move to the next and previous article
314	in numberical (arrival) order (article level).  Thus, you can
315	use the command "._P" on the newsgroup level to start reading
316	a group from the very last article to arrive.
317   o	The 't' command on the newsgroup level now turns OFF reading a
318	group with threads (this setting is stored in the .newsrc file,
319	so it is remembered from session to session).  Trn 2.x used this
320	to force threading to be turned ON, but it wasn't usually needed
321	for normal operation.  To temporarily turn threads on once inside
322	a non-threaded group, use the 't' or "_t" commands (article level)
323	or the "St" command (selector).
324   o	Trn now checks for the environment variable TRNMACRO on startup
325	(which defaults to DOTDIR/.trnmac) before checking for the usual
326	RNMACRO (DOTDIR/.rnmac) file.  If you're running trn in its rn-
327	compatible mode, only RNMACRO is tried.
328   o	The threaded and non-threaded data in a group has been unified,
329	resulting in more cached information on the non-threaded side
330	(such as the from line) and more efficient handling of missing
331	articles, just to name two benefits.
332   o	The newsgroup information is freed when we enter a new group,
333	not when we exit the current group.  This means that if you
334	quit out of a group (even accidentally), you can go back in
335	and everything is still there except the selections, which
336	get cleared on group exit.
337   o	KILL file processing will now ignore the THRU line as much as
338	possible without slowing down the handling of KILL files.
339	If you have really slow searches (header or article searches)
340	or you use trn without a database it will use the THRU line
341	to only search an article one time (as it would in rn).  This
342	means that if you have subject-oriented selection commands you
343	don't have to worry about missing articles if you don't read all
344	of them the first time you enter a group after they arrive.  This
345	also means that you won't have to edit your local kill file to
346	remove the THRU line to force a re-scan -- this is now unnecessary.
347   o	Header parsing is now done in-memory, making threading and
348	caching of articles much faster.  This especially helps out
349	NNTP users because trn used to write a tmp file for every
350	header parse.
351   o	Several new mode letters (accessed by %m in macros) were added.
352	The most significant are 'f' for the end (Finis) of the newsgroup
353	selection level (instead of 'n') and 'e' for the end of the article
354	reading level (instead of 'a').
355   o	A new % modifier has been introduced: "%:FMTx".  This allows you
356	to apply a printf-style column format to a regular %x expansion.
357	For example, %:-50.50s would left-justify the subject into 50
358	characters, exactly.
359   o	The -f option will make trn go a little faster by getting rid of the
360	delay/prompt after kill file processing, printing the "skipping
361	article" message, and printing the "Depositing KILL command" message.
362	This is the default if -t (terse) is specified, but can be overriden
363	by specifying +f after the -t option.
364   o	A new option for the gadget-conscious (-B) displays a spinner when
365	trn is processing articles in the background.
366   o	Added the -G option to make the newsgroup 'g'o command look for
367	near matches (for those typing mistakes).
368   o	New newsgroups that are left unsubscribed are not appended to the
369	.newsrc unless you use the -I option or you're running an NNTP
370	version that does not use the NEWGROUPS code.
371   o	Support for metamail's mime handling is now built into the code --
372	see the METAMAIL define in common.h.
373   o	Pnews does more checking of your article before posting, has a
374	spelling-check option, and allows the Cc: header to be used to
375	send mail while posting the article.
376
377Changes from trn 1.0.3 to trn 2.5:
378
379   o	Added the '(' and ')' commands (article level) to move to an
380	article's previous/next sibling, including "cousin" siblings.
381   o	The 'A'bandon command (newsgroup level) forgets all changes to the
382	current newsgroup since you first started trn.
383   o	The thread selector now allows you type type 'c'/'y' to catchup
384	the group without chasing cross-references.
385   o	Added 'z' and 'Z' commands (article level) supersede the current
386	article ('Z' also including the original text).
387   o	The g command (newsgroup level) will go to a newsgroup by number
388	where the the number corresponds to that shown in the 'L'ist
389	command.
390   o	Added the "-o" option to use the old method of junking articles in
391	the thread commands (they didn't chase cross-references in trn 1.x)
392   o	Added the "-b" option to read articles in a breadth-first descent
393	of the article tree.  You can specify this command at runtime to
394	switch from breadth-first (type "&-b") to depth-first ("&+b).
395   o	Added the "-j" option to tell trn to pass control characters through
396	the pager unharmed.
397