Computer Science


TRN(1)                                                     TRN(1)

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 vari-
               ables 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 uude-
               coding 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'  com-
               mand  for ending a multi-part uudecoding manually.

               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 with-
            out 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)
               %(%[references]=^$?:References: %[references]
               )Organization: %o
               Cc:
               Bcc: \n\n

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

               Default: QUOTECHARS=%I Rnmail -h %h

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

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

               Default: undefined

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

               Default: $LOGDIR

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

               Default: %p/KILL

       KILLLOCAL (~)
               Where to find the KILL file for the current  news-
               group.  See the commands 'K' and '^K' at the arti-
               cle selection level, and the search modifier  'K'.

               Default: %p/%c/KILL

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

               Default: none.

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

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

               Default: value of getlogin().

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

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

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

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

               Default: (Mail)

       MAILFILE (~)
               Where to check for mail.

               Default: /usr/spool/mail/%L

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

               Default:

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

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

               Default: QUOTECHARS=%I Rnmail -h %h

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

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

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

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

               Default: " (moderated)"

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

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

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

               Default:

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

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

               Default: whatever your news administrator compiled
               in.

       NEWSPOSTER (~)
               The shell command to be used by the follow-up com-
               mands (f and F) in order to allow you to enter and
               post  a  follow-up  news  article.   trn  will not
               itself call upon an editor for follow-ups --  this
               is  a  function of the program called by trn.  See
               also NEWSHEADER.

               Default: QUOTECHARS=%I Pnews -h %h

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

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

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

               Default: " (no posting)"

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

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

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

               Default: whatever your news administrator compiled
               in.

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

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

               Default: undefined

       PIPESAVER (%)
               The  shell  command  to execute in order to accom-
               plish a save to a pipe ("s | command" or "w | com-
               mand").   The command typed by the user is substi-
               tuted in as %b.

               Default: %(%B=^0$?<%A:tail +%Bc %A |) %b

               Explanation: if %B is 0, the command is "<%A  %b",
               otherwise the command is "tail +%Bc %A | %b".

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

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

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

               Default: %./.rnmac

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

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

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

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

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

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

               Default: whatever your news administrator compiled
               in.

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

               Default: %s

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

               Default:

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

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

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

               Default: /etc/termcap, normally.

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

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

               Default: " ".

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

               Default: %./.trnmac

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

               Default: /bin/sh

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

               Default: $LOGNAME

       VISUAL (~)
               The name of your editor.

               Default: $EDITOR

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

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

               Default: In article %i you write:

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

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

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

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

       @s   |mysavescript
       @w   w^(@s^)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FILES
        %./.newsrc  status of your news reading

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

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

        %./.rnlast  info from last run of trn

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

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

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

        %p          your news save directory, usually ~/News

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

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

        %X/INIT     system-wide default switches

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

DIAGNOSTICS
       Generally self-documenting, as they say.

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

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

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

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

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

                              LOCAL                             1

Back to the index


Apply now!


Handbook

Postgraduate study options

Computer Science Blog



Please give us your feedback or ask us a question

This message is...


My feedback or question is...


My email address is...

(Only if you need a reply)

A to Z Directory | Site map | Accessibility | Copyright | Privacy | Disclaimer | Feedback on this page