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!!!