NAME

     xrn - an X-based interface to the USENET  news  system  that
     uses the NNTP remote news server


SYNOPSIS

     xrn is an X-based interface to the USENET news  system  that
     uses  the NNTP remote news protocol for accessing newsgroups
     and articles on an NNTP server, thus allowing users to  read
     news  from personal workstations by accessing a central news
     repository.  This manual page applies to version 8.02.


DESCRIPTION

     xrn  [ - addButtonList  list]  [ - allButtonList  list]  [ -
     artButtonList   list]   [  -  artSpecButtonList   list]  [ -
     authenticator command] [-authenticatorCommand command] [+/ -
     authorFullName]  [ -breakLength len] [-busyIconName name] [-
     busyIconPixmap pixmap] [ - cacheFile  file]  [ - cancelCount
     number] [+/-cc] [+/-ccForward] [-confirm list] [-deadLetters
     file]  [ -  defaultLines   count]   [+/-discardOld]   [+/  -
     displayLineCount]    xREALLY_USE_LOCALTIME_STARTx    [+/   -
     displayLocalTime] xREALLY_USE_LOCALTIME_ENDx [- distribution
     dist]   [+/  - dumpCore]  [ - editorCommand  command]  [+/ -
     executableSignatures] [+/-fullNewsrc] [-geometry geometry] [
     -iconGeometry +X+Y] [-iconName name] [-iconPixmap pixmap] [-
     ignoreNewsgroups  list]  [ - includeCommand  command]  [+/ -
     includeHeader]   [  -  includePrefix  "prefix  text"]  [+/ -
     includeSep] [+/-info] [+/-killFiles] [-leaveHeaders list] [-
     lineLength  len]  [+/ - localSignatures] [-lockFile file] [-
     mailer mailer] [-maxLines number] [ - minLines  number]  [ -
     newsrcFile  file] [-ngButtonList list] [-nntpServer name] [-
     onlyShow number] [-organization org] [+/- pageArticles]  [ -
     pointerBackground  color]  [ - pointerForeground  color]  [-
     prefetchMax  number]  [ -  prefetchMinSpeed   kbytes]   [  -
     printCommand  command] [-replyTo name] [+/-rescanOnEnter] [-
     rescanTime time] [+/-resetSave] [ - saveDir  directory]  [ -
     saveMode mode] [-saveNewsrcFile file] [-savePostings file] [
     - saveString  string]   [  -  signatureFile   file]   [+/  -
     signatureNotify]  [+/-sortedSubjects] [+/-stayInArticleMode]
     [-stripHeaders list] [+/-subjectRead] [+/-subjectScrollBack]
     [ - tmpDir  directory]  [-topLines number] [+/-typeAhead] [-
     unreadIconName  name]  [ - unreadIconPixmap  pixmap]  [+/  -
     updateNewsrc] [-verboseKill actions] [-watchUnread list]

     Along with the standard toolkit options, e.g., - display,  -
     geometry, -xrm, and -iconic.


BASIC OPERATION

     Don't let the size of this manual page alarm  you.   xrn  is
     easy  to  learn  on-line  without reading the documentation.
     This manual page describes many features that may be obvious
     to the casual observer.  It also describes how to use scroll
     bars, buttons, and select  text;  if  you  have  used  an  X
     toolkit  application  before,  the  section titled "BUTTONS,
     SCROLL BARS, and SELECTION" can be skipped.

     xrn uses the `.newsrc' file to determine what groups need to
     be  read.   If  the  `.newsrc'  file  does  not exist, it is
     created, and the  user  is  subscribed  to  the  news  group
     `news.announce.newusers'.

     xrn has four modes of operation: Add,  Newsgroup,  All,  and
     Article modes.  Add mode will be entered on startup if there
     are any groups that the news system knows about that are not
     in  the `.newsrc' file (i.e., new groups).  In Add mode, the
     user is given a list of new  groups.   Groups  can  then  be
     subscribed  to and placed in the `.newsrc' file at the first
     position, the last position, or after a group already in the
     `.newsrc'  file.   When  Add  mode  is exited, any remaining
     groups are added unsubscribed, so  the  user  is  not  asked
     about  them  the next time xrn is started.  On exit from Add
     mode, or on startup if there are no  new  groups,  Newsgroup
     mode  is entered.  Newsgroup mode displays the subscribed to
     groups that have unread articles and the range of  available
     articles.   The basic functions available in this mode allow
     the user to read a group, mark all articles in  a  group  as
     read,  unsubscribe  from a group, move the cursor around the
     newsgroup  window,  change  the  order  of   the   list   of
     newsgroups,  re-visit  the  most recently visited group, and
     quit xrn.  In addition, the user can subscribe  to  a  group
     and  specify  its  position in the `.newsrc' file, query the
     news server for new articles and groups, and  go  to  groups
     that  are  either  not  subscribed  to  or currently have no
     unread articles (i.e., groups not displayed on the  screen).
     From  Newsgroup  mode the user can go into All mode.  In All
     mode the user is presented with a sorted list of  all  known
     groups   and   their   subscription  status  (subscribed  or
     unsubscribed) and can change their status or location in the
     `.newsrc' file.  On exiting All mode the user is placed back
     in Newsgroup mode.  In order  to  read  the  articles  in  a
     particular  group,  the  user  goes  from  Newsgroup mode to
     Article mode.  In Article mode the user can sequence through
     the  articles in the group forward or backward, mark a group
     of articles as read or unread,  mark  all  articles  in  the
     current  group  as  read,  unsubscribe to the current group,
     return to  the  last  article  visited,  search  forward  or
     backward  for  an  article  subject  (either  for  the exact
     subject or for a regular expression in the subject), locally
     kill  all  articles  with  a  particular  subject,  and quit
     (saving all changes) or exit (leaving  all  articles  marked
     unread).  In addition, the user can save the current article
     in a file, post an article to the group, post a followup  to
     the  current  article,  mail  a  reply  to  the author of an
     article, forward an article to another user  via  mail,  and
     return to Newsgroup mode.


NEWS SYSTEM

     The news system is a set of  bulletins,  discussion  groups,
     program  sources,  and other bits of information distributed
     around the world under the name `USENET'.   The  information
     is   generally   called   `news'   and  is  broken  up  into
     `newsgroups'.  Each newsgroup deals with a subject or set of
     subjects.   The  subjects  for  newsgroups are varied:  from
     discussions about  particular  versions  of  UNIX  to  movie
     reviews,   from  information  on  the  X  window  system  to
     commentary on current social and political issues.

     For information on what newsgroups are available, answers to
     commonly  asked questions, and newsgroup ediquette, read the
     articles in the newsgroup `news.announce.newsusers'.   Users
     who  are new to the USENET are strongly encouraged to become
     familiar   with   the   contents   of   the   articles    in
     `news.announce.newusers' before posting any messages.


NEWS SERVER

     In order to run xrn, you must have access to  an  NNTP  news
     server.   If  you  do  not  have access to such a server and
     would like to set one up, see the "USENET Software:  History
     and   Sources"   posting   in   news.announce.newusers   for
     information about where to  get  the  appropriate  software.
     The NNTP server to which to connect must be specified in one
     of the following ways:   the  ` - nntpServer'  command  line
     argument;   the   environment   variable   NNTPSERVER;   the
     nntpServer X resource; xSERVER_FILE_STARTx the  contents  of
     the  file  `xSERVER_FILEx' xSERVER_FILE_ENDx xINN_STARTx the
     NNTP server configured into INN xINN_ENDx (these are  listed
     in  the  order  in which they are checked).  The name can be
     either a host  name  (e.g.,  shambhala.berkeley.edu)  or  an
     internet  number (e.g., 128.32.132.54).  If someone else has
     installed xrn at your site,  then  it  is  probably  already
     configured to use the correct news server and you don't have
     to worry about it.


SCREEN LAYOUT

     The screen displayed by xrn consists of seven  sections:   a
     title  bar,  two  scrollable  text  windows, two information
     bars, and two button boxes.   The  title  bar  displays  the
     current  version  of  the  program.   The  top  text  window
     displays information based on the mode.  In  Add  mode,  the
     window  displays  all  groups  that are not currently in the
     `.newsrc' file, one per line.  In Newsgroup mode, the window
     displays  the groups containing unread articles.  Each group
     is represented by a line of the form:

     Unread news in <group name>           <num> article(s) + <old> old

     <group name> is the name of the group, <num> is  the  number
     of unread articles, and <old> is the number of read articles
     that are still available (i.e. have not been expired) on the
     news  server.   If  "List  old" is toggled on, then the word
     "Unread" will not appear on the lines of newsgroups with  no
     unread  articles,  and furthermore, the words "news in" will
     not appear on the lines  of  newsgroups  with  no  available
     articles at all.

     In Article mode, the window displays a list of subjects  for
     the  articles  in  the current group, with each subject line
     being represented by a line of the form:

     [+u][SP] <num>    <subject of the article> [<lines>] <author>

     where <num> is the article number, <lines> is the number  of
     lines  in  the article (when available), and <author> is the
     author of the article.  A `+' in the  first  position  means
     that  the article has been read, a `u' in the first position
     means that the article has been marked as unread, a  'S'  in
     the second position means that the article has been saved to
     a file, and a 'P' in the  second  position  means  that  the
     article has been printed.

     The top information bar displays information about the mode,
     the  buttons in the top button box, and error messages.  The
     top button box has buttons that are specific to the mode and
     apply to the information in the top text window.  The bottom
     text window displays articles in Article mode and a list  of
     all  known groups and their subscription status in All mode.
     The bottom information bar displays  information  about  the
     mode,  the  buttons  in  the  bottom  button  box, and error
     messages.  The  bottom  button  box  has  buttons  that  are
     specific  to  the  mode  and apply to the information in the
     bottom text window.


