New features in release 6.4 (compared to release 6.3.10):
---------------------------------------------------------

Incompatible changes:
	Regular expressions in kill file are now CASE INSENSITIVE by default.
	- must use '/=' instead of '/' to get 6.3 behaviour.

Major improvements:
	Uses standard .newsrc
	Individual articles can be left unread between invocations.
	Even individual digest sub-articles can remain unread!!!
	Articles can also remain "selected" between invocations.
	New faster expiration in database
	Unsubscribed groups can be omitted from .newsrc.
	More flexible and configureable installation.
	Locking to avoid simultaneous use of nn.
	Global database locking.
	Optional accounting, quota, and authorization possibilities.
	Presentation sequence can now be (partially) based on .newsrc
	Nnmaster can automatically archive all new articles in selected groups.
	Related groups can be merged into one group when shown to the user.
	Menus are now sorted in "subject age" order.
	Map command can now include definition of anonymous macroes.
	Auto kill/select possibilities significantly expanded.


Level of program changes (from user's point of view):
 *** => new program, ** => major changes/rewrite, * => minor changes

 **	nn(1)		The news reader program
 ***	nnacct(1m)	Accounting, quota, and access management
 *	nnadmin(1m)	The administration program (link to nn)
 *	nncheck(1)	Check for unread articles (link to nn)
 **	nngoback(1)	Mark older articles as unread (link to nn)
 ***	nngrab(1)	Faster keyword search
 **	nngrep(1)	Grep for news groups (link to nn)
 **	nnmaster(8)	Database manager
 ***	nnpost(1)	Standalone posting program (link to nn).
 ***	nnspew(8)	Subject list maintenance
 **	nntidy(1)	Cleans up the rc file (link to nn)
 ***	nnstats(1m)	Collection and expiration statistics
 *	nnusage(1)	Show usage statistics


Changes in standard key mappings:
---------------------------------

selection mode:
 CR -> continue-no-mark		(IMPORTANT!)
 J  -> junk-articles
 L  -> leave-next
 "  -> layout

reading mode:
 L  -> leave-next


New key commands:
-----------------

continue-no-mark	(CR)
junk-articles		(J)
leave-next		(L)


New control structures in init file
-----------------------------------

on host ... end		Execute only on specified hosts
on term ... end		Execute only on specified terminals
on slow ... end		Execute only at slow speed
on fast ... end		Execute only at higher speeds (>2400)
save-files ... end	Specify default save files for groups
			without messing up the sequence.

:bug			send a bug report
:cost			show current accounting figures
:local VARIABLE [VALUE]	make VARIABLE local to current group [and set to VALUE]
:rmail			read incoming mail (no update)
:show rc [GROUP]	show (current) GROUPS .newsrc entry

New menu sorting methods
------------------------

:sort sender
:sort lexical
:sort subject  (will order subjects according to age of first article)


New variables
-------------

append-signature-mail	Explicitly append .signature to outgoing mail
append-signature-post	Explicitly append .signature to posted articles
attributes		Article attribute symbols
auto-junk-seen		Automatically mark seen articles read
auto-preview-mode	Enter preview mode when selecting an article on menu
backup	(new semantics)	Keep backup of rc file (-B)
backup-suffix STR	String to append to backup file names (.bak)
bug-report-address	Mail address for the :bug command
case-fold-search	String and pattern matching is case independent (! -i)
collapse-subject	Offset at which long subjects are compressed
confirm-auto-quit	User must confirm quit after reading last group
confirm-create		User must confirm creation of new files
confirm-entry		User must confirm entry to groups
confirm-entry-limit N	- confirm only for groups with more than N unread art.
confirm-junk-seen	Ask for confirmation before marking seen articles read
cross-filter-seq	Show cross posted articles in first group in sequence
data-bits N		Screen output is 7 or 8 bits
decode-skip-prefix N	Automatically unshar uuencoded articles if N>0
edit-patch-command	Allow user to edit command used by :patch before exec
edit-print-command	Allow user to edit command used by :print before exec
edit-unshar-command	Allow user to edit command used by :unshar before exec
edit-response-check	Don't send articles if they are not edited.
editor CMD		Use speficied editor instead of $EDITOR
entry-report-limit N	Give entry report for groups with >N unread articles
expired-message-delay N	Wait for N seconds after telling article is expired.
flush-typeahead		Flush typeahead before reading each command
include-full-header	M command includes full header in mailed articles.
keep-unsubscribed	Keep unsubscribed groups in .newsrc
mailer CMD		Use CMD to send outgoing mail
mailer-pipe-input	'mailer' reads standard input/takes file argument
mmdf-format		Folders are written in MMDF format
new-group-action N	Specifies how NEW groups are handles -- see :man
newsrc FILE		Specify alternative .newsrc file (new semantics)
nntp-cache-dir DIR	Alternative directory for nntp cache files
nntp-cache-size N	Max number of different files in cache.
orig-to-include-mask N	Specifies which header fields are placed in Orig-To:
preview-continuation N	Specifies what to do after preview of one article
preview-mark-read	Previewing an article marks it read
query-signature		Ask for confirmation before appending .signature
quick-count		Use quick method to count unread articles in .newsrc
re-layout N		Presentation of Re: prefixes on menu subjects
repeat-group-query	Cause 'nn -g' to repeat group query (-r)
report-cost		Report cost of session on exit
response-check-pause N	Wait N seconds after mailing/posting for error check
response-default-answer STR	Default answer to action prompt
retain-seen-status	Retain articles' seen status between invocations
retry-on-error N	Retry N times if open of article fails
save-counter-offset	First value of save counter
scroll-clear-page	Scrolling clears page before drawing next page
select-on-sender	Should = command on menu match on sender or subject
select-leave-next	Ask to mark leave-next articles selected on entry
slow-mode		Minimize screen output
slow-speed SPEED	'on slow' clause is true for this and lower speeds
sort-mode N		Default sort mode for menus and :sort command
spell-checker CMD	Spelling checker for edited messages (one arg)
subject-match-limit N	Treat subjects matching in N characters as identical
subject-match-offset N	Skip N characters of subjects before comparison
subject-match-parts	Treat subjects matching upto first digit as idential
suggest-default-save	Show default save file name on prompt line.
tidy-newsrc		Automatically remove garbage from .newsrc
update-frequency N	Write .newsrc for every N groups
use-selections		Use select file
visible-bell		Use visible bell if defined in termcap/terminfo
wrap-header-margin	Fold long header lines over multiple lines


New options:
------------

nnmaster: -G -l [lock message] -i -H -k -O -X
	  -I [limit] -D [level] -Q   [[!]group]...
nntidy:   -N -Q -v -a -c -i -r -s -u
nngrep:   -a -n -p -r -s -u -l
nncheck:  -c [groups]...
nngoback: -v -i [groups]...
nn:	  -Ifiles -nsender -i

nnadmin changes
---------------

E)xpire and I)nitialize commands now requires confirmation also when
called from command line:
	nnadmin =EYW	-- request expire (from cron)
	nnadmin IY	-- request rebuild

