Provided by: trn4_4.0-test77-17build1_amd64 bug

NAME

       trn - threaded read news program

SYNOPSIS

       trn [options] [newsgroups]

DESCRIPTION

       Trn  is  a  threaded version of rn, which is a replacement for the readnews(1) program.  Being "threaded"
       means that the articles are interconnected in reply order.  Each discussion thread is a tree of  articles
       where  all  the reply (child) articles branch off from their respective originating (parent) articles.  A
       representation of this tree (or a portion of it) is displayed in the article header as  you  are  reading
       news.   This  gives  you  a  better feel for how all the articles are related, and even lets you see at a
       glance when an article has replies -- a good thing to check before  posting.   In  addition,  trn  has  a
       thread selector that allows you to quickly browse through a list of subjects and choose the ones you find
       interesting.   This thread selector sorts articles according to various criteria and can be switched into
       various display modes that allows you to pick all the subjects  separately  (threads  can  have  multiple
       subjects) or even pick individual articles.  Any items you don't select can be saved for reading later or
       marked as read with a single keystroke.

       If  you are already familiar with trn you may just want to read the WHAT'S NEW section.  People upgrading
       from rn will probably want to pay attention to the sections on The Selector, The Tree  Display,  and  the
       aforementioned  WHAT'S NEW.  If you're impatient, just dive in and get started.  All the regular commands
       will be familiar to an rn or trn user, and the on-line help will  give  you  a  quick  run-down  of  what
       commands are available (just type 'h' from any prompt).  I'd also suggest using the command:

           trn -x -X

       to make sure some of the best features are turned on.

       Starting Trn

       If  no  newsgroups are specified, all the newsgroups which have unread news will be presented to the user
       in the order in which they occur in the .newsrc file.  At the prompt for each group  you  can  choose  to
       read  it, skip it, move it, etc.  If a list of newsgroups is provided on the command line, trn will start
       up in "add" mode, using the list as a set of patterns to add new newsgroups and restrict which newsgroups
       are displayed (see also the discussion of the 'a' command on the newsgroup-selection level).

       Trn operates on four levels: the newsgroup-selection level,  the  thread  selector,  the  article-reading
       level,  and  the  paging  level.   Each level has its own set of commands, and its own help menu.  At the
       paging level (the bottom level) trn behaves much like the more(1) program.  At the article-reading  level
       articles  are presented to you in the order of their replies, with the subjects being ordered by the date
       of the oldest unread article (though there are commands for changing the default display order).  In  the
       thread selector you are presented with the subjects and (usually) authors associated with each discussion
       thread,  and  given  a chance to choose which ones you wish to read now, save for later, or manipulate in
       some way.  At the newsgroup-selection level (the top level), you may specify  which  newsgroup  you  want
       next,  or  read  them  in the default order, which is the order that the newsgroups occur in your .newsrc
       file.  (You will therefore want to rearrange your .newsrc file to put  the  most  interesting  newsgroups
       first.   This  can  be  done  with  the  'm' command on the Newsgroup Selection level.  WARNING: invoking
       readnews/vnews (the old user interface) in any way (including as a news checker in your login  sequence!)
       will cause your .newsrc to be disarranged again.)

       On  any  level, at ANY prompt, help is available by typing an 'h'.  This gives you a summary of available
       commands and what they do.  Remember this command, you'll need it.

       Typing space to any question means to do the normal thing.  You will know  what  that  is  because  every
       prompt  has  a  list of several plausible commands enclosed in square brackets.  The first command in the
       list is the one which will be done if you type a space.  (All input is done in cbreak mode,  so  carriage
       returns  should  not  be  typed  to  terminate  anything  except certain multi-character commands.  Those
       commands will be obvious in the discussion below because they take an argument.)

       Upon startup, trn will do several things:

       1.  It will look for your .newsrc file, which is your list of subscribed-to newsgroups.  If  trn  doesn't
           find  a  .newsrc,  it  will  create  one.   If  it  does  find one, it will back it up under the name
           ".oldnewsrc".

       2.  It will input your .newsrc file, listing out the first several newsgroups with unread news.

       3.  It will perform certain consistency checks on your .newsrc.  If your .newsrc is out of date in any of
           several ways, trn will warn you and patch it up for you, but you may have to wait a little longer for
           it to start up.

       4.  Trn will next check to see if any new newsgroups have been created, and give you the  opportunity  to
           add them to your .newsrc.

       5.  Trn goes into the top prompt level -- the newsgroup-selection level.

       Newsgroup Selection Level

       In  this  section the words "next" and "previous" refer to the ordering of the newsgroups in your .newsrc
       file.  On the newsgroup-selection level, the prompt looks like this:

       ====== 17 unread articles in talk.blurfl -- read now? [ynq]

       unless the group is set for unthreaded reading, in which case the first six characters are "******".  The
       following commands may be given at this level:

       +       Enter this newsgroup through the selector.

       y       Begin reading this newsgroup now.

       SP      Enter the newsgroup by executing the default command listed in []'s.

       .command
               Do this newsgroup now, but execute command before  displaying  anything.   The  command  will  be
               interpreted as if typed on the article selection level.

       =       Start this newsgroup, but list subjects before displaying articles.

       U       Enter this newsgroup through the unkill-articles prompt.

       t       Toggle  the  newsgroup between threaded and unthreaded reading.  The default is threaded, and the
               current setting is stored in your .newsrc.

       n       Go to the next newsgroup with unread news.

       N       Go to the next newsgroup.

       p       Go to the previous newsgroup with unread news.  If there is none, stay at the current newsgroup.

       P       Go to the previous newsgroup.

       -       Go to the previously displayed newsgroup (regardless of whether it is before or after the current
               one in the list).

       1       Go to the first newsgroup.

       ^       Go to the first newsgroup with unread news.

       $       Go to the end of the newsgroups list.

       g newsgroup
               Go to newsgroup, which can be the group's name or a zero-relative number of the  groups  in  your
               .newsrc  (see  the  'L'  command to list your .newsrc).  If it isn't currently subscribed to, you
               will be asked if you want to subscribe.

       /pattern
               Scan forward for a newsgroup matching pattern.  Patterns do globbing like filenames, i.e., use  *
               to  match  any sequence of characters, and [] to specify a list of characters to match.  Use . to
               match a single character.  Unlike normal filename globbing, newsgroup-searching is  not  anchored
               to  the  front and back of the filename, i.e. "/ski" will find rec.skiing.  You may use ^ or $ to
               anchor the front or back of the search: "/^test$" will find newsgroup test and  nothing  else  If
               you  want to include newsgroups with 0 unread articles, append /r.  If the newsgroup is not found
               between the current newsgroup and the  last  newsgroup,  the  search  will  wrap  around  to  the
               beginning.

       ?pattern
               Same as /, but search backwards.

       u       Unsubscribe from the current newsgroup.

       l string
               List newsgroups not subscribed to which contain the string specified.

       L       Lists the current state of the .newsrc, along with status information.

                        Status         Meaning
                        <number>       Count of unread articles in newsgroup.
                        READ           No unread articles in newsgroup.
                        UNSUB          Unsubscribed newsgroup.
                        BOGUS          Bogus newsgroup.
                        JUNK           Ignored line in .newsrc
                                   (e.g. readnews "options" line).

               (A  bogus newsgroup is one that is not in the list of active newsgroups in the active file, which
               on most systems is /usr/lib/news/active unless you use NNTP.)

       m {name}
               Move the named newsgroup somewhere else in the  .newsrc.   If  no  name  is  given,  the  current
               newsgroup is moved.  There are a number of ways to specify where you want the newsgroup -- type h
               for help when it asks where you want to put it.

       c       Catch up -- mark all unread articles in this newsgroup as read.

       A       Abandon  the  changes  made  to  the  current  newsgroup  since trn was started.  Useful when you
               accidentally mark a group as read.

       o {pattern}

       O {pattern}
               Only display those newsgroups whose name matches pattern.  Patterns are the same as for  the  '/'
               command.   Multiple  patterns  may  be  separated  by  spaces,  just as on the command line.  The
               restriction will remain in effect either until there are no articles left in the  restricted  set
               of newsgroups, or another restriction command is given.  Since pattern is optional, 'o' by itself
               will remove the restriction.  Using 'O' will omit empty groups from the cycle.

       a pattern
               Add  unsubscribed newsgroups matching pattern.  If any matching newsgroups are found, you will be
               asked for each one whether you would like to add it.  If you want to add all the newsgroups,  you
               can  type  'Y'  and  they  will  be  added the the end of the .newsrc file.  If you don't want to
               subscribe, all the remaining groups can be ignored by typing 'N'.  After any new newsgroups  have
               been  added,  the  'a'  command  also  restricts  the current set of newsgroups just like the 'O'
               command does.

       &       Print out the current status of command-line switches and any newsgroup restrictions.

       &switch {switch}
               Set additional command-line switches.

       &&      Print out the current macro definitions.

       &&keys commands
               Define additional macros.

       !command
               Escape to a subshell.  One exclamation mark (!) leaves you in your own news directory.  A  double
               exclamation   mark   (!!)  leaves  you  in  the  spool  directory  for  news,  which  is  usually
               /usr/spool/news unless you're using NNTP to read news.  The environment variable  SHELL  will  be
               used if defined.  If command is null, an interactive shell is started.

       v       Print the current version number and information on where to send bug reports.

       q       Quit.

       x       Quit,  restoring  .newsrc  to its state at startup of trn.  The .newsrc you would have had if you
               had exited with 'q' will be called .newnewsrc, in case you didn't really want to type 'x'.

       ^K      Edit the global list of memorized commands (in  the  global  KILL  file)  that  you  wish  to  be
               performed  in every newsgroup as it is started up (that is, when it is selected at the newsgroup-
               selection level).  This file contains commands (one per line) such as /subject/:j or  /author/f:+
               to kill or select articles based on the indicated search criteria.  There is also a local list of
               commands  for  each newsgroup that can contain kill/selection commands tailored for each specific
               group.  Because of the overhead involved in searching for articles  to  kill,  it  is  better  if
               possible  to  use  a local list rather than the global one.  Local memorized commands are usually
               maintained by using the 'A' or 'T' commands from the article/pager  level  or  in  the  selector.
               There  is also a K search modifier that appends any search command you desire to add.  It is also
               possible to manually edit the file with the '^K' command from anywhere inside  a  newsgroup.   If
               either  of  the  environment  variables  VISUAL  or  EDITOR  is set, the specified editor will be
               invoked; otherwise a default editor is invoked on the KILL file.

       The Selector

       Most people who don't have all day to read news will want to enter a newsgroup by way  of  the  selector.
       This  is  accomplished  by  using the '+' command at the newsgroup-selection or article/pager levels.  In
       fact, this may be the default command for entering a newsgroup, depending on how your version of trn  was
       configured and your use of the -X option.

       The  selector  displays  a  list  of  articles by their subjects and (usually) authors.  The articles are
       grouped into threads by default (which may list multiple subjects per selectable item if the subject  has
       changed during the discussion) and ordered by the date of their oldest unread article.  Thread or subject
       groups  are  also  shown  with  a count of the number of articles in each group.  Each selectable item is
       preceded by a letter or number that can be typed to toggle its selection.  Items that  are  selected  are
       flagged with a '+' after their letter.  Groups that have only some of their articles selected are flagged
       with  a  '*'.   You  can  change  the selector's mode (to pick each subject separately or pick individual
       articles), order the list by a variety of sort criteria, and switch the author display between its  long,
       medium and short styles using the commands detailed below.

       The following commands are available in the selector:

       a-z,0-9,A-Z
               Select/deselect  the  indicated  item  by  its  letter  or number.  There are quite a few letters
               omitted from the alpha characters to be typed as commands  --  see  below.   Also,  the  variable
               SELECTCHARS  is available to customize which characters you want to be used as selection letters,
               overriding their command function.

       SP      Perform the default command.  This is usually > for most pages, and Z on the last page  (although
               D and X are also quite popular).

       CR      Begin  reading.   If no articles are selected, the current item is selected (unless you've marked
               it as killed).

       Z,TAB   Begin reading.  If no articles are selected, read all unread articles.

       '.'     Toggle the current item's selection (the one under the cursor).

       *       Same as '.' except that it affects all articles with the same  subject  (useful  in  the  article
               selector).

       #       Make  an  overriding  selection  that reads the current item only, temporarily ignoring all other
               selections.

       k, ','  Mark the current item as killed.

       m, \    Unmark the current item.

       -       Set a range, as in a - k.  Repeats the last marking action: selection, deselection,  killing,  or
               unmarking.

       @       Toggle all visible selections.

       M       Mark the current item's article(s) to return on newsgroup exit and kill the item.

       Y       Yank back and select the marked-to-return articles, clearing their to-return status.

       E       Exclude  all  unselected  items  from the selection list (narrow the display).  Press it again to
               pick from all available items.

       n, ]    Move down to the next item (try the down-arrow keypad key also).

       p, [    Move up to the previous item (try the up-arrow keypad key also).

       <       Go to previous page (try the left-arrow keypad key also).

       >       Go to next page (try the right-arrow keypad key also).

       ^       Go to the first page.

       $       Go to the last page.

       S       Set the items the selector displays: threads, subjects or articles.  If the group  is  unthreaded
               setting this to threads will thread the group.

       =       Switch between the article selector and the subject/thread selector.

       O       Pick  the order for the items: date, subject, author, item count (for thread/subject groups), and
               a subject-date grouping of individual articles.  Typing the selection in lower-case will sort the
               articles in the default direction, while using upper-case will reverse  the  sort.   There  is  a
               separate default sort order for the subject/thread selector and the article selector.  See the -O
               option to set your favorite selector mode and sort order as the default.

       R       Reverse the current sort order.

       L       Switch  the  selector's  display  between  the long, medium and short display styles.  See the -x
               option to set your favorite style as the default.

       U       Switch between selecting unread/read articles.

       X       Mark all unselected articles as read and start reading.

       D       Mark unselected articles on the current page as read and begin reading if articles are  selected,
               otherwise go to the next page.

       J       Mark  all  selected  articles  as  read (useful after performing some action on them with the ':'
               command).

       c       Catch up -- marks ALL articles as read without affecting their cross-posted counterparts.

       A       Add a subject-search command to the memorized list (a.k.a. a KILL file) for this group.  You  are
               prompted  to  choose  selection  (+), junking (j), selection including all replies (.) or junking
               including all replies (,).  If the thread has more than one subject the first subject is the  one
               chosen for the memorized command.

       T       Add  a  thread-oriented command to the memorized list for this group.  You are prompted to choose
               selecting the thread (+), junking the thread (j), or clearing the auto-selection/junking for  the
               thread  (c).   (Note:  there  are  three other options ('.', ',', and 'C') on the article-reading
               level -- look there for an explanation of their use.)

       ^K      Edit the local list of memorized commands (a.k.a. a KILL file) for this  newsgroup.   A  detailed
               description of memorized commands is found in the Article Selection section.

       :command
               Apply a command to all the selected threads or their selected articles.  You can also use ":E" to
               end  a  binary extraction or ":p" to post a new article.  Use "::command" to apply it to all non-
               selected threads/articles.

               Applicable commands include '+'/'-' (select/deselect an article),  "++"/"--"  (select/deselect  a
               thread),  "T+"  (auto-select the entire thread), "TJ" (auto-junk the entire thread), 't' (display
               article tree), "s dest" (save article to a destination), "e dir" (extract to directory), 'E' (end
               partial uudecode), as well as: S, ⎪, w, W, m, M, j, = and ','.

       :.command
               Apply a command to the current thread or the  selected  articles  in  the  current  thread.   Use
               "::.command" to apply a command to the unselected articles in the current thread.

       /pattern
               Scan all articles for a subject containing pattern and select it.

       /pattern/modifiers:command{:command}
               Apply the commands listed to articles matching the search command (possibly with h, a, b, r, or K
               modifiers).   The  default action, if no command is specified, is to select the article's item in
               the selector (e.g. the entire thread ("++") in the thread selector).  See the section on  Regular
               Expressions and the description of pattern searching in the Article Selection section.

               One example: to scan all the unread articles looking for "topic" anywhere in the article and then
               select  its  group  and  save the articles to the files topic.1, topic.2, etc. use "/topic/a:++:s
               topic.%#".

       N       Go to the next newsgroup with unread news.

       P       Go to the previous newsgroup with unread news.

       &       Display or set the current status of command-line switches.

       &&      Display or set the current macro definitions.

       !command
               Escape to a subshell.

       q       Quit this group.

       ESC,+   Quit the selector to the article level.  Note: ESC won't work if trn has mapped your  arrow  keys
               with default macros and the first character that your arrow keys send is an ESC.

       Q       Quit the current newsgroup and return to the newsgroup-selection prompt for this group.

       Article-Reading Level

       On  the  article-reading level, trn displays unread articles in thread sequence (reading each article and
       its replies before going on to another topic) unless threads are disabled  for  a  particular  group,  in
       which  case  the default order is the order they arrived at your site (numeric sequence).  In either case
       if you use the subject-search command (^N) you will switch to reading the articles in date  order  within
       each  matching  subject.   (Making  selections  in  the  subject  selector  or  using  the -S switch will
       automatically turn subject search mode on in an unthreaded group.)

       On the article-reading level you are not asked whether you want to read an article before the article  is
       displayed;  rather,  trn  simply  displays the first page (or portion of a page, at low baud rates) of an
       article and asks if you want to continue.  The normal article-reading prompt  comes  at  the  END  of  an
       article  (although  article-reading  commands  can  also be given from within the middle of an article in
       addition to the pager level commands).  The prompt at the end of an article looks like this:

       End of article 248 (of 257) -- what next? [npq]

       The following are the options at this point:

       n,SP    Scan forward for next unread article.  (Note: the 'n' (next) command when typed at the end of  an
               article does not mark the article as read, since an article is automatically marked as read after
               the  last  line  of  it is printed.  It is therefore possible to type a sequence such as 'mn' and
               leave the article marked as unread.  The fact that an article is marked as read by typing  n,  N,
               ^N, F, R, e, s, S, ⎪, w, or W within the MIDDLE of the article is in fact a special case.)

       N       Go to the next article.

       ^N      Find  the  next article with the same subject in date order.  This also makes subject search mode
               (^N) the default command at the end of an article.

       p       Scan backward for previous unread article.  If there is none, stay at the current article.

       P       Go to the previous article.

       -       Go to the previously displayed article (regardless of whether that article  is  before  or  after
               this article in the normal sequence).

       ^P      Find  the  previous  article with the same subject in date order.  Makes subject search mode (^N)
               the default.

       _N      Go to the next article in numeric sequence.

       _P      Go to the previous article in numeric sequence.

       <, >    Browse the previous/next selected thread/subject.  If no  selections  have  been  made,  all  the
               threads  that  had  unread  news  when  you entered the newsgroup (or last left the selector) are
               treated as selected.  Entering an empty newsgroup makes all the  already-read  threads  available
               for browsing.

       [, ]    Proceed  to  the  left/right  in the article tree.  Visits already-read articles as well as empty
               nodes.  Try using the left-/right-arrow keys also.

       {, }    Go to the root/leaf of the article tree, even if the node is already read or empty.  Proceeds  to
               the very first/last node if you're already at a root/leaf in a multi-root thread.

       (, )    Go  to  the  previous/next  sibling  in  the  thread, including "cousin" siblings.  Try using the
               up-/down-arrow keys also.

       t       Display the entire article tree and all its associated subjects.  If the group is  not  currently
               threaded, it will become threaded to process this command.

       ^R      Restart the current article.

       v       Restart the current article verbosely, displaying the entire header.

       ^L      Refresh the screen.

       ^X      Restart the current article, and decrypt as a rot13 message.

       X       Refresh the screen, and decrypt as a rot13 message.

       b       Back up one page.

       ^E      Display the last page of the article.

       q       Quit this newsgroup and go back to the newsgroup-selection level.

       ^       Go to the first unread article.

       $       Go to the last article (actually, one past the last article).

       number  Go to the numbered article.

       _C      Switch to next available charset conversion.

       range{,range}:command{:command}
               Apply  a  set  of  commands to a set of articles.  A range consists of either <article number> or
               <article number>-<article number>.  A dot '.' represents the current article, and a  dollar  sign
               '$' represents the last article.

               Applicable  commands  include  'm'  (mark as unread), 'M' (mark as read-until-exit), 'j' (mark as
               read), "s dest" (save to a destination),  "e  dir"  (extract  to  directory),  "!command"  (shell
               escape),  "="  (print  the subject), '+'/'-' (select/deselect the article), 'T+' (auto-select the
               entire thread), 'TJ' (auto-junk the entire thread),  "++"/"--"  (select/deselect  the  associated
               thread), 'C' (cancel), as well as S, ⎪, w, W, and t.

       :command
               Apply a command to all the selected threads or their selected articles.  Use "::command" to apply
               it  to  all non-selected threads/articles.  For applicable commands, see the discussion above for
               the range command.

       :.command
               Apply a command to the current thread or the  selected  articles  in  the  current  thread.   Use
               "::.command" to apply a command to the unselected articles in the current thread.

       j       Junk the current article (i.e. mark it as read).  If this command is used from within an article,
               you are left at the end of the article, unlike 'n', which looks for the next article.

       m       Mark  the  current  article  as still unread.  (If you don't want to see this article for a while
               you're probably better off using M instead of m, otherwise this article might get picked again as
               the first available article sooner than you'd like.)

       M       Mark the current article to return on newsgroup exit.  Until then, the current  article  will  be
               marked as read.  This is useful for returning to an article in another session.

       Y       Yank  back  the  marked-to-return  articles, clearing their to-return status.  If you are reading
               selected articles, the yanked articles come back selected.

       /pattern
               Scan forward for article containing pattern in the subject.  See the Regular Expressions section.
               Together with the escape substitution facility described later, it becomes  easy  to  search  for
               various  attributes  of  the current article, such as subject, article ID, author name, etc.  The
               previous pattern can be recalled with ESC.  If  pattern  is  omitted,  the  previous  pattern  is
               assumed.

       /pattern/f
               Scan  forward for article containing pattern in the from line.  If you are using thread files the
               article data you are matching against MAY contain only the real name of the user.  If you want to
               always match the full from line, see the following header-matching option that will read  in  the
               full from-line data if it is not already available.

       /pattern/Hheader
               Scan  forward for article containing pattern in the indicated header.  Because we scan the entire
               string up to the end of the modifiers,  this  modifier  must  be  the  last  one.   For  example,
               "/jsmoe@somesite.com/rHfrom:m+"  will  mark  all articles from "jsmoe@somesite.com" as unread and
               select them.  Note that if the header line isn't one that trn recognizes in  its  header  parser,
               you'll have to use the following full-header matching.

       /pattern/h
               Scan forward for an article containing pattern in the header.

       /pattern/a
               Scan forward for an article containing pattern anywhere in the article.

       /pattern/b
               Scan forward for an article containing pattern in the body of the article, but not the signature.
               (The signature must be properly delimited to be ignored, however.)

       /pattern/B
               Scan forward for an article containing pattern anywhere in the body of the article.

       /pattern/r
               Scan read articles also.

       /pattern/c
               Make search case sensitive.  Ordinarily upper- and lower-case are considered the same.

       /pattern/t
               Force  the  search  to  start  at the top of the group (useful while reading the group, since the
               default is to start at the current article).

       /pattern/I
               Force the search to ignore the THRU line when executed as a memorized command.   If  the  command
               portion is a selection command (i.e. it starts with a '+' or a '.') this is the default behavior.

       /pattern/N
               Force  the  search  to  NOT  ignore the THRU line when executed as a memorized command (useful on
               selection commands -- see also -k).

       /pattern/modifiers:command{:command}
               Apply the commands listed to articles matching the search command (possibly with h, a,  b,  or  r
               modifiers).  Applicable commands include 'm' (mark as UNread), 'M' (mark as read-until-exit), 'j'
               (junk  --  mark  as  read  in  all groups), 'x' (mark as read in this group), "s dest" (save to a
               dest), "e dir" (extract to dir), "!command" (shell escape), "=" (print the subject), '+'  (select
               the article), '-' deselect the article, 'T+' (auto-select the entire thread), 'TJ' (auto-junk the
               entire  thread),  "++"  (select the associated thread), "--" deselect the associated thread), and
               'C' (cancel).  If the first command is 'm' or 'M', modifier r is assumed.  A K may be included in
               the modifiers (not the commands) to cause the entire command (sans K) to be saved  to  the  local
               KILL file, where it will be applied to every article that shows up in the newsgroup.

               For  example,  to  save all articles in a given newsgroup to the line printer and mark them read,
               use "/^/⎪lpr:j".  If you type "/^/K⎪lpr:j", this will happen every time you enter the newsgroup.

       ?pattern
               Scan backward for article containing pattern in the subject.  May  be  modified  as  the  forward
               search  is:  ?pattern?modifiers[:commands].   It  is likely that you will want an r modifier when
               scanning backward.

       k       Mark as read all articles with the same subject as the  current  article.   (Note:  there  is  no
               single  character  command  to temporarily mark as read (M command) articles matching the current
               subject.  That can be done with "/<ESC>s/M", however.)

               Mark the current article and all its replies as read.

       J       Junk all the articles in the current thread, even if it contains multiple subjects.

       A       Add a subject-search command to the memorized list for this group (in the KILL  file).   You  are
               prompted  to  choose  selection  (+), junking (j), selection including all replies (.) or junking
               including all replies (,).

       K       This is a synonym for the command "Aj" which adds a command to junk the current  subject  to  the
               memorized commands for the group.  See also the K modifier on searches above.

       T       Add  a  thread-oriented command to the memorized list for this group.  You are prompted to choose
               selection of entire thread (+), junking of entire thread (j), selection of  an  article  and  its
               replies  (.),  junking of an article and its replies (,), clearing the auto-selection/junking for
               this thread (c), or clearing the auto-selection/junking for an article and its replies (C).

       ^K      Edit the local list of memorized commands (a.k.a. a KILL file) for this newsgroup.  Each line  of
               the  KILL file is either a subject-affecting command of the form /pattern/x or a thread-affecting
               command of the form <message-id> Tx.  The first  line  in  the  KILL  file  has  the  form  "THRU
               <number>",  which  tells  trn  the maximum article number that the KILL file has been applied to.
               The THRU value is usually only used to keep header or article searches  from  happening  multiple
               times.  Subject and from-line searches are quite fast if the group has cached data around (e.g. a
               .thread  or .overview file).  If it doesn't, the THRU line is used to set a lower boundary on the
               search to keep the startup time as short as possible.  If trn skipped some selections (or  you're
               not  sure),  wait  for  the  group  to finish being cached (e.g. visiting the selector forces the
               caching of all unread articles), quit the group, and re-enter.

               To see only newgroup articles in the control newsgroup, for instance, you might include the line

               /newgroup/:+

               which selects all subjects containing "newgroup".  You can add lines automatically via the A  and
               T  commands  as  well  as  the  K  search modifier, but editing is the only way to remove subject
               commands (thread commands die automatically as the thread dies).  If either  of  the  environment
               variables  VISUAL  or  EDITOR  is  set, the specified editor will be invoked; otherwise a default
               editor (normally vi) is invoked on the KILL file.

               The KILL file may also contain switch-setting lines  beginning  with  '&'  (see  the  section  on
               "Options")  and  special commands beginning with '*'.  There are two such commands at the moment:
               "*j" (junk all articles from THRU to the end of the group) and "*X" (junk all unselected articles
               from THRU to the end of the group).  Additionally, any line beginning with  'X'  is  executed  on
               exit  from  the  newsgroup  rather  than on entrance.  This can be used to set switches back to a
               default value.  One use for this capability is to set your save directory to a custom value  upon
               entry  to a newsgroup and set it back on exit using the -ESAVEDIR option.  See also the -/ option
               for another solution to multiple save directories without using KILL files.

       r       Reply through net mail.  The environment variables MAILPOSTER  and  MAILHEADER  may  be  used  to
               modify  the  mailing  behavior of trn (see the environment section).  If the current article does
               not exist (such as the "End of newsgroup" pseudo-article you can get  to  with  a  '$'  command),
               invokes the mailer to nobody in particular.

       R       Reply, including the current article in the header file generated.  (See 'F' command below).  The
               YOUSAID environment variable controls the format of the attribution line.

       ^F      Forward the current article.

       f       Submit  a  follow-up  article.   If  the  current  article  does  not  exist (such as the "End of
               newsgroup" pseudo-article you can get to with a '$' command), posts an original (root) article.

       F       Submit a follow-up article, and include the old article, with lines prefixed either by ">" or  by
               the  argument  to the -F switch.  Trn will attempt to provide an attribution line in front of the
               quoted article, generated from the From: line of the  article.   Unfortunately,  the  From:  line
               doesn't  always  contain  the  right  name;  you should double check it against the signature and
               change it if necessary, or you  may  have  to  apologize  for  quoting  the  wrong  person.   The
               environment  variables  NEWSPOSTER,  NEWSHEADER and ATTRIBUTION may be used to modify the posting
               behavior of trn (see environment section).

       C       Cancel the current article, but only if you are the contributor or superuser.

       z       Supersede the current article, but only if you are the contributor.

       Z       Same as the 'z' command, but you start with a copy of the original article to work with.

       c       Catch up in this newsgroup; i.e., mark all articles as read.

       U       Unkill articles.  You can choose to unkill the current thread, sub-thread  (the  current  article
               and  its  replies),  all  the  articles,  or start up the selector to choose specific articles to
               unkill.

       u       Unsubscribe from this newsgroup.

       s destination
               Save to a filename or pipe using sh.  If the first character of the  destination  is  a  vertical
               bar, the rest of the command is considered a shell command to which the article is passed through
               standard  input.   The  command  is  subject  to  filename  expansion.  (See also the environment
               variable PIPESAVER.)  If the destination does not begin with a vertical  bar,  the  rest  of  the
               command is assumed to be a filename of some sort.  An initial tilde '~' will be translated to the
               name of the home directory, and an initial environment variable substitution is also allowed.  If
               only  a  directory  name  is specified, the environment variable SAVENAME is used to generate the
               actual name.  If a non-absolute filename is specified, the environment variable SAVEDIR  will  be
               used  to  generate  the actual directory.  If nothing is specified, then obviously both variables
               will be used.  Since the current directory for trn while doing a save  command  is  your  private
               news  directory, typing "s ./filename" will force the file to your news directory.  Save commands
               are also run through % interpretation, so that you can enter  "s  %O/filename"  to  save  to  the
               directory  you  were  in  when  you  ran  trn, and "s %t" to save to a filename consisting of the
               Internet address of the sender.

               After generating the full pathname of the file to save to, trn  determines  if  the  file  exists
               already,  and  if  so,  appends  to  it.   trn will attempt to determine if an existing file is a
               mailbox or a normal file, and save the article in the same format.  If the output file  does  not
               yet  exist,  trn  will  by  default  ask  you  which format you want, or you can make it skip the
               question with either the -M or -N switch.  If the article is to be saved in mailbox  format,  the
               command  to  do so is generated from the environment variable MBOXSAVER.  Otherwise, NORMSAVER is
               used.

       S destination
               Save to a filename or pipe using a preferred shell, such as csh.  Which  shell  is  used  depends
               first on what you have the environment variable SHELL set to, and in the absence of that, on what
               your news administrator set for the preferred shell when he or she installed trn.

       ⎪ command
               Shorthand for "s ⎪ command".

       w destination
               The same as "s destination", but saves without the header.

       W destination
               The same as "S destination", but saves without the header.

       e directory
               Extract  a  shell  archive or uuencoded binary to the designated directory.  The article is first
               scanned to try discover what type of data is encapsulated.  If a "cut here" line  is  found,  the
               first  non-blank  line  after  it  must  be  either the start of a shar header, or the "begin" or
               "table" line of a uuencoded binary.  The default for extracting shars is to send the data portion
               of the file to /bin/sh, but that can be overridden with the UNSHAR variable (see the  ENVIRONMENT
               section).   Uudecoding  is  done  internally by a decoder that can handle the data being split up
               over multiple articles, and extracted one piece at a  time.   To  decode  a  multi-article  file,
               either  execute  the 'e' command in each article in sequence, use an article range to execute the
               command, or use the ":e" command to repeat  the  command  for  each  of  the  currently  selected
               articles.   When  the  'e' command is not followed by any arguments, it will repeat the arguments
               from the last extraction.  All directory specifications are relative to the value of SAVEDIR,  so
               you  can  use  the command "e ." to force an extraction to SAVEDIR itself.  If a uudecoding is in
               progress (i.e. the last piece wasn't extracted yet) and you exit the group, the partial file will
               be removed.  This also occurs if you start to extract a new uuencoded file  before  the  previous
               one was finished.  See also the 'E' command for ending a multi-part uudecoding manually.

               There  is  one special case that is handled differently: if the first file in a recognizable shar
               file is a uuencoded binary that was packed with lines starting with an 'X', we  will  not  unshar
               the  file  but  instead  uudecode  it.   If  this  causes  problems, you can override the default
               extraction method by following the directory with an explicit command to  execute,  as  described
               below.

       e directory⎪command
               This  form  of  the  'e'  command allows you to extract other data formats than shar or uuencoded
               files or to override the decisions made by the automatic extraction  selection  described  above.
               In  normal  operation,  all data following what we recognize as a "cut here" line will be sent to
               the specified command.  Additionally, the distinctive  beginning  of  a  shell  archive  is  also
               recognized  without a preceding cut line.  When the command is run, the default directory will be
               set to the specified directory, or the value of SAVEDIR if unspecified.  Entering the 'e' command
               without arguments will repeat your previous extract command.  You can use the command "e dir⎪" to
               extract to a new directory using the previously-specified command.

       E       This command ends any multi-part uuencoded file extraction that you began,  but  are  unable  (or
               unwilling) to complete.  The partially extracted file is removed.

       &       Print out the current status of command-line switches.

       &switch {switch}
               Set additional command-line switches.

       &&      Print out current macro definitions.

       &&keys commands
               Define an additional macro.

       !command
               Escape  to a subshell.  One exclamation mark (!) leaves you in your own news directory.  A double
               exclamation mark (!!)  leaves  you  in  the  spool  directory  of  the  current  newsgroup.   The
               environment  variable SHELL will be used if defined.  If command is null, an interactive shell is
               started.

               You can use escape key substitutions described later to get to many run-time values.  The command
               is also run through % interpretation, in case it is being called from a range or search command.

       +       Start the selector in the last-used mode.   If  the  newsgroup  is  unthreaded  and  the  default
               selector mode is threads, we temporarily switch to subject selection unless manually overridden.

       _a      Start the selector in article mode.

       _s      Start the selector in subject mode.

       _t      Start the selector in thread mode.

       _T      Start  the  selector  in thread mode unless the group isn't threaded, in which case we settle for
               the subject selector.

       =       List subjects of unread articles.

       #       Print last article number.

       _+      Select the entire thread associated with the current article.

       _-      Deselect the entire thread associated with the current article.

       Pager Level

       At the pager level (within an article), the prompt looks like this:

       --MORE--(17%)

       and a number of commands may be given:

       SP      Display next page.

       x       Display next page and decrypt as a rot13 message.

       d       Display half a page more.

       CR      Display one more line.

       q       Go to the end of the current article (don't mark it either read or unread).  Leaves  you  at  the
               "What next?" prompt.

       j       Junk the current article.  Mark it read and go to the end of the article.

       ^L      Refresh the screen.

       X       Refresh the screen and decrypt as a rot13 message.

       b       Back up one page.

       ^E      Display the last page of the article.

       _C      Switch to next available charset conversion.

       t       Display the entire article tree, including its associated subjects, and continue reading.  If the
               group is not currently threaded, it will be threaded first.

       gpattern
               Goto  (search  forward  for) pattern within current article.  Note that there is no space between
               the command and the pattern.  If the pattern is found, the page containing the  pattern  will  be
               displayed.   Where  on the page the line matching the pattern goes depends on the value of the -g
               switch.  By default the matched line goes at the top of the screen.

       G       Search for g pattern again.

       ^G      This is a special version of the 'g' command that is for skipping articles in a  digest.   It  is
               equivalent to setting "-g4" and then executing the command "g^Subject:".

       TAB     This  is  another  special  version  of  the 'g' command that is for skipping inclusions of older
               articles.  It is equivalent to setting "-g4" and then executing the command "g^[^c]", where c  is
               the  first character of the last line on the screen.  It searches for the first line that doesn't
               begin with the same character as the last line on the screen.

       !command
               Escape to a subshell.

       The following commands skip the rest of the current article, then behave just as if typed  to  the  "What
       next?"  prompt at the end of the article.  See the documentation at the article selection level for these
       commands.

           # $ & / = ? A c C f F k K T ^K J , m M r R ^R u U v Y ^
           p P ^P - < > [ ] { } number
           range{,range} command{:command}

       The following commands also skip to the end of the article, but have the additional effect of marking the
       current article as read:

           n N ^N e s S ⎪ w W

       Miscellaneous facts about commands

       An 'n' typed at either the "Last newsgroup" prompt or a "Last article" prompt will cycle back to the  top
       of  the newsgroup or article list, whereas a 'q' will quit the level.  (Note that 'n' does not mean "no",
       but rather "next".)  A space will of course do  whatever  is  shown  as  the  default,  which  will  vary
       depending on whether trn thinks you have more articles or newsgroups to read.

       The  'b'  (backup page) command may be repeated until the beginning of the article is reached.  If trn is
       suspended (via a ^Z), then when the job is resumed, a refresh (^L) will automatically be done  (Berkeley-
       type  systems  only).   If  you  type a command such as '!' or 's' which takes you from the middle of the
       article to the end, you can always get back into the middle by typing '^L'.

       In multi-character commands such as '!', 's', '/', etc, you can interpolate various  run-time  values  by
       typing  escape  and a character.  To find out what you can interpolate, type escape and 'h', or check out
       the single character % substitutions for environment variables in the  Interpretation  and  Interpolation
       section,  which are the same.  Additionally, typing a double escape will cause any % substitutions in the
       string already typed in to be expanded.

       The Tree Display

       When reading a threaded newsgroup, trn displays a character representation of the  article  tree  in  the
       upper right corner of the header.  For example, consider the following display:

           (1)+-(1)--(2)--[2]
              ⎪-(1)+-<3>
              ⎪    \-[1]
              \-(1)+-[1]--[1]
                   \-[1]

       This  tree  represents  an  initial  article  that has three direct replies (the second column with three
       (1)'s).  Each reply has further replies branching off from them.  In  two  cases  the  subject  line  was
       altered in the reply, as indicated by the increasing numbers.

       The  third subject is not selected for reading, as indicated by the <>'s.  Note you can always forcefully
       visit an unselected article with 'N' and 'P'  as  well  as  the  thread-navagation  commands  (which  are
       typically macro'ed to the arrow keys on your keypad).

       When  there  is  only  one  subject associated with a thread, all the nodes are marked with the number 1.
       When the first subject change arrives, it is marked with the number 2, and so on.  If you were to look at
       this thread in the thread selector, the three subjects associated with it would be  listed  in  the  same
       order  as  the ascending digits.  In those rare cases where more than 9 subjects are associated with each
       thread, the nodes are marked with the letters A-Z, and then by a-z.

       The articles that have already been read are enclosed in ()'s, Unread articles are displayed in []'s, and
       unread-but-unselected articles are displayed in <>'s.  The currently displayed  article  has  its  entire
       node  highlighted  in the display.  The previously displayed article has only its number highlighted.  If
       the group has not been completely threaded yet, some articles will appear as (?) until trn can  determine
       if  the  referenced article truly exists or not.  If you visit such an article and wait for trn to finish
       threading the group, the screen will refresh as soon as  the  presence  or  absence  of  the  article  is
       determined.

       Options

       Trn  has a nice set of options to allow you to tailor the interaction to your liking.  (You might like to
       know that the author swears by "-x6ms +e -mu -S -XX -N -B -p".)  These options may be set on the  command
       line, via the TRNINIT environment variable, via a file pointed to by the TRNINIT variable, or from within
       trn via the & command.  Options may generally be unset by typing "+switch".  Options include:

       -a   causes  trn  to  always thread the unread articles on entry to a group.  Without this option trn may
            enter a group in a partially-threaded state and process the unthreaded articles in  the  background.
            The  down  side  of this is that the tree display may not be complete when it is first displayed and
            you may start out at an odd position in the first thread's article tree.

       -A   tells trn to attempt to create some default macros that will map  your  arrow  keys  to  useful  trn
            functions (this is the default).  Use +A to turn this behavior off.

       -b   will force trn to read each thread in a breadth-first order, rather than depth-first.

       -B   will  turn  on  a  spinner that twirls when trn is doing background article-processing.  A gizmo for
            those interested in what's going on behind the scenes.

       -c   checks for news without reading news.  If a list of newsgroups is given on the  command  line,  only
            those  newsgroups will be checked; otherwise all subscribed-to newsgroups are checked.  Whenever the
            -c switch is specified, a non-zero exit status from trn means that there is unread news  in  one  of
            the checked newsgroups.  The -c switch does not disable the printing of newsgroups with unread news;
            this  is  controlled  by  the  -s  switch.   (The  -c  switch is not meaningful when given via the &
            command.)

       -C<number>
            tells trn how often to checkpoint the .newsrc, in articles read.  Actually, this number says when to
            start thinking about doing a checkpoint if the situation is right.  If a  reasonable  check-pointing
            situation doesn't arise within 10 more articles, the .newsrc is check-pointed willy-nilly.

       -d<directory name>
            sets your private news directory to something other than ~/News.  The directory name will be globbed
            (via  csh)  if  necessary  (and  if  possible).   The value of SAVEDIR (where articles are saved) is
            initially set to this directory, but is often manipulated via  the  -/  option  or  by  manipulating
            SAVEDIR  directly  (perhaps  via the memorized commands (the KILL file) for a group.  Any KILL files
            (see the K command in the  Article  Selection  section)  also  reside  in  this  directory  and  its
            subdirectories, by default.  In addition, shell escapes leave you in this directory.

       -D<flags>
            enables  debugging output.  See common.h for flag values.  Warning: normally trn attempts to restore
            your .newsrc when an unexpected signal  or  internal  error  occurs.   This  is  disabled  when  any
            debugging flags are set.

       -e   causes  each page within an article to be started at the top of the screen, not just the first page.
            (It is similar to the -c switch of more(1).)  You never  have  to  read  scrolling  text  with  this
            switch.   This  is helpful especially at certain baud rates because you can start reading the top of
            the next page without waiting for the whole page to be printed.  It works nicely in conjunction with
            the -m switch, especially if you use half-intensity for  your  highlight  mode.   See  also  the  -L
            switch.

       -E<name>=<val>
            sets  the  environment  variable  <name>  to  the  value specified.  Within trn, "&-ESAVENAME=%t" is
            similar to "setenv  SAVENAME  '%t'"  in  csh,  or  "SAVENAME='%t';  export  SAVENAME"  in  sh.   Any
            environment variables set with -E will be inherited by subprocesses of trn.

       -f   will  make  trn  avoid  various  sleep  calls  and  the prompt after the processing of the memorized
            commands that are intended to allow you time to read a  message  before  the  screen  clears.   This
            allows  the  advanced  user  to  cruise along a little faster at the expense of readability.  The -t
            (terse) option turns on -f by default, but you can override this  by  specifying  +f  after  the  -t
            option.

       -F<string>
            sets  the  prefix  string  for the 'F' follow-up command to use in prefixing each line of the quoted
            article.  For example, "-F<tab>" inserts a tab on the front of each  line  (which  will  cause  long
            lines  to  wrap  around,  unfortunately),  "-F>>>>" inserts ">>>>" on every line, and "-F" by itself
            causes nothing to be inserted, in case you want to reformat the text,  for  instance.   The  initial
            default prefix is ">".

       -g<line>
            tells  trn which line of the screen you want searched-for strings to show up on when you search with
            the 'g' command within an article.  The lines are numbered starting with 1.  The initial default  is
            "-g1",  meaning  the  first  line  of  the screen.  Setting the line to less than 1 or more than the
            number of lines on the screen will set it to the last line of the screen.

       -G   selects the "fuzzy" processing on the go command when you don't type in a valid  group  name.   With
            this option on trn will attempt to find the group you probably meant to type, but it can be a little
            slow about it, so it's not on by default.

       -h<string>
            hides  (disables  the  printing of) all header lines beginning with string.  For instance, -hx- will
            disable the  printing  of  all  "X-Foo:"  headers.   Case  is  not  significant.   The  default  for
            unrecognized  headers  can  be set with the -hunrecognized option.  Alternately you could use -h (no
            string) to disable all headers except the Subject line and then use +h to select  only  those  lines
            you  want  to  see.   You  may wish to use the baud-rate switch modifier below to hide more lines at
            lower baud rates.

       -H<string>
            works just like -h except that instead of setting the hiding flag for a header  line,  it  sets  the
            magic  flag  for  that header line.  Certain header lines have magic behavior that can be controlled
            this way.  At present, the following actions are caused by the flag for  the  particular  line:  the
            Date  line prints the date in local time if the group is threaded; the From line will only print the
            commented portion of the user name; the Newsgroups line will only  print  when  there  are  multiple
            newsgroups;  the  Subject  line  will  be  underlined  and (when threaded) the keyword 'Subject:' is
            replaced by its subject number (e.g. [1]); and the Expires line will always be suppressed  if  there
            is nothing on it.  In fact, all of these actions are the default, and you must use +H to undo them.

       -i=<number>
            specifies  how  long  (in  lines)  to  consider  the  initial page of an article -- normally this is
            determined automatically depending on baud rate.  (Note that an entire article header will always be
            printed regardless of the specified initial page length.  If you are working at low  baud  rate  and
            wish to reduce the size of the headers, you may hide certain header lines with the -h switch.)

       -I   tells trn to append all new, unsubscribed groups to the end of the .newsrc.

       -j   forces trn to leave control characters unmolested in messages.

       -J{<number>}
            causes  trn  to  join similar subjects into a common thread if they are the same up to the indicated
            number of characters (the default is 30).  You can turn this on  and  off  for  specific  groups  by
            putting the following lines into your kill file for the group(s):

            &-J30
            X&+J

       -k   tells  trn  to ignore the THRU line when processing selection searches (i.e. searches with a command
            portion that starts with a '+' or a '.') in the memorized commands (aka kill files).  This is turned
            on by default, so use +k if you want to turn it off.

       -K   is used to keep a trn from checking for new news while you're in the  group.   Use  this  when  your
            kill-file  processing  is  so slow that you don't want the group to expand while you're reading.  If
            you only want specific groups to be affected, put these lines into your kill file for the group(s):

            &-K
            X&+K

       -l   disables the clearing of the screen at the beginning of each article, in case  you  have  a  bizarre
            terminal.

       -L   tells  trn to leave information on the screen as long as possible by not blanking the screen between
            pages, and by using clear to end-of-line.  (The more(1) program does this.)  This feature works only
            if you have the requisite termcap capabilities.  The switch has no effect unless the  -e  switch  is
            set.

       -m=<mode>
            enables  the  marking  of  the last line of the previous page printed, to help the user see where to
            continue reading.  This is most helpful when less than a full page is going to be displayed.  It may
            also be used in conjunction with the -e switch, in which case the page is erased, and the first line
            (which is the last line of the previous page) is highlighted.  If -m=s is  specified,  the  standout
            mode  will  be  used,  but  if  -m=u is specified, underlining will be used.  If neither =s or =u is
            specified, standout is the default.  Use +m to disable highlighting.

       -M   forces mailbox format in creating new save files.  Ordinarily you are asked which format you want.

       -N   forces normal (non-mailbox) format in creating new save  files.   Ordinarily  you  are  asked  which
            format you want.

       -o   will  act like old versions of trn and not junk cross-referenced articles when using thread commands
            to junk articles in the current group (such as the selector's 'X' command).

       -O<mode>{<order>}
            specifies the selector's mode and (optionally) the sort order.  The modes are 'a'rticle,  's'ubject,
            or  't'hread.   The orders are 'd'ate, 's'ubject, 'a'uthor, article 'c'ount per group, 'n'umeric, or
            subject-date 'g'roups.  The order can be capitalized to reverse the indicated order.   For  example,
            to choose the article selector in subject order specify "-Oas".

       -p{opt}
            tells trn to auto-select your postings and their replies as it encounters them in the various groups
            you  read.   The optional parameter is either a '.', 'p', or '+' (it defaults to '.' if omitted) and
            affects what command trn should execute when it encounters your postings.  The default is to execute
            the command "T." on each of your postings which tells trn to memorize  the  auto-selection  of  this
            article  and  all its replies.  Using -pp tells trn to use the same command, but start the selection
            with the parent article, so that you see any other replies to the same article.  Using -p+ tells trn
            to select the whole thread that contains your reply.

       -q   bypasses the automatic check for new newsgroups when starting trn.

       -Q<set>
            defines the set of available charset conversions. This can  be  useful  to  restrict  the  available
            conversions  to  those  your  terminal  can handle and/or to specify an alternate default. The first
            element of this set is taken as default for each article.

       -r   causes trn to restart in the last newsgroup  read  during  a  previous  session  with  trn.   It  is
            equivalent to starting up normally and then getting to the newsgroup with a g command.

       -s   with  no  argument  suppresses  the  initial  listing  of newsgroups with unread news, whether -c is
            specified or not.  Thus -c and -s can be used together to test "silently" the status  of  news  from
            within  your  .login  file.   If -s is followed by a number, the initial listing is suppressed after
            that many lines have been listed.  Presuming that  you  have  your  .newsrc  sorted  into  order  of
            interest, -s5 will tell you the 5 most interesting newsgroups that have unread news.  This is also a
            nice  feature  to use in your .login file, since it not only tells you whether there is unread news,
            but also how important the unread news is, without having to wade through the entire list of  unread
            newsgroups.   If no -s switch is given -s5 is assumed, so just putting "rn -c" into your .login file
            is fine.

       -S<number>
            causes trn to enter subject search mode (^N)  automatically  whenever  an  unthreaded  newsgroup  is
            started  up  with  <number> unread articles or more.  Additionally, it causes any 'n' typed while in
            subject search mode to be interpreted as '^N' instead.  (To get back out of subject search mode, the
            best command is probably '^'.)  If <number> is omitted, 3 is assumed.

       -t   puts trn into terse mode.  This is more cryptic but useful for low  baud  rates.   (Note  that  your
            system  administrator  may  have  compiled  trn  with  either verbose or terse messages only to save
            memory.)  You may wish to use the baud-rate switch modifier below to enable terse mode only at lower
            baud rates.

       -T   allows you to type ahead of trn.  Ordinarily trn will eat typeahead to  prevent  your  autorepeating
            space bar from doing a very frustrating thing when you accidentally hold it down.  If you don't have
            a  repeating space bar, or you are working at low baud rate, you can set this switch to prevent this
            behavior.  You may wish to use the baud-rate switch modifier below  to  disable  typeahead  only  at
            lower baud rates.

       -u   sets  the  unbroken-subject-line  mode in the selector, which simply truncates subjects that are too
            long instead of dumping the middle portion prior to the last two words of the subject.

       -U   tells trn to not write the .newsrc file out after visiting each group.  While this  is  "unsafe"  it
            can be faster if you have a really huge .newsrc.

       -v   sets verification mode for commands.  When set, the command being executed is displayed to give some
            feedback  that  the  key  has actually been typed.  Useful when the system is heavily loaded and you
            give a command that takes a while to start up.

       -V   will output trn's version number and quit.

       -x{<number>}{<list>}
            Enable the extended (threaded) features of trn beyond the rn compatibility mode  (this  may  be  the
            default  on  your  system,  use +x if you yearn for the good ol' days).  The <number> is the maximum
            number of article-tree lines (from 0 to 11) you want displayed in your header.  Use  the  <list>  to
            choose  which thread selector styles you like ('s'hort, 'm'edium, or 'l'ong), and in what order they
            are selected with the 'L' command.  For example, use -xms to start with the medium display mode  and
            only  switch between it and the short mode.  You can omit either or both of the parameters, in which
            case a default of -x6lms is assumed.

       -X{<number>}{<commands>}
            If you like using the selector, you'll probably want to use this option to make the selector command
            (+) the default when a newsgroup is started up  with  at  least  <number>  unread  articles.   (Your
            installer  may have chosen to make -X0 the default on your system.)  It is also used to select which
            commands you want to be the defaults while using the thread selector.  For example, -X2XD will  make
            the  thread  selector  the default command for entering a newsgroup with at least 2 unread articles,
            and set the default command for the LAST page of the thread selector to be the  X  command  and  the
            default  command for all other pages to be the D command.  Either or both parameters can be omitted,
            as well as the second default command (e.g.  -XX would change the default newsgroup entry to use the
            selector and the default command for the last page of the selector to be 'X').  The default is -X0Z>
            if just -X is specified.  To set the default selector commands without having  '+'  be  the  default
            entry into a newsgroup, specify a high number, like 9999.

       -z   sets  the minimum number of minutes that must elapse before the active file is refetched to look for
            new articles.  A value of 0 or using +z turns this off.

       -/   sets SAVEDIR to "%p/%c" and SAVENAME to "%a", which means that by default articles are  saved  in  a
            subdirectory  of your private news directory corresponding to the name of the the current newsgroup,
            with the filename being the article number.  +/ sets SAVEDIR to "%p" and SAVENAME to "%^C", which by
            default saves articles directly to your private news directory, with the filename being the name  of
            the  current  newsgroup,  first letter capitalized.  (Either +/ or -/ may be default on your system,
            depending on the feelings of your news administrator when he, she or it installed trn.)  You may, of
            course, explicitly set SAVEDIR and SAVENAME to other values -- see  discussion  in  the  environment
            section.

       Any  switch may be selectively applied according to the current baud-rate.  Simply prefix the switch with
       +speed to apply the switch at that speed or greater, and -speed to apply the  switch  at  that  speed  or
       less.   Examples:  -1200-hposted suppresses the Posted line at 1200 baud or less; +9600-m enables marking
       at 9600 baud or more.  You can apply the modifier recursively to itself also: +300-1200-t sets terse mode
       from 300 to 1200 baud.

       Similarly, switches may be selected based on terminal type:

            -=vt100+T      set +T on vt100
            -=tvi920-ETERM=mytvi     get a special termcap entry
            -=tvi920-ERNMACRO=%./.rnmac.tvi
                           set up special key-mappings
            +=paper-v      set verify mode if not hardcopy

       Some switch arguments, such as environment variable values, may require  spaces  in  them.   Such  spaces
       should  be  quoted  via  ",  ',  or  \ in the conventional fashion, even when passed via TRNINIT or the &
       command.

       Regular Expressions

       The patterns used in article searching are regular expressions such as those used by ed(1).  In addition,
       \w matches an alphanumeric character and \W a non-alphanumeric.  Word boundaries may be  matched  by  \b,
       and  non-boundaries  by  \B.  The bracketing construct \( ... \) may also be used, and \digit matches the
       digit'th substring, where digit can range from 1 to 9.   \0  matches  whatever  the  last  bracket  match
       matched.   Up  to  10  alternatives  may  given  in  a  pattern,  separated  by  \⎪, with the caveat that
       \( ... \⎪ ... \) is illegal.

       Character Set Conversions

       trn can use character set conversions when displaying articles. This helps users in  non-English-speaking
       countries  to display special characters on 7-bit displays.  trn assumes that articles use the ISO-8859-1
       character set and converts the special characters (e.g., "umlauts") to  a  string  of  ASCII  characters.
       Currently the following conversions are supported (see the -Q option):

       p    Plain. No change. This is the default.

       a    ISO->ASCII. Special characters are mapped to ASCII, e.g. the umlaut-o character becomes oe.

       m    ISO->ASCII monospaced. Special characters are mapped to exactly one similar-looking ASCII character,
            e.g. umlaut-o becomes o. Used where correct spacing is more important than accuracy.

       t    TeX->ISO. Assuming your display can handle the ISO-8859-1 charset, trn transforms umlauts in the TeX
            notation, which is commonly used in Germany, to real ISO characters, e.g. "a becomes umlaut-a.

       The  selected  conversion,  if different from p, will be displayed in the article level and pager prompt.
       The conversion is also used when including original articles in a reply or followup. It is not used  when
       saving articles to files.

       Interpretation and Interpolation

       Many  of  the  strings  that trn handles are subject to interpretations of several types.  Under filename
       expansion, an initial "~/" is translated to the name of your home directory, and "~name" is translated to
       the login directory for the user specified.  Filename expansion will also expand an  initial  environment
       variable, and also does the backslash, caret and percent expansion mentioned below.

       All  interpreted  strings  go through backslash, caret and percent interpretation.  The backslash escapes
       are the normal ones (such as \n, \t, \033, etc.).  The caret escapes indicate control codes (such as  ^i,
       ^l,  etc.).  If you wish to pass through a backslash or a caret it must be escaped with a backslash.  The
       special percent escapes are similar to printf percent escapes.  These cause the substitution  of  various
       run-time values into the string.  The following are currently recognized:

       %a      Current article number.

       %A      Full name of current article (%P/%c/%a).

       %b      Destination of last save command, often a mailbox.

       %B      The byte offset to the beginning of the part of the article to be saved, set by the save command.
               The  's'  and 'S' commands set it to 0, and the 'w' and 'W' commands set it to the byte offset of
               the body of the article.

       %c      Current newsgroup, directory form.

       %C      Current newsgroup, dot form.

       %d      Full name of newsgroup directory (%P/%c).

       %D      "Distribution:" line from the current article.

       %e      The last command executed to extract data from an article.

       %E      The last directory where an extracted file went.

       %f      "From:" line from the current article, or the "Reply-To:" line if there  is  one.   This  differs
               from %t in that comments (such as the full name) are not stripped out with %f.

       %F      "Newsgroups:"  line for a new article, constructed from "Newsgroups:" and "Followup-To:" lines of
               current article.

       %g      The general mode of trn, for use in conditional macros.

                    I    Init mode.
                    s    Selector mode.
                    r    Rn mode.
                    i    Input mode (newline terminated).
                    p    Prompt mode (single-character input).
                    c    Choice mode (multi-choice input).

       %h      Name of the header file to pass to the mail or news poster, containing all the  information  that
               the  poster  program  needs  in  the form of a message header.  It may also contain a copy of the
               current article.  The format of the header file is controlled by the  MAILHEADER  and  NEWSHEADER
               environment variables.

       %H      Host name (your machine's name).

       %i      "Message-I.D.:" line from the current article, with <> guaranteed.

       %I      The reference indication mark for citing prior articles (see the -F switch.)

       %l      The news administrator's login name, if any.

       %L      Login name (yours).

       %m      The current mode of trn, for use in conditional macros.

                    i    Initializing.
                    n    Newsgroup-list level.
                    f    End (finis) of newsgroup-list level.
                    t    The thread/subject/article selector.
                    c    Newsrc selector.
                    w    Newsgroup selector.
                    j    Addgroup selector.
                    l    Option selector.
                    a    Article level ("What next?").
                    e    End of the article level.
                    p    Pager level ("MORE" prompt).
                    u    Unkill prompt.
                    d    Selector mode prompt.
                    o    Selector order prompt.
                    m    Memorize thread command prompt.
                    r    Memorize subject command prompt.
                    z    Option edit prompt.
                    k    Processing memorized (KILL-file) commands.
                    A    Add this newsgroup?
                    B    Abandon confirmation.
                    C    Catchup confirmation.
                    D    Delete bogus newsgroups?
                    F    Is follow-up a new topic?
                    M    Use mailbox format?
                    R    Resubscribe to this newsgroup?
                    K    Press any key prompt.

               Note  that  yes/no  questions  are all upper-case modes.  If, for example, you wanted to disallow
               defaults on all yes/no questions, you could define the following macro:

               \040 %(%m=[A-Z]?h: )

       %M      The number of articles marked to return via the 'M' command.   If  the  same  article  is  Marked
               multiple times, "%M" counts it multiple times in the current implementation.

       %n      "Newsgroups:" line from the current article.

       %N      Full name (yours).

       %o      Organization (yours).

       %O      Original working directory (where you ran trn from).

       %p      Your private news directory, normally ~/News.

       %P      Public news spool directory, normally /usr/spool/news on systems that don't use NNTP.

       %q      The value of the last "quoted" input string (see the %" interp).

       %r      Last reference on references line of current article (parent article id).

       %R      References  list for a new article, constructed from the references and article ID of the current
               article.

       %s      Subject, with all Re's and (nf)'s stripped off.

       %S      Subject, with one "Re:" stripped off.

       %t      "To:" line derived from the "From:" and "Reply-To:" lines of the current  article.   This  always
               returns an Internet format address.

       %T      "To:" line derived from the "Path:" line of the current article to produce a uucp path.

       %u      The number of unread articles in the current newsgroup.

       %U      The  number  of  unread  articles in the current newsgroup, not counting the the current article.
               When threads are selected, this count reflects only selected articles.

       %v      The number of unselected articles, not counting the current article if it is unselected.

       %w      The directory where mthreads keeps its tmp files.

       %W      The directory where thread files are placed.

       %x      The news library directory.

       %X      The trn library directory.

       %z      The length of the current article in bytes.

       %Z      The number of selected threads.

       %~      Your home directory.

       %.      The directory containing your dot files, which is your  home  directory  unless  the  environment
               variable DOTDIR is defined when trn is invoked.

       %#      The  current  count for a multi-file save, starting with 1.  This value is incremented by one for
               each file saved or extracted within a single command.

       %$      Current process number.

       %/      Last search string.

       %?      A space unless the current interp string is > 79 characters, at  which  point  it  turns  into  a
               newline.

       %%      A percent sign.

       %{name} or %{name-default}
               The environment variable "name".

       %[name] The  value  of  header line "Name:" from the current article.  The "Name: " is not included.  For
               example "%D" and "%[distribution]" are equivalent.  The name must be spelled out in full.

       %`command`
               Inserts the output of the command, with any embedded newlines translated to space.

       %""prompt""
               Prints prompt on the terminal, then inputs one string, and inserts it.

       %(test_text=pattern?then_text:else_text)
               If test_text matches pattern, has the value then_text, otherwise else_text.  The ":else_text"  is
               optional,  and  if absent, interpolates the null string.  The = may be replaced with != to negate
               the test.  To quote any of the meta-characters ('=', '?', ':', or ')'), precede with a backslash.

       %digit  The digits 1 through 9 interpolate the string matched by the nth  bracket  in  the  last  pattern
               match  that  had  brackets.  If the last pattern had alternatives, you may not know the number of
               the bracket you want -- %0 will give you the last bracket matched.

       Modifiers: to capitalize the first  letter,  insert  '^':  "%^C"  produces  something  like  "Rec.humor".
       Inserting  '_'  causes  the  first  letter  following  the  last  '/'  to  be capitalized: "%_c" produces
       "rec/Humor".

       Inserting '\' will insert a backslash before any characters that would be magic in a regular  expression,
       including '%': "%\C" produces "rec\.humor".

       Inserting  "'"  will insert a backslash before any single-quotes in the result, suitable for enclosing in
       single-quotes and sending to a shell: "'%'s'" might produce "'I'\''m a subject'".

       Inserting "''" will insert a backslash before any double-quotes in the result, suitable for enclosing  in
       double-quotes and sending to a shell.

       Inserting ">" will strip out just the address portion of an address string such as the From line.

       Inserting  ")"  will strip out just the comment (real name) portion of an address string such as the From
       line.

       Inserting ":FMT" will format the result according to  the  printf-style  FMT  string:  "%:-50.50s"  left-
       justifies the subject into a 50 character field.

ENVIRONMENT

       The  following environment variables are paid attention to by trn.  In general the default values assumed
       for these variables by trn are reasonable, so if you are using trn for the first  time,  you  can  safely
       ignore  this  section.  Note that the defaults below may not correspond precisely to the defaults on your
       system.  To find the actual defaults you would need to look in config.h and common.h in  the  trn  source
       directory, and the file INIT in the trn library directory.

       Those  variables  marked  (%)  are subject to % interpolation, and those marked (~) are subject to both %
       interpolation and ~ interpretation.

       ATTRIBUTION (%)
               Gives the format of the attribution line in front of the quoted article included by an F command.

               Default: In article %i,%?%)f <%>f> wrote:

       AUTOSUBSCRIBE
               When trn is checking  for  new  newsgroups  and  finds  one  matching  one  of  the  patterns  in
               AUTOSUBSCRIBE,  the  new  group  is  automatically  added  to the end of the .newsrc, subscribed.
               Newsgroups not matching this or AUTOUNSUBSCRIBE, below, are offered to the user.

               AUTOSUBSCRIBE is a comma separated list of newsgroup patterns ala 'o', '/',  etc.   It  can  also
               include  "but  not"  entries  preceded by '!'.  "a,b,!c,d" is read as "matching a or b, unless it
               also matches c; matching d regardless".  Another way to look at it is "(((a or b) and not  c)  or
               d)".   To  automatically  subscribe to all local groups but be choosy about non-local groups, one
               might say "*,!*.*".

               Default: (none)

       AUTOUNSUBSCRIBE
               AUTOUNSUBSCRIBE is very similar to AUTOSUBSCRIBE, above,  but  new  newsgroups  matching  it  are
               automatically  added  to  the  end  of  the  .newsrc  file, unsubscribed.  If a newsgroup matches
               AUTOSUBSCRIBE, AUTOUNSUBSCRIBE is not consulted.

               Default: (none)

       CANCEL (~)
               The shell command used to cancel an article.

               Default: inews -h < %h

       CANCELHEADER (%)
               The format of the file to pass to the CANCEL command in order to cancel an article.

               Default:
               Newsgroups: %n
               Subject: cmsg cancel %i
               References: %R
               Reply-To: %L@%H (%N)
               Distribution: %D
               Organization: %o

               %i cancelled from trn.

       DOTDIR  Where to find your dot files, if they aren't in your home directory.  Can be  interpolated  using
               "%.".

               Default: $HOME

       EDITOR (~)
               The name of your editor, if VISUAL is undefined.

               Default: whatever your news administrator compiled in, usually vi.

       EXSAVER (%)
               The  shell  command  to  execute  in  order to extract data to either /bin/sh or a user-specified
               command.

               Default: tail -c +%B %A ⎪ %e

       FIRSTLINE (%)
               Controls the format of the line displayed at the top of an article.  Warning: this may go away.

               The default (ignoring the Marked to return display in unthreaded groups) is approximately:

               %C #%a%(%Z=^0$?%(%U!=^0$? (%U more\)): (%U + %v more\))

       FORWARDHEADER (%)
               The format of the header file for forwarding messages.  See also FORWARDPOSTER.

               Default:

               To:
               Subject: %(%i=^$?:[subject] (fwd\\)
               %(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
               )Newsgroups: %n
               In-Reply-To: %i)
               %(%[references]=^$?:References: %[references]
               )Organization: %o
               Cc:
               Bcc: \n\n

       FORWARDPOSTER (~)
               The shell command to be used by the forward command (^F) in  order  to  allow  you  to  edit  and
               deliver  the  file.  trn will not itself call upon an editor for replies -- this is a function of
               the program referenced by FORWARDPOSTER.  See also FORWARDHEADER and MAILPOSTER.

               Default: Rnmail -h %h

       FROM (%)
               What to put in the From: header of your posts, email replies,  and  email  forwards,  instead  of
               whatever  the  default  name and address are for your system.  This will only work if you use the
               default settings for the NEWSHEADER, MAILHEADER, and FORWARDHEADER variables, or if  your  custom
               ones use FROM to set the From: header.

               Regardless  of  the settings of NEWSHEADER, MAILHEADER, and FORWARDHEADER, the setting of FROM is
               used to determine which articles may be cancelled or superseded.

               Default: undefined

       HIDELINE
               If defined, contains a regular expression which matches article lines to be hidden, in order, for
               instance, to suppress quoted material.  A recommended string for this purpose is  "^>...",  which
               doesn't  hide lines with only '>', to give some indication that quoted material is being skipped.
               If you want to hide more than one pattern, you can use "⎪" to separate the alternatives.  You can
               view the hidden lines by restarting the article with the 'v' command.

               There is some overhead  involved  in  matching  each  line  of  the  article  against  a  regular
               expression.   You  might wish to use a baud-rate modifier to enable this feature only at low baud
               rates.

               Default: undefined

       HOME    Your home directory.  Affects ~ interpretation, and the location of your dot files if  DOTDIR  is
               not defined.

               Default: $LOGDIR

       KILLGLOBAL (~)
               Where  to find the KILL file to apply to every newsgroup.  See the '^K' command at the newsgroup-
               selection level.

               Default: %p/KILL

       KILLLOCAL (~)
               Where to find the KILL file for the current newsgroup.  See the commands  'K'  and  '^K'  at  the
               article selection level, and the search modifier 'K'.

               Default: %p/%c/KILL

       LOGDIR  Your home directory if HOME is undefined.  Affects ~ interpretation, and the location of your dot
               files if DOTDIR is not defined.

               Default: none.

               Explanation: you must have either $HOME or $LOGDIR.

       LOGNAME Your login name, if USER is undefined.  May be interpolated using "%L".

               Default: value of getlogin().

       LOCALTIMEFMT
               The  format used by strftime() to print the local time.  The Date line is only displayed in local
               time if the group is threaded (see the -H option for more information on Date).

               Default: %a %b %e %X %Z %Y

               which is the same format as the date(1) command.

       MAILCALL (~)
               What to say when there is new mail.

               Default: (Mail)

       MAILFILE (~)
               Where to check for mail.

               Default: /usr/spool/mail/%L

       MAILHEADER (%)
               The format of the header file for replies.  See also MAILPOSTER.

               Default:

               To: %t
               Subject: %(%i=^$?:Re: %S
               %(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
               )Newsgroups: %n
               In-Reply-To: %i)
               %(%[references]=^$?:References: %[references]
               )Organization: %o
               Cc:
               Bcc: \n\n

       MAILPOSTER (~)
               The shell command to be used by the reply commands (r and R) in order to allow you to  enter  and
               deliver  the response.  trn will not itself call upon an editor for replies -- this is a function
               of the program referenced by MAILPOSTER.  See also MAILHEADER.

               Default: Rnmail -h %h

       MBOXSAVER (~)
               The shell command to save an article in mailbox format.

               Default: %X/mbox.saver %A %P %c %a %B %C "%b" \
               "From %t %`date`"

               Explanation: the first seven arguments are the same as for NORMSAVER.  The eighth argument to the
               shell script is the new From line for the article, including the  posting  date,  derived  either
               directly  from  the  Posted: line, or not-so-directly from the Date: line.  Header munging at its
               finest.

       MODSTRING
               The string to insert in the group summary line, which heads each article, for a moderated  group.
               See also NOPOSTRING.

               Default: " (moderated)"

       NAME    Your full name.  May be interpolated using "%N".

               Default: name from /etc/passwd, or ~/.fullname.

       NEWSHEADER (%)
               The format of the header file for follow-ups.  See also NEWSPOSTER.

               Default:

               %(%[followup-to]=^$?:%(%[followup-to]=^%n$?:X-ORIGINAL-NEWSGROUPS: %n
               ))Newsgroups: %(%F=^$?%C:%F)
               Subject: %(%S=^$?%"\n\nSubject: ":Re: %S)
               Summary:
               Expires:
               %(%R=^$?:References: %R
               )Sender:
               Followup-To:
               %(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
               )Distribution: %(%i=^$?%"Distribution: ":%D)
               Organization: %o
               Keywords: %[keywords]
               Cc: \n\n

       NEWSORG Either  the  name  of  your  organization,  or  the  name  of  a file containing the name of your
               organization.  (For use at sites where the ORGANIZATION environmental variable is already in use.
               NEWSORG will override ORGANIZATION if both are present.)  May be interpolated using "%o".

               Default: whatever your news administrator compiled in.

       NEWSPOSTER (~)
               The shell command to be used by the follow-up commands (f and F) in order to allow you  to  enter
               and  post  a  follow-up  news article.  If not set, trn handles the whole process and calls inews
               directly.  See also NEWSHEADER.

       NNTPSERVER
               The hostname of your NNTPSERVER.  [This does not apply unless you are running the NNTP version of
               trn.]

               Default: the hostname listed in the server file, usually /usr/local/lib/rn/server.

       NOPOSTRING
               The string to insert in the group summary line, which heads each article, for a  group  to  which
               local posting is not allowed.  See also MODSTRING.

               Default: " (no posting)"

       NORMSAVER (~)
               The shell command to save an article in the normal (non-mailbox) format.

               Default: %X/norm.saver %A %P %c %a %B %C "%b"

       ORGANIZATION
               Either  the  name  of  your  organization,  or  the  name  of  a file containing the name of your
               organization.  (If NEWSORG is set, it will override ORGANIZATION.)   May  be  interpolated  using
               "%o".

               Default: whatever your news administrator compiled in.

       PAGESTOP
               If  defined,  contains  a  regular  expression which matches article lines to be treated as form-
               feeds.  There are at least two things you might want to do  with  this.   To  cause  page  breaks
               between articles in a digest, you might define it as "^--------".  To force a page break before a
               signature,  you  could define it as "^-- $".  (Then, when you see "--" at the bottom of the page,
               you can skip the signature if you so desire by typing 'n' instead of space.)   To  do  both,  you
               could  use "^--".  If you want to break on more than one pattern, you can use "⎪" to separate the
               alternatives.

               There is some overhead  involved  in  matching  each  line  of  the  article  against  a  regular
               expression.   You  might wish to use a baud-rate modifier to enable this feature only at low baud
               rates.

               Default: undefined

       PIPESAVER (%)
               The shell command to execute  in  order  to  accomplish  a  save  to  a  pipe  ("s ⎪ command"  or
               "w ⎪ command").  The command typed by the user is substituted in as %b.

               Default: %(%B=^0$?<%A:tail -c +%B %A ⎪) %b

               Explanation: if %B is 0, the command is "<%A %b", otherwise the command is "tail -c +%B %A ⎪ %b".

       REPLYTO The value of the "Reply-To:" header, if needed.

       RNINIT  This  variable is used when initializing trn in rn-compatibility mode (see the -x switch) or when
               the TRNINIT variable isn't defined.  See the TRNINIT variable for a description.

       RNMACRO (~)
               The name of the file containing macros and key mappings when running trn as  rn.   See  also  the
               TRNMACRO variable and the CUSTOM MACROS section.

               Default: %./.rnmac

       SAVEDIR (~)
               The name of the directory to save to, if the save command does not specify a directory name.

               Default:
                  If -/ is set: %p/%c
                  If +/ is set: %p

       SAVENAME (%)
               The name of the file to save to, if the save command contains only a directory name.

               Default:
                  If -/ is set: %a
                  If +/ is set: %^C

       SELECTCHARS
               The  characters  used  by the thread selector to select the associated thread of discussion.  You
               can specify up to 64 visible characters, including upper- and lower-case  letters,  numbers,  and
               many  punctuation  characters.  Selection characters override command characters in the selector,
               but are not excluded from macro expansion, so be careful.
               Default: abdefgijlorstuvwxyz1234567890BCFGHIKMVW
               (You'll notice various characters are omitted to allow them  to  be  typed  as  commands  in  the
               selector.)

       SHELL   The name of your preferred shell.  It will be used by the '!', 'S' and 'W' commands.

               Default: whatever your news administrator compiled in.

       SUBJLINE (%)
               Controls the format of the lines displayed by the '=' command at the article selection level.

               Default: %s

       SUPERSEDEHEADER (%)
               The format of the header file for a supersede article.

               Default:

               From: %L@%H (%N)
               Newsgroups: %n
               Subject: %S
               Distribution: %D
               Organization: %o
               Supersedes: %i

       TERM    Determines which termcap entry to use, unless TERMCAP contains the entry.

       TERMCAP Holds either the name of your termcap file, or a termcap entry.

               Default: /etc/termcap, normally.

       TRNINIT Default  values  for  switches  may  be passed to trn by placing them in the TRNINIT variable (or
               RNINIT if you're starting trn in rn-compatibility mode).  Any switch that is set in this way  may
               be overruled on the command line, or via the '&' command from within trn.  Binary-valued switches
               that are set with "-switch" may be unset using "+switch".

               If TRNINIT begins with a '/' it is assumed to be the name of a file containing switches.  You can
               put  comments in this file by preceding them with a '#' as long as this is the first character on
               a line or it follows some white-space (which delimits the switches in the file).  If you want  to
               set many environment variables but don't want to keep them all in your environment, or if the use
               of  any of these variables conflicts with other programs, you can use this feature along with the
               -E switch to set the environment variables upon startup.

               Default: " ".

       TRNMACRO (~)
               The name of the file containing macros and key mappings.  If the file is not found,  the  RNMACRO
               variable  is used to look for your rn macros.  For information on what to put into this file, see
               the CUSTOM MACROS section.

               Default: %./.trn/macros

       UNSHAR (~)
               The shell command to execute in order to accomplish the unshar'ing of a shell archive.

               Default: /bin/sh

       USER    Your login name.  May be interpolated using "%L".

               Default: $LOGNAME

       VISUAL (~)
               The name of your editor.

               Default: $EDITOR

       XTERMMOUSE
               If you set this variable to 'y' (yes), trn will enable the use of the xterm mouse in the selector
               if you are using an xterm.  Once enabled left-clicking  on  an  item  selects  it  while  middle-
               clicking  an  item will move to that item.  If you click the top (header) line of the selector it
               moves up a page.  If you click the bottom (footer) line of the selector it executes  the  default
               command for the page (left click) or goes down a page (middle click).  You can also use the right
               mouse button to move up or down a page by clicking in the upper-half or lower-half of the screen,
               respectively.

       YOUSAID (%)
               Gives the format of the attribution line in front of the quoted article included by an R command.

               Default: In article %i you write:

AUTOMATIC MACROS

       On  startup  trn  attempts  to build a set of macros that map your keypad arrow keys to useful functions.
       These default actions are mentioned in the prior description of each level's commands.  If you don't like
       this (or trn gets it wrong), you can disable the automatic macros by using the -A option.

CUSTOM MACROS

       When trn starts up it looks for a file containing macro definitions (see environment  variables  TRNMACRO
       and  RNMACRO).   Any  sequence of commands may be bound to any sequence of keys, so you could re-map your
       entire keyboard if you desire.  Blank lines or lines beginning with # in the macro  file  are  considered
       comments;  otherwise  trn  looks  for  two  fields  separated  by white space.  The first field gives the
       sequence of keystrokes that trigger the macro, and the second field gives the  sequence  of  commands  to
       execute.   Both  fields  are  subject  to  % interpolation, which will also translate backslash and caret
       sequences.  (The keystroke field is interpreted at startup time, but the command field is interpreted  at
       macro  execution time so that you may refer to % values in a macro.)  For example, if you want to reverse
       the roles of carriage return and space in trn

       ^J   \040
       ^M   \040
       \040 ^J

       will do just that.  By default, all characters in the command field are interpreted as the canonical  trn
       characters,  i.e. no macro expansion is done.  Otherwise the above pair of macros would cause an infinite
       loop.  To force macro expansion in the command field, enclose the macro call with ^( ... ^) thusly:

       @s   ⎪mysavescript
       @w   w^(@s^)

       You can use the %() conditional construct to construct  macros  that  work  differently  under  different
       circumstances.   In  particular,  the  current mode (%m) of trn could be used to make a command that only
       works at a particular level.  This is particularly vital for the selector which uses most of  the  lower-
       case letters to select the associated item in its display.  For example,

       a    %(%m=t?a:s art.hold\n)

       will return the original letter (a) in the selector, and the command "s art.hold\n" everywhere else.

       %(%{TERM}=vt100?^[[O)    /^J

       will  do  the  binding  only  if the terminal type is vt100, though if you have many of these it would be
       better to have separate files for each terminal.

       If you want to bind a macro to a function key that puts a common garbage  character  after  the  sequence
       (such  as  the  carriage  return on the end of Televideo 920 function sequences), DO NOT put the carriage
       return into all the sequences or you will waste a CONSIDERABLE amount of internal  storage.   Instead  of
       "^AF^M", put "^AF+1", which indicates to trn that it should gobble up one character after the F.

WHAT'S NEW

       Here's a quick run-down of trn's features and commands aimed at the knowledgeable rn or trn user.

       The addition of true reference-line threading is one of the biggest improvements over rn.  This threading
       allows  you  to  read a discussion in reply order with an article's replies being attached to the article
       that inspired them.  Threads will encompass multiple subjects whenever a  reply  to  an  article  in  the
       thread  arrives with a different subject.  This is usually done to better indicate the topic in the reply
       when it diverges from the original subject.

       Another big improvement is the selector, which is bound to the '+' key.  The selector displays a list  of
       threads,  subjects,  or individual articles to allow you to select the topics that interest you by typing
       their associated letter.  The difference between the thread and the subject selector is that the  subject
       selector  displays  all  subjects  with  a  separate selection letter, even those tied together via their
       references.  This can be quite useful if you select some threads and desire to weed out  some  extraneous
       discussions: you could switch the selector into exclusive mode ('E' shows only selected threads) and then
       into  subject  mode ('Ss') to separate the threads into their component subjects and deselect or kill the
       subjects you don't care about.  You don't have to go to all this trouble using the selector if you prefer
       to just hit the 'k' key when you start reading a subject you're not interested in.  The selector can also
       switch between showing unread articles and  articles  that  have  already  been  read,  allowing  you  to
       selectively re-read discussions (this is the 'U' command in the selector).

       Another  threaded  addition is the article-tree display in the upper-right corner of the header.  Looking
       at the tree gives you a feel for how the articles you are reading relate to each other, allowing  you  to
       see  at  a  glance  when there are lots of replies and decide if you want to junk an uninteresting set of
       replies or perhaps tough it out.

       The header display has also been modified to hide a few more lines by default (e.g. References), but,  as
       always,  you  can override these with -h.  There is also some more "magic" in the header: the From header
       can be trimmed to be just the comment portion (if available), and the Date header is displayed  in  local
       time (by default).  Use -H and +H to turn header magic on and off.

       Once  you  begin  reading  articles, use the regular movement commands (n, N, p, P, etc.) as you normally
       would.  You'll find that these commands track the reply order shown in the tree display.  Then try  using
       ^N and ^P, which follow a subject in the order the articles were posted.  Finally, check out the [, ], (,
       ),  {,  and  }  commands to move around in the article tree a bit more directly.  The first four commands
       should also be bound to your keypad's arrow keys, making them easier to type.  For  example,  typing  '['
       (left)  takes  you to your parent article, even if it was already read, which is very useful for tracking
       down the cited portion of the article in its original context.

       There are additional kill commands for the entire thread (J) and the current article and all its  replies
       (,).

       The  KILL  files  have been extended and the commands inside them are now referred to memorized commands,
       since they are often used for selection rather than killing of articles.  There are new, easier  ways  to
       add memorized commands using the 'A'dd and 'T'hread commands.  The 'A' command is subject-oriented, while
       the  'T'  command  is  article-oriented  (meaning  they affect a specific set of articles rather than any
       article that happens to have a matching subject).  They both prompt you for what kind of command you want
       to add, making both auto-killing and auto-selecting just as easy.

       There is also an easy way to skip around among the various threads with the < and > commands.   Use  them
       if you want to skip a set of article and read them later instead of junking them.

       Note:  your news administrator has the option of turning thread processing off for individual groups, and
       thus it is possible for some groups to not have any pre-processed thread information available  for  use.
       When  trn  encounters  such  a  group,  it generates the thread information on the fly while entering the
       group.  For really large groups (or really slow systems), this can take an appreciable  amount  of  time.
       If you can't talk your news administrator into pre-threading the group, you can turn off the threading on
       a group-by-group basis using the 't' command at the newsgroup-selection level.  Groups turned off in this
       way  are  read  in  the  rn style -- articles arranged in arrival order unless you specify the -S option,
       which reads the articles in date order by subject.

       Take note of the "e dir" command, which is used to extract a shell archive or  uuencoded  file  into  the
       specified  directory.   It  is even possible to extract other data formats if you specify the appropriate
       filter command (e.g. "e dir⎪cmd".

       Also, if you plan to use macro definitions, it is good to keep in mind that the selector uses most of the
       lower-case letters for selection, and thus it is a good idea to explicitly set the  mode(s)  in  which  a
       macro  applies.   For  example,  if  you want to press 'f' from the article pager/selector to forward the
       current article to the user "smith", you could define:

            f    %(%m=[pa]?⎪mail smith\n:f)

       This checks the current mode (%m) and if it is 'p' or 'a' it expands it to the  string  "⎪mail  smith\n",
       otherwise  it  returns the letter 'f'.  In some cases, you may simply wish to exclude the selector from a
       macro with the conditional "%m!=t".

       Finally, you'll probably want to use the new options, -x and -X to ensure that all  the  newest  features
       are available for use.  These options might be on by default, depending on how your administrator decided
       to install trn.

AUTHORS

       Rn was created by Larry Wall <lwall@jpl-devvax.jpl.nasa.gov>
       and is now under the direction of Stan Barber <sob@bcm.tmc.edu>.
       Threaded version by Wayne Davison <wayne@clari.net>
       (Mail all bug reports for trn to Wayne.)
       Regular expression routines are borrowed from emacs, by James Gosling.
       Hashing routines are modified versions from Geoffrey Collyer.

FILES

       %./.newsrc  status of your news reading

       %./.oldnewsrc
                   backup copy of your .newsrc from start of session

       %./.rnlock  lock file so you don't screw up your .newsrc

       %./.rnlast  info from last run of trn

       %./.rnsoft  soft pointers into /usr/lib/news/active to speed startup, synchronous with .newsrc

       %./.rnhead  temporary header file to pass to a mailer or news poster

       %./.[t]rnmac
                   macro and keymap definitions

       %p          your news save directory, usually ~/News

       %x/active   the list of active newsgroups, usually /usr/lib/news/active on systems that don't use NNTP

       %P          the public news spool directory, usually /usr/spool/news on systems that don't use NNTP

       %X/INIT     system-wide default switches

SEE ALSO

       newsrc(5), more(1), readnews(1), Pnews(1), Rnmail(1)

DIAGNOSTICS

       Generally self-documenting, as they say.

BUGS

       The -h switch can only hide header lines that trn knows about.

       The '-' command doesn't cross newsgroup boundaries, and only undoes the last article selection.

       If  you edit your .newsrc while trn is running, trn will happily wipe out your changes when it decides to
       write out the .newsrc file.

       Marking of duplicate articles as read in cross-referenced newsgroups will not work unless the Xref  patch
       is installed in inews.

       If you get carried away with % or escape substitutions, you can overflow buffers.

4.3 Berkeley Distribution                             LOCAL                                               TRN(1)