BUTTONS, SCROLL BARS, AND SELECTION

     All button and text selection commands  are  done  with  the
     left   mouse   button.    Single-line   text   selection  is
     accomplished by  clicking  the  left  mouse  button  on  the
     desired  line.   Multiple-line  selection is accomplished by
     clicking the left mouse button on the  first  line,  holding
     the  button  down,  dragging the mouse to the last line, and
     releasing the mouse  button.   Multiple-line  selection  can
     also be accomplished by left-clicking on the first line, and
     right-clicking on the last line.  Selected lines  appear  in
     reverse  video  (the  foreground  and  background colors are
     switched).

     The text windows are scrolled with the  scroll  bar  on  the
     left  side of the window.  Clicking the left mouse button in
     the scroll bar will scroll the text down some fraction of  a
     page;  clicking  the  right  mouse  button in the scroll bar
     similarly scrolls up.  Clicking the middle mouse button will
     scroll over larger areas:  clicking at the top of the scroll
     bar will scroll to the top of  the  text,  clicking  in  the
     middle  will  scroll to the middle of the text, and clicking
     at the bottom will scroll to the bottom of  the  text.   For
     those  who  like using the keyboard, hitting control-V while
     the mouse cursor is in a scrollable text window  will  cause
     the  window  to  scroll down one page, meta-V will scroll up
     one page.

     Hitting the space bar (while the mouse cursor is in the  top
     button box) will do the right thing; scroll the article text
     window when appropriate, go to the next article at  the  end
     of  the current article, go to newsgroup mode when done with
     all articles in the current group, and go to the next  group
     when in newsgroup mode.

     Clicking the middle button on a newsgroup in Newsgroup  mode
     causes   xrn  to  enter  Article  mode  in  that  newsgroup.
     Clicking the middle button on an  article  in  Article  mode
     causes that article to be displayed.


MODES

     The next few sections describe xrn's modes by presenting  an
     overview  of each mode and then a list of its buttons.  Each
     list includes the  names  and  descriptions  of  the  mode's
     buttons.   The  labels  that  actually appear on the buttons
     when you run xrn are not listed; most of them  are  obvious,
     but  if you are unsure about one, consult the list of button
     labels in the application-defaults file.

     The listed button names correspond to button  widget  names,
     so they can be used in X resources to control the appearance
     or behavior of individual button widgets.

     Furthermore, the button names are used in  the  `ButtonList'
     options   (see   their   documentation   in  ``COMMAND  LINE
     ARGUMENTS'', below) to control which  buttons  are  actually
     displayed.   Note  that  only  the  buttons  whose names are
     followed by asterisks in the lists below  are  displayed  in
     the default xrn configuration; the others are displayed only
     if you specify a `ButtonList' option which requests them.

     All button names are also action  procedure  names  and  can
     therefore   be  used  in  Xt  translations  to  specify  key
     sequences that  activate  button  behavior  (consult  the  X
     toolkit  intrinsics documentation for more information about
     translations).   Some  buttons  are  already  bound  to  key
     sequences by default; the key sequences for such buttons are
     listed in parentheses  after  their  entries  in  the  lists
     below.



