Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
TRN(1)			     General Commands Manual			  TRN(1)

NAME
     trn - threaded read news program

SYNOPSIS
     trn [options] [newsgroups]

DESCRIPTION
     Trn is a threaded version of rn, which is a replacement for the readnews(1)
     program.	Being  "threaded"  means that the articles are interconnected in
     reply order.  Each discussion thread is a tree of articles  where	all  the
     reply  (child)  articles branch off from their respective originating (par-
     ent) articles.  A representation of this tree (or a portion of it) is  dis-
     played  in  the  article  header as you are reading news.	This gives you a
     better feel for how all the articles are related, and even lets you see  at
     a	glance when an article has replies -- a good thing to check before post-
     ing.  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 sub-
     jects separately (threads can have multiple subjects) or even pick individ-
     ual articles.  Any items you don't select can be saved for reading later or
     marked as read with a single keystroke.

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

	 trn -x -X

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

     Starting Trn

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

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

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

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

     Upon startup, trn will do several things:

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

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

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

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

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

     Newsgroup Selection Level

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

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

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

     +	     Enter this newsgroup through the selector.

     y	     Begin reading this newsgroup now.

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

     .commandDo  this  newsgroup now, but execute command before displaying any-
	     thing.  The command will be interpreted as if typed on the  article
	     selection level.

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

     U	     Enter this newsgroup through the unkill-articles prompt.

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

     n	     Go to the next newsgroup with unread news.

     N	     Go to the next newsgroup.

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

     P	     Go to the previous newsgroup.

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

     1	     Go to the first newsgroup.

     ^	     Go to the first newsgroup with unread news.

     $	     Go to the end of the newsgroups list.

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

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

     ?patternSame as /, but search backwards.

     u	     Unsubscribe from the current newsgroup.

     l stringList  newsgroups  not subscribed to which contain the string speci-
	     fied.

     L	     Lists the current state of the .newsrc, along with status	informa-
	     tion.

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

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

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

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

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

     o {pattern}

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

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

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

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

     &&      Print out the current macro definitions.

     &&keys commands
	     Define additional macros.

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

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

     q	     Quit.

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

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

     The Selector

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

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

     The following commands are available in the selector:

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

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

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

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

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

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

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

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

     m, \    Unmark the current item.

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

     @	     Toggle all visible selections.

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

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

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

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

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

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

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

     ^	     Go to the first page.

     $	     Go to the last page.

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

     =	     Switch  between  the article selector and the subject/thread selec-
	     tor.

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

     R	     Reverse the current sort order.

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

     U	     Switch between selecting unread/read articles.

     X	     Mark all unselected articles as read and start reading.

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

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

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

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

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

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

     :commandApply a command to all the selected threads or their selected arti-
	     cles.  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-se-
	     lected threads/articles.

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

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

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

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

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

     N	     Go to the next newsgroup with unread news.

     P	     Go to the previous newsgroup with unread news.

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

     &&      Display or set the current macro definitions.

     !commandEscape to a subshell.

     q	     Quit this group.

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

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

     Article-Reading Level

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

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

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

     The following are the options at this point:

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

     N	     Go to the next article.

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

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

     P	     Go to the previous article.

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

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

     _N      Go to the next article in numeric sequence.

     _P      Go to the previous article in numeric sequence.

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

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

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

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

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

     ^R      Restart the current article.

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

     ^L      Refresh the screen.

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

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

     b	     Back up one page.

     ^E      Display the last page of the article.

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

     ^	     Go to the first unread article.

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

     number  Go to the numbered article.

     _C      Switch to next available charset conversion.

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

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

     :commandApply a command to all the selected threads or their selected arti-
	     cles.   Use "::command" to apply it to all non-selected threads/ar-
	     ticles.  For applicable commands, see the discussion above for  the
	     range command.

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

     j	     Junk the current article (i.e. mark it as read).  If  this  command
	     is  used from within an article, you are left at the end of the ar-
	     ticle, 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 in-
	     stead  of	m,  otherwise this article might get picked again as the
	     first available article sooner than you'd like.)

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

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

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

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

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

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

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

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

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

     /pattern/r
	     Scan read articles also.

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

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

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

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

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

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

     ?patternScan backward for article containing pattern in the  subject.   May
	     be  modified  as  the  forward  search is: ?pattern?modifiers[:com-
	     mands].  It is likely that you will want an r modifier  when  scan-
	     ning backward.

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

	     Mark the current article and all its replies as read.

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

     A	     Add  a  subject-search command to the memorized list for this group
	     (in the KILL file).  You are  prompted  to  choose  selection  (+),
	     junking (j), selection including all replies (.) or junking includ-
	     ing 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-selec-
	     tion/junking for this  thread  (c),  or  clearing	the  auto-selec-
	     tion/junking for an article and its replies (C).

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

	     To  see  only  newgroup  articles in the control newsgroup, for in-
	     stance, 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 com-
	     mands (thread commands die automatically as the thread  dies).   If
	     either  of  the  environment variables VISUAL or EDITOR is set, the
	     specified editor will be invoked; otherwise a default editor  (nor-
	     mally vi) is invoked on the KILL file.

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

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

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

     ^F      Forward the current article.

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

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

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

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

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

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

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

     u	     Unsubscribe from this newsgroup.

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

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

     S destination
	     Save to a filename or pipe using a preferred shell,  such	as  csh.
	     Which  shell is used depends first on what you have the environment
	     variable SHELL set to, and in the absence of  that,  on  what  your
	     news  administrator  set for the preferred shell when he or she in-
	     stalled 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  di-
	     rectory.  The article is first scanned to try discover what type of
	     data  is  encapsulated.   If  a "cut here" line is found, the first
	     non-blank line after it must be either the start of a shar  header,
	     or  the "begin" or "table" line of a uuencoded binary.  The default
	     for extracting shars is to send the data portion  of  the	file  to
	     /bin/sh,  but  that can be overridden with the UNSHAR variable (see
	     the ENVIRONMENT section).	Uudecoding is done internally by  a  de-
	     coder  that  can handle the data being split up over multiple arti-
	     cles, and extracted one piece at a time.  To decode a multi-article
	     file, either execute the 'e' command in each article  in  sequence,
	     use  an  article range to execute the command, or use the ":e" com-
	     mand to repeat the command for each of the currently selected arti-
	     cles.  When the 'e' command is not followed by  any  arguments,  it
	     will  repeat the arguments from the last extraction.  All directory
	     specifications are relative to the value of SAVEDIR, so you can use
	     the command "e ." to force an extraction to SAVEDIR itself.   If  a
	     uudecoding  is  in  progress  (i.e. the last piece wasn't extracted
	     yet) and you exit the group, the  partial	file  will  be	removed.
	     This  also  occurs if you start to extract a new uuencoded file be-
	     fore the previous one was finished.  See also the 'E'  command  for
	     ending a multi-part uudecoding manually.

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

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

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

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

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

     &&      Print out current macro definitions.

     &&keys commands
	     Define an additional macro.

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

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

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

     _a      Start the selector in article mode.

     _s      Start the selector in subject mode.

     _t      Start the selector in thread mode.

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

     =	     List subjects of unread articles.

     #	     Print last article number.

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

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

     Pager Level

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

     --MORE--(17%)

     and a number of commands may be given:

     SP      Display next page.

     x	     Display next page and decrypt as a rot13 message.

     d	     Display half a page more.

     CR      Display one more line.

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

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

     ^L      Refresh the screen.

     X	     Refresh the screen and decrypt as a rot13 message.

     b	     Back up one page.

     ^E      Display the last page of the article.

     _C      Switch to next available charset conversion.

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

     gpatternGoto  (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  dis-
	     played.   Where  on the page the line matching the pattern goes de-
	     pends on the value of the -g switch.  By default the  matched  line
	     goes at the top of the screen.

     G	     Search for g pattern again.

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

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

     !commandEscape to a subshell.

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

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

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

	 n N ^N e s S | w W

     Miscellaneous facts about commands

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

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

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

     The Tree Display

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

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

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

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

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

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

     Options

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

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

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

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

     -B   will turn on a spinner that twirls when trn is doing background  arti-
	  cle-processing.   A  gizmo for those interested in what's going on be-
	  hind 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; oth-
	  erwise  all  subscribed-to  newsgroups  are  checked.  Whenever the -c
	  switch is specified, a non-zero exit status from trn means that  there
	  is  unread  news in one of the checked newsgroups.  The -c switch does
	  not disable the printing of newsgroups with unread news; this is  con-
	  trolled by the -s switch.  (The -c switch is not meaningful when given
	  via the & command.)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	  &-J30
	  X&+J

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

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

	  &-K
	  X&+K

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

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

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

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

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

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

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

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

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

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

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

     -s   with no argument suppresses the initial listing of newsgroups with un-
	  read 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 sup-
	  pressed after that many lines have been listed.   Presuming  that  you
	  have your .newsrc sorted into order of interest, -s5 will tell you the
	  5  most  interesting newsgroups that have unread news.  This is also a
	  nice feature to use in your .login file, since it not only  tells  you
	  whether  there  is unread news, but also how important the unread news
	  is, without having to wade through the entire  list  of  unread  news-
	  groups.   If no -s switch is given -s5 is assumed, so just putting "rn
	  -c" into your .login file is fine.

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

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

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

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

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

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

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

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

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

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

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

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

     Similarly, switches may be selected based on terminal type:

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

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

     Regular Expressions

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

     Character Set Conversions

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

     p	  Plain. No change. This is the default.

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

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

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

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

     Interpretation and Interpolation

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

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

     %a      Current article number.

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

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

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

     %c      Current newsgroup, directory form.

     %C      Current newsgroup, dot form.

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

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

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

     %E      The last directory where an extracted file went.

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

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

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

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

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

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

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

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

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

     %L      Login name (yours).

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

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

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

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

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

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

     %N      Full name (yours).

     %o      Organization (yours).

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

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

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

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

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

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

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

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

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

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

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

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

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

     %w      The directory where mthreads keeps its tmp files.

     %W      The directory where thread files are placed.

     %x      The news library directory.

     %X      The trn library directory.

     %z      The length of the current article in bytes.

     %Z      The number of selected threads.

     %~      Your home directory.

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

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

     %$      Current process number.

     %/      Last search string.

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

     %%      A percent sign.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	     Default: (none)

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

	     Default: (none)

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

	     Default: inews -h < %h

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

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

	     %i cancelled from trn.

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

	     Default: $HOME

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

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

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

	     Default: tail +%Bc %A | %e

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

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

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

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

	     Default:

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

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

	     Default: Rnmail -h %h

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

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

	     Default: undefined

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

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

	     Default: undefined

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

	     Default: $LOGDIR

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

	     Default: %p/KILL

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

	     Default: %p/%c/KILL

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

	     Default: none.

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

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

	     Default: value of getlogin().

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

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

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

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

	     Default: (Mail)

     MAILFILE (~)
	     Where to check for mail.

	     Default: /usr/spool/mail/%L

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

	     Default:

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

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

	     Default: Rnmail -h %h

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

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

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

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

	     Default: " (moderated)"

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

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

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

	     Default:

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

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

	     Default: whatever your news administrator compiled in.

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

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

	     Default: the hostname listed in the server file,  usually	/usr/lo-
	     cal/lib/rn/server.

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

	     Default: " (no posting)"

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

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

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

	     Default: whatever your news administrator compiled in.

     PAGESTOPIf  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 arti-
	     cles  in  a digest, you might define it as "^--------".  To force a
	     page break before a signature, you could  define  it  as  "^--  $".
	     (Then,  when  you	see "--" at the bottom of the page, you can skip
	     the signature if you so desire by typing 'n' instead of space.)  To
	     do both, you could use "^--".  If you want to break  on  more  than
	     one pattern, you can use "|" to separate the alternatives.

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

	     Default: undefined

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

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

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

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

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

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

	     Default: %./.rnmac

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

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

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

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

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

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

	     Default: whatever your news administrator compiled in.

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

	     Default: %s

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

	     Default:

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

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

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

	     Default: /etc/termcap, normally.

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

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

	     Default: " ".

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

	     Default: %./.trn/macros

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

	     Default: /bin/sh

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

	     Default: $LOGNAME

     VISUAL (~)
	     The name of your editor.

	     Default: $EDITOR

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

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

	     Default: In article %i you write:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     Note:  your  news administrator has the option of turning thread processing
     off for individual groups, and thus it is possible for some groups  to  not
     have  any pre-processed thread information available for use.  When trn en-
     counters 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 admin-
     istrator into pre-threading the group, you can turn off the threading on  a
     group-by-group  basis  using  the	't'  command  at the newsgroup-selection
     level.  Groups turned off in this way are read in the rn style --	articles
     arranged in arrival order unless you specify the -S option, which reads the
     articles in date order by subject.

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

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

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

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

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

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

FILES
     %./.newsrc  status of your news reading

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

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

     %./.rnlast  info from last run of trn

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

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

     %./.[t]rnmacmacro and keymap definitions

     %p 	 your news save directory, usually ~/News

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

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

     %X/INIT	 system-wide default switches

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

DIAGNOSTICS
     Generally self-documenting, as they say.

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

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

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

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

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

4.3 Berkeley Distribution	      LOCAL				  TRN(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=trn&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help