Seth Woolley's Man Viewer

trn(1) - trn - threaded read news program - man 1 trn

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

TRN(1)                                                                  TRN(1)



NAME
       trn - threaded read(2,n,1 builtins) news program

SYNOPSIS
       trn [options] [newsgroups]

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

       If you are already familiar with trn you may  just  want  to  read(2,n,1 builtins)  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(1,8) 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 com-
       mands 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(1,8) the order in(1,8) which they occur  in(1,8)
       the  .newsrc file.  At the prompt for each group you can choose to read(2,n,1 builtins)
       it, skip it, move(3x,7,3x curs_move) it, etc.  If a list of newsgroups is provided on  the
       command  line, trn will start up in(1,8) "add" mode, using the list as a set(7,n,1 builtins)
       of patterns to add new newsgroups and  restrict  which  newsgroups  are
       displayed (see also the discussion of the 'a' command on the newsgroup-
       selection level).

       Trn operates on four levels: the newsgroup-selection level, the  thread
       selector,  the article-reading level, and the paging level.  Each level
       has its own set(7,n,1 builtins) 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(1,8) the order of
       their  replies, with the subjects being ordered by the date of the old-
       est unread article (though there are commands for changing the  default
       display order).  In the thread selector you are presented with the sub-
       jects and (usually) authors associated with each discussion thread, and
       given  a  chance  to  choose  which ones you wish to read(2,n,1 builtins) now, save for
       later, or manipulate in(1,8) some way.   At  the  newsgroup-selection  level
       (the top level), you may specify which newsgroup you want next, or read(2,n,1 builtins)
       them in(1,8) the default order, which is the order that the newsgroups occur
       in(1,8)  your  .newsrc  file.   (You  will  therefore want to rearrange your
       .newsrc file(1,n) to put the most interesting newsgroups first.  This can be
       done  with  the 'm' command on the Newsgroup Selection level.  WARNING:
       invoking readnews/vnews (the old user interface) in(1,8) any way  (including
       as  a  news checker in(1,8) your login(1,3,5) 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(1,8) square brackets.  The first command in(1,8) the list is
       the  one which will be done if(3,n) you type a space.  (All input is done in(1,8)
       cbreak mode, so carriage returns should not be typed to terminate  any-
       thing  except certain multi-character commands.  Those commands will be
       obvious in(1,8) the discussion below because they take an argument.)

       Upon startup, trn will do several things:

       1.  It will look(1,8,3 Search::Dict) for your .newsrc file(1,n), which  is  your  list  of  sub-
           scribed-to newsgroups.  If trn doesn't find a .newsrc, it will cre-
           ate one.  If it does find one, it will back it up  under  the  name
           ".oldnewsrc".

       2.  It  will  input  your  .newsrc  file(1,n), 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(1,8) 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(3,n) 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(1,8) your .newsrc  file.   On  the  newsgroup-selection
       level, the prompt looks like this:

       ====== 17 unread articles in(1,8) talk.blurfl -- read(2,n,1 builtins) now? [ynq]

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

       +       Enter this newsgroup through the selector.

       y       Begin reading this newsgroup now.

       SP      Enter  the newsgroup by executing the default command listed in(1,8)
               []'s.

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

       =       Start this newsgroup, but list subjects before displaying arti-
               cles.

       U       Enter this newsgroup through the unkill-articles prompt.

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

       n       Go to the next newsgroup with unread news.

       N       Go to the next newsgroup.

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

       P       Go to the previous newsgroup.

       -       Go to the previously displayed newsgroup (regardless of whether
               it is before or after the current one in(1,8) 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-rela-
               tive number of the groups in(1,8) your .newsrc (see the 'L'  command
               to  list  your  .newsrc).  If it isn't currently subscribed to,
               you will be asked if(3,n) 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  begin-
               ning.

       ?pattern
               Same as /, but search backwards.

       u       Unsubscribe from the current newsgroup.

       l string(3,n)
               List  newsgroups  not  subscribed  to  which contain the string(3,n)
               specified.

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

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

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

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

       c       Catch up -- mark all unread articles in(1,8) this newsgroup as read.

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

       o {pattern}

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

       a pattern
               Add  unsubscribed newsgroups matching pattern.  If any matching
               newsgroups are found, you will be asked for  each  one  whether
               you  would  like  to  add it.  If you want to add all the news-
               groups, 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(7,n,1 builtins) of newsgroups just like the 'O' command does.

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

       &switch(1,n) {switch(1,n)}
               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(1,8)
               your own news directory.  A double exclamation mark (!!) leaves
               you   in(1,8)  the  spool  directory  for  news,  which  is  usually
               /usr/spool/news unless you're using NNTP  to  read(2,n,1 builtins)  news.   The
               environment variable SHELL will be used if(3,n) defined.  If command
               is null, an interactive shell is started.

       v       Print the current version(1,3,5) number and information  on  where  to
               send(2,n) bug reports.

       q       Quit.

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

       ^K      Edit the global list of memorized commands (in(1,8) the global  KILL
               file(1,n)) that you wish to be performed in(1,8) every newsgroup as it is
               started up (that is, when it  is  selected  at  the  newsgroup-
               selection  level).   This file(1,n) contains commands (one per line)
               such as /subject/:j or /author/f:+ to kill(1,2,1 builtins) or  select(2,7,2 select_tut)  articles
               based  on the indicated search criteria.  There is also a local
               list  of  commands  for  each  newsgroup   that   can   contain
               kill(1,2,1 builtins)/selection  commands  tailored  for  each  specific  group.
               Because of the overhead involved in(1,8) searching for  articles  to
               kill(1,2,1 builtins),  it is better if(3,n) possible to use a local list rather than
               the global one.  Local memorized  commands  are  usually  main-
               tained  by using the 'A' or 'T' commands from the article/pager
               level or in(1,8) 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(1,n) with the '^K'  command  from
               anywhere  inside  a  newsgroup.   If  either of the environment
               variables VISUAL or EDITOR is set(7,n,1 builtins), 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(2,n,1 builtins) 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, depend-
       ing on how your version(1,3,5) of trn was configured and your use  of  the  -X
       option.

       The  selector  displays  a list of articles by their subjects and (usu-
       ally) authors.  The articles are grouped into threads by default (which
       may  list  multiple  subjects  per  selectable  item if(3,n) the subject has
       changed during the discussion) and ordered by the date of their  oldest
       unread  article.   Thread or subject groups are also shown with a count
       of the number of articles in(1,8) each group.  Each selectable item is  pre-
       ceded  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  sepa-
       rately  or  pick  individual  articles), order the list by a variety of
       sort(1,3) criteria, and switch(1,n) the author display between its  long,  medium
       and short styles using the commands detailed below.

       The following commands are available in(1,8) 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 func-
               tion.

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

       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(2,n,1 builtins) 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(1,8) the article selector).

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

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

       m, \    Unmark the current item.

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

       @       Toggle all visible selections.

       M       Mark the current item's article(s) to return on newsgroup  exit(3,n,1 builtins)
               and kill(1,2,1 builtins) the item.

       Y       Yank  back  and  select(2,7,2 select_tut) the marked-to-return articles, clearing
               their to-return status.

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

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

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

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

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

       ^       Go to the first page.

       $       Go to the last page.

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

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

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

       R       Reverse the current sort(1,3) order.

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

       U       Switch between selecting unread/read(2,n,1 builtins) articles.

       X       Mark all unselected articles as read(2,n,1 builtins) and start reading.

       D       Mark unselected articles on the current page as read(2,n,1 builtins) and  begin
               reading  if(3,n)  articles  are  selected,  otherwise go to the next
               page.

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

       c       Catch  up -- marks ALL articles as read(2,n,1 builtins) without affecting their
               cross-posted counterparts.

       A       Add a subject-search command to the memorized  list  (a.k.a.  a
               KILL  file(1,n))  for this group.  You are prompted to choose selec-
               tion (+), junking (j), selection including all replies  (.)  or
               junking including all replies (,).  If the thread has more than
               one subject the first subject is the one chosen for  the  memo-
               rized 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(1,8,3 Search::Dict) there for an
               explanation of their use.)

       ^K      Edit the local list of memorized commands (a.k.a. a KILL  file(1,n))
               for  this  newsgroup.  A detailed description of memorized com-
               mands is found in(1,8) 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(2,7,2 select_tut)/deselect an arti-
               cle), "++"/"--" (select(2,7,2 select_tut)/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  destina-
               tion),  "e  dir" (extract to directory), 'E' (end partial uude-
               code), as well as: S, |, w, W, m, M, j, = and ','.

       :.command
               Apply a command to the current thread or the selected  articles
               in(1,8)  the current thread.  Use "::.command" to apply a command to
               the unselected articles in(1,8) the current thread.

       /pattern
               Scan all articles for a subject containing pattern  and  select(2,7,2 select_tut)
               it.

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

               One  example:  to  scan  all  the  unread  articles looking for
               "topic" anywhere in(1,8) the article and then select(2,7,2 select_tut) 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(7,n,1 builtins) the current status of command-line switches.

       &&      Display or set(7,n,1 builtins) 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(3,n)  trn  has mapped your arrow keys with default macros and the
               first character that your arrow keys send(2,n) is an ESC.

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

       Article-Reading Level

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

       On the article-reading level you are not asked whether you want to read(2,n,1 builtins)
       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(3,n) you want to continue.  The  normal  article-reading  prompt
       comes  at  the END of an article (although article-reading commands can
       also be given from within the middle of an article in(1,8) 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(2,n,1 builtins), since an article is  automatically  marked  as
               read(2,n,1 builtins)  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(2,n,1 builtins)
               by typing n, N, ^N, F, R, e, s, S, |, w, or W within the MIDDLE
               of the article is in(1,8) fact a special case.)

       N       Go to the next article.

       ^N      Find  the  next  article  with  the same subject in(1,8) 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(1,8) the normal
               sequence).

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

       _N      Go to the next article in(1,8) numeric sequence.

       _P      Go to the previous article in(1,8) numeric sequence.

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

       [, ]    Proceed to the left/right in(1,8) the article tree.  Visits already-
               read(2,n,1 builtins)  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(3,n) the node is
               already read(2,n,1 builtins) or empty.  Proceeds to the very first/last node if(3,n)
               you're already at a root/leaf in(1,8) a multi-root thread.

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

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

       ^R      Restart the current article.

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

       ^L      Refresh the screen.

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

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

       b       Back up one page.

       ^E      Display the last page of the article.

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

       ^       Go to the first unread article.

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

       number  Go to the numbered article.

       _C      Switch to next available charset conversion.

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

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

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

       :.command
               Apply a command to the current thread or the selected  articles
               in(1,8)  the current thread.  Use "::.command" to apply a command to
               the unselected articles in(1,8) the current thread.

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

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

       M       Mark  the  current  article to return on newsgroup exit.  Until
               then, the current article will be marked as read.  This is use-
               ful for returning to an article in(1,8) 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(1,8) the subject.
               See the Regular Expressions section.  Together with the  escape
               substitution  facility  described  later,  it  becomes  easy to
               search for various attributes of the current article,  such  as
               subject,  article  ID,  author name, etc.  The previous pattern
               can be recalled with ESC.  If pattern is omitted, the  previous
               pattern is assumed.

       /pattern/f
               Scan  forward  for article containing pattern in(1,8) 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(2,n,1 builtins) in(1,8) the full from-line
               data if(3,n) it is not already available.

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

       /pattern/h
               Scan forward for an article containing pattern in(1,8) the header.

       /pattern/a
               Scan  forward for an article containing pattern anywhere in(1,8) the
               article.

       /pattern/b
               Scan forward for an article containing pattern in(1,8) 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(1,8)  the
               body of the article.

       /pattern/r
               Scan read(2,n,1 builtins) articles also.

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

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

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

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

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

               For  example,  to save all articles in(1,8) a given newsgroup to the
               line printer and mark them read(2,n,1 builtins), use "/^/|lpr:j".  If you  type
               "/^/K|lpr:j",  this  will happen every time(1,2,n) you enter the news-
               group.

       ?pattern
               Scan backward for article containing pattern  in(1,8)  the  subject.
               May  be  modified  as  the  forward  search  is: ?pattern?modi-
               fiers[:commands].  It is likely that you will want an  r  modi-
               fier when scanning backward.

       k       Mark  as read(2,n,1 builtins) all articles with the same subject as the current
               article.  (Note: there is no single character command to tempo-
               rarily  mark  as read(2,n,1 builtins) (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(1,8) the current thread, even  if(3,n)  it  con-
               tains multiple subjects.

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

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

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

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

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

               /newgroup/:+

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

               The  KILL  file(1,n) 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(3,n,1 builtins)  from the newsgroup rather than on entrance.  This can
               be used to set(7,n,1 builtins) switches back to a default value.  One  use  for
               this capability is to set(7,n,1 builtins) your save directory to a custom value
               upon entry to a newsgroup and set(7,n,1 builtins) it back  on  exit(3,n,1 builtins)  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(1,8)
               particular.

       R       Reply,  including the current article in(1,8) the header file(1,n) gener-
               ated.  (See 'F' command below).  The YOUSAID environment  vari-
               able controls the format of the attribution line.

       ^F      Forward the current article.

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

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

       C       Cancel the current article, but only if(3,n) you are the contributor
               or superuser.

       z       Supersede the current article, but only if(3,n) you are the contrib-
               utor.

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

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

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

       u       Unsubscribe from this newsgroup.

       s destination
               Save to a filename or pipe(2,8) using sh.  If the first character of
               the  destination  is a vertical bar, the rest of the command is
               considered a shell command  to  which  the  article  is  passed
               through  standard  input.   The  command is subject to filename
               expansion.  (See also the environment variable PIPESAVER.)   If
               the destination does not begin with a vertical bar, the rest of
               the command is assumed to be a filename of some sort.  An  ini-
               tial  tilde  '~'  will  be  translated  to the name of the home
               directory, and an initial environment variable substitution  is
               also allowed.  If only a directory name is specified, the envi-
               ronment variable SAVENAME is used to generate the actual  name.
               If  a non-absolute filename is specified, the environment vari-
               able 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(1,n) to your news directory.  Save commands  are
               also  run  through  %  interpretation, so that you can enter "s
               %O/filename" to save to the directory you were in(1,8) when you  ran
               trn,  and "s %t" to save to a filename consisting of the Inter-
               net address of the sender.

               After generating the full pathname of the file(1,n) to save to,  trn
               determines  if(3,n)  the  file(1,n) exists already, and if(3,n) so, appends to
               it.  trn will attempt to determine if(3,n) an  existing  file(1,n)  is  a
               mailbox or a normal file(1,n), and save the article in(1,8) the same for-
               mat.  If the output file(1,n)  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(1,8) mailbox format, the command to do so is gen-
               erated from the  environment  variable  MBOXSAVER.   Otherwise,
               NORMSAVER is used.

       S destination
               Save  to  a  filename  or pipe(2,8) using a preferred shell, such as
               csh.  Which shell is used depends first on what  you  have  the
               environment  variable SHELL set(7,n,1 builtins) to, and in(1,8) the absence of that,
               on what your news administrator set(7,n,1 builtins)  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(1,3,5)  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(2,n)  the  data
               portion of the file(1,n) to /bin/sh, but that can be overridden with
               the UNSHAR variable (see the ENVIRONMENT section).   Uudecoding
               is  done internally by a decoder that can handle the data being
               split(1,n) up over multiple articles, and extracted one piece  at  a
               time.   To  decode a multi-article file(1,n), either execute the 'e'
               command in(1,8) each article in(1,8) sequence, use an  article  range  to
               execute the command, or use the ":e" command to repeat the com-
               mand 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  specifica-
               tions  are relative to the value of SAVEDIR, so you can use the
               command "e ." to force an extraction to SAVEDIR itself.   If  a
               uudecoding is in(1,8) progress (i.e. the last piece wasn't extracted
               yet) and you exit(3,n,1 builtins) the group, the partial file(1,n) will be  removed.
               This  also  occurs if(3,n) you start to extract a new uuencoded file(1,n)
               before the previous one was finished.  See also the 'E' command
               for ending a multi-part uudecoding manually.

               There  is  one special case that is handled differently: if(3,n) the
               first file(1,n) in(1,8) a recognizable shar file(1,n) is  a  uuencoded  binary
               that  was  packed  with lines starting with an 'X', we will not
               unshar the file(1,n) but instead uudecode it.  If this causes  prob-
               lems, you can override the default extraction method by follow-
               ing 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  deci-
               sions  made  by  the  automatic  extraction selection described
               above.  In normal operation, all data following what we  recog-
               nize  as  a  "cut here" line will be sent to the specified com-
               mand.  Additionally, the distinctive beginning of a  shell  ar-
               chive  is  also  recognized without a preceding cut line.  When
               the command is run, the default directory will be  set(7,n,1 builtins)  to  the
               specified  directory,  or  the value of SAVEDIR if(3,n) 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  com-
               mand.

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

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

       &switch(1,n) {switch(1,n)}
               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(1,8)
               your own news directory.  A double exclamation mark (!!) leaves
               you in(1,8) the spool directory of the current newsgroup.  The envi-
               ronment variable SHELL will be used if(3,n) 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 % inter-
               pretation,  in(1,8)  case  it is being called from a range or search
               command.

       +       Start the selector in(1,8) the last-used mode.  If the newsgroup  is
               unthreaded  and the default selector mode is threads, we tempo-
               rarily switch(1,n) to subject selection unless manually  overridden.

       _a      Start the selector in(1,8) article mode.

       _s      Start the selector in(1,8) subject mode.

       _t      Start the selector in(1,8) thread mode.

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

       =       List subjects of unread articles.

       #       Print last article number.

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

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

       Pager Level

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

       --MORE--(17%)

       and a number of commands may be given:

       SP      Display next page.

       x       Display next page and decrypt as a rot13 message.

       d       Display half a page more.

       CR      Display one more line.

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

       j       Junk the current article.  Mark it read(2,n,1 builtins) 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 sub-
               jects, 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(1,3,5) of the 'g' command that is for  skip-
               ping  articles  in(1,8) a digest.  It is equivalent to setting "-g4"
               and then executing the command "g^Subject:".

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

       !command
               Escape to a subshell.

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

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

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

           n N ^N e s S | w W


       Miscellaneous facts about commands

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

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

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

       The Tree Display

       When reading a threaded newsgroup, trn displays a character representa-
       tion of the article tree in(1,8) 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(1,8)
       the reply, as indicated by the increasing numbers.

       The third subject is not selected for  reading,  as  indicated  by  the
       <>'s.   Note you can always forcefully visit an unselected article with
       'N' and 'P' as well as the thread-navagation commands (which are  typi-
       cally 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(1,8,3 Search::Dict) at this
       thread in(1,8) the thread selector, the three subjects  associated  with  it
       would  be  listed  in(1,8) the same order as the ascending digits.  In those
       rare cases where more than 9 subjects are associated with each  thread,
       the nodes are marked with the letters A-Z, and then by a-z.

       The  articles  that have already been read(2,n,1 builtins) are enclosed in(1,8) ()'s, Unread
       articles are displayed in(1,8) []'s, and unread-but-unselected articles  are
       displayed in(1,8) <>'s.  The currently displayed article has its entire node
       highlighted in(1,8) the display.  The previously displayed article has  only
       its  number highlighted.  If the group has not been completely threaded
       yet, some articles will appear as (?) until trn can  determine  if(3,n)  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(1,2) set(7,n,1 builtins) 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(7,n,1 builtins) on the command
       line, via the TRNINIT environment variable, via a file(1,n)  pointed  to  by
       the  TRNINIT  variable,  or from within trn via the & command.  Options
       may generally be unset by typing "+switch(1,n)".  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(1,8) a partially-
            threaded state and process the unthreaded articles  in(1,8)  the  back-
            ground.  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(1,8) 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(2,n,1 builtins)  each  thread in(1,8) 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(1,8) 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(1,n) is specified, a non-zero exit(3,n,1 builtins) status from trn means that
            there is unread news in(1,8) one of the  checked  newsgroups.   The  -c
            switch(1,n)  does  not  disable  the printing of newsgroups with unread
            news; this is controlled by the -s switch.  (The -c switch(1,n) is  not
            meaningful when given via the & command.)

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

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

       -D<flags>
            enables debugging output.  See common.h for flag values.  Warning:
            normally trn attempts to restore your .newsrc when  an  unexpected
            signal(2,7) or internal error(8,n) occurs.  This is disabled when any debug-
            ging 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(1,n)
            of more(1).)  You never have to  read(2,n,1 builtins)  scrolling  text  with  this
            switch.   This is helpful especially at certain baud rates because
            you can start reading the top of the next page without waiting for
            the whole page to be printed.  It works nicely in(1,8) conjunction with
            the -m switch(1,n), especially if(3,n) you use half-intensity for your high-
            light 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(1,8)  csh,  or "SAVENAME='%t'; export SAVENAME" in(1,8) sh.  Any environ-
            ment variables set(7,n,1 builtins) with -E will be inherited  by  subprocesses  of
            trn.

       -f   will  make  trn avoid various sleep(1,3) calls and the prompt after the
            processing of the memorized commands that are  intended  to  allow
            you  time(1,2,n) to read(2,n,1 builtins) 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(3,n)>
            sets the prefix string(3,n) for the 'F' follow-up  command  to  use  in(1,8)
            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(1,8)
            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 arti-
            cle.  The lines are numbered starting with 1.  The initial default
            is  "-g1", meaning the first line of the screen.  Setting the line
            to less(1,3) than 1 or more than the number of lines on the screen will
            set(7,n,1 builtins) it to the last line of the screen.

       -G   selects  the  "fuzzy"  processing on the go command when you don't
            type in(1,8) 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 lit-
            tle slow about it, so it's not on by default.

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

       -H<string(3,n)>
            works  just like -h except that instead of setting the hiding flag
            for a header line, it sets the magic(4,5) flag for  that  header  line.
            Certain  header  lines  have magic(4,5) 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(1,8)
            local time(1,2,n) if(3,n) the group is threaded; the From line will only print
            the  commented  portion of the user name; the Newsgroups line will
            only print when there are multiple newsgroups;  the  Subject  line
            will  be  underlined and (when threaded) the keyword 'Subject:' is
            replaced by its subject number (e.g. [1]); and  the  Expires  line
            will always be suppressed if(3,n) 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(1,8) lines) to consider the initial page of an
            article -- normally this is determined automatically depending  on
            baud  rate.   (Note  that  an entire article header will always be
            printed regardless of the specified initial page length.   If  you
            are  working  at  low baud rate and wish to reduce the size of the
            headers, you may hide certain header lines with the -h switch.)

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

       -j   forces trn to leave control characters unmolested in(1,8) messages.

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

            &-J30
            X&+J

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

       -K   is  used  to keep a trn from checking for new news while you're in(1,8)
            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(1,2,1 builtins) file(1,n) for the group(s):

            &-K
            X&+K

       -l   disables the clearing of the screen at the beginning of each arti-
            cle, in(1,8) 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(1,3x,3x clrtobot) to
            end-of-line.  (The more(1) program does this.)  This feature works
            only  if(3,n)  you have the requisite termcap capabilities.  The switch(1,n)
            has no effect unless the -e switch(1,n) 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(1,3) than a full page is going to be  displayed.   It
            may  also be used in(1,8) conjunction with the -e switch(1,n), in(1,8) 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(3,n) -m=u is specified,  underlining
            will  be  used.  If neither =s or =u is specified, standout is the
            default.  Use +m to disable highlighting.

       -M   forces mailbox format in(1,8) creating new save files.  Ordinarily  you
            are asked which format you want.

       -N   forces  normal  (non-mailbox)  format  in(1,8) 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(1,8) the cur-
            rent group (such as the selector's 'X' command).

       -O<mode>{<order>}
            specifies the selector's mode and  (optionally)  the  sort(1,3)  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(1,8) subject order specify "-Oas".

       -p{opt}
            tells  trn  to  auto-select  your postings and their replies as it
            encounters them in(1,8) the various  groups  you  read.   The  optional
            parameter  is  either  a  '.',  'p', or '+' (it defaults to '.' if(3,n)
            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(2,7,2 select_tut) the whole thread that con-
            tains your reply.

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

       -Q<set(7,n,1 builtins)>
            defines the set(7,n,1 builtins) of available charset conversions. This can be use-
            ful  to  restrict the available conversions to those your terminal
            can handle and/or to specify an alternate default. The first  ele-
            ment of this set(7,n,1 builtins) is taken as default for each article.

       -r   causes trn to restart in(1,8) the last newsgroup read(2,n,1 builtins) during a previous
            session with trn.  It is equivalent to starting  up  normally  and
            then getting to the newsgroup with a g command.

       -s   with no argument suppresses the initial listing of newsgroups with
            unread news, whether -c is specified or not.  Thus -c and  -s  can
            be used together to test "silently" the status of news from within
            your .login file.  If -s is followed  by  a  number,  the  initial
            listing  is  suppressed  after  that  many lines have been listed.
            Presuming that you have your .newsrc sorted into order  of  inter-
            est, -s5 will tell you the 5 most interesting newsgroups that have
            unread news.  This is also a nice(1,2) feature to use  in(1,8)  your  .login
            file(1,n),  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(1,n) is
            given -s5 is assumed, so just putting "rn  -c"  into  your  .login
            file(1,n) is fine.

       -S<number>
            causes  trn  to enter subject search mode (^N) automatically when-
            ever an unthreaded newsgroup is started up  with  <number>  unread
            articles  or more.  Additionally, it causes any 'n' typed while in(1,8)
            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(3,n) trn into terse mode.  This is more cryptic but useful for low
            baud  rates.   (Note  that your system administrator may have com-
            piled trn with either verbose or terse messages only to save  mem-
            ory.)   You may wish to use the baud-rate switch(1,n) modifier below to
            enable terse mode only at lower baud rates.

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

       -u   sets the unbroken-subject-line mode in(1,8) 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(1,2) the .newsrc file(1,n) out  after  visiting  each
            group.   While  this  is  "unsafe"  it can be faster if(3,n) you have a
            really huge .newsrc.

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

       -V   will output trn's version(1,3,5) number and quit.

       -x{<number>}{<list>}
            Enable  the extended (threaded) features of trn beyond the rn com-
            patibility mode (this may be the default on your system, use +x if(3,n)
            you  yearn  for  the  good ol' days).  The <number> is the maximum
            number of article-tree lines (from 0 to 11) you want displayed  in(1,8)
            your  header.   Use  the  <list>  to  choose which thread selector
            styles you like ('s'hort, 'm'edium, or 'l'ong), and in(1,8) what  order
            they  are selected with the 'L' command.  For example, use -xms to
            start with the medium display mode and only switch(1,n) between it  and
            the short mode.  You can omit either or both of the parameters, in(1,8)
            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 news-
            group is started up with at least <number> unread articles.  (Your
            installer may have chosen to make -X0 the default on your system.)
            It is also used to select(2,7,2 select_tut)  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  news-
            group with at least 2 unread articles, and set(7,n,1 builtins) the default command
            for the LAST page of the thread selector to be the X  command  and
            the  default  command  for  all  other  pages to be the D command.
            Either or both parameters can be omitted, as well  as  the  second
            default  command  (e.g.   -XX  would  change the default newsgroup
            entry to use the selector and the default  command  for  the  last
            page  of the selector to be 'X').  The default is -X0Z> if(3,n) just -X
            is specified.  To set(7,n,1 builtins) 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(1,n)  is refetched to look(1,8,3 Search::Dict) for new articles.  A value of 0
            or using +z turns this off.

       -Z   is used to select(2,7,2 select_tut) 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(2,5) either one.

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

       Any  switch(1,n)  may  be selectively applied according to the current baud-
       rate.  Simply prefix the switch(1,n) with +speed to apply the switch(1,n) at that
       speed or greater, and -speed to apply the switch(1,n) at that speed or less.
       Examples: -1200-hposted suppresses the Posted  line  at  1200  baud  or
       less(1,3);  +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(7,n,1 builtins) +T on vt100
            -=tvi920-ETERM=mytvi     get a special termcap entry
            -=tvi920-ERNMACRO=%./.rnmac.tvi
                           set(7,n,1 builtins) up special key-mappings
            +=paper-v      set(7,n,1 builtins) verify(1,8) mode if(3,n) not hardcopy

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

       Regular Expressions

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

       Character Set Conversions

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

       p    Plain. No change. This is the default.

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

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

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

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

       Interpretation and Interpolation

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

       All interpreted strings go through backslash, caret and percent  inter-
       pretation.   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(1,3,1 builtins)  percent  escapes.  These cause the substitution of various run-
       time(1,2,n) 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(7,n,1 builtins)  by the save command.  The 's' and 'S' commands
               set(7,n,1 builtins) it to 0, and the 'w' and 'W' commands set(7,n,1 builtins) 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(1,n) went.

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

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

       %g      The general mode of trn, for use in(1,8) conditional macros.

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

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

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

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

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

       %l      The news administrator's login(1,3,5) name, if(3,n) any.

       %L      Login name (yours).

       %m      The current mode of trn, for use in(1,8) conditional macros.

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

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

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

       %M      The  number  of  articles marked to return via the 'M' command.
               If the same article is Marked multiple times,  "%M"  counts  it
               multiple times in(1,8) 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 sys-
               tems that don't use NNTP.

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

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

       %R      References list for a new article, constructed from the  refer-
               ences 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(1,8) the current newsgroup.

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

       %v      The number of unselected articles,  not  counting  the  current
               article if(3,n) 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(1,8) bytes.

       %Z      The number of selected threads.

       %~      Your home directory.

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

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

       %$      Current process number.

       %/      Last search string.

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

       %%      A percent sign.

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

       %[name] The value of header line "Name:" from the current article.  The
               "Name: "  is  not  included.  For example "%D" and "%[distribu-
               tion]" are equivalent.  The name must be spelled out in(1,8) full.

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

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

       %(test_text=pattern?then_text:else_text)
               If test_text matches pattern, has the value  then_text,  other-
               wise  else_text.   The ":else_text" is optional, and if(3,n) 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(3,n)  matched  by  the
               nth  bracket  in(1,8)  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 fol-
       lowing the last '/' to be capitalized: "%_c" produces "rec/Humor".

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

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

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

       Inserting ">" will strip out just the address  portion  of  an  address
       string(3,n) such as the From line.

       Inserting ")" will strip out just the comment (real name) portion of an
       address string(3,n) 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 rea-
       sonable, so if(3,n) you are using trn for the first  time(1,2,n),  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(1,8,3 Search::Dict)  in(1,8)  config.h and common.h in(1,8) the trn source
       directory, and the file(1,n) INIT in(1,8) 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(1,8) 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(1,8) AUTOSUBSCRIBE, the new group is automat-
               ically added to the end of the .newsrc, subscribed.  Newsgroups
               not matching this or AUTOUNSUBSCRIBE, below, are offered to the
               user.

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

               Default: (none)

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

               Default: (none)

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

               Default: inews -h < %h

       CANCELHEADER (%)
               The  format  of the file(1,n) to pass to the CANCEL command in(1,8) 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(3,n)  they  aren't  in(1,8)  your  home
               directory.  Can be interpolated using "%.".

               Default: $HOME

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

               Default:  whatever your news administrator compiled in(1,8), usually
               vi.

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

               Default: tail +%Bc %A | %e

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

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

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

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

               Default:

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

       FORWARDPOSTER (~)
               The shell command to be used by the  forward  command  (^F)  in(1,8)
               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 FORWARD-
               HEADER and MAILPOSTER.

               Default: Rnmail -h %h

       HIDELINE
               If defined, contains a regular expression which matches article
               lines  to be hidden, in(1,8) order, for instance, to suppress quoted
               material.  A recommended string(3,n) 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 alterna-
               tives.  You can view the hidden lines by restarting the article
               with the 'v' command.

               There  is  some  overhead involved in(1,8) 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  loca-
               tion of your dot files if(3,n) DOTDIR is not defined.

               Default: $LOGDIR

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

               Default: %p/KILL

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

               Default: %p/%c/KILL

       LOGDIR  Your home directory if(3,n) HOME is undefined.  Affects ~  interpre-
               tation,  and  the  location  of your dot files if(3,n) DOTDIR is not
               defined.

               Default: none.

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

       LOGNAME Your login(1,3,5) name, if(3,n) 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(1,8)  local  time(1,2,n)  if(3,n)  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(1,8)/%L

       MAILHEADER (%)
               The  format  of  the  header  file(1,n) for replies.  See also MAIL-
               POSTER.

               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(1,8)
               order to allow you to enter and deliver the response.  trn will
               not itself call upon an editor for replies -- this is  a  func-
               tion  of  the program referenced by MAILPOSTER.  See also MAIL-
               HEADER.

               Default: Rnmail -h %h

       MBOXSAVER (~)
               The shell command to save an article in(1,8) 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(3,n) to insert in(1,8) 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(1,5), or ~/.fullname.

       NEWSHEADER (%)
               The  format  of the header file(1,n) for follow-ups.  See also NEWS-
               POSTER.

               Default:

               %(%[followup-to]=^$?:%(%[followup-to]=^%n$?:X-ORIGINAL-NEWS-
               GROUPS: %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(1,n)
               containing the name of your organization.  (For  use  at  sites
               where  the  ORGANIZATION  environmental  variable is already in(1,8)
               use.  NEWSORG will override ORGANIZATION if(3,n) both are  present.)
               May be interpolated using "%o".

               Default: whatever your news administrator compiled in.

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

       NNTPSERVER
               The hostname of your NNTPSERVER.  [This does not  apply  unless
               you are running the NNTP version(1,3,5) of trn.]

               Default:  the  hostname  listed  in(1,8)  the  server  file(1,n), usually
               /usr/local/lib/rn/server.

       NOPOSTRING
               The string(3,n) to insert in(1,8) 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(1,8) the  normal  (non-mail-
               box) 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(1,n)
               containing the name of your organization.  (If NEWSORG is  set(7,n,1 builtins),
               it  will  override  ORGANIZATION.)   May  be interpolated using
               "%o".

               Default: whatever your news administrator compiled in.

       PAGESTOP
               If defined, contains a regular expression which matches article
               lines  to  be  treated  as  form-feeds.  There are at least two
               things you might want to do with this.  To  cause  page  breaks
               between   articles   in(1,8)  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(3,n) 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(1,8) 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(1,8) order to accomplish a save to a
               pipe(2,8)  ("s | command"  or  "w | command").  The command typed by
               the user is substituted in(1,8) as %b.

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

               Explanation: if(3,n) %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(3,n) needed.


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

       RNMACRO (~)
               The  name  of  the file(1,n) containing macros and key mappings when
               running trn as rn.  See also the TRNMACRO variable and the CUS-
               TOM MACROS section.

               Default: %./.rnmac

       SAVEDIR (~)
               The  name of the directory to save to, if(3,n) 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(1,n) to save to, if(3,n) the save  command  contains
               only a directory name.

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

       SELECTCHARS
               The  characters used by the thread selector to select(2,7,2 select_tut) the asso-
               ciated 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(1,8) the selector, but are not excluded from
               macro expansion, so be careful.
               Default: abdefgijlorstuvwxyz1234567890BCFGHIKMVW
               (You'll notice various characters are omitted to allow them  to
               be typed as commands in(1,8) the selector.)

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

               Default: whatever your news administrator compiled in.

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

               Default: %s

       SUPERSEDEHEADER (%)
               The format of the header file(1,n) 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(1,n), or a termcap entry.

               Default: /etc/termcap, normally.

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

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

               Default: " ".

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

               Default: %./.trn/macros

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

               Default: /bin/sh

       USER    Your login(1,3,5) name.  May be interpolated using "%L".

               Default: $LOGNAME

       VISUAL (~)
               The name of your editor.

               Default: $EDITOR

       XTERMMOUSE
               If you set(7,n,1 builtins) this variable to 'y' (yes), trn will enable the  use
               of  the  xterm mouse in(1,8) the selector if(3,n) you are using an xterm.
               Once enabled left-clicking on an item selects it while  middle-
               clicking  an item will move(3x,7,3x curs_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(3x,7,3x curs_move) up or down a page by clicking in(1,8) the upper-half or  lower-
               half of the screen, respectively.

       YOUSAID (%)
               Gives the format of the attribution line in(1,8) 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(7,n,1 builtins) of macros that map  your  keypad
       arrow keys to useful functions.  These default actions are mentioned in(1,8)
       the prior description of each level's commands.  If you don't like this
       (or  trn  gets(3,n) it wrong), you can disable the automatic macros by using
       the -A option.

CUSTOM MACROS
       When trn starts up it looks for a  file(1,n)  containing  macro  definitions
       (see environment variables TRNMACRO and RNMACRO).  Any sequence of com-
       mands may be bound to any sequence of keys, so you  could  re-map  your
       entire  keyboard  if(3,n) you desire.  Blank lines or lines beginning with #
       in(1,8) the macro file(1,n) 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 % interpo-
       lation, which will also translate backslash and caret sequences.   (The
       keystroke  field  is interpreted at startup time(1,2,n), but the command field
       is interpreted at macro execution time(1,2,n) so that you may refer to %  val-
       ues in(1,8) a macro.)  For example, if(3,n) you want to reverse the roles of car-
       riage return and space in(1,8) trn

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

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

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

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

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

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

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

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

       If you want to bind(2,n,1 builtins) a macro to  a  function  key  that  puts(3,n)  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(2,n,1 builtins) a discussion
       in(1,8) 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(1,8) the thread arrives with a  different  subject.
       This  is usually done to better indicate the topic in(1,8) 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 arti-
       cles to allow you to select(2,7,2 select_tut) the topics  that  interest  you  by  typing
       their  associated  letter.   The  difference between the thread and the
       subject selector is that the subject  selector  displays  all  subjects
       with  a  separate  selection letter, even those tied together via their
       references.  This can be quite useful if(3,n) you select(2,7,2 select_tut)  some  threads  and
       desire  to  weed  out some extraneous discussions: you could switch(1,n) 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(1,2,1 builtins) the subjects you don't care  about.   You
       don't  have  to go to all this trouble using the selector if(3,n) you prefer
       to just hit the 'k' key when you start reading  a  subject  you're  not
       interested  in.   The  selector  can also switch(1,n) between showing unread
       articles and articles that have already  been  read(2,n,1 builtins),  allowing  you  to
       selectively  re-read discussions (this is the 'U' command in(1,8) the selec-
       tor).

       Another threaded addition is the article-tree  display  in(1,8)  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(3,n) you want
       to junk an uninteresting set(7,n,1 builtins) 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(4,5)" in(1,8) the header: the From header can
       be  trimmed to be just the comment portion (if(3,n) available), and the Date
       header is displayed in(1,8) local time(1,2,n) (by default).  Use -H and +H to  turn
       header magic(4,5) 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(1,8) the tree display.  Then try using ^N and
       ^P, which follow a subject in(1,8)  the  order  the  articles  were  posted.
       Finally,  check out the [, ], (, ), {, and } commands to move(3x,7,3x curs_move) around in(1,8)
       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(3,n)  it  was  already  read(2,n,1 builtins),  which is very useful for tracking down the
       cited portion of the article in(1,8) its original context.

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

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

       There is also an easy way to skip around among the various threads with
       the < and > commands.  Use them if(3,n) you want to skip a  set(7,n,1 builtins)  of  article
       and read(2,n,1 builtins) them later instead of junking them.

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

       Take note of the "e dir" command, which is used to extract a shell  ar-
       chive  or uuencoded file(1,n) into the specified directory.  It is even pos-
       sible to extract other data formats if(3,n) you specify the appropriate fil-
       ter(1,3x,3x curs_util) command (e.g. "e dir|cmd".

       Also,  if(3,n) you plan to use macro definitions, it is good to keep in(1,8) mind
       that the selector uses most of the lower-case  letters  for  selection,
       and  thus  it  is  a good idea to explicitly set(7,n,1 builtins) the mode(s) in(1,8) which a
       macro applies.  For example, if(3,n) 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(1,8) smith\n:f)

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

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

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

FILES
       %./.newsrc  status of your news reading

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

       %./.rnlock  lock file(1,n) so you don't screw up your .newsrc

       %./.rnlast  info(1,5,n) from last run of trn

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

       %./.rnhead  temporary header file(1,n) 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(1,n) 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(1,2) out the .newsrc file.

       Marking of duplicate articles as read(2,n,1 builtins)  in(1,8)  cross-referenced  newsgroups
       will not work unless the Xref patch is installed in(1,8) inews.

       If  you  get carried away with % or escape substitutions, you can over-
       flow buffers.



4.3 Berkeley Distribution            LOCAL                              TRN(1)

References for this manual (incoming links)