ADD MODE

     Add mode is entered when xrn detects groups  that  the  news
     system knows about that are not in the `.newsrc' file (i.e.,
     newly created groups).

     To change or add  key  bindings  to  Add  mode,  use  the  X
     resource "*addFrame.list.translations".

     addQuit * (`q')
          Add remaining  groups  in  the  list  to  `.newsrc'  as
          unsubscribed; go to group mode.

     addIgnoreRest (`x')
          If the `fullNewsrc' option  is  false,  then  mark  the
          remaining  groups ``ignored'' (i.e., don't subscribe to
          them or add them to the newsrc file) and  go  to  group
          mode.  Otherwise, behave as `addQuit'.

     addFirst * (`^')
          Add the  current  group(s)  to  the  beginning  of  the
          `.newsrc'  file  and  mark  as subscribed.  The current
          group is the selected group(s), or  the  group  on  the
          line containing the cursor.

     addLast * (`$')
          Add the current group(s) to the end  of  the  `.newsrc'
          file and mark as subscribed.

     addAfter * (`+')
          Add the current group(s) after a group already  in  the
          `.newsrc'.   A  dialog box is used to allow the user to
          enter the name of the group to  add  the  group  after.
          The  mouse  cursor must be in the dialog box for xrn to
          accept text (however, it does not have  to  be  in  the
          type-in  area).   The dialog box has two options: abort
          and add.  No other buttons  on  the  screen  will  work
          until  the  user  has  selected an option in the dialog
          box.  Hitting carriage return is the same  as  clicking
          the  add  button  (in  all  xrn  dialog  boxes  hitting
          carriage  return  is  the  same  as  clicking  in   the
          rightmost button of the dialog box).

     addUnsub * (`u')
          Add the current group(s) to the end  of  the  `.newsrc'
          file and mark as unsubscribed.

     addIgnore (`i')
          If the `fullNewsrc' option  is  false,  then  mark  the
          current  group(s)  ``ignored''.   Otherwise,  behave as
          `addUnsub'.



NEWSGROUP MODE

     Newsgroup mode informs the user of the  groups  with  unread
     news  and  gives  the  user  control  over  which groups are
     visited.  Clicking the middle button on  a  newsgroup  entry
     will enter that newsgroup.

     To change or add key bindings to Newsgroup mode, use  the  X
     resource    "*newsgroupFrame.newsgroups.translations".    In
     addition to the key  bindings  listed  with  buttons  below,
     clicking  the middle button on a group in the newsgroup list
     will cause xrn to enter that newsgroup.

     ngQuit * ('q')
          Quit xrn.

     ngRead * (space or `y')
          Read the articles in the current  group.   The  current
          group  is either the first one selected (if one or more
          are selected) or the one on  the  line  containing  the
          cursor.   If  all  groups  have been read, the user can
          still  access  groups  by  using  the  goto   newsgroup
          command.   Hitting the space bar with the cursor in the
          top button box will call this function.

     ngNext * (down arrow or `n')
          Move the cursor to the next group, leaving the articles
          in the current group untouched.

     ngPrev * (up arrow or `p')
          Move the cursor to  the  previous  group,  leaving  the
          articles in the current group untouched.

     ngScroll (``Next'', ``Page Down'' or Ctrl-v)
          Scroll the list of newsgroups forward a page.

     ngScrollBack (``Prior'', ``Page Up'' or Meta-v)
          Scroll the list of newsgroups backwards a page.

     ngCatchUp * (`c')
          Mark all articles in the current group as read.

     ngSubscribe * (`s')
          Subscribe to a group.  A dialog box is  used  to  allow
          the  user  to  enter the name of the group.  The dialog
          box has  the  following  options:   abort,  prev  group
          (subscribe  to  the previous group visited), first (put
          group in the beginning of  the  `.newsrc'  file),  last
          (put  group  in  the  end  of  the `.newsrc' file), and
          current position (put group  at  the  position  of  the
          cursor).   This  command can also be used to change the
          position  of  a  subscribed  group.   Hitting  carriage
          return after typing in the name is the same as clicking
          the current position button.

     ngUnsub * (`u')
          Unsubscribe from the current group.

     ngGoto * (`g')
          Go to a newsgroup by typing its  name  into  a  dialog.
          The name specified can be a substring of the group name
          or a regular expression.  If the newsgroup is currently
          ignored,  it is added to the end of the newsrc file and
          subscribed before it is visited.  If the  newsgroup  is
          not currently subscribed, it is subscribed before it is
          visited.  The first unread  article  in  the  group  is
          displayed,  or  the  last article in the group if there
          are no unread articles.

     ngAllGroups * (`L')
          Display  all  of   the   groups   that   exist,   their
          subscription   statuses,  and  a  set  of  buttons  for
          changing the status.

     ngRescan * (`r')
          Query the server for any new groups  or  articles.   If
          "cacheActive"  (see  below)  is True, then this command
          checks for new newsgroups in the  foreground  and  then
          checks   for   new  articles  group  by  group  in  the
          background; if "cacheActive" is False, then the  entire
          rescan takes place in the foreground.

     ngGetList (`R')
          Retrieve a full list of newsgroups (and  what  articles
          are  available  in  them) from the server and check for
          new newsgroups.  This command always retrieves  a  full
          list in the foreground, pausing xrn while the retrieval
          is happening, even if "cacheActive" is True.

     ngPrevGroup * (`-')
          Re-visit the previous group  visited.   If  it  is  not
          currently  subscribed,  it  is  subscribed before it is
          visited.

     ngListOld * (`l')
          Toggle between listing only groups with unread news and
          listing  all subscribed groups whether or not they have
          unread news.  xrn starts out listing only  groups  with
          unread news.

     ngSelect * (Shift-S)
          Select a range of  groups  for  a  subsequent  `ngMove'
          operation.   This  selection is cancelled automatically
          if the list of newsgroups displayed  in  the  newsgroup
          list changes.

     ngMove * (`m')
          Move the previously  selected  groups  to  the  current
          cursor  position, unless the cursor is currently within
          the selected groups, in which case nothing happens.

     ngExit * (`x')
          Quit xrn, leaving the `.newsrc'  file  unchanged  since
          the  last  time  it was updated.  The `.newsrc' file is
          updated each time a rescan  or  checkpoint  occurs,  as
          well  as  each  time  you  exit  from  Article  mode if
          `updateNewsrc' is true.  See below for more information
          about rescanning, checkpointing, and `updateNewsrc'.

     ngCheckPoint * (Ctrl-s)
          Update the `.newsrc' file based on xrn's current state.

     ngGripe * (Shift-G)
          Send a gripe (bug, bug fix, complaint, feature request,
          etc.) to the maintainer of xrn.

     ngPost * (`a')
          Post an article to a  newsgroup  or  a  comma-separated
          list  of  newsgroups.  See ``COMPOSING MESSAGES'' below
          for more information.

     ngPostAndMail * (Shift-A)
          Post an article and mail it too.

     ngMail (Shift-M)
          Send a mail message.


ALL MODE

     Use All mode to display a list of all groups,  in  `.newsrc'
     order   or   in  alphabetical  order;  to  subscribe  to  or
     unsubscribe from specific groups; or to change the order  of
     groups  in  your `.newsrc'.  Operations in All mode apply to
     the selected groups if any are selected, or to the group  on
     the same line as the cursor otherwise.

     To change or add  key  bindings  to  All  mode,  use  the  X
     resource  "*allFrame.list.translations".  In addition to the
     key bindings listed with buttons below, clicking the  middle
     button  on  a  group in the newsgroup list will cause xrn to
     enter that newsgroup.

     allQuit * (`q')
          Update the `.newsrc' file and return to group mode.

     allNext * (down arrow or `n')
          Move the cursor to the next group.

     allPrev * (up arrow or `p')
          Move the cursor to the previous group.

     allScroll (``Next'', ``Page Down'' or Ctrl-v)
          Scroll the list of newsgroups forward a page.

     allScrollBack (``Prior'', ``Page Up'' or Meta-v)
          Scroll the list of newsgroups backwards a page.

     allSub * (`s')
          Subscribe to the selected groups, leaving them at their
          current position in the `.newsrc' file.

     allFirst * (`^')
          Subscribe to the selected groups and move them  to  the
          beginning of the `.newsrc' file.

     allLast * (`$')
          Subscribe to the selected groups and move them  to  the
          end of the `.newsrc' file.

     allAfter * (`+')
          Subscribe to the selected groups and move them after  a
          particular group (for which the user is prompted with a
          dialog box) in the `.newsrc' file.

     allUnsub * (`u')
          Unsubscribe from the selected groups.

     allIgnore (`i')
          Ignore the selected groups, i.e., unsubscribe from them
          and remove them from the newsrc file.

     allGoto * (space or `g')
          Go to the current newsgroup (either the first  selected
          newsgroup  or  the  newsgroup  on  the same line as the
          cursor).  As with `ngGoto',  either  the  first  unread
          article  or  the  last  article (if there are no unread
          articles) is displayed.  However, unlike `ngGoto', this
          button  does  not  subscribe  you  to  an  unsubscribed
          newsgroup before entering it.

     allSelect * (Shift-S)

     allMove * (`m')
          Same  as  the  `ngSelect'  and  `ngMove'   buttons   in
          Newsgroup   mode.   Note  that  ``ignored''  newsgroups
          cannot be moved, since they have  no  location  in  the
          newsrc file.

     allToggle * (`o')
          Toggle between listing newsgroups  in  `.newsrc'  order
          and alphabetical order.

     allPost * (`a')
          Post an article, by default to the current newsgroup.

     allPostAndMail * (Shift-A)
          Post an article and mail it too.

     allMail (Shift-M)
          Send a mail message.


ARTICLE MODE

     Use Article mode for reading and manipulating articles in  a
     group.   When  you enter Article mode, it displays a list of
     unread articles and their Subjects, or it displays the  last
     available  article if there are no unread articles.  You can
     view previous articles by using `artPrev' when  viewing  the
     first article, by using `artGotoArticle' to go to a specific
     article older than the first article, by using  one  of  the
     subject-search  buttons  to  search  backward for an article
     older than the first article, or by  using  `artListOld'  to
     list all articles in the group

     Hitting the space bar in Article mode will  ``do  the  right
     thing'';  it  will scroll an article if there is more of the
     article to see or call the `artNextUnread' action otherwise.

     To change or add key bindings to Article  mode,  use  the  X
     resource  "*artFrame.subjects.translations".  In addition to
     the key bindings listed with  buttons  below,  clicking  the
     middle  button  on  an article in the list will display that
     article.

     Most of the buttons or actions  in  Article  mode  keep  the
     article  window synchronized with the cursor position in the
     subject list, i.e., as you move the cursor  in  the  subject
     list,  xrn  displays the article the cursor is on.  However,
     it is also possible to navigate in the subject list  without
     changing  the displayed article.  In particular, you can use
     the  ``artScrollIndex'',  ``artScrollIndexBack'',  ``artUp''
     and  ``artDown'' actions to move the cursor without changing
     the displayed article; you can also select articles with the
     left  and right mouse buttons without changing the displayed
     article.

     When you navigate the subject list in this manner,  you  can
     use  the  ``artCurrent''  action  to tell xrn to display the
     article that the cursor is currently on in the subject list.

  Buttons in the top button box
     artQuit * (`q')
          Update the `.newsrc' file and return to Newsgroup  mode
          (or go to the next newsgroup, if `stayInArticleMode' is
          true).

     artNextUnread * (`n')
          Starting at the first selected article if any  articles
          are  selected,  or  at  the  article  under  the cursor
          otherwise, display the next available  unread  article,
          wrapping around to the beginning of the subject list if
          there are no unread articles after the  starting  point
          but  there are unread articles before it.  If no unread
          articles exist, xrn exits from Article mode and returns
          to   Newsgroup  or  All  mode  (or  goes  to  the  next
          newsgroup, if `stayInArticleMode' is true).

     artNext * (`N')
          Display the selected article, if any,  or  the  article
          under   the   subject  cursor  if  it  isn't  currently
          displayed, or the  next  article  after  the  currently
          displayed  one.   Exit  from Article mode (or go to the
          next newsgroup, if `stayInArticleMode' is  true)  after
          the last article has been reached.

     artPrev * (`P')
          Display the selected article, if any,  or  the  article
          under   the   subject  cursor  if  it  isn't  currently
          displayed,  or  the  article   before   the   currently
          displayed one.

     artLast * (`-')
          Display the last article accessed before the  currently
          displayed  one.   This  command only keeps track of one
          previously accessed article, so invoking it  repeatedly
          simply toggles the display between two articles.

     artCurrent (Enter or Return)
          If no articles are selected in the subject  list,  then
          display  the  article  that the cursor is currently on.
          Otherwise, display the first selected article.

     artUp (up arrow)
          Move the cursor  up  one  line  in  the  subject  list,
          without changing the currently displayed article.

     artDown (down arrow)
          Move the cursor down one  line  in  the  subject  list,
          without changing the currently displayed article.

     artNextGroup * (Meta-n)
          Go directly to the next  newsgroup  with  unread  news,
          bypassing Newsgroup or All mode.

     artCatchUp * (`c')
          If any articles are currently selected,  then  mark  as
          read  all  articles  that  are  not  explicitly  marked
          unread, from the first listed article up to  the  first
          selected article.  Otherwise, mark as read all articles
          that are not explicitly marked unread, and exit Article
          mode  (note  that  `stayInArticleMode'  does not affect
          this command).

     artFedUp * (Meta-c)
          Mark as read all articles in the current group that are
          not  explicitly  marked unread, and then go to the next
          group with unread articles.

     artGotoArticle * (`.')
          Go to a specific article (you will be prompted for  the
          article number with a dialog box).

     artMarkRead * (`j')
          Mark as read the current or selected articles, and then
          return  the  list  cursor  to  the  currently displayed
          article if it wasn't there already).

     artMarkUnread * (`m')
          Mark as unread the current or  selected  articles,  and
          then  return the list cursor to the currently displayed
          article if it wasn't there already.

          When an article is marked as unread, a 'u' is placed in
          the  far left column next to the article's number.  The
          only way to mark an article as read once  it  has  been
          marked with a `u' is to use the `artMarkRead' function.

          The `artNext', `artPrev',  `artSubNext',  `artSubPrev',
          and  `artSubSearch'  will all display articles that are
          marked   unread   as   they   encounter    them,    but
          `artNextUnread' will not.

     artUnsub * (`u')
          Unsubscribe from the current group; exit  from  Article
          mode    (or    go    to    the   next   newsgroup,   if
          `stayInArticleMode' is set).

     artSubNext * (Ctrl-n)

     artSubPrev * (Ctrl-p)
          If  articles  are  selected,  then  display  the  first
          selected  article.   Otherwise, if the cursor is not on
          the  currently  displayed  article,  then  display  the
          article  the cursor is on.  Otherwise, find and display
          the next or previous article with the same  subject  as
          the  current  article (besides any `[rR][eE]:' prefix).
          If there are no more articles with the current  subject
          and  there  are more unread articles, display the first
          unread article.  If there are no more articles with the
          current  subject and there are no more unread articles,
          exit Article mode (or go  to  the  next  newsgroup,  if
          `stayInArticleMode' is set).

     artListOld * (Shift-L)
          List all articles available in the  group,  even  those
          that  have  been  read.  Note that this button does not
          toggle (clicking this button twice  will  not  put  you
          back  to where you were).  Note, furthermore, that this
          command can take a while  when  is  is  executed  on  a
          newsgroup with many articles in it.

     artKillSession * (`k')

     artKillLocal * (Shift-K)

     artKillGlobal * (Ctrl-k)
          Locate  either  the  first  selected  article  if   any
          articles  are selected, or the article under the cursor
          otherwise, and mark all articles with  its  subject  as
          read.   For  `artKillLocal',  put  the  subject  in the
          current group's KILL file as well, so that it  will  be
          marked   read   automatically   in   the  future.   For
          `artKillGlobal', put the subject  in  the  global  KILL
          file,  so  that it will be marked read automatically in
          the future in all newsgroups.

     artKillAuthor * (Meta-k)
          Locate  either  the  first  selected  article  if   any
          articles  are selected, or the article under the cursor
          otherwise, and mark all articles  with  its  author  as
          read  in  this newsgroup. (There is currently no way to
          automatically add an author to a group's KILL  file  or
          to  the  global KILL file, but that functionality is on
          the TODO list of future enhancements to xrn.)

     artSubSearch * (`/')
          Starting the first selected article if any articles are
          selected, or at the article under the cursor otherwise,
          search for an article whose subject  matches  specified
          regular  expression.  This command pops up a dialog for
          you to  enter  the  regular  expression  and  select  a
          direction in which to search.

          If you select s search direction without first entering
          a  regular  expression, the regular expression from the
          last search is used.  This can be used  to  switch  the
          direction   of   the   search   without   retyping  the
          expression.

     artContinue * (Meta-/)
          Continue the last regular expression search,  searching
          for the same regular expression in the same direction.

     artScroll (``Next'', ``Page Down'' or Ctrl-v)
          Scroll the article text forward a page.

     artScrollBack (``Prior'', ``Page Up'', `b' or Meta-v)
          Scroll the article text backward a page.

     artScrollLine (Meta-down arrow)
          Scroll the article text forward one line.

     artScrollBackLine (Meta-up arrow)
          Scroll the article text backward one line.

     artScrollEnd ('>')
          Scroll to the end of the article text.

     artScrollBeginning ('<')
          Scroll to the beginning of the article text.

Ctrl-V)
     artScrollIndex (Shift-``Next'',  Shift-
          ``Page  Down''  or  Shift-
          Scroll the article index forward a page.

Meta-V)
     artScrollIndexBack (Shift-``Prior'', Shift-
          ``Page Up'' or  Shift-
          Scroll the article index backward a page.

     artPost * (`a')
          Post an article to the current group.  See  ``COMPOSING
          MESSAGES'' below for more information.

     artPostAndMail * (Shift-A)
          Post an article to the current group  and  mail  it  as
          well.

     artMail (Shift-M)
          Send a mail message.

     artExit * (`x')
          Restore the current group's articles to the read/unread
          state they were in before the newsgroup was entered and
          exit from Article mode.  Note that articles marked read
          or unread by KILL-file processing remain so marked.

     artCheckPoint * (Ctrl-s)
          Same as `ngCheckPoint'.

     artGripe (Shift-G)
          Same as `ngGripe'.


  Buttons in the bottom button box
     (Note that buttons can only be placed in the button  box  in
     which  they  were originally assigned by xrn.  Therefore, if
     you want to include any of the buttons in this section in  a
     "*ButtonList"    option    (see   below),   you   must   use
     "artSpecButtonList", not "artButtonList".)


     artSave * (`s', `w' or '|')
          Save the current article in a file or  mail  folder  or
          pipe  it  it  into  a  command.  This command pops up a
          dialog for you to enter the file name in which to save,
          and buttons to execute the save or abort it.

          If the  specified  filename  begins  with  a  `|',  the
          article  is  piped into the command specified after the
          `|'.  If the filename begins with a `+', it is  treated
          as  an  MH  folder, and the article is refiled into the
          specified folder.  If the name begins with a `@', it is
          assumed to be a BABYL file (i.e., the type of file used
          by Emacs RMAIL mode), and the article is saved  in  the
          named file in BABYL format.

          If the filename  does  not  start  with  any  of  those
          special  characters,  then it is assumed to be a normal
          filename, and the article is appended to  it.   If  the
          filename  is relative (does not begin with `/' or `~'),
          `~/News/' will be prepended to it.

          If no filename is specified, the article  is  saved  in
          `~/News/Groupname',  where  `Groupname'  is the name of
          the current group with the first letter capitalized  If
          `saveMode'  (see  below)  is  set  to  `subdirs',  then
          `~/News/groupname/' will be used instead of `~/News/'.

          If multiple articles are selected when this command  is
          executed, then all will be saved as specified.

          If a specified filename has a `%d' in it, the `%d' will
          be  replaced  with  the article number being saved.  To
          save in a file with `%' in its name, you must  use  two
          `%' characters, i.e., `%%'.

     artReply * (`r')
          Reply (by mail) to the author of the  current  article.
          See ``COMPOSING MESSAGES'' below for more information.

     artForward * (Meta-f)
          Forward the current article to  a  person  or  multiple
          people via mail.

     artFollowup * (`f')
          Post a followup to the current article.

     artFollowupAndReply * (Ctrl-F)
          Post and mail a single response to the current article.

     artCancel * (Shift-C)
          Cancel the current article.  You  can  only  cancel  an
          article that you wrote.

     artRot13 * (Shift-X or Ctrl-x)
          Decrypt an article ``encrypted''  with  the  ``rot-13''
          algorithm.   In  some  newsgroups (e.g., ``rec.humor'',
          ``rec.humor.funny''), articles that may offend  certain
          people  are sometimes posted.  To minimize the offense,
          these articles are sometimes encoded with ``rot-13'', a
          simple  letter-substitution  cipher, so that users must
          take explicit action in order to view them.   Executing
          this  command  will  decode  such  an  encoded message;
          executing the command a second time on the same article
          will  return  the  article  to  its  original contents.
          xXLATE_STARTx

     artXlate *
          Translate the article  from  ISO  646  to  ISO  8859-1.
          xXLATE_ENDx

     artHeader * (`v')
          Toggle between showing all header lines in the  article
          and  showing  a  limited  set  of  header  lines.  This
          command is ineffective (and  therefore  its  button  is
          insensitive)  if you have not set the `stripHeaders' or
          `leaveHeaders' option (see below).

     artPrint *
          Print  the  article  (see  the  `printCommand'   option
          below).


COMPOSING MESSAGES

  Kinds of messages
     With xrn, you can compose and send both  newsgroup  articles
     and  mail  messages.   A  newsgroup  article can be either a
     followup to an existing article or an  article  without  any
     relation to previous articles; similarly, a mail message can
     be a reply to an existing article or a stand-alone  message.
     Furthermore,  a  single  message  can  be  both  a newsgroup
     posting and a mail message (e.g., if  you  want  to  post  a
     followup  to a previous posting and also send a copy of your
     followup to the author of the previous posting).

  The message editor
     By default, when you tell xrn that you  want  to  compose  a
     message,  it  pops  up a composition window with the message
     template in the standard X  toolkit  editor,  whose  command
     syntax  is  similar  to  that of emacs(1).  However, you can
     also use an editor of your own choosing  to  edit  messages.
     For more information, see the `editorCommand' option below.

  Signature files
     xrn will attempt to read a signature file  and  include  its
     contents  in  the  message template.  (Note, however, that a
     signature may not be included in postings  if  the  inews(1)
     program  at  your site also includes a signature and xrn has
     been configured to use inews to post articles.)

     The signature file name  is  set  with  the  `signatureFile'
     option (see below); it defaults to `~/.signature'.  However,
     rather than just checking for that file xrn will first check
     for  a  signature  file  that  is  specific  to  the current
     newsgroup or newsgroup hierarchy or to the type  of  message
     being composed.

     For  example,   if   you   are   posting   an   article   in
     `comp.sources.x'    and    `signatureFile'    is    set   to
     `~/.signature', xrn will check for the existence of  any  of
     the following signature files (in this order):

          ~/.signature-comp.sources.x
          ~/.signature-comp.sources
          ~/.signature-comp

     Then, it will check for  `~/.signature.post'.   In  general,
     the  message  types  used for this check are and `followup',
     `forward', `gripe', `reply', `post', and  `mail'.   In  this
     check,  a  message  that  is both a followup and a reply has
     type `followup', and a message that is both a posting and  a
     mail  message  has  type  `post'.  If none of these files is
     found, it will finally check for `~/.signature'.

     If the `executableSignatures'  option  is  enabled  and  the
     signature  file  that  xrn finds is executable, xrn will run
     the signature file as a program and use its  output  as  the
     signature.

     If the `signatureNotify' option is enabled, xrn will display
     an informational message telling you which signature file it
     is reading or executing.

     If the signature  text  is  more  than  xMAX_SIGNATURE_SIZEx
     characters  long,  it  will be ignored.  Long signatures are
     considered rude and should be avoided.

  Composition window buttons
     There are up to five buttons (some of them are not  relevant
     when  composing  some  types  of  messages and are therefore
     omitted) at the bottom of the editor  window  which  do  the
     following:  abort  the  message without sending it; save the
     message in the file specified by the  `savePostings'  option
     (see  below);  send  the message; include in the message the
     text of article to which this is a followup and/or reply; or
     include  in  the message a specified file (for which you are
     prompted with a dialog box).

     You may only compose one message at a time.

  Posting restrictions
     more newsgroups.

     If the value of  the  "warnings.posting.crossPost"  resource
     (see  "X  RESOURCES",  below) is non-zero and you attempt to
     post   to   that   many   or   more   newsgroups,   or    if
     "warnings.posting.followupTo"  is  non-zero  and  attempt to
     post to that many or more  groups  when  your  `Followup-To'
     line  does  not contain fewer groups than that, xrn will ask
     you to consider reducing the number of newsgroups  to  which
     you  are posting.  Since it is unlikely that your message is
     appropriate in all of the groups in which  you  are  posting
     it,  or that followups to your message should also appear in
     all of those groups, please take this suggestion seriously.

     Note that the number of groups which cause xrn to  warn  you
     are configurable with X resources; for more information, see
     the "X RESOURCES" section, below.


CUSTOMIZING XRN

     Colors, fonts, and other xrn options can be specified on the
     command  line  or  using X resources.  With the exception of
     the display name, all xrn options can be specified  using  X
     resources.   Options  specified  on  the  command  line take
     precedence over those specified using X resources.



COMMAND LINE ARGUMENTS

     Here are the current command line arguments (the X resources
     have   the  same  names  and  values  as  the  command  line
     arguments).

     -addButtonList list
               Use the given list of buttons for Add mode in  the
               order  given  rather  than the default button list
               (described above).

               The ``list'' is a comma separated list  of  button
               names,  as  given  in  the lists of buttons above.
               For  example,  your  list  might  be:   ``addQuit,
               addIgnoreRest, addLast, addUnsub''.

     -allButtonList list
               Use the given list of buttons for All  mode.   The
               format of ``list'' is as described above for the -
               addButtonList option.

     -artButtonList list
               Use the given list of buttons for Article mode.

     -artSpecButtonList list
               Use the given  list  of  buttons  for  the  bottom
               button box in Article mode.

     -authenticator command
               This command line is used  as  ``AUTHINFO  GENERIC
               <command>''   in  response  to  an  authentication
               challenge (NNTP response code 480) from  the  news
               server.   If the ``NNTPAUTH'' environment variable
               is present, it overrides the resource file  entry.
               The default (built into xrn) is ``any <userid>''.

     -authenticatorCommand command
               This is the command line that is  used  to  prompt
               the  user  for  authentication.   xrn invokes this
               command  line,  with  ``%s''   replaced   by   the
               authenticator  command  (see  above).  The default
               (in  the  application   defaults   file)   is   an
               invocation  of xterm, from which the authenticator
               command will prompt the user for authentication.

     +/-authorFullName
               Display  the  full  name  of  the  author  or  the
               user/hostname of the author.

     -breakLength len
               Break lines  longer  than  `len'  characters  into
               multiple  lines.  Default is 0 characters.  If set
               to  0,  line  breaking  is  disabled   (see   also
               'lineLength').

     -busyIconName name

     -busyIconPixmap pixmap
               When xrn is busy (e.g., doing an automatic rescan)
               and  iconified, set the icon name and/or pixmap as
               specified instead of using the default.

     -cacheFile file
               Use the specified file to cache information  other
               than  what's  in  the newsrc file that needs to be
               preserved between invocations of xrn.  Defaults to
               `~/.xrncache-hostname',  where  `hostname'  is the
               NNTP  server  host,  unless  ~/.xrncache   already
               exists  and ~/.xrncache-hostname doesn't, in which
               case ~/.xrncache will be used.

     -cancelCount number
               The number of articles to search before popping up
               the cancel button.

     +/-cc      Put 'Cc: user' in replies.  (X resources class is
               "CC".)

     +/-ccForward
               Put  'Cc:  user'  in   forwarded   messages.    (X
               resources class is "CC".)

     -confirm list
               Turn on confirmation boxes for the buttons listed.
               These  boxes  pop up to ask the user to verify the
               invocation of "dangerous" actions (such  as  catch
               up  and  unsubscribe).   The  list of buttons is a
               comma separated list of button names.  The buttons
               that  can be confirmed: ngQuit, ngExit, ngCatchUp,
               artCatchUp, artFedUp, ngUnsub, and artUnsub.

     -deadLetters file
               The name of the file to save failed  postings  and
               messages.  Defaults to `~/dead.letter'.

     +defaultLines count
               Number of lines to  scroll  the  subject  list  in
               article  mode  when scrolling automatically at the
               bottom of the list.

     +/-discardOld
               If enabled and `onlyShow' is  set,  then  articles
               earlier  than  the requested number of articles at
               the  end  of  the  newsgroup   are   marked   read
               automatically.       Disabled      by     default.
               xREALLY_USE_LOCALTIME_STARTx

     +/-displayLineCount
               When set, display the  number  of  lines  in  each
               article  (if  available)  in  the article index in
               Article mode.  Set by default.

     +/-displayLocalTime
               Display the 'Date:' field of the article using the
               local     time     zone    (instead    of    GMT).
               xREALLY_USE_LOCALTIME_ENDx

     -distribution dist
               Set the default distribution to `dist'.

     +/-dumpCore
               Dump core  when  a  signal  is  detected.   The  X
               resources  class  for the "dumpCore" X resource is
               "Debug".

     -editorCommand command
               Use an alternate  editor  for  creating  postings,
               followups,    forwards,   gripes,   and   replies.
               `command' must be a string  in  sprintf(3)  format
               containing  a  `%s', which will be replaced by the
               file name to  be  edited.   The  command  will  be
               executed using the bourne shell (sh(1)).  Examples
               are:

                 xterm -e vi %s
                 xterm -e microEmacs %s
                 emacsclient %s

              The resulting command should handle all editing and
              windowing.   The  article  being  followed  up  on,
              replied to or forwarded is automatically  included.
              You  can  also specify `%D' and it will be replaced
              with the display name.  For example:

                xterm -display %D -e vi %s

             If you specify an empty `editorCommand' string,  the
             external  editor  is  disabled  and the editor built
             into xrn will be used.  You can use this to  disable
             on the command line an `editorCommand' specification
             in your  X  resources,  or  to  disable  in  your  X
             resources  an  `editorCommand'  specification in the
             xrn app-defaults file installed at your site.

     +/-executableSignatures
               If a signature  file  is  executable,  attempt  to
               execute  it  and  use  its output as the signature
               text.  Three arguments are provided:  the  current
               newsgroup  (or "NIL" if none), the current posting
               mode ("post", "followup",  "reply",  "forward"  or
               "gripe"),  and the name of the file containing the
               text of the article being replied to (or "NIL"  if
               none).  Non-executable signature files are already
               read (rather than  executed),  regardless  of  the
               setting of this option.  Also, if the execution of
               a signature file fails, it  is  read  rather  than
               executed.

     +/-fullNewsrc
               If set, then the newsrc file will  always  contain
               all  newsgroups known to the server.  Any time xrn
               discovers a newsgroup on the server that's not  in
               the  newsrc  file,  it will consider the newsgroup
               new and enter Add mode to ask you what you want to
               do with it.

               If not set, then any newsgroups not found  in  the
               newsrc  file  will  be  considered ``ignored'' (as
               opposed to ``subscribed'' or ``unsubscribed'') and
               will  be  left  out of the newsrc when xrn updates
               it.  In this case, only responses from the  server
               to  the  ``NEWGROUPS''  command  will  be  used to
               determine when new groups are created.

               When you run xrn with  `fullNewsrc'  disabled  for
               the  first  time, any newsgroups created since the
               last time you ran xrn will be ``missed''  by  xrn.
               To  verify that you haven't missed any interesting
               newsgroups  because  of  this,  enter  All   mode,
               execute  the  `allToggle' command, and page to the
               end of the newsgroup listing to see if  there  are
               any ``ignored'' groups there; if there are and you
               wish to subscribe to them, you can then do so.

     -geometry WxH+X+Y
               Specification of the xrn window size and location.
               The  window  manager  may  choose  to  ignore this
               specification.

     -iconGeometry +X+Y
               Specification of the initial  xrn  icon  location.
               The  window  manager  may  choose  to  ignore this
               specification.

     -iconName name

     -iconPixmap pixmap
               Use the specified xrn icon name or pixmap  instead
               of the default.

     -ignoreNewsgroups list
               A comma- or whitespace-separated list  of  regular
               expressions  to  be  matched  against the server's
               list of newsgroups.  Any newsgroup  which  matches
               one   of  the  specified  regular  expressions  is
               treated  as  an  invalid  group.    For   example,
               specifying  a  list  containing  "^talk\.  ^rec\."
               would cause all newsgroups in the "talk" and "rec"
               hierarchies  to  be  ignored.   Note  that  if you
               specify -ignoreNewsgropus on the command line, you
               should  enclose  your  list  in  single  quotes to
               prevent  any   backslashes   and   other   special
               characters  in  it  from  being interpreted by the
               shell.  If, on the other hand, you specify  it  in
               your  X  resources, you should put two backslashes
               whenever you want a single backslash to appear  in
               a  regular  expression,  because  the backslash is
               interpreted  as  a  quoting   character   when   X
               resources are parsed.

     -includeCommand command
               Use an alternate  program  for  inserting  current
               article  text when following up on, replying to or
               forwarding a message.  `command' must be a  string
               in  sprintf  format that contains two `%s's, which
               will be replaced by the  include  prefix  and  the
               article file name (in that order).  Examples are:

                 sed -e 's/^/%s /' %s
                 xmh-insrt-repl -separator '%s' %s

              The command provided should output to its  standard
              output  the  text  to  be  included in the message,
              derived as desired from the prefix and the contents
              of  the article file.  The command will be executed
              using the bourne shell.

     +/-includeHeader
               Include or do not include the original  header  in
               included  articles.  The default is to not include
               the header.

     -includePrefix prefix text
               Change  the  standard  prefix  for  each  line  of
               included  text  from  the  default,  "|> ", to the
               given text string.

     +/-includeSep
               Include or do not include the prefix text ("|>  ")
               in  front of included articles.  The default is to
               include the prefix text ("|> ").

     +/-info    Display all informative messages in  the  message
               pane.   Defaults to display all information in the
               message pane.

     +/-killFiles
               Turn the use of kill files on/off.  The default is
               on.    See   ``KILL  FILE  FORMAT''  below  for  a
               description of  the  format  of  entries  in  kill
               files.

     -leaveHeaders list
               The header fields to leave in the article; a comma
               separated  case-insensitive  list  of  field names
               (i.e.,  subject,from,organization).   This  option
               takes precedence over `stripHeaders'.  If the word
               `all' is specified instead of a  list  of  fields,
               then  all  headers  will  be retained (This can be
               used in user X resources to  override  a  resource
               specified  in the global xrn application defaults,
               or on the command  line  to  override  a  resource
               specified  in  either  the application defaults or
               the user X resources.).

     -lineLength len
               Length of lines that are  broken.   Default  is  0
               characters.    If  set  to  0,  line  breaking  is
               disabled (see also 'breakLength').

     +/-localSignatures
               If enabled, signature files are  searched  for  in
               the  same  manner as local kill files, except that
               the file searched for is called SIGNATURE  instead
               of  KILL.   For  example, to find a signature file
               for a posting in news.software.readers,  xrn  will
               look for `~/News/news/software/readers/SIGNATURE',
               `~/News/news/software/SIGNATURE',
               `~/News/news/SIGNATURE',  and  `~/News/SIGNATURE',
               in that order, and use the first one it finds.

     -lockFile file
               Set the XRN lock file name to `file'.  Defaults to
               `~/.xrnlock'.

     -mailer mailer
               The command to  use  for  mailing  replies.   This
               command  must take all of it's input from stardard
               input (xrn will not build a  command  line).   The
               default is `xSENDMAILx'.

     -maxLines number
               The maximum number of lines above  the  cursor  in
               the  subject  line  display,  or, if negative, the
               minimum number of lines  below  the  cursor.   The
               default  is  -2  (i.e., display at least two lines
               below the cursor whenever possible).

     -minLines number
               The minimum number of lines above  the  cursor  in
               the   subject  line  display.   If  negative,  the
               subject line display scrolls only  at  the  bottom
               and only one line at a time.  The default is 3.

     -newsrcFile file
               The newsrc file to use.  Defaults to  `~/.newsrc'.
               If  a  file with a name of the form `<newsrcFile>-
               <nntpServer>' is found, it will be used.

     -ngButtonList list
               Use the given list of buttons for Newsgroup  mode.
               The  format  of ``list'' is as described above for
               the -addButtonList option.

     -nntpServer hostname
               The NNTP server to use (name or internet number).

     -onlyShow number
               Only grab the  header  information  for  the  last
               'number'  of  articles  in  each  group.   This is
               useful if you have been away for a while and  only
               want  to  see that last 100 or so articles in each
               group (and thus don't have to  waste  time  having
               XRN  fetch  the subjects, authors, and line counts
               for all the articles).

               Note that although only the  specified  number  of
               articles  are displayed when entering a newsgroup,
               the other articles  are  not  marked  read.   This
               means  that if you enter a newsgroup with onlyShow
               set, read the displayed articles,  then  exit  the
               newsgroup  and  enter  it again, the last block of
               articles before that will be displayed to you.  If
               you  want  earlier  articles  to  be  marked  read
               automatically, use the `discardOld' option.

     -organization organization
               Set  the  organization  name   in   postings   and
               followups.   You  can  also  set  the  environment
               variable ORGANIZATION (NEWSORG on Apollo)  to  set
               the default organization name.

     +/-pageArticles
               If enabled, then space bar in  article  mode  will
               scroll  the  current  article,  or  go to the next
               article if at the end of the current article.   If
               disabled,  then  space  bar  in  article mode will
               always  go  to  the  next  article.   Default   is
               enabled.

     -pointerBackground color
               Set the background color of the mouse cursor.  The
               default  color  is whatever the default background
               color is for xrn.

     -pointerForeground color
               Set the foreground color of the mouse cursor.  The
               default  color  is whatever the default foreground
               color is for xrn.

     -prefetchMax number
               Only  prefetch  newsgroups  with   at   most   the
               specified number of unread articles.  If number is
               0, then there is no limit,  i.e.,  newsgroups  are
               prefetched  regardless  of  the  number  of unread
               articles in them.  The default is 0.

     -prefetchMinSpeed kbytes
               Only prefetch the next article if the speed of the
               network  link  to  the NNTP server is greater than
               kbytes kilobytes per second.   The  default  is  3
               kilobytes  per  second.   If  set  to  0, the next
               article will always be prefetched,  regardless  of
               the network link speed.

     -printCommand command
               Set the command used for printing  articles.   The
               article is sent to the command via standard input.
               Defaults to `xPRINTCOMMANDx'.

     -replyTo name
               Set the  Reply-To  field  for  articles  and  mail
               messages.

     +/-rescanOnEnter
               Check with the news server for new articles  in  a
               newsgroup  when  entering  it,  rather  than  only
               checking for  new  articles  when  rescanning  all
               newsgroups.  By default, this feature is disabled.

               Enabling   this   feature   has   two    potential
               disadvantages:   (1)   It   can   cause  a  slight
               additional  delay  when   entering   a   newsgroup
               (although this delay is mostly unnoticeable except
               when the newsgroup has an extremely  large  number
               of  unread  articles in it), and a more noticeable
               delay when using  "Next  group"  or  "Fed  up"  in
               article   mode   after  selecting  "List  old"  in
               newsgroup mode; (2) It can cause  some  confusion,
               e.g.,  when  you  enter a newsgroup believing that
               there are no unread  articles  and  therefore  you
               will  be  shown the last read article, and instead
               you are shown new unread  articles,  or  when  you
               enter  a  newsgroup  expecting  to see five unread
               articles and instead see ten.

               On the other hand, this feature allows you to  see
               new  articles in a specific newsgroup immediately,
               without  rescanning  for  new  articles   in   all
               newsgroups.   Some  people  prefer  this behavior,
               despite the disadvantages mentioned above.

     -rescanTime time
               Amount of idle time (in seconds)  before  checking
               for  new articles automatically.  A rescan time of
               0 means never to check automatically.  The default
               (unless configured differently when compiling xrn)
               is 0 (i.e., never check automatically).

     +/-resetSave
               Reset the string in the  'save'  dialog  box  upon
               entering each newsgroup.

     -saveDir dir
               The  article  saving   directory.    Defaults   to
               `~/News'  when  - saveMode  specifies `onedir', or
               `~/News/newsgroup'  when   -  saveMode   specifies
               `subdirs'.

     -saveMode mode
               The mode for saving articles;  a  comma  separated
               list  of options.  The options can be `mailbox' or
               `normal', `headers' or `noheaders',  and  `onedir'
               or       `subdirs'.       The      default      is
               `normal,headers,onedir'.

     -saveNewsrcFile file
               The  saved   `.newsrc'   filename.    Before   the
               `.newsrc' file is modified on startup, it is saved
               in a backup file.  Defaults to `~/.oldnewsrc'.

     -savePostings file
               The name of the file in which to save postings and
               messages (via the `save' button in the composition
               window).  Defaults to `~/Articles'.

     -saveString string
               Use 'string' as the default in the  'save'  dialog
               box.

     -signatureFile file
               The  signature   file   to   use.    Defaults   to
               `~/.signature'.

     +/-signatureNotify
               When sending mail or posting,  display  a  message
               saying which signature file is being used.

     +/-sortedSubjects
               Display the subject lines in  the  subject  window
               sorted by subject.

     +/-stayInArticleMode
               If enabled, then a number of operations in article
               mode   (including   unsubscribe,   next   article,
               previous  article,  subject  next,  subject  prev,
               session  kill,  author  kill,  subject search, and
               continue search) will attempt to go  to  the  next
               newsgroup  when  they  would normally exit article
               mode.  Disabled by default.

     -stripHeaders list
               The header fields to strip  from  the  article;  a
               comma  separated  case-insensitive  list  of field
               names (i.e., keywords,message-id).   If  the  word
               `none'  is  specified instead of a list of fields,
               then no headers will be stripped (This can be used
               in   user  X  resources  to  override  a  resource
               specified in the global xrn application  defaults,
               or  on  the  command  line  to override a resource
               specified in either the  application  defaults  or
               the user X resources.).

     +/-subjectRead
               When using  the  space  bar  to  scroll,  when  an
               article   is  finished,  the  space-bar  scrolling
               invokes subject next instead of next unread.

     +/-subjectScrollBack
               If  enabled  (which  is  the  default),  then  the
               subject  index  in article mode will always scroll
               to display the current article after operations on
               other  articles in the index.  For example, if you
               use the scroll bar to scroll to  several  articles
               that  you want to save, highlight the articles and
               click on the ``Save'' button, xrn will scroll back
               to  the  current  article  when  done  saving.  If
               disabled, then xrn will attempt  to  maintain  the
               position  you scrolled to even after performing an
               operation on other articles.  Note, however,  that
               this  may result in some flickering of the subject
               index,  due   to   unavoidable   ``disagreements''
               between  how  xrn and the Athena Text widget think
               things should work.

     -tmpDir directory
               The directory to use for the temporary storage  of
               articles  fetched from the server.  The default is
               `/tmp'.   Note  that  the   environment   variable
               ``TMPDIR'',  if  it  is  set,  will  override this
               option (or the default value).

     -topLines number
               The number of lines to be  used  for  the  subject
               list in article mode.  The default is 10.

     +/-typeAhead
               Allow/disallow  typeahead.   Defaults   to   allow
               typeahead.

     -unreadIconName name

     -unreadIconPixmap pixmap
               When there is unread news and  xrn  is  iconified,
               set  the  icon  name  and/or  pixmap  as specified
               instead of using the default.

     +/-updateNewsrc
               Update the newsrc file when leaving Article mode.

     -verboseKill actions
               By  default,  when  processing  KILL  files,   the
               subject  of  each  article  that  is  marked read,
               marked  unread,  or  saved  is  displayed,  and  a
               summary  of  all  such  articles is displayed when
               done processing the KILL file.  This option allows
               you  to  select  which  subjects  and summaries to
               display.  The actions specified should contain one
               or  more  of  "l", "j", "m" and "s".  "l" means to
               display each KILL-file pattern as it is processed.
               "j"  means  to  display  articles  that are marked
               read, "m"  means  to  display  articles  that  are
               marked  unread,  and "s" means to display articles
               that are saved.  If  actions  is  empty,  then  no
               information  is  displayed  when  processing  KILL
               files.

     -watchUnread list
               Only check for unread news in groups matching  one
               of the listed regular expressions when determining
               whether to display the  unread  icon  name  and/or
               pixmap.   The  listed  regular  expressions can be
               separated by spaces, tabs, commas and/or newlines.


KILL FILE FORMAT

     xrn supports a subset of the kill-file commands supported by
     rn(1).   For  compatibility  with  rn,  lines  in kill files
     beginning with ``THRU'' or ``&'' are ignored.  Any  line  in
     the  format ``/pattern/options:command'' is interpreted as a
     kill-file command; its components are:

     pattern
          A regular  expression  which  is  matched  against  the
          authors  and subjects of articles to determine to which
          articles ``command'' should be applied.  Slashes in the
          expression should be quoted with a backslash to prevent
          them  from  being  interpreted  as  the  end   of   the
          expression.

     options
          Interpreted by rn, but ignored by xrn.

     command
          A single letter, either `j' (mark  the  article  read),
          `m' (mark the article unread), or `s' (save the article
          in the default save file for the newsgroup).

     Any line not in one of the already  mentioned  formats  will
     cause xrn to display an error.


X RESOURCES

     xrn supports some X resources that do not have corresponding
     command  line  arguments  (however, see the documentation of
     the -xrm command line argument in X(1) for information about
     setting any X resource from the command line):

     buttonsOnTop
               By default, xrn arranges its window in such a  way
               that button boxes are below the display areas they
               affect.  However, some  users  do  not  like  this
               behavior  because  it  causes  the frequently used
               buttons to be located in different  areas  of  the
               xrn window in different modes.

               If "buttonsOnTop" is  set  to  True,  then  button
               boxes will be placed above, rather than below, the
               display areas they affect.  They most  significant
               result  is  that  the most frequently used buttons
               will always be at  the  top  of  the  xrn  window,
               rather  than  changing  positions depending on the
               mode.

     cacheActive
               By default, xrn fetches a full newsgroup list from
               the  NNTP  server when it starts up and every time
               you execute the "ngRescan" command.  However, this
               can  take a long time if you are using a slow NNTP
               server, or if you are using a server with  a  very
               large  number of newsgroups, or if you are talking
               to the NNTP server over a slow  network  (e.g.,  a
               SLIP or PPP Internet connection).

               In such a situation, you can set the "cacheActive"
               resource  to  True,  which will cause xrn to cache
               the newsgroup  list.   It  will  only  retrieve  a
               complete  list  from  the  server if either (a) it
               encounters a newsgroup that it can't find  in  its
               cache  (in  some  of these situations, it will ask
               you for confirmation before fetching the list, but
               in  some  it  will  not),  or  (b) you execute the
               "ngGetList" command.
               When "cacheActive" is True,  then  the  "ngRescan"
               command  does  a  group-by-group rescan instead of
               retrieving a full newsgroup list; furthermore,  it
               does  the  rescan  in  the  background  instead of
               pausing xrn for more information.

               See also the "fullNewsrc" command-line option  and
               resource, which you may wish to use in conjunction
               with "cacheActive" to  prevent  xrn's  cache  file
               from becoming too large.

     domainName
               Your  internet  domain   (e.g.,   ".Berkeley.EDU",
               ".orst.edu").   Equivalent  to  setting the DOMAIN
               environment variable.  You probably don't have  to
               specify this; if you do, xrn will tell you so when
               you try to post or send mail.

     hiddenHost
               The host name which you  wish  to  appear  in  the
               "From"  lines  of messages you compose.  Note that
               your real host name (or, at least, xrn's  idea  of
               your real host name) may appear in a "Sender" line
               in your messages, regardless of what  you  specify
               for this resource.

               This resource is overridden  by  the  "HIDDENHOST"
               environment variable (see below).

     warnings.followup.followupTo (class warnings.Followup)
               By default, when you start composing a followup to
               a  previous  message,  xrn  will  warn  you if the
               default `Newsgroups'  line  of  your  followup  is
               different   from  the  `Newsgroups'  line  of  the
               previous message because of a  `Followup-To'  line
               in  that  message.   To  disable this warning, set
               this resource to `False' or the class to `0'.

     warnings.followup.crossPost (class warnings.Followup)
               By default, when you start composing a followup to
               a  previous  message,  xrn  will  warn you if your
               followup  is  being   cross-posted   to   multiple
               newsgroups.  If you set this resource to `0', this
               warning will be disabled completely; if you set it
               to  a non-zero value, this warning will occur only
               if your article is being cross-posted to that many
               groups or more.

     warnings.posting.crossPost (class warnings.Posting)
               This resource controls the number of newsgroups in
               the  Newsgroups  line of your posting at which xrn
               will suggest that you  remove  some  groups.   The
               default  is  xCROSSPOST_CONFIRMx.   See "COMPOSING
               MESSAGES", above, for more information.

     warnings.posting.followupTo (class warnings.Posting)
               This resource controls the number of newsgroups in
               the   Newsgroups  and  Followup-To  line  of  your
               posting at which xrn will suggest that you  remove
               some.   The  default is xFOLLOWUPTO_CONFIRMx.  See
               "COMPOSING MESSAGES", above, for more information.

     Furthermore,  xrn  takes  a  number  of  specifications  for
     colors,  fonts,  border  widths,  and other program options.
     The format for an xrn X resource is

                        xrn.x.y....z.a: value

     where x.y....z specifies the path from the top level of  xrn
     to  a  particular  item  (think  of  xrn  as  a hierarchical
     collection of windows, panes, and buttons, and x.y....z is a
     path  from  the  top  of  the  hierarchy  to  a  node in the
     hierarchy), a is the type of default  (i.e.,  font,  border,
     foreground, background, borderWidth), and value is the value
     of the default (i.e,. a color name or hex representation,  a
     font  name,  a  numeric  value).  Specifying a default for a
     item at some point in the hierarchy will  set  that  default
     for  all  items  from  that  point down in the hierarchy.  A
     higher level default  can  be  overridden  by  specifying  a
     default at a lower level directly.

     XRN widget hierarchy:
     vpane (Paned)
       titlebar (Label)  (optional)
       index (Text)
       indexinfo (Label)
       indexbuttons (Box)
           buttonName (Command)
       articleText (Text)
       textinfo (Label)
       textbuttons (Box)
           buttonName (Command)

     Composition (Shell)
       vpane (Paned)
         label (Label)
         text (Text)
         box (Box)
            abort (Command)
            send (Command)
            save (Command)
            includeArticle (Command)
            includeFile (Command)

     dialogs...

     Examples of defaults are:
        #
        xrn.newsrcFile:          ~/.newsrc
        xrn.nntpServer:          pasteur
        xrn.organization:   UC Berkeley XRN Design Team
        xrn.replyTo:        user@machine.domain
        xrn.iconGeometry:   +64+521
        xrn.leaveHeaders:   subject,from
        xrn.includeHeader:  off
        xrn.signatureFile:  ~/.signature
        xrn.geometry:       =750x770+10+10
        xrn.deadLetters:    ~/dead.letter
        xrn.savePostings:   ~/Articles
        xrn.topLines:       9
        xrn.saveMode:       mailbox,headers,onedir
        xrn.minLines:       3
        xrn.maxLines:       6
        xrn.tmpDir:         /tmp
        xrn.mailer:         /usr/lib/sendmail -oi -t
        #
        xrn.Gripe.geometry: +50+50
        #
        xrn.ngButtonList: ngQuit,ngRead,ngCatchUp,ngRescan,ngSubscribe,ngPost
        xrn.artButtonList: artQuit,artNextUnread,artCatchUp,artPost,artNextGroup
        #
        xrn*background:          plum
        xrn*foreground:          red
        xrn*font:      9x15
        xrn*border:         LightGray
        #
        xrn*Text*Background:     DarkSlateGray
        xrn*Text*Foreground:     yellow
        xrn*ScrollBarMgr.thickness: 22
        xrn*ScrollBar.background: DarkSlateGray
        xrn*ScrollBar.foreground: yellow
        xrn*ScrollBar.border: White
        xrn*Label.background:         cyan
        xrn*Label.foreground:         blue
        xrn*Command.foreground:       White
        xrn*Command.background:       coral
        #
        xrn*Box.ngQuit.foreground:    Black
        xrn*Box.ngQuit.background:    red
        #
        xrn*dialog*font:         9x15
        xrn*dialog*background:        LimeGreen
        xrn*dialog*foreground:        CornflowerBlue
        xrn*dialog*Label.foreground:  NavyBlue
        xrn*dialog*Command.foreground:     Black
        xrn*dialog*Command.background:     yellow
        xrn*dialog*Text.background:   Wheat
        xrn*dialog*Text.foreground:   SteelBlue
        xrn*dialog*borderWidth:       2
        #



FILES

     ~/.newsrc[-hostname]
                    description of the groups  and  the  articles
                    read in each group

     ~/.xrncache-hostname
                    internal  cache   containing   xrn   variable
                    settings and/or cached newsgroup data

     ~/.oldnewsrc   backup of ~/.newsrc (created at startup)

     ~/.signature*  signatures for use when sending messages

     ~/News         directory where articles are saved

     ~/Articles     where  `saved'  postings  and  messages   are
                    stored

     ~/dead.letter  where failed postings and messages are stored

     ~/.xrnlock     lock file xSERVER_FILE_STARTx

     xSERVER_FILEx  location of the news server hostname (optional)
                    xSERVER_FILE_ENDx xHIDDEN_FILE_STARTx

     xHIDDEN_FILEx  location of the hiddenhost name (optional)
                    xHIDDEN_FILE_ENDx xPATH_FILE_STARTx

     xPATH_FILEx    location of the path host name (optional)
                    xPATH_FILE_ENDx xDOMAIN_FILE_STARTx

     xDOMAIN_FILEx  location of the domain name (optional)
                    xDOMAIN_FILE_ENDx xUUCPNAME_STARTx

(optional)
     xUUCPNAMEx          location of  the  UUCP  name  for  your  host
                    xUUCPNAME_ENDx xSENDMAIL_STARTx

     xSENDMAILx          command for sending mail
                    xSENDMAIL_ENDx



ENVIRONMENT VARIABLES

     NNTPSERVER hostname of the news server

     TMPDIR     temporary directory
     DOMAIN     name of your  internet  domain  (".Berkeley.EDU",
                ".orst.edu")

     HIDDENHOST full domain-style name of the host that you  want
                your    return    path    to   be   from   (e.g.,
                "decvax.dec.com", "Berkeley.EDU")

     HIDDENPATH name of the host that you want put  in  the  Path
                field of messages

     USER       login name of the user

     HOME       home directory of the user

     FULLNAME   full name of the user, used for the From field of
                messages



SEE ALSO

     emacs(1), readnews(1), rn(1),  sh(1)  sprintf(3),  vnews(1),
     X(1), nntpd(8)



COMMENTS

     The name (xrn) is a bit of a misnomer.   xrn  is  not  an  X
     interface  to  `rn' (the terminal-based news reading program
     by Larry Wall), but is an X-based news reader that  has  had
     part  of  the  functionality of `rn' added since a number of
     our users are (were?) `rn' users (all of the code  is  new).
     Much of the `rn' funcionality that xrn currently has was not
     in the original plan (KILL files, for example).

     The user interface look and feel is modeled  after  that  of
     `XMH' (by Terry Weissman).

     The `.newsrc'  file  is  updated  on  executing  the  `quit'
     command  in  Newsgroup  mode,  during every `rescan', and by
     `checkpoint'.  If the  `updateNewsrc'  option  is  set,  the
     `.newsrc'  file  will  be updated every time Article mode is
     exited.

     xrn catches signals and X errors and will clean up on  error
     exit  (remove  temporary  files, update the `.newsrc' file).
     The cleanup will be done and then a death notifier box  will
     be  posted  (if  the  signal  is SIGHUP or SIGINT, the death
     notifier will be skipped and the program  will  exit).   The
     "click to exit" button must be pressed in the death notifier
     box for the program to exit.

     XREFS are handled by xrn, however  only  articles  that  are
     actually  read  (not marked as read by 'catchup' or 'mark as
     read') have their XREFS chased  and  only  groups  that  are
     currently subscribed to have XREFed articles marked as read.

     The default  specifications  for  color  and  fonts  can  be
     confusing   (thousands  of  different  X  resources  can  be
     specified for xrn, no two users' xrn displays need to be the
     same).

     xrn uses the XHDR command of the Berkeley NNTP  news  server
     (XHDR  is not part of the protocol defined by RFC 977).  xrn
     will detect the presence of this command and complain if  it
     does not exist.

     Since the NNTP protocol does not define  a  unique  response
     code  for  server  timeout, timeout recovery may not work if
     the format of the timeout error message changes.

     xrn assumes a  mailer  that  understands  domain-based  mail
     addresses.

     xrn notices that the `.newsrc'  file  has  been  updated  by
     another  program  while  xrn is running and informs the user
     (and gives the user the option to quit without updating  the
     `.newsrc' or to continue on).

     Article temporary files can be removed and xrn will recover.

     xrn strips `<character>^H' from articles.

     The v{f,s}printf implementation included with  xrn  is  from
     Robert A. Larson <blarson@skat.usc.edu>.

     The strtok implementation included with xrn  is  from  Henry
     Spencer <henry@zoo.toronto.edu>.

     PointerForeground is the resource name for the color of  the
     cursor     (pointer).      Some     other    programs    use
     PointerColor/CursorColor.


BUGS

     See TODO for a larger list of bugs and things that  need  to
     be done.

     Incomplete KILL file support: the THRU line is not  updated,
     the  only  actions  supported  are  'm',  'j',  and 's', and
     matching is always  done  against  both  the  ``From:''  and
     ``Subject:'' lines of postings.

     See config.h for a list of defines you may want to use based
     on  problems  that  may  exist  in  your  version of the X11
     toolkit and widgets.

     See  COMMON-PROBLMS  for  a  list  of  common  problems  and
     solutions to the problems.

     Report  bugs  and   requests   for   features   to   `bug  -
     xrn@cam.ov.com'.

     Requests to be placed on the xrn users mailing  list  should
     be  sent  to `xrn-users-request@cam.ov.com'.  The only thing
     that comes across this mailing list is announcements of  new
     releases  and  patches  for serious problems so don't expect
     very much traffic.


AUTHORS

     Jonathan Kamens (OpenVision Technologies, jik@cam.ov.com)

     Ellen M Sentovich (UC Berkeley, ellen@ic.berkeley.edu)

     Rick L Spickelmier (formerly UC Berkeley,  now  Objectivity,
     Inc., ricks@berkeley.edu, ricks@objy.com)

     See the ChangeLog file for other people who have contributed
     to xrn.