TRN(1)

TRN(1)

tree Home Page User Commands Index troff


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 dis-
       cussion thread is a tree of articles where all  the  reply
       (child)  articles  branch off from their respective origi-
       nating (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 individ-
       ual articles.  Any items you don't select can be saved for
       reading later or marked as read with a single keystroke.

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

           trn -x -X

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

       Starting Trn

       If  no  newsgroups are specified, all the newsgroups which
       have unread news will be presented  to  the  user  in  the
       order  in  which  they  occur in the .newsrc file.  At the
       prompt for each group you can choose to read it, skip  it,
       move  it, etc.  If a list of newsgroups is provided on the
       command line, trn will start up in "add" mode,  using  the
       list  as  a  set  of  patterns  to  add new newsgroups and
       restrict which newsgroups are displayed (see also the dis-
       cussion  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 News-
       group  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  com-
               mand listed in []'s.

       .command
               Do  this newsgroup now, but execute command before
               displaying anything.  The command will  be  inter-
               preted 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 (regard-
               less 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  news-
               group  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 news-
               group as read.

       A       Abandon the changes made to the current  newsgroup
               since  trn  was started.  Useful when you acciden-
               tally 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 restric-
               tion will remain in effect either until there  are
               no  articles  left  in the restricted set of news-
               groups, 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 arti-
               cles  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  com-
               mands  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 dis-
       cussion) 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 cur-
               rent 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 mark-
               ing 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  arti-
               cles, 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, sub-
               jects or articles.  If  the  group  is  unthreaded
               setting this to threads will thread the group.

       =       Switch  between  the article selector and the sub-
               ject/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  arti-
               cles.   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   sub-
               ject/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  ':'  com-
               mand).

       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 cho-
               sen 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/dese-
               lect 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 desti-
               nation), "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 search-
               ing in the Article Selection section.
               One example: to scan all the unread articles look-
               ing 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 news-
               group-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  dis-
       abled  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 selec-
       tions 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 com-
       mands can also be given from within the middle of an arti-
       cle  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 news-
               group (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  asso-
               ciated  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 mes-
               sage.

       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 '.' rep-
               resents 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' (can-
               cel), 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,  other-
               wise  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 previ-
               ous 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 modi-
               fier  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 exe-
               cuted as a memorized command.  If the command por-
               tion 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 selec-
               tion 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 modi-
               fiers).  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 news-
               group 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 scan-
               ning 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 memo-
               rized commands for the group.  See also the K mod-
               ifier 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 usu-
               ally 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 arti-
               cles), quit the group, and re-enter.
               To see only newgroup articles in the control news-
               group, 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 arti-
               cle 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 arti-
               cles 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  arti-
               cles,  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 com-
               mand  to which the article is passed through stan-
               dard 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  vari-
               able  substitution  is  also  allowed.   If only a
               directory name is specified, the environment vari-
               able SAVENAME is used to generate the actual name.
               If a non-absolute filename is specified, the envi-
               ronment  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/file-
               name"  to  save  to the directory you were in when
               you ran trn, and "s %t" to save to a filename con-
               sisting 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 sec-
               tion).  Uudecoding is done internally by a decoder
               that can handle the data being split up over  mul-
               tiple 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 manu-
               ally.
               There is one special case that is handled  differ-
               ently:  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  environ-
               ment  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 cur-
               rent 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 execut-
               ing  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 arti-
       cle, 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 arti-
       cle, 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 interpo-
       late, type escape and 'h', or check out the single charac-
       ter  %  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 charac-
       ter 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 indi-
       cated by the increasing numbers.

       The third subject is not selected for  reading,  as  indi-
       cated  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 associ-
       ated  with each thread, the nodes are marked with the let-
       ters 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  cur-
       rently  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 com-
       pletely 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 news-
            groups.  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 situa-
            tion is right.  If a reasonable check-pointing situa-
            tion  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 (per-
            haps 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 direc-
            tory  and  its  subdirectories, by default.  In addi-
            tion, shell escapes leave you in this directory.

       -D<<flags>>
            enables debugging output.  See common.h for flag val-
            ues.   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, espe-
            cially 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  num-
            bered 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  'Sub-
            ject:'  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  regard-
            less  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 num-
            ber 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 por-
            tion  that  starts  with a '+' or a '.') in the memo-
            rized 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) pro-
            gram 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 nei-
            ther =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  conver-
            sions  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 dur-
            ing a previous session with trn.  It is equivalent to
            starting  up  normally  and then getting to the news-
            group 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) automat-
            ically 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 ver-
            bose 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 acciden-
            tally  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.   Use-
            ful  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 arti-
            cle-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 subdi-
            rectory 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 news-
            group, first letter capitalized.  (Either  +/  or  -/
            may be default on your system, depending on the feel-
            ings of your news administrator when he,  she  or  it
            installed  trn.)   You may, of course, explicitly set
            SAVEDIR and SAVENAME to other values --  see  discus-
            sion 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 val-
       ues, 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 expres-
       sions  such  as  those  used  by  ed(1).   In addition, \w
       matches an alphanumeric character and  \W  a  non-alphanu-
       meric.   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  coun-
       tries  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  con-
       versions 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 dis-
       played  in the article level and pager prompt. The conver-
       sion 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 inter-
       pretations of several types.  Under filename expansion, an
       initial "~/" is translated to the name of your home direc-
       tory, 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 back-
       slash, 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  sub-
       stitution 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 con-
               trolled by the MAILHEADER and NEWSHEADER  environ-
               ment 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 multi-
               ple  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 arti-
               cle (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 news-
               group.

       %U      The number of unread articles in the current news-
               group, 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  vari-
               able 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  new-
               line.

       %%      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 exam-
               ple  "%D"  and  "%[distribution]"  are equivalent.
               The name must be spelled out in full.

       %`command`
               Inserts the output of the command, with any embed-
               ded 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 capi-
       talized: "%_c" produces "rec/Humor".

       Inserting '\' will insert a backslash before  any  charac-
       ters  that would be magic in a regular expression, includ-
       ing '%': "%\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 news-
               group 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 automat-
               ically  added  to  the  end  of  the .newsrc file,
               unsubscribed.  If  a  newsgroup  matches  AUTOSUB-
               SCRIBE, 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 com-
               mand 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  com-
               mand.
               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  mes-
               sages.  See also FORWARDPOSTER.
               Default:
               To:
               Subject: %(%i=^$?:[subject] (fwd\\)
               %(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
               )Newsgroups: %n
               In-Reply-To: %i)