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

FreeBSD Manual Pages

  
 
  

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

       If you are already familiar with	trn you	may  just  want	 to  read  the
       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 com-
       mands are available (just type 'h' from any prompt).  I'd also  suggest
       using the command:

	   trn -x -X

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

       Starting	Trn

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

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

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

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

       Upon startup, trn will do several things:

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

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

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

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

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

       Newsgroup Selection Level

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

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

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

       +       Enter this newsgroup through the	selector.

       y       Begin reading this newsgroup now.

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

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

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

       U       Enter this newsgroup through the	unkill-articles	prompt.

       t       Toggle  the  newsgroup between threaded and unthreaded reading.
	       The default is threaded,	and the	current	setting	is  stored  in
	       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-rela-
	       tive number of the groups in your .newsrc (see the 'L'  command
	       to  list	 your  .newsrc).  If it	isn't currently	subscribed to,
	       you will	be asked if you	want to	subscribe.

       /pattern
	       Scan forward for	a newsgroup  matching  pattern.	  Patterns  do
	       globbing	 like  filenames, i.e.,	use * to match any sequence of
	       characters, and [] to specify a list of	characters  to	match.
	       Use  .  to  match  a  single character.	Unlike normal filename
	       globbing, newsgroup-searching is	not anchored to	the front  and
	       back  of	 the  filename,	i.e. "/ski" will find rec.skiing.  You
	       may use ^ or $ to anchor	the  front  or	back  of  the  search:
	       "/^test$" will find newsgroup test and nothing else If you want
	       to include newsgroups with 0 unread articles,  append  /r.   If
	       the  newsgroup  is  not found between the current newsgroup and
	       the last	newsgroup, the search will wrap	around to  the	begin-
	       ning.

       ?pattern
	       Same as /, but search backwards.

       u       Unsubscribe from	the current newsgroup.

       l string
	       List  newsgroups	 not  subscribed  to  which contain the	string
	       specified.

       L       Lists the current state of the .newsrc, along with  status  in-
	       formation.

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

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

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

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

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

       o {pattern}

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

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

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

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

       &&      Print out the current macro definitions.

       &&keys commands
	       Define additional macros.

       !command
	       Escape to a subshell.  One exclamation mark (!) leaves  you  in
	       your own	news directory.	 A double exclamation mark (!!)	leaves
	       you  in	the  spool  directory  for  news,  which  is   usually
	       /usr/spool/news unless you're using NNTP	to read	news.  The en-
	       vironment 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-se-
	       lection	level).	  This	file  contains commands	(one per line)
	       such as /subject/:j or /author/f:+ to kill or  select  articles
	       based  on the indicated search criteria.	 There is also a local
	       list of commands	for each newsgroup that	can  contain  kill/se-
	       lection	commands tailored for each specific group.  Because of
	       the overhead involved in	searching for articles to kill,	it  is
	       better  if  possible to use a local list	rather than the	global
	       one.  Local memorized commands are usually maintained by	 using
	       the  'A'	or 'T' commands	from the article/pager level or	in the
	       selector.  There	is also	a K search modifier that  appends  any
	       search command you desire to add.  It is	also possible to manu-
	       ally edit the file with the '^K'	command	from anywhere inside a
	       newsgroup.   If	either	of the environment variables VISUAL or
	       EDITOR is set, the specified editor will	be invoked;  otherwise
	       a default editor	is invoked on the KILL file.

       The Selector

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

       The selector displays a list of articles	by their  subjects  and	 (usu-
       ally) 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 pre-
       ceded by	a letter or number that	can be typed to	toggle its  selection.
       Items  that  are	 selected  are	flagged	with a '+' after their letter.
       Groups that have	only some of their articles selected are flagged  with
       a  '*'.	You can	change the selector's mode (to pick each subject sepa-
       rately or pick individual articles), order the list  by	a  variety  of
       sort  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  SE-
	       LECTCHARS  is  available	to customize which characters you want
	       to be used as selection letters,	overriding their command func-
	       tion.

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

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

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

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

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

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

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

       m, \    Unmark the current item.

       -       Set a range, as in a - k.  Repeats the last marking action: se-
	       lection,	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 arti-
	       cles.  If the group is unthreaded setting this to threads  will
	       thread the group.

       =       Switch  between the article selector and	the subject/thread se-
	       lector.

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

       R       Reverse the current sort	order.

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

       U       Switch between selecting	unread/read articles.

       X       Mark all	unselected articles as read and	start reading.

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

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

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

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

       T       Add a thread-oriented command to	the memorized  list  for  this
	       group.	You  are  prompted to choose selecting the thread (+),
	       junking the thread (j), or clearing the	auto-selection/junking
	       for the thread (c).  (Note: there are three other options ('.',
	       ',', and	'C') on	the article-reading level -- look 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  com-
	       mands is	found in the Article Selection section.

       :command
	       Apply  a	 command to all	the selected threads or	their selected
	       articles.  You can also use ":E"	to end a binary	extraction  or
	       ":p" to post a new article.  Use	"::command" to apply it	to all
	       non-selected threads/articles.

	       Applicable commands include '+'/'-' (select/deselect  an	 arti-
	       cle),  "++"/"--"	 (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 destina-
	       tion), "e dir" (extract to directory), 'E' (end	partial	 uude-
	       code), as well as: S, |,	w, W, m, M, j, = and ','.

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

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

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

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

       N       Go to the next newsgroup	with unread news.

       P       Go to the previous newsgroup with unread	news.

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

       &&      Display or set the current macro	definitions.

       !command
	       Escape to a subshell.

       q       Quit this group.

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

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

       Article-Reading Level

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

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

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

       The following are the options at	this point:

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

       N       Go to the next article.

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

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

       P       Go to the previous article.

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

       ^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	selec-
	       tions have been made, all the threads that had unread news when
	       you entered the newsgroup  (or  last  left  the	selector)  are
	       treated as selected.  Entering an empty newsgroup makes all the
	       already-read threads available for browsing.

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

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

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

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

       ^R      Restart the current article.

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

       ^L      Refresh the screen.

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

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

       b       Back up one page.

       ^E      Display the last	page of	the article.

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

       ^       Go to the first unread article.

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

       number  Go to the numbered article.

       _C      Switch to next available	charset	conversion.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       /pattern/r
	       Scan read articles also.

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

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

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

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

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

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

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

       k       Mark as read all	articles with the same subject as the  current
	       article.	 (Note:	there is no single character command to	tempo-
	       rarily 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 con-
	       tains 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	 junk-
	       ing including all replies (,).

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

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

       ^K      Edit  the local list of memorized commands (a.k.a. a KILL file)
	       for this	newsgroup.  Each line of the KILL  file	 is  either  a
	       subject-affecting  command  of the form /pattern/x or a thread-
	       affecting command of the	form <message-id> Tx.  The first  line
	       in  the KILL file has the form "THRU <number>", which tells trn
	       the maximum article number that the KILL	file has been  applied
	       to.   The THRU value is usually only used to keep header	or ar-
	       ticle searches from  happening  multiple	 times.	  Subject  and
	       from-line  searches are quite fast if the group has cached data
	       around (e.g. a .thread or .overview file).  If it doesn't,  the
	       THRU line is used to set	a lower	boundary on the	search to keep
	       the startup time	as short as possible.  If trn skipped some se-
	       lections	(or you're not sure), wait for the group to finish be-
	       ing 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
	       commands	 (thread  commands  die	 automatically	as  the	thread
	       dies).  If either of the	environment variables VISUAL or	EDITOR
	       is  set,	 the specified editor will be invoked; otherwise a de-
	       fault editor (normally vi) is invoked on	the KILL file.

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

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

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

       ^F      Forward the current article.

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

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

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

       z       Supersede the current article, but only if you are the contrib-
	       utor.

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

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

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

       u       Unsubscribe from	this newsgroup.

       s destination
	       Save to a filename or pipe using	sh.  If	the first character of
	       the destination is a vertical bar, the rest of the  command  is
	       considered  a  shell  command  to  which	 the article is	passed
	       through standard	input.	The command is subject to filename ex-
	       pansion.	  (See	also  the environment variable PIPESAVER.)  If
	       the destination does not	begin with a vertical bar, the rest of
	       the  command is assumed to be a filename	of some	sort.  An ini-
	       tial tilde '~' will be translated to the	name of	the  home  di-
	       rectory,	 and  an  initial environment variable substitution is
	       also allowed.  If only a	directory name is specified, the envi-
	       ronment	variable SAVENAME is used to generate the actual name.
	       If a non-absolute filename is specified,	the environment	 vari-
	       able SAVEDIR will be used to generate the actual	directory.  If
	       nothing is specified, then obviously  both  variables  will  be
	       used.   Since  the current directory for	trn while doing	a save
	       command is your private news directory, typing  "s  ./filename"
	       will  force the file 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	Inter-
	       net address of the sender.

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

       S destination
	       Save to a filename or pipe using	a  preferred  shell,  such  as
	       csh.   Which  shell  is used depends first on what you have the
	       environment variable SHELL set to, and in the absence of	 that,
	       on  what	 your  news  administrator set for the preferred shell
	       when he or she installed	trn.

       | command
	       Shorthand for "s	| command".

       w destination
	       The same	as "s destination", but	saves without the header.

       W destination
	       The same	as "S destination", but	saves without the header.

       e directory
	       Extract a shell archive or uuencoded binary to  the  designated
	       directory.   The	 article is first scanned to try discover what
	       type of data is encapsulated.  If a "cut	here" line  is	found,
	       the first non-blank line	after it must be either	the start of a
	       shar header, or the "begin" or "table" line of a	uuencoded  bi-
	       nary.   The  default  for  extracting shars is to send the data
	       portion of the file to /bin/sh, but that	can be overridden with
	       the  UNSHAR variable (see the ENVIRONMENT section).  Uudecoding
	       is done internally by a decoder that can	handle the data	 being
	       split  up  over multiple	articles, and extracted	one piece at a
	       time.  To decode	a multi-article	file, either execute  the  'e'
	       command	in  each  article in sequence, use an article range to
	       execute the command, or use the ":e" command to repeat the com-
	       mand for	each of	the currently selected articles.  When the 'e'
	       command is not followed by any arguments, it  will  repeat  the
	       arguments  from	the last extraction.  All directory specifica-
	       tions are relative to the value of SAVEDIR, so you can use  the
	       command	"e  ." to force	an extraction to SAVEDIR itself.  If a
	       uudecoding is in	progress (i.e. the last	piece wasn't extracted
	       yet)  and you exit the group, the partial file will be removed.
	       This also occurs	if you start to	extract	a new  uuencoded  file
	       before the previous one was finished.  See also the 'E' command
	       for ending a multi-part uudecoding manually.

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

       e directory|command
	       This form of the	'e' command allows you to extract  other  data
	       formats	than  shar or uuencoded	files or to override the deci-
	       sions made by  the  automatic  extraction  selection  described
	       above.	In normal operation, all data following	what we	recog-
	       nize as a "cut here" line will be sent to  the  specified  com-
	       mand.   Additionally,  the distinctive beginning	of a shell ar-
	       chive is	also recognized	without	a preceding  cut  line.	  When
	       the  command  is	 run, the default directory will be set	to the
	       specified directory, or the value of  SAVEDIR  if  unspecified.
	       Entering	 the  'e'  command  without arguments will repeat your
	       previous	extract	command.  You can use the command "e dir|"  to
	       extract	to a new directory using the previously-specified com-
	       mand.

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

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

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

       &&      Print out current macro definitions.

       &&keys commands
	       Define an additional macro.

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

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

       +       Start  the selector in the last-used mode.  If the newsgroup is
	       unthreaded and the default selector mode	is threads, we	tempo-
	       rarily 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  sub-
	       jects,  and  continue  reading.	 If the	group is not currently
	       threaded, it will be threaded first.

       gpattern
	       Goto (search forward for) pattern within	current	article.  Note
	       that there is no	space between the command and the pattern.  If
	       the pattern is found, the page containing the pattern  will  be
	       displayed.   Where  on  the  page the line matching the pattern
	       goes depends on the value of the	-g  switch.   By  default  the
	       matched line goes at the	top of the screen.

       G       Search for g pattern again.

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

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

       !command
	       Escape to a subshell.

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

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

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

	   n N ^N e s S	| w W

       Miscellaneous facts about commands

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

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

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

       The Tree	Display

       When reading a threaded newsgroup, trn displays a character representa-
       tion  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 typi-
       cally macro'ed to the arrow keys	on your	keypad).

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

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

       Options

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

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

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

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

       -B   will  turn	on  a spinner that twirls when trn is doing background
	    article-processing.	 A gizmo for those interested in what's	 going
	    on behind the scenes.

       -c   checks  for	news without reading news.  If a list of newsgroups is
	    given on the command line, only those newsgroups will be  checked;
	    otherwise  all subscribed-to newsgroups are	checked.  Whenever the
	    -c switch is specified, a non-zero exit status from	trn means that
	    there  is  unread  news  in	one of the checked newsgroups.	The -c
	    switch does	not disable the	printing  of  newsgroups  with	unread
	    news;  this	is controlled by the -s	switch.	 (The -c switch	is not
	    meaningful when given via the & command.)

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

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

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

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

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

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

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

       -g<line>
	    tells  trn	which line of the screen you want searched-for strings
	    to show up on when you search with the 'g' command within an arti-
	    cle.  The lines are	numbered starting with 1.  The initial default
	    is "-g1", meaning the first	line of	the screen.  Setting the  line
	    to less 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 lit-
	    tle	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 unrecog-
	    nized headers can be set with the -hunrecognized  option.	Alter-
	    nately  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 particular line: the Date line	prints the date	in lo-
	    cal	 time  if the group is threaded; the From line will only print
	    the	commented portion of the user name; the	Newsgroups  line  will
	    only  print	 when  there are multiple newsgroups; the Subject line
	    will be underlined and (when threaded) the keyword	'Subject:'  is
	    replaced  by  its  subject number (e.g. [1]); and the Expires line
	    will always	be suppressed if there is nothing on it.  In fact, all
	    of	these  actions	are  the  default, and you must	use +H to undo
	    them.

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

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

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

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

	    &-J30
	    X&+J

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

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

	    &-K
	    X&+K

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

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

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

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

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

       -o   will  act  like  old versions of trn and not junk cross-referenced
	    articles when using	thread commands	to junk	articles in  the  cur-
	    rent 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 en-
	    counters them in the various groups	you read.  The optional	param-
	    eter 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 use-
	    ful	to restrict the	available conversions to those	your  terminal
	    can	 handle	and/or to specify an alternate default.	The first ele-
	    ment of this set is	taken as default for each article.

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

       -s   with no argument suppresses	the initial listing of newsgroups with
	    unread  news,  whether -c is specified or not.  Thus -c and	-s can
	    be used together to	test "silently"	the status of news from	within
	    your  .login  file.	  If  -s  is followed by a number, the initial
	    listing is suppressed after	that  many  lines  have	 been  listed.
	    Presuming  that  you have your .newsrc sorted into order of	inter-
	    est, -s5 will tell you the 5 most interesting newsgroups that have
	    unread  news.   This  is also a nice feature to use	in your	.login
	    file, since	it not only tells you whether there  is	 unread	 news,
	    but	 also how important the	unread news is,	without	having to wade
	    through the	entire list of unread newsgroups.  If no -s switch  is
	    given  -s5	is  assumed,  so just putting "rn -c" into your	.login
	    file is fine.

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

       -t   puts trn into terse	mode.  This is more cryptic but	useful for low
	    baud rates.	 (Note that your system	administrator  may  have  com-
	    piled  trn with either verbose or terse messages only to save mem-
	    ory.)  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	typea-
	    head to prevent your autorepeating space bar  from	doing  a  very
	    frustrating	 thing	when  you  accidentally	 hold it down.	If you
	    don't have a repeating space bar, or you are working at  low  baud
	    rate,  you	can set	this switch to prevent this behavior.  You may
	    wish to use	the baud-rate switch modifier below to disable	typea-
	    head 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  re-
	    ally huge .newsrc.

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

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

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

       -X{<number>}{<commands>}
	    If	you  like using	the selector, you'll probably want to use this
	    option to make the selector	command	(+) the	default	when  a	 news-
	    group is started up	with at	least <number> unread articles.	 (Your
	    installer may have chosen to make -X0 the default on your system.)
	    It	is  also  used to select which commands	you want to be the de-
	    faults while using the thread selector.  For example,  -X2XD  will
	    make  the thread selector the default command for entering a news-
	    group with at least	2 unread articles, and set 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.   Ei-
	    ther  or both parameters can be omitted, as	well as	the second de-
	    fault command (e.g.	 -XX would change the default newsgroup	 entry
	    to	use  the selector and the default command for the last page of
	    the	selector to be 'X').  The default is -X0Z> if just -X is spec-
	    ified.  To set the default selector	commands without having	'+' be
	    the	default	entry into a newsgroup,	specify	a  high	 number,  like
	    9999.

       -z   sets the minimum number of minutes that must elapse	before the ac-
	    tive 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
	    default articles are saved in a subdirectory of your private  news
	    directory  corresponding to	the name of the	the current newsgroup,
	    with the filename being the	article	number.	 +/  sets  SAVEDIR  to
	    "%p"  and  SAVENAME	 to "%^C", which by default saves articles di-
	    rectly to your private news	directory, with	the filename being the
	    name  of the current newsgroup, first letter capitalized.  (Either
	    +/ or -/ may be default on your system, depending on the  feelings
	    of your news administrator when he,	she or it installed trn.)  You
	    may, of course, explicitly set SAVEDIR and SAVENAME	to other  val-
	    ues	-- see discussion in the environment section.

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

       Similarly, switches may be selected based on terminal type:

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

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

       Regular Expressions

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

       Character Set Conversions

       trn can use character set conversions when  displaying  articles.  This
       helps  users in non-English-speaking countries to display special char-
       acters 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 um-
	    laut-o character becomes oe.

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

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

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

       Interpretation and Interpolation

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

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

       %a      Current article number.

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

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

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

       %c      Current newsgroup, directory form.

       %C      Current newsgroup, dot form.

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

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

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

       %E      The last	directory where	an extracted file went.

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

       %F      "Newsgroups:"  line  for	a new article, constructed from	"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,
	       containing all the information that the poster program needs in
	       the form	of a message header.  It may also contain  a  copy  of
	       the  current  article.	The  format of the header file is con-
	       trolled by the MAILHEADER and NEWSHEADER	environment variables.

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

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

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

       %l      The news	administrator's	login 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
	       example,	 you  wanted  to disallow defaults on all yes/no ques-
	       tions, you could	define the following macro:

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

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

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

       %N      Full name (yours).

       %o      Organization (yours).

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

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

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

       %q      The  value  of  the  last "quoted" input	string (see the	%" in-
	       terp).

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

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

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

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

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

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

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

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

       %v      The number of unselected	articles, not counting the current ar-
	       ticle 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 di-
	       rectory	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  "%[distribu-
	       tion]" 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  in-
	       serts it.

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

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

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

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

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

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

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

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

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

ENVIRONMENT
       The following environment variables are paid attention to by  trn.   In
       general	the default values assumed for these variables by trn are rea-
       sonable,	so if you are using trn	for the	first time, you	can safely ig-
       nore  this  section.   Note  that the defaults below may	not correspond
       precisely to the	defaults on your system.  To find the actual  defaults
       you  would  need	to look	in config.h and	common.h in the	trn source di-
       rectory,	and the	file INIT in the trn library directory.

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

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

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

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

	       AUTOSUBSCRIBE is	a comma	separated list of  newsgroup  patterns
	       ala  'o', '/', etc.  It can also	include	"but not" entries pre-
	       ceded by	'!'.  "a,b,!c,d" is read 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  sub-
	       scribe  to  all	local  groups  but  be	choosy about non-local
	       groups, one might say "*,!*.*".

	       Default:	(none)

       AUTOUNSUBSCRIBE
	       AUTOUNSUBSCRIBE is very similar to  AUTOSUBSCRIBE,  above,  but
	       new  newsgroups	matching it are	automatically added to the end
	       of the .newsrc file, unsubscribed.  If a	newsgroup matches  AU-
	       TOSUBSCRIBE, 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  di-
	       rectory.	 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 ar-
	       ticle.  Warning:	this may go away.

	       The default (ignoring the  Marked  to  return  display  in  un-
	       threaded	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 or-
	       der  to	allow  you to edit and deliver the file.  trn will not
	       itself call upon	an editor for replies -- this is a function of
	       the  program  referenced	 by  FORWARDPOSTER.  See also FORWARD-
	       HEADER and MAILPOSTER.

	       Default:	Rnmail -h %h

       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 FOR-
	       WARDHEADER variables, or	if your	custom ones use	 FROM  to  set
	       the From: header.

	       Regardless  of the settings of NEWSHEADER, MAILHEADER, and FOR-
	       WARDHEADER, the setting of FROM is used to determine which  ar-
	       ticles may be cancelled or superseded.

	       Default:	undefined

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

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

	       Default:	undefined

       HOME    Your  home  directory.  Affects ~ interpretation, and the loca-
	       tion of your dot	files if 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 ~ interpre-
	       tation, and the location	of your	dot files if DOTDIR is not de-
	       fined.

	       Default:	none.

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

       LOGNAME Your login name,	if USER	is undefined.  May be interpolated us-
	       ing "%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	 MAIL-
	       POSTER.

	       Default:

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

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

	       Default:	Rnmail -h %h

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

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

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

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

	       Default:	" (moderated)"

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

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

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

	       Default:

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

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

	       Default:	whatever your news administrator compiled in.

       NEWSPOSTER (~)
	       The shell command to be used by the follow-up commands  (f  and
	       F) in order to allow you	to enter and post a follow-up news ar-
	       ticle.  If not set, trn handles the whole process and calls in-
	       ews 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/local/lib/rn/server.

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

	       Default:	" (no posting)"

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

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

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

	       Default:	whatever your news administrator compiled in.

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

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

	       Default:	undefined

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

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

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

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

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

       RNMACRO (~)
	       The name	of the file containing macros and  key	mappings  when
	       running trn as rn.  See also the	TRNMACRO variable and the CUS-
	       TOM 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	 asso-
	       ciated  thread of discussion.  You can specify up to 64 visible
	       characters, including upper- and	lower-case  letters,  numbers,
	       and many	punctuation characters.	 Selection characters override
	       command characters in the selector, but are not	excluded  from
	       macro expansion,	so be careful.
	       Default:	abdefgijlorstuvwxyz1234567890BCFGHIKMVW
	       (You'll	notice various characters are omitted to allow them to
	       be typed	as commands in the selector.)

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

	       Default:	whatever your news administrator compiled in.

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

	       Default:	%s

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

	       Default:

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

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

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

	       Default:	/etc/termcap, normally.

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

	       If TRNINIT begins with a	'/' it is assumed to be	the name of  a
	       file containing switches.  You can put comments in this file by
	       preceding them with a '#' as long as this is the	first  charac-
	       ter  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 un-
	       shar'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 de-
	       fault command for the page (left	click) or  goes	 down  a  page
	       (middle	click).	  You  can  also use the right mouse button to
	       move up or down a page by clicking in the upper-half or	lower-
	       half of the screen, respectively.

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

	       Default:	In article %i you write:

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

CUSTOM MACROS
       When trn	starts up it looks for a  file	containing  macro  definitions
       (see environment	variables TRNMACRO and RNMACRO).  Any sequence of com-
       mands 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  se-
       quence of commands to execute.  Both fields are subject to % interpola-
       tion, which will	also translate backslash and  caret  sequences.	  (The
       keystroke  field	 is interpreted	at startup time, but the command field
       is interpreted at macro execution time so that you may refer to %  val-
       ues in a	macro.)	 For example, if you want to reverse the roles of car-
       riage return and	space in trn

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       The KILL	files have been	extended and the commands inside them are  now
       referred	to memorized commands, since they are often used for selection
       rather than killing of articles.	 There are new,	 easier	 ways  to  add
       memorized commands using	the 'A'dd and 'T'hread commands.  The 'A' com-
       mand 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 process-
       ing  off	for individual groups, and thus	it is possible for some	groups
       to not have any pre-processed thread  information  available  for  use.
       When  trn  encounters such a group, it generates	the thread information
       on the fly while	entering the group.  For really	large groups  (or  re-
       ally  slow  systems),  this can take an appreciable amount of time.  If
       you can't talk your news	administrator into  pre-threading  the	group,
       you  can	turn off the threading on a group-by-group basis using the 't'
       command at the newsgroup-selection level.  Groups turned	 off  in  this
       way  are	read in	the rn style --	articles arranged in arrival order un-
       less 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 ar-
       chive or	uuencoded file into the	specified directory.  It is even  pos-
       sible to	extract	other data formats if you specify the appropriate fil-
       ter command (e.g. "e dir|cmd".

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

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

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

       Finally,	you'll probably	want to	use the	new options, -x	and -X to  en-
       sure 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,
		   synchronous with .newsrc

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

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

       %p	   your	news save directory, usually ~/News

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

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

       %X/INIT	   system-wide default switches

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

DIAGNOSTICS
       Generally self-documenting, as they say.

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

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

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

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

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

4.3 Berkeley Distribution	     LOCAL				TRN(1)

NAME | SYNOPSIS | DESCRIPTION | ENVIRONMENT | AUTOMATIC MACROS | CUSTOM MACROS | WHAT'S NEW | AUTHORS | FILES | SEE ALSO | DIAGNOSTICS | BUGS

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

home | help