Man Linux: Main Page and Category List

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
       WHATS NEW section.  People upgrading from rn will probably want to pay
       attention to the sections on The Selector, The Tree  Display,  and  the
       aforementioned  WHATS  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 "Set unread" 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, 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       Mark  some  or  all articles as unread.  You can choose to mark
               the current thread, sub-thread (the  current  article  and  its
               replies),  all the articles, or start up the selector to choose
               specific articles to set unread.

       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  that trn recognizes.  For instance, -hexp will disable the
            printing of the "Expires:" line.  Case is insignificant.   Headers
            unknown  to  trn cannot be disabled except by turning them all off
            (-h without a string will disable all headers except the  Subject)
            and  then using +h to select 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 -X1 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 -X1Z> 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.

       -Z   is used to select what style of database you want trn  to  access.
            Use -Zt for thread files, -Zo for overview files, and +Z for none.
            The default is whatever your newsadmin compiled into trn, and  can
            be -Zot to try to access either one.

       -/   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.

       Characterset 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.

       %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 (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-selection level.
                    f    end (Finis) of newsgroup-selection level.
                    t    the Thread/subject/article selector.
                    a    Article level (What next?).
                    e    End of the article level.
                    p    Pager level (MORE prompt).
                    u    Set-unread prompt.
                    d    selector moDe prompt.
                    o    selector Order prompt.
                    m    Memorize thread command prompt.
                    r    memoRize subject command 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?

               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 +%Bc %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: %"\n\nTo: "
               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: QUOTECHARS=%I Rnmail -h %h

       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 doesnt 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: QUOTECHARS=%I 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.  trn will not itself call upon an editor  for  follow-
               ups  --  this  is a function of the program called by trn.  See
               also NEWSHEADER.

               Default: QUOTECHARS=%I Pnews -h %h

       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 +%Bc %A │) %b

               Explanation: if %B is 0, the command is "<%A %b", otherwise the
               command is "tail +%Bc %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: %./.trnmac

       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.
               If you set it to ’a’ (always), trn  will  assume  you  have  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.

WHATS 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 <davison@borland.com>
       (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.