Z)ap in GROUP menu -- will call rmgroup to remove group.
V)alidation can now be run from nn's :admin command.
D)ump entry on master menu.
! - will fork subshell on all menus.


Other changes (highlights):
---------------------------

NOTICE: nn no longer relies on the `min' field in the active file to
	detect expire. So there is no need to run the `upact' program
	with Cnews anymore.

nntidy, nngoback and nngrep are now integrated into nn giving them a
much greater flexibility, e.g. you can go back on individual groups or
hierarchies (interactively).

nnmaster can now ignore and optionally remove badly formed and
out-dated articles in the news spool directory (not with NNTP).
This can give more accurate numbers of unread articles, and also
smaller databases.

Individual groups and group hierarchies can now be permanently
excluded from the database, and per-group flags can be permanantly set
in the GROUPS file. Groups can be automatically archived and archive
is directly available from nn. Some possibilities are:

	R	recollect all articles on every scan
	X	ignore group
	D	always try to split articles as digests
	N	never attempt to digest articles
	>file	append all new articles to file

'*' part counter can now be specified anywhere in save file names.
Several roblems with `$N' has been fixed.

Default save file names are now expanded ($L/$F/$G) when shown.

RC, RC:nnn, and RC:string forms can now be specified in the
presentation sequence to use all or part of .newsrc as the
group order information when building presentation sequence.

The kill file can now contain entries which "trigger" on matching more
than one field or value, and it may also contain "kill unless" entries.
For example, to kill all articles NOT from ME on subject "XY.*Z:" :
	group:~n=&s/:ME:XY.*Z\:
(these complex entries must be entered manually into the kill file).

Kill entries can work for a set of groups specified with a regular
expression, e.g.	/^news\.*:+n=:Kim F. Storm

Timezone is now considered when sorting articles on date.

Single character arrow keys are no longer recognized as arrow keys if
they send the same code as "erase" "kill" "interrupt" CR or NL!!!

Now parses "n", "x", and "=group" codes in the active file and handles
groups accordingly.

Unsubscribed groups can now be omitted from .newsrc provided
new-group-action is set appropriately.  It uses per-group creation
time stamps saved either in a .nn/LAST file or an rn compatible
.rnlast file.

nnmaster will now dynamically expand the MASTER file, and thus never
run out of "free group slots".

"q" and "Q" can now be used in addition to ^G and "interrupt" to
break out of multi-page listings (hit any key to continue).

nn -a0 will now allow you to (U)nsubscribe to a group and (r)ead a
group directly.  It also accepts a (q)uit answer.

Return value when saving through a pipe is now checked and an error
message is given if the command failed.

Multiple, alternative init files can now be specified to nn via the -I
option:
	nn -Ia,,b	First read a, then global init file, then b.
	nn -I,init	This is the default (read global, then local file)

"on term" can now match several terminal types, e.g. "on term t1 t2 t9"

G command now acts "reasonnable" on empty reply to the "number of
(extra) articles" prompt:
	If goto another group with unread articles => j
	If goto another group without unread articles => a
	If goto same group with more unread articles => u
	If goto same group without more unread articles => a

The G command can now search on sender as well as subject (and both).

Cross postings are now eliminated according to the presentation
sequence rather than the Newsgroups: line by default.  Here is what
Wayne Davison has said about the new method:

    Now that I have been using "tn"s article selector and see the same
    subjects appear in a second group, I agree with you totally that
    your new method of handling cross-posted articles is the right way
    to go.  It gets especially annoying when I have marked a
    cross-posted article as unread in one group and encounter it in a
    second group -- I must remember to mark it unread again or it will
    be marked as read in both groups.  Just thought you might like to
    know.


Four new "selectors" in group sequence.  Neither of these include
anything directly in the sequence, but they will EXCLUDE groups from
the sequence:
	!:X groups	excludes groups not in .newsrc, e.g. "!:X alt*"
			will exclude all "alt" groups not found in .newsrc.
	!:O groups	exclude groups unless they are new, e.g.
			"!:O bionet*" will ignore OLD bionet groups even
			when they occur in .newsrc.
	!:U groups	exclude unsubscribed groups.
	!:N groups	exclude new groups.


$(VAR) is now expanded in file names (VAR is an environment variable).

And lots more if you upgrade from 6.3.0!!!
