nems, SLRN

Section: User Commands (1)
 

NAME

news, slrn - an interactive Usenet newsreader that doesn't assume a local feed  

DOCUMENTATION NOTE

This documentation is out of date. You are encouraged to look at slrn/changes.txt and slrn/doc/slrn.rc in the slrn distribution ( ## appended below ) for more up to date information. See also http://space.mit.edu/%7Edavis/slrn.html for additional documentation.  

SYNOPSIS

slrn [ -n ] [ -h nntp-server-name ] [ -f newsrc-file ] [ -create ] [ -C ] [ -help ]  

DESCRIPTION

slrn is an easy to use but powerful NNTP based newsreader. It relies extensively on the S-Lang programmer's library for many of its features.

If no server is specified on the command line using the -h option, the server specified by the NNTPSERVER environment variable will be used. The -f option specifies which newsrc file should be used. If none is specified, a default value of .jnewsrc will be used. This value can be set on a server by server basis using the .slrnrc initialization file.

The -create option should be used the first time slrn is used for a particular server. This causes slrn to read the entire list of groups available at the server and place them in the selected newsrc file. If the NNTP connection is slow, this process may take several minutes. Fortunately, this happens only when the -create flag is used.

If -C is specified on the command line, the terminal is assumed to support colors. Colors may be specified by using the initialization file. If the -n option is present, no new newsgroups will be checked for. This may result in a faster startup.

 

BASIC OPERATION

Using slrn is simple. For many, simply typing slrn will connect to a news server. After starting, slrn checks for the existence of new newsgroups and automatically subscribes to them. Then after new news is checked, slrn goes into ``full screen'' mode at which point the user can unsubscribe to one or more groups. slrn will display a list of newsgroups that looks like:

->  3      sci.research.postdoc                 689-705
    1      comp.databases.olap                  1-1
    4      rec.antiques.radio+phono             1-4
    1      comp.emulators.ms-windows.win        339-349
  113      comp.unix.questions                  74401-74513
   11      gnu.ghostscript.bug                  4874-4884
  100      alt.music.pink-floyd                 7941-8040
   11      rec.sport.baseball.analysis          239-249
    3      rec.sport.baseball.data              267-269
   13      sci.physics.electromag               1159-1171
   65      comp.sys.ibm.pc.hardware.systems     4754-4818
    5      sci.physics.particle                 1069-1073
    2      comp.sources.x                       2362-2363
    2      comp.unix.user-friendly              2603-2604

Here the middle column shows the name of a newsgroup and the left column shows the number of unread articles in the group. The right column shows the range of articles present on the server. Note the presence of the -> in the first column on the `sci.research.postdoc' line. This symbol is used by slrn as a pointer to indicate the currently selected line. It may be moved up and down by using the arrow keys. Pressing the RETURN key or the SPACEBAR at this point will select the `sci.research.postdoc' group. A new screen will appear showing something like:

->-   703   (P) Lecturer in Comp.        dumontet@nuri.inria.fr (dumo
  -   704   Research & Developnment      dumontet@nuri.inria.fr (dumo
  -   705   Re: Example of proposal      shinbrot@bart.chem-eng.nwu.e

Here, each line consists of four fields and possibly the -> cursor. The first field indicates whether the article has been read or not. A hyphen ( - ) in the first field indicates that the article has not been read. Since a hyphen appears in the first field in all three of the lines above, none of the articles have been marked as read. A d in this field indicates that an article has been read. The currently selected article can be changed from the read to the unread state by pressing the u key. The d key may be used to mark the article as read without actually reading it. The c key may be used to mark all the articles as read (Actually this is the preferred way to use the newsreader: scan the articles by eye looking for something interesting then before moving on to next newsgroup, press `c' to mark all articles as read).

The second field displays the server number of the article. The third and fourth fields contain the subject and author of the article, respectively.

Pressing the SPACEBAR or the RETURN key will create a second window and display the contents of the currently selected article. The screen will now consist of two windows - a large one and a small one. The large window, known as the article window, will contain the currently selected article and the small one, known as the summary window, will contain the list of articles as shown above. The space bar may be used the scroll the article forward and the DELETE key or the `B' key may be used to scroll it backward. The UP/DOWN arrow keys simply move the -> cursor from one line to another in the summary window. To hide the article window, press the h key.This will zoom the summary window to full screen.

The f key may be used to post a followup to the currently selected article. To return to the list of Newsgroups, press the Q key to leave this mode.  

DEFAULT KEYBINDINGS

These keybindings are always available: These keybindings are always available:
?
Help
PageUp Ctrl-U
Page up
PageDn Ctrl-D
Page down
Ctrl-Z
Suspend program

These keybindings may be used at the newsgroup level:

SPACE
Select articles for the current group.
UP P
Move to the previous group
DOWN
Move to the next group
q
Quit the program
p
Post an article
l
Toggle the display of groups with no unread articles on and off
L
Toggle display of unsubscribed groups (can also subscribe with this)
u
Unsubscribe from the current group
s
Subscribe to the current group
c
Mark all articles in the current group as read.
a
Subscribe to a specified group
/
Search for a subscribed group
G
Refresh groups from news server
X
Save .newsrc
ESC >
Move to last group
ESC <
Move to first group

The following bindings are valid once a newsgroup has been selected:

SPACE
Select or scroll currently selected article forward
DELETE, b
Scroll currently selected article backward
d
Mark currently selected article as read and move to the next unread article.
u
Mark the currently selected article as unread
#
Numerically tag the article for multiple save (see o command)
g
Skip to next digest
h
Hide the article window by zooming the summary window to full screen
Ctrl-^
Decrease the size of the header window by one line.
^
Increase the size of the header window by one line.
f
Post follow-up to the currently selected article
F
Forward the currently selected article to someone
r
Reply directly to the author of the currently selected article
o
Save the currently selected article or thread to a file in a Unix mail format by appending it to the the specified file, then optionally decode the articles with uudecode or unshar. If numerically tagged articles (see # ) are present, then optionally save and then decode the tagged articles. The built-in uudecoder can decode files that contain multiple multi-part uuencoded articles. However, they must be tagged in the proper order. The key ESC # may be used to un-tag articles.
q
Quit and go back to the list of newsgroups
T
Toggle quote display
K
Toggle scoring
TAB
Skip over quotes in article
t
Toggle the current articles headers between hidden and un-hidden states. By default, uninteresting ones are hidden
UP
Move to the previous article
DOWN
Move to the next article
ESC DOWN, RETURN
Scroll the article down one line
<
Jump to the beginning of the article
ESC UP
Scroll the article up one line
ESC >
Move to last article
ESC <
Move to first article
RIGHT
Pan the article window to the right
LEFT
Pan the article window to the left
n
Move to the next unread article
o
Append article to a file; optionally, decode with uudecode or shar
p
Move to a previously unread article
PageUp, PageDn
Page up and down through the header list.
/
Search forward in the article
?
Search backward through article.
a
Author search forward.
A
Author search backward.
s
Subject search forward.
S
Subject search backward
H
Hide the article (make its window disappear)
N
Skip to next news group
j
Move to an article
P
Post an article (also see f to post a follow-up article)
SEMICOLON
Set a mark at the current article.
COMMA
Return to a previously set mark setting the mark first.
*
Flag the article as 'important' (prevents catchup in header window from marking the article deleted)
|
Pipe article to an external command
ESC Ctrl-C
Cancel the current article.
c
Mark all articles as read
ESC C
Mark articles to here as read
ESC U
Mark articles to here as UN-read
Ctrl-R, Ctrl-L
Redraw the screen.
ESC R
Toggle ROT 13 decryption on and off
ESC S
Toggle header threading on and off
ESC T
Toggle collapse of header threading
ESC A
Switch between header display methods
ESC p
Find parent header
ESC Ctrl-P
Find child header
?
Show help
Ctrl-Z
Suspend the newsreader.
E
Edit score parameters using this article as template
 

ENVIRONMENT VARIABLES

slrn uses the following list of environment variables:
NNTPSERVER
NNTP Server to connect to if none specified when slrn is started.
EDITOR
SLANG_EDITOR
Editor to use when composing messages. The '%s' and `%d' format descriptors may be used to specify the filename and line number respectively. For example, if `jed' is your editor, then you can use something like: setenv SLANG_EDITOR 'jed %s -g %d' in your shell startup file. If you are using a bash shell, you could instead use the command: export SLANG_EDITOR='jed %s -g %d' in your shell startup file. SLANG_EDITOR is the prefered environment variable since all S-Lang applications that use an editor look for this variable and understand this syntax.
REPLYTO
Address to be inserted into the `Reply-To' field.
ORGANIZATION
String to be used in the `Organization' field.
 

slrn INITIALIZATION FILE

If a file called .slrnrc is present in the users HOME directory, slrn will use it as an initialization file. This file can contain list of personalized keybindings as well as a list of server -- newsrc mappings.

BINDING KEYS

To bind a key to a particular function use the syntax:

setkey keymap function key-sequence

The setkey function requires three arguments.The first argument specifies the keymap to be used for the bindings. Valid keymaps are: group and article. The function argument spacifies the function that is executed when keys in the last argument are pressed. For example,


                       setkey  group  quit "x"

indicates that if x is pressed at the group level, the quit function will be executed. Note that although not normally necessary, the last argument should be enclosed in double quotes since it may contain SPACE characters.

The key-sequence argument can consist of several characters. For example, on many terminals, the RIGHT arrow sends the three characters ESC, `[' and `C' to the terminal. To bind the RIGHT key to `select_group' function, use:


                        setkey group select_group "\e[C"

Sometimes, it is necessary to unbind a key from a keymap before binding the key. For example, one cannot do:


                        setkey group quit "\e"

to bind the ESC key to the quit function without first unsetting it. This is because the default bindings use the ESC character as the prefix character for certain keymaps. To achieve this goal, use the unsetkey function:


                         unsetkey group "\e"
                         setkey group quit "\e"

Here the unsetkey function has been used to remove the binding for the ESC character before binding it to the `quit' function. Please note that unsetting the ESC key will also unset any key sequence been with the ESC key. This includes most function keys.

See the example initialization file below for the list of functions and their meaning.

USING MULTIPLE SERVERS

The easiest way to use multiple servers is through the use of the server command in the .slrnrc file. This command simple associates a server name with a newsrc file:

server nntp-server newsrc-file

For example, suppose that you use three servers with hostnames `red.news.edu', `blue.news.edu', and `green.news.edu'. The the lines:

server red.news.edu .jnewsrc-red

server blue.news.edu .jnewsrc-blue

server green.news.edu .jnewsrc-green

specify that the file .jnewsrc-red is to be used when the server red.news.edu is connected to, etc...

DEFINING COLORS

Color support is enabled when suing the `-C' command line switch. The colors may be defined through the use of the `color' keyword in the `.slrnrc' file. The syntax is:


    color OBJECT-NAME FOREGROUND-COLOR BACKGROUND-COLOR
    
  Here, OBJECT-NAME can be any one of the following items:

    menu           --  Line at the top of the display (menu bar)
    menu_press     --  Menu bar entry when activated
    status         --  Status line attached to windows
    cursor         --  The --> position indicator
    error          --  Error messages
    group          --  Newsgroup names (group mode)
    description    --  Newsgroup descriptions (group mode)
    article        --  The body of the article (not headers)
    headers        --  The lines that constitute the headers of the article
    author         --  Author's name
    subject        --  Subject
    signature      --  Author's signature
    quotes         --  Quoted material
    high_score     --  Articles with high scores
    tree           --  Article tree
    tilde          --  Tildes (tilde mode)
    thread_number  --  Thread numbers
    normal         --  anything not included above


  The foreground/background color names can be any of the following:
  

    black                gray
    red                  brightred
    green                brightgreen
    brown                yellow
    blue                 brightblue
    magenta              brightmagenta
    cyan                 brightcyan
    lightgray            white


  Most terminals do not support the second group of colors for the background.

HIDING QUOTED ARTICLES


  Often articles contain quotes of previous articles.   slrn is capable of not displaying lines in an article that match a given regular expression. The regular expression may be specified by putting a line of the form


     ignore_quotes  REGULAR-EXPRESSION
      in the .slrnrc startup file. The default regular expression is


     "^ ?[:>=]"
      which matches any line that begins with or without a space followed by either a colon, greater than sign, or an equal sign.

To toggle the display of such lines on or off, press the `T' key when in article mode.

 

ARTICLE SCORING

(For a complete description of the flexibility in the slrn scorefile system, see the files KILL_FAQ and score.txt in the slrn distribution)

slrn incorporates a sophisticated system for scoring articles. In other newsreaders, one of slrn's scoring features would be called a " killfile ". But unlike some other newsreaders, slrn provides for a great degree of flexibility and the capability to mark articles in ways other than merely killing them.

Four levels of scoring are provided:

-9999
The scored article is deleted (as with a common killfile) and will not appear in the header window
-1 through -9998
The scored article appears with a " D " as in "Deleted" flag in the header window
0 normal article
1 through 9999
The scored article's header appears with a " ! " flag to indicate importance

CONFIGURING THE SCOREFILE

The scorefile system is disabled until you set scorefile to the pathname of the file slrn should use to hold the scoring parameters.

Once set, scorefile may be accessed through the E command at the header window, or may be edited manually. When accessed with E , slrn appends a template based upon the currently selected article to the scorefile with various parameters taken from the article and you are placed in your editor. To enable scoring, delete the % comment symbol from the first column of the header line(s) you wish to score upon.

The other way to configure your scorefile is by editing the file directly, with a text editor. Here is a sample scorefile (remember the KILL_FAQ and score.txt files are the definitive references for the score system):

  [news.software.readers]
     Score: 9999
     % All slrn articles are good
     Subject: slrn

     Score: 9999
     % This is someone I want to hear from
     From: davis@space.mit.edu

     Score = -9999
     Subject: <f?agent>

  [comp.os.linux.*]
     Score: -10
     Expires: 1/1/1996
     Subject: swap

     Score: 20
     Subject: SunOS

     Score: 50
     From: Linus


     % Kill all articles cross posted to an advocacy group
     Score: -9999
     Xref: advocacy
     ~From: Linus

     % This person I want nothing to do with unless he posts about
     % `gizmos' but only in comp.os.linux.development.*

     Score: -9999
     From: someone@who.knows.where
     ~Subject: gizmo
     ~Newsgroup: development
 
     % These stooges post massive .sigs all the time.  I like
     % to track them

     [alt.fan.warlord]
     Score:: 20
     Subject: larry
     Subject: curly

This file consists of two sections. The first section defines a set of tests applied to the news.software.readers newsgroups. The second section applies to the comp.os.linux newsgroups.

The first section consists of three tests. The first test applies a score of 9999 to any subject that contains the string `slrn'. The second test applies to the `From'. It says that any article from davis@space.mit.edu gets scores 9999. The third test gives a score of -9999 to any article whose subject contains the word `agent'. Since tests are applied in order, if an article contains both `slrn' and `agent', it will be given a score of 9999 since 9999 is a special score value.

The second section is more complex. It applies to the newsgroups comp.os.linux newsgroups and consists of 5 tests. The first three are simple: -10 points are given if the subject contains `swap', 20 if it contains SunOS, and 50 if the article is from someone named `Linus'. This means that if Bill@Somewhere writes an article whose subject is `Swap, Swap, Swap', the article is give -10 points. However, if the Linus writes an article with the same title, it is given -10 + 50 = 40 points. Note that the first test expires at the beginning of 1996.

The fourth test kills all articles that were cross posted to an advocay newsgroup UNLESS they were posted by Linus. Note that if a keyword begins with the `~' character, the effect of the regular expression is reversed.

The fourth test serves to filter out posts from someone@who.knows.where unless he posts about `gizmos' in one of the comp.os.development newsgroups. Again note the `~' character.

The last test marks as important messages from mentioning Moe or Curly in the alt.fan.warlord newsgroup. This demonstrates use of an "OR" condition in a scorefile.

 

COURTESY COPY

If you elect to send a courtesy copy of your followup article to the original poster, you may easily do so by adding a "Cc:" header to the article. Here is an example of how to send a courtesy copy of a followup to John Davis' (slrn's author) announcement of a new slrn version:


 Newsgroups: news.software.readers
 Subject: Re: slrn 0.8.0 Released!
 References: <46c6b8$e2@news.mit.edu>
 Organization: a clean well lit place
 Reply-To: hg@n2wx.ampr.org
 Followup-To:
 Cc: davis@space.mit.edu


 On 22 Oct 1995 01:26:45 GMT, John Davis <davis@space.mit.edu> wrote:
 ...

John will receive a copy of the followup by email with the article text preceded by a line of text stating that [This message has also been posted.] (The text within the brackets may be customized with the .slrnrc cc_followup_string parameter.)

MISCELLANEOUS SETTINGS

The .slrnrc initialization file also supports the following commands:

   signature             <signature file name>
   organization          <Your organization name>
   replyto               <Email address to be used reply to>
   quote_string          <string to be used to quote an article>
   editor_command        <string used to invoke editor>   
   scorefile             <score file name>

   
For example, 

   signature         .news-signature
   organization      "Society of Famous Outlaws"
   signature         "Billy the Kid"
   quote_string      ">"
   editor_command    "jed %s -g %d -tmp"
   scorefile         "News/Score"


     

FILES

$HOME/.slrnrc - the slrn's initialization file

$HOME/.jnewsrc - default newsrc file for slrn.  

EXAMPLE OF AN INITIALIZATION FILE

 % This is a sample startup file for the slrn news reader.  The percent
 % character is used for comments.
 
 % SERVER to NEWSRC mapping
 %server hsdndev.harvard.edu .jnewrc-hsdndev
 %server news.uni-stuttgart.de .jnewsrc-stuttgart
 
 % The next line is for those servers that require a password.
 %nnrpaccess HOSTNAME USERNAME PASSWORD
 
 
 %hostname "YOUR.HOSTNAME"
 %set username "jdoe"
 %set realname "John Doe"
 %set replyto  "jd@somthing.com"
 
 % Name of signature file to use
 %set signature ".signature"
 
 The quote string will be used when following up/replying
 quote_string ">"
 
 % This regular expression defines lines that are consider to be quoted lines.
 % It says that any lines beginning with 0-2 spaces followed by a either
 % a >, <, :, |, or = character is a quoted line.
 ignore_quotes "^ ? ?[><:=|]"
 
 % This sets the follow-up string.  Here, the following format specifiers are
 % recognized: %d:date, %r:real name, %f:email address, %s:subject,
 %             %m:msgid, %n:newsgroups, %%: percent 
 followup "On %d, %r <%f> wrote:"
 
 %Custom headers to add to post/followup
 %set custom_headers "X-Whatever: bla-Misc: bla bla"
 
 % WWW browser to use.  The 'U' key in article mode searches the current article
 % for a URL and then calls X browser if slrn appears to be run in X windows
 % and non_Xbrowser otherwise.
 set Xbrowser "netscape %s &"
 set non_Xbrowser "lynx %s"

 % If autobaud is present, output rate will be synced to baud rate
 %autobaud
 
 % if non-zero, display first article when entering article-mode.
 set show_article 0
 
 % if non-zero, show description of newsgroup if available
 set show_descriptions 1

 % column where group descriptions start
 set group_dsc_start_column 40

 % If non-zero, backups of the newsrc file are not performed.
 set no_backups 0
 
 % If 0, do not beep terminal.  If 1, send audible beep.  If 2, send only 
 % visible bell.  If 3, send both.
 set beep 1
 
 % If non-zero, slrn will automatically subscribe new groups.  The default is 0.
 set unsubscribe_new_groups 0
 
 % If non-zero, all subject titles will be displayed even though many are
 % duplicated.  A zero value makes the screen look less busy.
 set show_thread_subject 0
 
 % Enable xterm mouse support: 1 to enable, 0 to disable
 set mouse 0
 
 % Setting either of these to 0 will enable you to move directly to the
 % next article/group without confirmation
 set query_next_group 1
 set query_next_article 1
 
 % if zero, you will not see the "next group:" prompt.  This is NOT the same
 % as the 'query_next_group' variable.
 set prompt_next_group 1
 
 % Set this to 0 for no-confirmation on follow, reply, quit, etc...
 set confirm_actions 1
 
 % If 0, do not display the name of the author.
 % If 1, display subject then name.  If 2, display name then subject.
 set author_display 2
 
 % If 0, save all groups when writing newsrc file
 % if 1, do not save any unsubscribed groups
 % if 2, do not save any unread-unsubscribed groups
 set write_newsrc_flags 1
 
 % If greater than 0, a Cc: header to poster will automatically be generated on 
 % followups.  If -1, prompt first.
 set cc_followup 0
 cc_followup_string "[This message has also been posted.]"
 
 % The sendmail command allows you to substitute another mailer.  Be sure that 
 % it implements the same interface as sendmail!
 %set sendmail_command "/usr/lib/sendmail -oi -t -oem -odb"
 
 
 % Name of score file  (relative to HOME directory)
 scorefile "News/Score"
 
 % Name of directory where decoded files are placed (relative to HOME)
 set decode_directory "News"
 % Directory where all other files are saved.
 set save_directory "News"
   
 % Command used to invoke editor.  In the following example, %s represents
 % the file name and %d represents the starting line number
 %editor_command "jed %s -g %d -tmp"
 
 % If  non-zero, files used for posting, followup and reply will be regarded as
 % temporary files in the directory specified by the TMPDIR environment 
 % variable or /tmp.
 set use_tmpdir 0
 
 % If 0, do not sort.  If 1, perform threading.  If 2, sort by subject
 % If 3, thread then sort result by subject
 % If 4, sort by score.  If 5, thread then sort by score.
 set sorting_method 3
 set display_score 0
 
 % If non-zero, threads will be uncollapsed when a group is entered
 set uncollapse_threads 0
 
 % If non-zero, slrn will read the active file when starting.   This may lead to
 % faster startup times IF your network connection is fast.  If it slow, 
 % DO NOT USE IT.  If you can, I recommend setting it to 1.
 set read_active 0
 
 % If non-zero and read_active is zero, slrn will attempt to use the NNTP
 % XGTITLE command when listing unsubscribed groups.
 set use_xgtitle 0
 
 % What to wrap when wrapping an article:
 %  0 or 4 ==> wrap body
 %  1 or 5 ==> wrap headers, body
 %  2 or 6 ==> wrap quoted text, body
 %  3 or 7 ==> wrap headers, quoted text, body
 % The higher number indicates that every article will be automatically 
 % wrapped.
 set wrap_flags 4
 
 % Maximum number of articles to read before slrn will prompt.  Default is 100.
 % Set this to zero to turn of prompting.
 set query_read_group_cutoff 100
 
 % Numes of lines to read from the server between percentage counter updates
 % This number will vary with the speed of the connection to your server
 set lines_per_update 100
 
 %---------------------------------------------------------------------------
 % Mime support
 %---------------------------------------------------------------------------
 set use_mime 1
 set mime_charset "iso-8859-1"
 % If non-zero, call metamail for mime formats that slrn does not handle
 set use_metamail 1
 
 % If non-zero, header numbers will be displayed in the left-margin of the
 % header window.  These numbers may be used as ``thread selectors''.
 set use_header_numbers 1
 
 % If non-zero, prompt for reconnection if the NNTP connection drops.  If zero,
 % attempt reconnection without asking user.
 set query_reconnect 1
 
 % Character to use to hide spoiler text:
 set spoiler_char '*'
 
 
 %---------------------------------------------------------------------------
 %  Local spool configuration
 %---------------------------------------------------------------------------
 % set spool_inn_root "/export/opt/inn"
 % set spool_root "/export/news"
 % set spool_nov_root "/export/news"
 %
 %% -- The following filenames are relative to spool_root
 %
 % set spool_nov_file ".overview"
 % set spool_active_file "data/active"
 % set spool_activetimes_file "data/active.times"
 % set spool_newsgroups_file "data/newsgroups"
 
 
 %---------------------------------------------------------------------------
 %  GroupLens Support
 %---------------------------------------------------------------------------
 %set use_grouplens 1
 %color grouplens_display blue white
 %set grouplens_host            "grouplens.cs.umn.edu"
 %set grouplens_port            9000
 %set grouplens_pseudoname      "YOUR_PSEUDONAME"
 %grouplens_add "rec.cooking.recipes"
 %grouplens_add "comp.os.linux.misc"

 %------------
 % Colors
 %------------
 color header_number green white
 color normal black white
 color error red white
 color status yellow blue
 color normal black white
 color error red white
 color status yellow blue
 color group blue white
 color article blue white
 color cursor brightgreen white
 color author magenta white
 color subject black white
 color headers brightcyan white
 color menu yellow blue
 color menu_press yellow blue
 color tree red white
 color quotes red white
 color thread_number blue white
 color high_score red white
 color signature red white
 color description blue white
 color tilde green white
 
 %-----------------------------------------------------
 % Monochrome attributes for monochrom terminals
 %-----------------------------------------------------
 mono normal            none
 mono header_number     none
 mono error             blink bold
 mono status            reverse
 mono group             bold
 mono article           none
 mono cursor            bold reverse
 mono author            none
 mono subject           none
 mono headers           bold
 mono menu              reverse
 mono menu_press                none
 mono tree              bold
 mono quotes            underline
 mono thread_number     bold
 mono high_score                bold
 mono signature         none
 mono description       none

 %------------------------  Group keymap------------------------------------
 
 setkey group   add_group       "A"    %  add a new newsgroup
 setkey group   bob             "\<"  %  beg of buffer
 setkey group   bob             "^K\OA"
 setkey group   bob             "^K\[A"
 setkey group   catch_up        "C"    %  mark group as read
 setkey group   down            "\OB" %  next group
 setkey group   down            "\[B"
 setkey group   down            "^N"
 setkey group   eob             "\>"  %  end of buffer
 setkey group   eob             "^K\OB"
 setkey group   eob             "^K\[B"
 setkey group   group_search_forward    "/"
 setkey group   help            "?"
 setkey group   pagedown        "^D"   %  next page of groups
 setkey group   pagedown        "\[6~"
 setkey group   pagedown        "^V"
 setkey group   pageup          "\V"  %  previous page of groups
 setkey group   pageup          "^U"
 setkey group   pageup          "\[5~"
 setkey group   post            "P"
 setkey group   quit            "Q"
 setkey group   redraw          "^L"
 setkey group   redraw          "^R"
 setkey group   refresh_groups  "G"
 setkey group   save_newsrc     "X"
 setkey group   select_group    ""   %  read articles from group
 setkey group   select_group    " "
 setkey group   subscribe       "S"    %  subscribe to group (See unsubscribe)
 setkey group   suspend         "^Z"
 setkey group   toggle_group_display    " 33A"
 setkey group   toggle_score    "K"
 setkey group   toggle_hidden   "l"
 setkey group   toggle_list_all "L"
 setkey group   unsubscribe     "U"    %  unsubscribe
 setkey group   up              "\OA" %  previous line
 setkey group   up              "\[A"
 setkey group   up              "^P"
 
 %---------------- Article mode keymap -------------------------------------
 
 setkey article goto_article    "j"
 setkey article pipe_article    "|"
 setkey article skip_quotes     "	"
 
 setkey article pageup          "^U"
 setkey article pageup          "\[5~"
 setkey article pageup          "\V"
 
 setkey article pagedn          "\[6~"
 setkey article pagedn          "^D"
 setkey article pagedn          "^V"
 
 setkey article post "P"
 setkey article toggle_show_author "\a"
 setkey article get_parent_header "\p"
 setkey article catchup_all     "c"
 setkey article catchup_all     "\c"
 setkey article uncatchup_all   "\u"
 setkey article catchup         "\C"
 setkey article uncatchup       "\U"
 setkey article scroll_dn       " "     % scroll to next page of article or select article
 setkey article scroll_up       "^?"    % scroll to next page of article
 setkey article scroll_up       "b"     % (scroll_up or article_pageup)
 setkey article article_lineup  "\\[A"  % Scroll article one line up
 setkey article article_lineup  "\\OA"
 setkey article article_linedn  "\\[B"  % Scroll article one line down
 setkey article article_linedn  "\\OB"
 setkey article article_linedn  ""
 setkey article  article_search "/"     % Search forward through article
 setkey article  author_search_forward  "a"     % Search forward for an author
 setkey article  author_search_backward "A"     % Search backward for an author
 setkey article  cancel         "\^C"   % Cancel the article
 setkey article  delete         "d"     % Mark current article as read and move to the next unread one
 setkey article  down           "^N"    % Move to the next article
 setkey article  down           "\[B"
 setkey article  down           "\OB"
 setkey article  mark_spot      ";"     % Set mark at current article
 setkey article  exchange_mark  ","     % Set the mark and return to the location of the previous mark.
 setkey article  followup       "f"     % Followup on the article
 setkey article  forward                "F"     % Forward the article to someone
 setkey article  help           "?"     % Show help screen
 setkey article  hide_article   "H"     % Hide the article window.
 setkey article  art_eob        ">"     % goto end of article
 setkey article  left           "\OD"
 setkey article  left           "\[D"
 setkey article  next           "n"     % next unread article
 setkey article  skip_to_next_group     "N"     % next group
 setkey article  prev           "p"     % previous unread article
 setkey article  quit           "q"     % Quit back to group mode.
 setkey article  redraw         "^L"    % Redraw the display
 setkey article  redraw         "^R"
 setkey article  reply          "r"     % Reply to the author of the current article
 setkey article  art_bob        "<"     % Goto beginning of article
 setkey article  right          "\[C"
 setkey article  right          "\OC"
 setkey article  save           "O"     % append to a file in Unix mail format
 setkey article  subject_search_forward "s"     % Search forward/backward for an article with a specific subject
 setkey article  subject_search_backward        "S"
 setkey article  suspend                "^Z"    % Suspend the newsreader
 setkey article toggle_rot13    "\R"
 setkey article toggle_sort     "\S"
 setkey article  toggle_headers "t"     % Toggle the display of some headers on and off
 setkey article  toggle_quotes  "T"
 setkey article  undelete       "u"     % Mark the current article as unread
 setkey article  up             "^P"    % Move to the previous article
 setkey article  up             "\OA"
 setkey article  up             "\[A"
 setkey article header_bob      "\<"    % Move to first article in list
 setkey article header_eob      "\>"    % Move to last article in list
 setkey article shrink_window   "^^"    % Ctrl-6 or Ctrl-^      % Shrink header window
 setkey article enlarge_window  "^"     % Shift-6 or just ^     % Enlarge header window
 
 %setkey article  skip_to_prev_group ""     % No default binding
 %setkey article  fast_quit          ""     % No default binding
 
 % This is a special hack for HP terminals to get the arrow keys working.  
 % Are there any other terminals being used with non-ANSI arrow keys?
 #if$TERM hpterm
   setkey group up "\A"       % "^(ku)"
   setkey group down "\B"     % "^(kd)"
   setkey article down "\B"
   setkey article up "\A"
   setkey article left "\D"
   setkey article right "\C"
 #endif

 

SEE ALSO

environ(5)

Questions about slrn may be posted to the newsgroup news.software.readers where they will be answered by the author of the program. In addition, announcements of new versions of slrn are posted there.

The latest version of slrn is available via anoymous ftp from space.mit.edu in pub/davis/slrn.

 

AUTHOR

John E. Davis <davis@space.mit.edu>

 

ACKNOWLEDGEMENTS

(This list is still incomplete)

Howard Goldstein <hg@n2wx.ampr.org> for updating this man page.

Andrew Greer <Andrew.Greer@vuw.ac.nz> for the VMS port.

Jay Maynard <jmaynard@admin5.hsc.uth.tmc.edu> for the OS/2 port.

Michael Elkins <elkins@aero.org> for the MIME code.

Lloyd Zusman <ljz@ingress.com> performed some cosmetic improvements.

J.B. Nicholson-Owens <jbn@mystery-train.cu-online.com> for extensive testing.

Mark Olesen <olesen@weber.me.queensu.ca> for suggestions and help with AIX version.

Changes since 0.9.4.5
1. uudecode bug fixed.
2. VMS specific NETLIB update of clientlib.c.
3. Explicitly added the GNU copyright to source code files.
4. Updated to use slang 1.0.3.  For Win32 users this means you can
   use bright background colors and the mouse.
5. For CYGWIN32 and MINGW32 compilers, use src/Makefile.g32.  Do NOT
   use the Unix configure script because WIN32 is NOT Unix.  (Note:
   gcc in the CYGWIN32 distribution (b18) kept getting signal 33, so I
   could not compile slrn with it.  However, I had no problems with
   MINGW32.)
6. Autoconf now checks for socket.h (Marius Groeger ).

Changes since 0.9.4.4
1. Bug fix related to  `system' when called from a slang macro.

Changes since 0.9.4.3
0. Many, many changes to the slang interpreter.  Version 1.0 of slang is now
   required.  Some changes may affect pre-existing macros.  See
   the slang documentation for more information (in particular, see
   slang/UPGRADE.txt for more information about upgrading your slang
   macros).
   
   There are some new intrinsics to help isolate problems by
   re-routing slang traceback messages to a log file:
   
      open_log_file (FILENAME);
      close_log_file ();
      log_message ("My Message\n");
      
   You also need to set `_traceback = 1;'.

1. Small wrapping changes that permit header lines to be properly
   wrapped.
2. Integrated WIN32 patches.  Thanks Chin Huang !!!
3. Included reject-long-lines patch from Byrial Jensen
   .  Add
   
      set reject_long_lines 2
   
   to be given the opportunity to post an article with long lines.

4. If slrnpull fails, it returns an error code to indicate the failure:

       1    Unspecified reason
       2    Bad usage
       3    Failed to connect
       4    Connection Lost
       5    Signaled
       10   Malloc Failure
       20   File I/O

5. Added Andy Harper's do_netlib_read routine for VMS.  Thanks Andy!

Changes since 0.9.4.2

0. Bug fixes, tiny documentation corrections.  In particular, one of the
   bug fixes concerns a somewhat nasty bug that, although unnoticed
   until 0.9.4.1, appears to have been around for a while.

Changes since 0.9.4.1
1. Add charset tables from Mark Nowiasz .
   I also changed `slrn --version' to show the supported character sets.
2. New customizable color objects:

      box --- This objects represents the are of the screen when a box
              pops up.
      frame - The border of the box
      selection
              The currently selected text in the selection box

3. New hooks for macro customization

         reply_hook
	 forward_hook
	 followup_hook   (see macros/xcomment.sl for example)
	 post_hook
	 post_filter_hook

   The post_filter_hook allows you to run the article to be posted
   through something such as ispell, a shell script, etc...  The file
   to be posted is passed as a parameter to this hook.  See
   macros/ispell.sl for an example.

4. New intrinsic macro functions:
       
         get_response
	 set_color
	 select_list_box
	 get_grouplens_score
	 set_input_chars

5. OS/2 patches from Bjoern Frantzen for OS/2 FAT file systems.
6. Support for X-Mail-Copies-To added.
7. cc_followup_string now expands %n, etc...

Changes since 0.9.4.0
0. Small (nothing serious) bug fixes
1. Typo prevented slrn to compile on Non-POSIX systems corrected.
2. slrnpull ported to NeXT (flight@mathi.uni-heidelberg.de)
3. Olly's mail-copies-to patch implemented
4. A new interface to ``browse-url''.  This is not the clickable
   interface but it does have the feature that it works on ordinary
   terminals.
5. I added a ``postpone'' interface.  To use this, set the variable
     
     set postpone_directory "whatever"

   to specify where articles are to be saved.  Make sure the directory
   exists!  To post a postponed article, press `ESC P'.  Use, e.g.,

     setkey group "post_postponed" "KEY_SEQUENCE"
     
   to rebind it.
6. I integrated the NeXT character set patch from Daniel G. Kluge 
   .
7. New color object: response_char.  This is used to set the color for
   response characters in prompts such as:
     
         Do you really want to quit? Yes, No

   Here the response characters are `Y' and `N'.
   
    
Changes since 0.9.3.2
0. Some bug fixes as well as slrnpull bug fixes.  Also, the libc system
   function has been replaced.  The fact is that system is broken on
   Linux.

1. Small change to pathname manipulation to avoid problems with \\ and
   / conflicts on OS/2.
2. To additions from Olly Betts  that affect spool
   users:
   
       set spool_check_up_on_nov 1
       
   will cause slrn to check to make sure that an article that is
   referred to by the overview file actually exists.  The default is 0.
   See the slrnfeat.h variable SLRN_HAS_FAKE_REFS for the other feature.

3. New .slrnrc function:

     include "filename"
     
   For example, your .slrnrc file can load other files via:
   
     include ".slrn/colors"
     include ".slrn/keybindings"
     
4. Two new .slrnrc variables:

     set post_object    "inews"  % or "nntp"
     set server_object  "spool"  % or "nntp"
     
   This means that if you compiled slrn to default to nntp, you
   nolonger need to run slrn via
   
      slrn --spool
      
   to read from a news spool.
   
5. macro function extract_article_header will not fetch the article
   from the server if the requested header is already available.

6. Now possible to save replies to a file:

     set save_replies "News/Replies"
     
   and you can specify the string to be used in the reply:
   
     set reply_string "In %n, you wrote:"

7. Small improvments such as re-wrapping upon window resizing and the
   message-id is also saved in the save_posts file.
   
8. New intrinsic: get_next_art_pgdn_action.  See README.macros for
   more information.

9. `username whatever' is not obsolete.  Use `set username WHATEVER'
   instead.  This change allows username to be changed via a macro.

10. Grouplens support changed to match current grouplens protocol.

11. Wrapping now takes place on word boundaries.
    frank_thieme@l2.maus.de provided a similar patch.
    
12. VMS patches by Ian.Miller@softel.co.uk.

Changes since 0.9.3.1
0. Bug fix involving non-XOVER headers.  This alone caused me to
   discontinue 0.9.3.1.
1. Misc bug fixes, char set tweaking
2. New variable for better compliance with standards:
   
      set reject_long_lines 1

   If non-zero, slrn will reject posting articles with non-quoted
   lines whose length exceeds 80 characters.

3. New editor options:
     
      set post_editor_command "my_posting_editor"
      set mail_editor_command "my_mailing_editor"
      set score_editor_command "my_score_editor"

   These may be used to override the more generic `editor_command'.
   For example, I use:
   
       set score_editor_command "jed %s -g %d -f score_arrange_score"

4. Patches for display code provided by itz@rahul.net (Ian T Zimmerman).
   There is a new .slrnrc variable:

      set display_author_realname 1
      
   It controls whether or not the real name should be displayed.

5. Spoiler patches from Olly Betts with new slrnrc variable:

   % set to 0 to keep the display still, and just reveal the spoiler
   % set to 1 to start a new page when spoiler is revealed
   % set to 2 to keep the display still, and reveal ALL spoilers
   % set to 3 to start new page and reveal ALL spoilers
   set spoiler_display_mode 1

Changes since 0.9.2.1
-13. Small patches from Uichi Katsuta ,
     and uudeview patches from Mark McWhorter .
-12. Re: now added to subject header of reply.
-11. Fixed a bug that manifested itself when scoring on non-XOver
     headers.

-10. If a posted article is cc'd, the message-id used for the article
     will also be used in the email.
-9. `slrn --nntp --debug FILE' may be used to write out the dialog
    between slrn and the nntpserver to FILE.  This is a debugging aid.

-8. Sort by date added:
       set sorting_method 8    % most recent first
       set sorting_method 9    % thread with most recent first
       set sorting_method 10   % most recent last
       set sorting_method 11   % thread with most recent last

-7. If slrn is run in NNTP mode, the preprocessor symbol NNTP will be
    defined while processing the .slrnrc file.  If it is run in spool
    mode, SPOOL will be defined.

-6. Patches from Justus Pendleton  enabling
    slrn to work with uudeview.

-5. More OS/2 patches from Bjoern Frantzen enabling slrn to work with
    other mailers.

-4. New slrnrc variable: set metamail_command "metamail"

-3. Workaround for XHDR bug in DNEWS

-2. slrn/doc/os2keys.txt describes OS/2 key sequences.  They differ
    from the standard ANSI escape sequences.

-1.  Distribution reorganized.  Autoconf config files are in autoconf
    directory and documentation in doc dir.
    
0.  Offline reading possible by using the new `slrnpull' program.  See
    the slrnpull documentation for details.  `make slrnpull' should be
    sufficient to compile it.

1.  Small CC: problem under OS/2 fixed by Marko Teittinen
    (marko@tekamah.com). 

3.  New slrn.rc variable to control scrolling behavior: 

       set scroll_by_page 1
       
    to have slrn automatically perform a pagedown/up at window 
    boundaries.  This requires slang 0.99-38 otherwise this does
    nothing.
    
4.  New .slrnrc options:

      % Start new thread if subject changes
      set new_subject_breaks_threads  0
      
5.  New charcter set mapping code.  The idea is to translate incoming
    and outgoing articles from isolatin to the ``native'' character
    set.  For example, under OS/2, the native character set is assumed
    to be "ibm850".  The character set may be specified by the slrnrc
    line:
    
        set charset "ibm850"      % default for OS/2
        set charset "isolatin"    % default for Unix and VMS
	
    Currently only ibm850 and isolatin are supported.  I suspect a
    future version of slrn will be more precise in the specification
    of isolatin and support more chatacter sets.  But the current idea
    is that there is one ``usenet'' character set called ``isolatin''
    and selecting isolatin as the host character set will essentually
    turn of the mapping since isolatin --> isolatin is just the
    identity map.
    
    I am grateful to Bjoern Frantzen, bjoff@bgnett.no for the original
    code as well as other OS/2 fixes.

6.  Small tweak to MIME encoding.

Changes since 0.9.2.0
0.  Bug causing slrn to hang on VMS fixed.  The bug was tracked down
    with the help of Andrew Brennan .

1.  man page and slrn.rc updated to reflect the fact that
    `art_header_bob' and `art_header_eob' functions were renamed to
    simply `header_bob' and `header_eob', resp.  Also, the functions
    `goto_beginning' and `goto_end' are being phased out in favor of
    `art_bob' and `art_eob', resp.
2.  Fixed a compilation problem on NeXT.  mching@inow.com
    submitted OS/2 makefile and config patches for EMX compiler, and
    cardio@orsola.med.unibo.it (cardio) submitted patches for Ultrix.
    
3.  The default for min_high_score was incorrectly set to 0.  It has
    been changed to 1.
4.  New intrinsics for macros:
	 get_header_score
	 set_header_score
5.  New feature: SLRN_HAS_END_OF_THREAD
    See src/slrnfeat.h for more information.  This feature is enabled
    by default.  In the current implementation, it is a compile-time
    option-- there is nothing to disable it at run-time.

6.  Some of the documentation updated.

Changes since 0.9.1.0
0.  The macro functions read_mini and read_mini_no_echo now take three
    arguments.  See README.macros for more information.  This change
    was necessary because the ``read input from user'' routines are
    now more flexible and support recall of previously entered text.

1.  Renamed `group_mode_hook' to `group_mode_startup_hook'.  Added a new
    hook `group_mode_hook' that is called every time group mode is
    re-entered.
2.  Oops.  A horrible bug that manifested itself when the quote string
    was not specified via `set quote_string' has been fixed.
3.  `set use_color' added so that `set use_color 0' may be used to
    turn off color support.
4.  The name of a header and its value may be be given a different
    colors using, e.g.,
    
        color headers "green" "white"
        color header_name "red" "white"
	
    This means that the header 'From: davis@space.mit.edu' will appear
    with 'From:' in red/white and the rest will appear as green/white.
5.  It is now possible to customize the keybindings of the command
    prompt.  The defaults are:
    
setkey readline bol		 "^A"		% Beginning of line
setkey readline eol		 "^E"		% End of line
setkey readline right		 "\e[C"		% Move right
setkey readline left		 "\e[D"		% Move left
setkey readline bdel		 "^H"		% Delete backward
setkey readline bdel		 "^?"		% Delete Backward
setkey readline del		 "^D"		% Delete Foreword
setkey readline deleol		 "^K"		% Delete to End of line
setkey readline trim		 "\e/"		% Trim whitespace
setkey readline quoted_insert	 "^Q"		% Quoted insert

    The name of the keymap is `readline'.

6.  New intrinsic functions for macros include:

      thread_size              % Returns number of headers in thread
      collapse_thread          % Collapse current thread
      uncollapse_thread        % Uncollapse current thread
      is_thread_collapsed      % Returns non-zero if current thread is collapsed
      get_header_tag_number   
      article_as_string        % Returns whole article as a string
      tt_send                  % Send argument to terminal
      header_next_unread       % goto next unread header
      input_pending            % Wait for input or timeout
      getkey                   % read keyboard character
      ungetkey                 % push back keyboard character
      set_input_string         % provide answer to prompt
      get_yes_no_cancel        % get response from user
      
    See README.macros for more information.

7.  New .slrnrc variable macro_directory controls where macro file are
    loaded from.  For example, 
    
        set macro_directory "News/macros,/usr/local/lib/slrn/macros"
	interpret "util.sl"
	interpret "tin.sl"
	
    will search for the macro files in $HOME/News/macros,
    /usr/local/lib/slrn/macros, and, as a last resort, in the home
    directory ($HOME).

8.  Now possible to add custom headers to followups and replies.  The
    actual headers are controlled by new slrn.rc variables:
    
         set reply_custom_headers "X-Bla: Bla bla"
         set followup_custom_headers "X-Bla: Bla bla"
	 
    The string assigned to these variables may contain the format
    specifiers of the 'followup' variable.  This idea was presented to
    me by John Goerzen .
    
9.  Several people have sent me patches for customization of high/low
    score thresholds.  The following .slrnrc variables are now available:
    
          set min_high_score 1
	  set max_low_score 0
	  set kill_score -9999

    One might want to set these on a group by group basis.  This is
    possible via a macro.  The best way to do this is to put the
    appropriate statements in a 'pre_article_mode_hook' described below.
    
10. New hooks for macros:

        resize_screen_hook : called when screen size changes
	pre_article_mode_hook: called before grabbing headers from server
	  in article mode.


    
Changes since 0.9.0.0
-1. features.h changed to slrnfeat.h to avoid GNU C problems.

0.  Misc bug-fixes, e.g., xgtitle operational again.  In addition, I
    rewrote the lowlevel tcp/ip code so that slrn should now be more
    responsive to Ctrl-G abortion and suspension.

1.  The following .slrnrc commands are obsolete and will not be
    supported for too much longer:

     "quote_string"
     "realname"
     "replyto"
     "organization"
     "followup"
     "cc_followup_string"
     "decode_directory"
     "editor_command"

    These are now `set' type variables.  That is, the new usage is:
    
      set quote_string ">"
      
    etc...

2.  If a piece of authentication information is supplied as an empty
    string as in
    
         nnrpaccess "news.mit.edu"  "davis"  ""
	 
    slrn will prompt for the information.  

3.  It is now possible to specify the ``help'' string that is
    displayed at the bottom of the display via the variables:

       set art_help_line "bla bla"
       set header_help_line "more bla bla"
       set group_help_line "and even more"
       
4.  Scrolling improvements.
5.  It is now possible to use, e.g., 

        setkey article "digit_arg"  "\eOP1"
        setkey group   "digit_arg"  "\eOP1"
       
    to bind a key to the prefix argument function.
6.  Group search also search group description
7.  `set use_tilde 0' may be used to turn off tilde feature.
8.  New interpreter intrinsics:

      get_group_flags
      set_group_flags
      is_article_visible
      is_group_mode
      extract_article_header
      set_article_window_size
      read_mini_no_echo
      save_current_article
      select_group
      group_search
      group_down_n
      group_up_n
      group_unread


Changes since 0.8.8.4
0.  Tiny problem with server timeout fixed.
1.  GroupLens support added.  See README.GroupLens

2.  Sort by score implemented.  See src/features.h to disable it.  To
    sort by score, add:
    
        set sorting_method 5
	set display_score 1
	
    to your .slrnrc file.  Set display_score to 0 to disable
    displaying the score value.  If the score value is displayed, the
    number of lines in the article will not be displayed.
    Thanks go to Olly Betts  for this feature.

3.  Score file lines such as:

       [~rec.crafts.*, rec.hobbies.*]
       
    are now supported.  The `~' character means that the set of scores
    implied by this line applies to any group EXCEPT rec.crafts.* and
    rec.hobbies.*.  That is, the `~' character may be used as a NOT
    operator in this context.
    
4.  New slrnrc configuration option:

      set custom_headers "X-Whatever: bla\nX-Misc: bla bla"

5.  New group mode function: move_group.  This will allow you to use the
    up/down arrow keys to move a group to a different location.  It
    has a default binding of `m'.

6.  Added Felix von Leitner's cross posting and tilde patches.  The
    cross posting patch is enabled via the SLRN_HAS_MSGID_CACHE feature.
    Similarly, the tilde patch is available via SLRN_HAS_TILDE_FEATURE.
    Thanks Felix.

7.  S-Lang interpreter available.  Set SLRN_HAS_SLANG in features.h to
    enable it.  See also README.slang and slrn.sl for more
    information.  The 0.9 series of slrn releases will feature more
    and more interpreter capabilities.

Changes since 0.8.8.3
0.  Bug fix release and patches to get it to compile under VMS again.

Changes since 0.8.8.2
0.  Misc bug fixes
1.  Support for INEWS and LOCAL NEWS SPOOL.  The INEWS patches were
    originally provided by Erik Manders .
    Olly Betts  is responsible for the local spool support.
    Edit src/features.h to enable these options.
    
    The following slrn.rc variables are are related to the spool support:
    
	 set spool_inn_root "/export/opt/inn"
	 set spool_root "/export/news"
	 set spool_nov_root "/export/news"
	 % -- The following filenames are relative to spool_root
	 set spool_nov_file ".overview"
	 set spool_active_file "data/active"
	 set spool_activetimes_file "data/active.times"
	 set spool_newsgroups_file "data/newsgroups"

    Of course default values for these files may be hard-coded.  See
    src/features.h.
    
    In addition, new command line arguments have been added:
    
          --inews ==> use inews for posting
	  --nntp  ==> use nntp
	  --spool ==> use local news spool
	  --version
	  
2.  Score files now allow more than one newsgroup pattern to be specified,
    e.g., 
    
        [sci.*, comp.*]
	   .
	   .

Changes since 0.8.8.1
1.  base 64 decoding support
2.  On VMS, the personal slrn configuration file has been renamed to slrn.rc.
    See features.h for changing this.  Also, many thanks to Andy Harper
    (A.HARPER@kcl.ac.uk) for work on DCL make files.
3.  Small bug fixes

Changes since 0.8.8.0

0.  Bug fixes (hangup, connection aborts, article/header percentage counts,
    etc..)

1.  Oops.  Forgot to provide a way to turn off video attributes.  Now you can
    use `none', e.g.,
    
        mono headers none
	
2.  New variable for group descriptions: group_dsc_start_column

        set group_dsc_start_column 40
	
    causes descriptions to start in column 40.
3.  Now possible to color descriptions via:

        color description blue white
	mono description bold 

4.  ^G abort of header retrieval.
5.  New variable:

        set lines_per_update 50
	
    sets the granularity of slrn's percentage meters.

6.  Spoiler support provided by Olly Betts (olly@mantis.co.uk).  The .slrnrc
    variable `spoiler_char' may be used to specify the character used to
    hide the text.  The default is '*':
    
        set spoiler_char '*'

7.  .slrnrc `ignore_quotes' specifier can take up to 5 regular expression
    patterns, e.g.,
    
        ignore_quotes  "^ *[:=|+>]"    "^ *[A-Za-z]>"
	
    specifies two patterns.

8.  Certain compiler symbols such as NO_DECODE have been renamed and moved to
    the new file: features.h
Changes since 0.8.7
0.  Misc bug fixes

1.  Use of the XGTITLE command is turned off by default.  Use the variable
    `use_xgtitle' to turn it on.

2.  New configuration settings for your .slrnrc file

       set Xbrowser "netscape %s &"
       set non_Xbrowser "lynx %s"

    Press the `U' key (browse_url) for slrn to search for a URL and call the
    appropriate browser.  Thanks go to Justus Pendleton
     for the patches.
    
3.  When creating a score from within article mode, you will be prompted for
    whether or not the score is local or global.  This patch was the idea of 
    Colin Perkins .

4.  Use `set query_reconnect 0' in your .slrnrc file to turn off
    reconnection confirmation.

5.  `ESC 1 *' now removes all `*' marks.
6.  If `cc_followup' is -1, slrn will prompt whether or not to cc the
    followup message.
7.  If linked against slang version 0.99-30 or later, it is possible to
    customize the video attributes on mono-chrome terminals, e.g.,
    
         mono cursor reverse blink
	 mono headers bold
	 mono author bold blink
	   .
	   .

    The above lines will cause the author part of the header to blink in
    bold, the cursor will blink in reverse video, etc...

8.  New variable to set: write_newsrc_flags
    
         % If 0, save all groups when writing newsrc file
	 % if 1, do not save any unsubscribed groups
	 % if 2, do not save any unread-unsubscribed groups
	 set write_newsrc_flags 0

9.  Better checking of articles before posting.  Now, a new screen will
    appear with error messages if the article appears badly formatted.

10. Modified scrolling behavior when the article window is open.  Now the
    next and previous headers are always visible.

Changes since 0.8.6
0.  Under Unix there is a new `configure' script for building slrn.
1.  ``Header Numbers'' add for more efficient article selection.  This is
    enabled by default and may be disabled by adding
    
        set use_header_numbers 0
	
    in your .slrnrc file.  In addition, the color of these numbers may be
    controlled via something like
    
        color header_number "green" "white"
	
    The numbers appear at the left margin of the header window.  To goto a
    particular numbered header, e.g., 12, simply press `1' then `2' followed
    by RETURN, SPACE, etc...
2.  The function ``xpunge'' has been added for article mode.  The default
    binding of this function is to the `x' key.  It removes already read
    articles from the list.
3.  If slrn does not read the active file, then it will now attempt to use
    the `xgtitle' command to query the server for newsgroups matching a
    pattern.  (This affects the `L' key in group-mode).
Changes since 0.8.5
-1. New distribution structure
0.  Thanks to Jay Maynard (jmaynard@nwpros.com), slrn now runs under OS/2.  
    Since this is the first OS/2 version, it should be regarded as ALPHA.
1.  New .slrnrc configuration variable: prompt_next_group.  If 0, slrn will
    not provide the opportunity to use up/down arrow keys to select the next
    group.  Instead, pressing a key that performs a goto next group action,
    e.g., the Next-Group mouse button, will simply put you in the headers of
    the next group in the group list.
2.  When the mouse is clicked on a button at the top of the display, the
    button will ``flash''.  The color that is used to simulate the flash may
    be specified by using, e.g., 
    
         set color menu_press blue yellow
	 
    in your .slrnrc file.
3.  New groups are displayed with an `N' in the flags column.
4.  `ESC 1 L' will hide unsubscribed groups  (`L' with a prefix argument).
5.  The `?' key may be used in help mode to re-start help.
6.  OS/2 port thanks to Jay Maynard .
    Note: this port is still considered to be in its alpha stage.
7.  slrn will nolonger run unless the user has a username and a FQDN.
8.  New article mode functions (Thanks to Alain.Knaff@imag.fr (Alain Knaff)):
      fast_quit                       % quit news reader from article mode
      skip_to_prev_group              %
    None of these function have default bindings.
9.  When replying, slrn will warn the user if the email address appears
    invalid.
10. New configuration variable:

       set use_metamail 0
       
    If non-zero, metamail will be called to process MIME articles that 
    slrn does not support.

Changes since 0.8.4
1.  Small bug fixes (nothing major).
2.  Cosmetic change where one can more easily see the progress of the
    download of tagged articles.  In addition the server name is printed on
    the top status line.
3.  The `*' (toggle_header_tag) function has been changed.  If used on a
    collapsed thread, it will tag the entire thread.  In addition, after
    pressing `*', the pointer moves down one header.
4.  -m command line option forces XTerm mouse reporting to be turned on.
5.  When the mouse is enabled, ``buttons'' also appear on the top status
    line.  Simply click on them with the mouse.  Perhaps in the future,
    these buttons will become menus.

Changes since 0.8.3
0.  The slrn makefile has changed.  Now it asks for a location to put slrn
    object files and it asks for the location of the slang library file.
    The nice thing about this is that it is easy to compile slrn under
    multiple architectures.  The down side is that some makes will not work
    with the Makefile.  If your make fails, use Makefile.old.  Since I do
    not plan to continue support for Makefile.old, please look into
    installing GNUmake.
1.  .newsrc file is now created in mode where only user has read permission
    to it.
2.  If a prefix argument is given to the subscribe/unsubscribe commands, the
    user will be prompted for a group pattern which will be used, e.g., 
    pressing `ESC 1 s' and entering `*linux*' at the prompt will result in
    a subscription to all newsgroups of form `*linux*'.
3.  If a prefix argument is given to the `K' (create_score) function, the
    editor will be called to edit the score file-- no questions asked.
4.  New .slrnrc variable: query_read_group_cutoff
    Whenever slrn enters a group with `query_read_group_cutoff' or more
    unread articles in it, it will prompt for how many to read.  The default
    is 100.  If set to 0 or less than 0, slrn will not prompt at all, i.e.,
    
        set query_read_group_cutoff 0

5.  It is now possible to have articles automatically wrapped by adding 4 to
    the wrap flags value.  See the slrn.rc file.
6.  VMS changes: some patches added, ``makefiles'' fixed

Changes since 0.8.2
1.  If slrn cannot find a fully qualified domain name, it will not run.
    This name can be specified in the .slrnrc file so there is no excuse for
    not having one.  There are too many articles already floating around
    usenet with bad hostnames and I do not want slrn to contribute to this.
2.  Bug in authorization fixed
3.  Oops.  If one were editing a file from within slrn and the window was
    resized, slrn would re-draw the window!  That is fixed.
4.  article wrapping added-- press `w' in article mode to wrap/unwrap.  The
    variable `wrap_flags' may be used to control whether or not headers or
    quoted material is wrapped, e.g.,
    
        set wrap_flags 1    % Wrap headers
	set wrap_flags 2    % Wrap quoted material
	set wrap_flags 3    % Wrap headers and quoted material
	
    The default is to wrap everything (3).

5.  slrn may be started as in `slrn -h server.name:XXX' where XXX in an
    integer that represents a port number. 

6.  `set sendmail_command' may be used in the .slrnrc file to specify an
    alternative mail program.  The default is: 
    
          "/usr/lib/sendmail -oi -t -oem -odb"
	  
    See config.h for selecting a different default.
       
7.  ESC u in group mode may be used to Un-Catchup on a group.

Changes since 0.8.1
1.  Misc bug fixes:
      MIME re-worked
      some VMS problems ironed out
      VMS: callable mail support

Changes since 0.8.0
1.  The `toggle_sort' function bound to `ESC s' in article mode has been
    modifed.  Now, it prompts for the sorting method.
2.  New variables for the .slrnrc file:

      % If 0, do not sort.  If 1, perform threading.  If 2, sort by subject
      % If 3, thread then sort result by subject
      set sorting_method 3

      % If non-zero, threads will be uncollapsed when a group is entered
      set uncollapse_threads 0
      
    Note: methods 2 and 3 were not available in previous versions of slrn.
    This is why the `toggle_sort' function needed to be modified.
3.  It is now possible to have all posted articles saved in a file.  The
    file is specified in the .slrnrc with a line like:

        set save_posts "News/My_Posts"

4.  slrn now generates its own message id provided that it can find the
    machines fully qualified domain name (FQDN).  The reason for this is
    that one can easily more efficiently score follow-ups to the user's
    posted articles.  For example, if the FQDN is `machine.my.domain' and
    the user's name is `user' then simply put:
    
       [*]
       Score: 100      (or whatever)
       References: user@machine.my.domain>
       
    in the score file.  (The first part of the generated message-id is
    composed of a base 32 representation of the current time and process-id).
5.  Default values available at all yes/no prompts.

6.  Saving an article is slightly different but simpler.  The new bindings
    are: 
    
	`:'  uudecode file
        `o'  save a file-- no decoding
	
    Use "decode" and "save_article" to re-bind these.
    See the FAQ for more detailed help on uudecoding articles.
    
7.  New variable: 'save_directory' may be used to specify where files are
    saved.  The default is 'News'.  Use something in your .slrnrc file:
    
        set save_directory "News"
	
8.  There is now an option for slrn to read the active file upon startup.
    Using this option may result in faster startup times.  Using the active
    file also has the advantage that the `L' key will list all groups
    available at the server.  
    
    There are two ways of enabling this option:
    
        a.  Startup slrn with the -a switch:  slrn -a
	b.  Add the line:
	  
	         set read_active 1
	   
	    to your .slrnrc file.

9.  The `Expires' date may be given in one of the following formats:

       MM/DD/YYYY
       DD-MM-YYYY
       
    Previous versions only allowed the first format.

10.  MIME support add by Michael Elkins .
    To enable MIME support, add:
    
        set use_mime 1
	
    to your .slrnrc file.  In addition, you may select a character set by
    adding something like:
    
        set mime_charset "iso-8859-1"

    to your .slrnrc file.
    
    The MIME code is still in the testing phase but it appears to be ok.
    
Changes since 0.7.9.0
1.  If Cc: header appears in a followup, the message will also be email to 
    the addresses listed on the line.  The address `poster' will be
    considered as an alias for the original poster.  This header will
    automatically be generated if the line:
    
         set cc_followup 1
       
    appears in the .slrnrc file.
    By default, the body of an email message generated this way will be
    prefixed by the string:
    
      [This message has also been posted.]
      
    To change it, use a line of the form:
      
      cc_followup_string "[Note: Even though I posted this, here is a copy.]"
      
    in your .slrnrc file.
    
2.  Broken threads are now collaped together.
3.  In replies, the In-Reply-To header is generated with the message-id of
    the original post.
4.  New variable for .slrnrc: `set confirm_actions 1'.  If set to 1 (default
    is 0), confirmation on quitting, followup, reply, etc... is not performed.
    
5.  Arbitrary header keywords are now allowed for Score files.  Keep in mind
    that a score that is based on such keywords take ALOT longer to process.
    The command line option -k0 will suppress expensive scores.  

    In addition, the K key (bound to `toggle_scoring') may be used at the
    group level to set the scoring mode.

6.  Enhanced score file syntax:

       a.  If Score::  (TWO colons) is used to denote a score, all
           expressions that it covers will be considered as OR type
	   expressions.  That is,
	  
	       Score:: 20
	        Subject: larry
	        Subject: curly
	   
          is (almost) equivalent to
	  
	       Score: 20
	        Subject: larry
	       Score: 20
	        Subject: curly
          
	  Homework: What do I mean by ``almost''?
	  Note: Scores with only one colon are AND scores.
	  
      b.  If a score value is prefixed with the `=' sign, e.g., Score: =30
          Then scoring on the article is regarded as finished and a value of
	  30 will be assigned to the article.

    See score.txt and KILL_FAQ for more information.
    
7.  Article mode keybindings of `<' and `>' have been changed to goto the
    beginning and end of the article, resp.
    
8.  The `#' key may be used to NUMERICALLY tag articles.  The save operation
    now saves tagged articles in their numerically tagged order.  The key
    sequence `ESC #' will remove all numerical tags.
9.  The save function is now more sophisticated.  It can now save tagged
    articles, the current thread, or a single article.  After it saves, it
    prompts for decoding.  The present version of slrn can only decode
    uuencoded files or share archives.  If decoding is selected, slrn will
    prompt for whether or not he save file should be deleted.
    
    The variable `decode_directory' may be used to control where decoded
    files are placed.
    
10. If a line of the form:

       set use_tmpdir 1
      
    appears in the .slrnrc file, a tmp directory will be used for posting
    and replying.  The directory /tmp will be used unless the environment
    variable TMPDIR exists.
    
11. It is now possible to set the editor command in the .slrnrc file, e.g.,

        editor_command "jed %s -g %d -tmp"
	
      

Changes since 0.7.8.2
1.  Score files added-- See score.txt for score file syntax.  To use score
    files you must add a line such as:
    
         scorefile "News/Score"

    to you .slrnrc file.  slrn assumes no default value for this file.  With
    this defined, you may either edit the file by hand or press the `K' key
    in article mode to automatically add ``scores'' to this file.  If you
    edit it by hand and you use the jed editor, see `score.sl' for a syntax
    highlighting and indentation mode for score files.
    
    A new commad line option `-k' may be used to turn OFF score file
    processing.

2.  In article mode, `=' key will now follow articles of a specified
    subject.  In addition, the `!' key will go to articles with high scores.

Changes since 0.7.8.1
1.  Threads are now collapsed.  An individual thread may be un-collapsed by
    pressing `ESC t'.  Pressing `ESC t' will re-collapse it.  In addition,
    simply reading the first article in a thread will un-collapse it.
    Deleting a collapsed thread will delete all articles in th thread.
    Hopefully, this interface will seem intuitive.
    
    Note: `ESC 1 ESC t' will toggle collapsing of ALL threads.  
    
    To bind this to a different key, use the function 
    `toggle_collapse_threads'.
    
    Of course the thread number has to have a color.  The default is:
    `color thread_number "blue" "white"'
    
2. New configuration variables for your .slrnrc file (defaults shown)

      set query_next_article 1
      set query_next_group 1
     
   For example, setting query_next_article to 0 will result in the next
   article being read when the end of the current one is reached.

3. Parse error messages while parsing .slrnrc file are now more meaningful.

Changes since 0.7.8.0
1.  Additional support for XTerm mouse (Thanks Mark).  These include:

    Article mode:

        Left Button: Help bar:        return help
                     Header status:   header page down
		     Article status:  Next unread
		     Article window:  Article page down
      Middle Button: Help bar:        toggle show author
                     Header status:   hide article
		     Article status:  toggle quotes
		     Article window:  nothing
      Right Button:  Help bar:        help
                     Header status:   header page up
		     Article status:  Prev unread
		     Article window:  Article page up
                     
    Similar functionality for group mode.
    
2.  VMS makefile fixed
3.  New group mode function: transpose_groups.  The default binding is ^X^T.
    This will transpose the position of two groups.  This may be used to
    rearrange groups.
4.  man page updated
5.  `set color signature' now supported.  (Thanks to
    combee@ptsg-austin.sps.mot.com (Ben Combee))
6.  Misc bug fixes.
7.  `hide article' will now toggle.

Changes since 0.7.7
0.  Misc bug fixes
1.  slrn calling syntax changed: The -D parameter has changed to lowercase -d.
    Now, a new -Ddefine-something is available.
2.  If using slang0.99-20 or newer, it is possible to use slang preprocessing
    in your .slrnrc file.  Use the -D flag to define a token.
3.  Oops!  Previous version broke art_lineup, art_linedn functions.
4.  Problem with "unknown" as username fixed.
5.  Suspension now allowed during lengthy transfers.  This requires slang
    version 0.99-20 or greater.
6.  New article mode function: "toggle_header_tag".  A header that is
    ``tagged'' is marked with a `*' in the left column.  The default binding
    is to the `*' key (Shift-8).  A tagged article will not change its read
    status by the `catchup' series of functions.  There may be more uses
    later.
7.  If a `prefix' argument is given to the `get_parent_header' function, the
    entire tree will be reconstructed.  This means that the whole tree can
    be reconstructed by pressing: ESC 1 ESC p
8.  Another oops.  -create flag was not working in 0.7.7.
9.  `set unsubscribe_new_groups' added to slrn.rc file.  If this is non-zero,
    newgroups will not automatically be subscribed to, e.g., if you desire
    this behavior, put the following in your .slrnrc file:
       set unsubscribe_new_groups 1
10. In an effort to make the article screen look less busy, a new
    configuration variable `show_thread_subject' has been made available.
    If zero, only the parent thread's subject will be displayed.  If you do
    not like this, add:
      
        set show_thread_subject 1
	
    to your .slrnrc file.
11. By default, articles are saved in folders with names beginning with a 
    capital letter.  If a folder with a lower case name already exists, slrn
    will use that.  That is, it is backward compatable.
12. Improved man page (Thanks to Howard Goldstein )
13. XTerm mouse support added.  This option requires slang version 0.99-21.
    Use `set mouse 1' in your .slrnrc file to enable.  Note: mouse reporting
    is disabled at all slrn prompts so the mouse will be available for
    cut/paste in such contexts.

Changes since 0.7.6
1.  Improvements for VMS.  Now supports NETLIB (Thanks Andrew).
2.  Improved detection of supercite
3.  The article mode functions `catchup' and `uncatchup' have changed
    slightly in a way that may be more useful.  Now, they function on all
    headers from the top of the header list to the current header.
    Previously they functioned on all headers from the current one to the
    end of the list.  Of course the functions `catchup_all' and
    `uncatchup_all' are still available.
4.  New `config.h' file that allows HOSTNAME, ORGANIZATION, etc... to be
    compiled into the executable.
5.  Slightly improved FAQ.

Changes since 0.7.5
0.  VMS port thanks to Andrew Greer (Andrew.Greer@vuw.ac.nz)
1.  Small bug in help.c corrected that caused problems on some systems if a
    custom help file was used.
2.  New function: repeat_last_key.  The default binding is `.'.  The
    function that `.' used to be bound to has been moved to `;'.
3.  slrn.rc may be placed in SLRN_LIB_DIR to provide defaults for all users,
    e.g., organization, hostname, ...  See INSTALL.
4.  Catchup bindings changed in article mode.  (By popular demand).
5.  Misc improvements.

Changes since 0.7.4
1.  Oops!  It was possible to cancel any article in the old version.  I
    forgot to add a `return' statement after checking to make sure that the
    person cancelling actually posted the article.
2.  Missing comma between two strings in help.c added.
3.  `delete_thread' function added to article mode keybindings
4.  `followup' added to slrn.rc.  This allows the user to set the followup 
     string.  For example, I use:  followup "On %d, %r <%f> wrote:"
     See slrn.rc for more information.
5.  It is now possible to concatenate newsrc files.  slrn will now ignore
    repetitions.  For example, suppose that you have an old newsrc file that
    you wish to bring uptodate.  Let's call it `old'.  Suppose that another
    one, `new' is much more extensive.  Then do:
    
        % mv old old~
	% cat old~ new > old
	% slrn -f old
	
    If you have no idea how this may be useful, then you do not need it.
6.  Group mode searches will automatically wrap.    
7.  Some support for automatic detection of ``super-cited'' articles so that
    quoted lines are handled properly.  This works most of the time.
8.  If `set no_backups 1' appears in the .slrnrc file, backups of the .newsrc
    file is turned off.
9.  `g' in article mode will skip to the next digest.
10. User is now prompted for chance to re-edit a message after editing.
11. `set beep 0' may now be used to turn off the bell.  See slrn.rc.

Changes since 0.7.3
1.  -i init-file command option added.  This allows a different slrn.rc file
    to be specified (default: .slrnrc).
2.  Silly problem fixed when -create option used but .newsrc does not exist.
3.  A line read in from the server that begins with two periods is stripped 
    of one of them as RFC977 requires.
4.  Using a prefix argument to the followup command will insert the original
    headers into the followup.
5.  If server drops the connection, an attempt is made to reconnect.
    (ljz@panix.com)

Changes since 0.7.2
1.  Slight modification to extract real name routine so that if the name is
    not available, the address is used.
2.  Now possible to specifiy a color for quoted text via `color quotes'.
    The default is: color quotes red white
    This really does improve readability of an article with quoted material!
3.  NNRP authentification support added.  In .slrnrc, use a line like:
       nnrpaccess HOSTNAME USERNAME PASSWORD
 
Changes since 0.7.1
0.  The XPAT server command is exploited if it is available.  Not all servers
      support it even though it is pretty standard.
1.  ESC Ctrl-P will find all children of current header by querying the
    server.
2.  Confirm Follow-up when poster sets the followup line to poster.
3.  ESC-d will now mark the current thread as read-- that is, current header
    plus all children.
4.  SPACE in article mode can be used to read next article or go to next
    group if pressed twice at the end of the current article.
    
Changes since 0.7.0
1.  Typo in the `unsetkey' function corrected.  The typo was a serious one.
2.  Small change in the Top/Bottom/Percentage calculation for the status line.
3.  Misc bug fixes
4.  See help.txt for creating your own custom help screen.

Changes since 0.6.3
1.  Added `realname' to slrn.rc file.
2.  TRUE referenced based threading added.  Subject sorting has been 
      abandoned.  A tree in drawn showing how articles are threaded.  The
      color of the tree may be specified by `color tree' in your .slrnrc
      file.  ESC-p will got to the parent of the current header.
      
      Note:  If the terminal cannot support line drawing characters, the
      tree will not appear.

Changes since 0.6.2
1.  Xref mark as read now takes advantage of group name hashing.
2.  Fixed problem with getlogin on some systems.

Changes since 0.6.1
1.  `N' in article mode will now skip on to next group.  Lowercase `n' still
    retains its previous meaning.
2.  Bug fixed in catchup-all in article mode.  Previously, it did not mark
    all as read.
3.  A description of each newsgroup can be displayed next to the group name. 
    Use ESC-a to toggle it on/off.
4.  New environment variable SLRN_LIB_DIR determines where to load files
    that may be shared by all users, e.g., the group description file.  By
    default, it is /usr/local/lib/slrn.  See INSTALL for more details.
    
Changes since 0.6.0
1.  The `G' key at group mode may be used to retrieve new news from the
    server.  In addition, `X' will force the newsrc file to be saved.
2.  Small bug corrected that manifests itself when no groups are subscribed
    to (a very rare situation).
3.  The one-line help at the bottom of the screen is always visible now.  Of
    course, the full on-line help is still available.
4.  The Makefile has been modified so that slrn may be easily termified
    under Linux.
5.  Fixed a silly bug that made the -C color flag do nothing.

Changes since 0.5.3
1.  Selecting a group with an ESC prefix digit argument will now select
    unread articles too.
2.  My uudecode program can also unpack shell archives.  No need to edit
    those headers either.
3.  When replying, the user defined quote string is used to quote the
    article. 
4.  ESC-r from article mode will toggle rot13 decryption.
5.  `|' in article mode will pipe article to an external command (e.g., lpr)
6.  Some cosmetic improvements by ljz@ingress.com (Lloyd Zusman).
7.  ESC-U, ESC-u, ESC-C, ESC-c added by ljz@ingress.com (Lloyd Zusman).
    These functions may be used to catchup and un-catchup on articles in
    article mode.
8.  IF the line: `set show_article 1' appears in your .slrnrc file, the
    article is displayed when article mode is entered.

Changes since 0.5.2
1.  Path header added when posting
2.  When the newsrc file is written, a backup is made of the previous version.

Changes since 0.5.1
1.  ESC-a toggles showing author's name on/off in the header window.  This
    provides a wider display for the subject.

Changes since 0.5.0
1.  Improved help screen for beginners.
2.  ESC-s now toggles header sorting on/off.
Changes since 0.4.0
1.    LOGNAME environment variable now checked to get the user's login name.
      Previously, only USER was checked.
2.    newsrc file locking added.
3.    TAB key now moves past quoted text
4.    `autobaud' keyword in .slrnrc file may be used to incicate that the
      output rate to the terminal should be synchronized to the terminal
      baud rate.  This behavior was always the default in previous versions.
      Now, it is off by default.
5.  The `L' key in the group menu may now be used to toggle the display of
    unsubscribed groups on and off.  

% -*- slang -*-
% This is a sample startup file for the slrn news reader.  The percent
% character is used for comments.

% Note OS/2 users: to separate directories you can either use a single '/' or
%                  double '\\'. Single backslashes are not supported.

% SERVER to NEWSRC mapping
%server "hsdndev.harvard.edu" ".jnewrc-hsdndev"
%server "news.uni-stuttgart.de" ".jnewsrc-stuttgart"

% The next line is for those servers that require a password.
%nnrpaccess "HOSTNAME" "USERNAME" "PASSWORD"
%nnrpaccess "HOSTNAME" "USERNAME" ""         % Prompt for password
%nnrpaccess "HOSTNAME" ""         ""         % Prompt for username and password


%hostname "YOUR.HOSTNAME"
%set username "jd"

%set realname "John Doe"
%set replyto  "jd@somthing.com"

% Load a macro file at startup.
%interpret ".slrn.sl"
%interpret ".lynx.sl"

% Name of signature file to use
%set signature ".signature"

% The quote string will be used when following up/replying
set quote_string ">"

% If non-zero, slrn will not allow you to post articles that contain 
% non-quoted lines whose length exceeds 80 characters.
set reject_long_lines 1

% This regular expression defines lines that are consider to be quoted lines.
% It says that any lines beginning with 0-2 spaces followed by a either
% a >, <, :, |, or = character is a quoted line.
ignore_quotes "^ ? ?[><:=|]"

% This sets the follow-up and reply strings.  Here, the following format 
% specifiers are recognized: 
%    %d:date, %r:real name, %f:email address, %s:subject,
%    %m:msgid, %n:newsgroups, %%: percent 
set followup_string "On %d, %r <%f> wrote:"
set reply_string "In %n, you wrote:"

%Custom headers to add to NEW posts
%set custom_headers "X-Whatever: bla\nX-Misc: bla bla"

% Custom headers for followup/reply.  These can use format specifiers as
% in the 'followup' string variable.
%set followup_custom_headers "X-newsgroup: %n\nX-realname: %r\n"
%set reply_custom_headers "X-newsgroup: %n\nX-realname: %r\n"


% WWW browser to use.  The 'U' key in article mode searches the current article
% for a URL and then calls X browser if slrn appears to be run in X windows
% and non_Xbrowser otherwise.  Note: The second Xbrowser form assumes that
% netscape is already running.
set non_Xbrowser "lynx '%s'"
set Xbrowser "netscape '%s' &"
%set Xbrowser            "netscape -remote 'openURL(%s)' &"

% If autobaud is present, output rate will be synced to baud rate
%autobaud

% if non-zero, display first article when entering article-mode.
set show_article 0

% if non-zero, show description of newsgroup if available
set show_descriptions 1

% column where group descriptions start
set group_dsc_start_column 40

% If non-zero, backups of the newsrc file are not performed.
set no_backups 0

% If 0, do not beep terminal.  If 1, send audible beep.  If 2, send only 
% visible bell.  If 3, send both.
set beep 0

% If non-zero, slrn will automatically un-subscribe new groups.  
% The default is 0.
set unsubscribe_new_groups 0

% If non-zero, all subject titles will be displayed even though many are
% duplicated.  A zero value makes the screen look less busy.
set show_thread_subject 0

% Enable xterm mouse support: 1 to enable, 0 to disable
set mouse 0

% Set to 1 to have slrn scroll by full page instead of by line.
set scroll_by_page 0

% Setting either of these to 0 will enable you to move directly to the
% next article/group without confirmation
set query_next_group 1
set query_next_article 1

% if zero, you will not see the "next group:" prompt.  This is NOT the same
% as the 'query_next_group' variable.
set prompt_next_group 1

% Set this to 0 for no-confirmation on follow, reply, quit, etc...
set confirm_actions 1

% If 0, do not display the name of the author.
% If 1, display subject then name.  If 2, display name then subject.
set author_display 2

% if 1, display author realname, if 0, display full address
set display_author_realname 1

% If 0, save all groups when writing newsrc file
% if 1, do not save any unsubscribed groups
% if 2, do not save any unread-unsubscribed groups
set write_newsrc_flags 1

% If greater than 0, a Cc: header to poster will automatically be generated on 
% followups.  If -1, prompt first.
set cc_followup -1
set cc_followup_string "[This message has also been posted.]"

% Set to 0 to turn off display of ~ at end of article
set use_tilde 1

% Filename where articles you have posted are archived.
%set save_posts "News/My_Posts"
%set save_replies "News/My_Replies"

% The sendmail command allows you to substitute another mailer.  Be sure that 
% it implements the same interface as sendmail!
%set sendmail_command "/usr/lib/sendmail -oi -t -oem -odb"


% Name of score file  (relative to HOME directory)
scorefile "News/Score"

% Articles scoring min_high_score and above constitute a high scoring article.
% Articles scoring below max_low_score define a low scoring article.
% Articles scoring at or below kill_score will be killed.
set min_high_score 1
set max_low_score 0
set kill_score -9999

% Name of directory where decoded files are placed (relative to HOME)
set decode_directory "News"
% Directory where all other files are saved.
set save_directory "News"
% Directory where postponed articles are placed.  (Make sure it exists)
set postpone_directory "News/postponed"

% Command used to invoke editor.  In the following example, %s represents
% the file name and %d represents the starting line number
%set editor_command "jed %s -g %d -tmp"

% Editor command for editing posts, mail, and score files.  Note the use of 
% single quotes around %s.  This is only necessary if you use filenames 
% with spaces in them.
%set mail_editor_command "jed '%s' -g %d -tmp"
%set post_editor_command "jed '%s' -g %d -tmp"
%set score_editor_command "jed '%s' -g %d -tmp"

% If  non-zero, files used for posting, followup and reply will be regarded as
% temporary files in the directory specified by the TMPDIR environment 
% variable or /tmp.
set use_tmpdir 0

% If 0, do not sort.  If 1, perform threading.  If 2, sort by subject
% If 3, thread then sort result by subject
% If 4, sort by score.  If 5, thread then sort by score.
% If 6, sort by score and subject
% If 7, thread, then sort by score and subject
% If 8, sort by date with most recent first
% If 9, thread, then sort by date with most recent first
% If 10, sort by date with most recent last
% If 11, thread then sort by date with most recent last
set sorting_method 3
set display_score 0

% If 1, a header with a new subject will start a new thread.
set new_subject_breaks_threads 0

% If non-zero, threads will be uncollapsed when a group is entered
set uncollapse_threads 0

% If non-zero, slrn will read the active file when starting.   This may lead to
% faster startup times IF your network connection is fast.  If it slow, 
% DO NOT USE IT.  If you can, I recommend setting it to 1.
set read_active 0

% If non-zero and read_active is zero, slrn will attempt to use the NNTP
% XGTITLE command when listing unsubscribed groups.
set use_xgtitle 0

% What to wrap when wrapping an article:
%  0 or 4 ==> wrap body
%  1 or 5 ==> wrap headers, body
%  2 or 6 ==> wrap quoted text, body
%  3 or 7 ==> wrap headers, quoted text, body
% The higher number indicates that every article will be automatically 
% wrapped.
set wrap_flags 4

% Maximum number of articles to read before slrn will prompt.  Default is 100.
% Set this to zero to turn of prompting.
set query_read_group_cutoff 100

% Numes of lines to read from the server between percentage counter updates
% This number will vary with the speed of the connection to your server
set lines_per_update 100

% Valid character sets: isolatin, ibm850, next
% ibm850 is the default on OS/2
% next is the default on NeXT machines
% isolatin is the defaule on all other systems.
%set charset isolatin

%---------------------------------------------------------------------------
% Mime support
%---------------------------------------------------------------------------
set use_mime 1
set mime_charset "iso-8859-1"
% If non-zero, call metamail for mime formats that slrn does not handle
set use_metamail 1
set metamail_command "metamail"

% If non-zero, header numbers will be displayed in the left-margin of the
% header window.  These numbers may be used as ``thread selectors''.
set use_header_numbers 1

% If non-zero, prompt for reconnection if the NNTP connection drops.  If zero,
% attempt reconnection without asking user.
set query_reconnect 1

% Character to use to hide spoiler text:
set spoiler_char '*'

% set to 0 to keep the display still, and just reveal the spoiler
% set to 1 to start a new page when spoiler is revealed
% set to 2 to keep the display still, and reveal ALL spoilers
% set to 3 to start new page and reveal ALL spoilers
set spoiler_display_mode 1
 
% Help text to be displayed at bottom of screen in various modes:
%set art_help_line "bla bla"
%set header_help_line "more bla bla"
%set group_help_line "and even more"


%---------------------------------------------------------------------------
%  Local spool configuration
%---------------------------------------------------------------------------
% set spool_inn_root "/usr/lib/news"
% set spool_root "/var/spool/news"
% set spool_nov_root "/var/spool/news/over.view"
%
%% -- The following filenames are relative to spool_inn_root unless they
%%    start with "/".
% set spool_active_file "data/active"
% set spool_activetimes_file "data/active.times"
% set spool_newsgroups_file "data/newsgroups"

%% -- The following filenames are relative to spool_nov_root
% set spool_nov_file ".overview"

%If set to 1, then spool.c will actually check each article file exists when
%reading an overview file.  This adds a perceptible delay (especially in a
%large spool directory), so I've made it an option.  With some servers it is
%almost redundant, whereas with others which don't expire entries from
%overview files regularly, it's almost vital.  If the users sees a lot of
%"article not available" errors, they should probably try turning it on.
set spool_check_up_on_nov 0

%---------------------------------------------------------------------------
%  GroupLens Support
%---------------------------------------------------------------------------
%set use_grouplens 1
%color grouplens_display blue white
%set grouplens_host		"grouplens.cs.umn.edu"
%set grouplens_port		9000
%set grouplens_pseudoname	"YOUR_PSEUDONAME"
%grouplens_add "rec.cooking.recipes"
%grouplens_add "comp.os.linux.misc"


%---------------------------------------------------------------------------
% Colors
%---------------------------------------------------------------------------
color header_number	"green"		"white"
color header_name	"green"		"white"
color normal		"black"		"white"
color error		"red"		"white"
color status		"yellow"	"blue"
color group		"blue"		"white"
color article		"blue"		"white"
color cursor		"brightgreen"	"white"
color author		"magenta"	"white"
color subject		"black"		"white"
color headers		"brightcyan"	"white"
color menu		"yellow"	"blue"
color menu_press	"blue"		"yellow"
color tree		"red"		"white"
color quotes		"red"		"white"
color thread_number	"blue"		"white"
color high_score	"red"		"white"
color signature		"red"		"white"
color description	"blue"		"white"
color tilde		"green"		"white"
color response_char	"green"		"white"
%-----------------------------------------------------
% Monochrome attributes for monochrom terminals.   One or more attributes
% may be specified.
%-----------------------------------------------------
mono normal		"none"
mono header_number	"none"
mono header_name	"bold"
mono error		"blink" "bold"
mono status		"reverse"
mono group		"bold"
mono article		"none"
mono cursor		"bold"	"reverse"
mono author		"none"
mono subject		"none"
mono headers		"bold"
mono menu		"reverse"
mono menu_press		"none"
mono tree		"bold"
mono quotes		"underline"
mono thread_number	"bold"
mono high_score		"bold"
mono signature		"none"
mono description	"none"
mono response_char	"bold"

%------------------------  Group keymap------------------------------------

setkey group	post_postponed	"\eP"
setkey group	add_group	"A"    %  add a new newsgroup
setkey group	bob		"\e<"  %  beg of buffer
setkey group	bob		"^K\eOA"
setkey group	bob		"^K\e[A"
setkey group	catchup		"C"    %  mark group as read
setkey group	down		"\eOB" %  next group
setkey group	down		"\e[B"
setkey group	down		"^N"
setkey group	eob		"\e>"  %  end of buffer
setkey group	eob		"^K\eOB"
setkey group	eob		"^K\e[B"
setkey group	group_search_forward	"/"
setkey group	help		"?"
setkey group	pagedown	"^D"   %  next page of groups
setkey group	pagedown	"\e[6~"
setkey group	pagedown	"^V"
setkey group	pageup		"\eV"  %  previous page of groups
setkey group	pageup		"^U"
setkey group	pageup		"\e[5~"
setkey group	post		"P"
setkey group	quit		"Q"
setkey group	redraw		"^L"
setkey group	redraw		"^R"
setkey group	refresh_groups	"G"
setkey group	save_newsrc	"X"
setkey group	select_group	"\r"   %  read articles from group
setkey group	select_group	" "
setkey group	subscribe	"S"    %  subscribe to group (See unsubscribe)
setkey group	suspend		"^Z"
setkey group	toggle_group_display	"\033A"
setkey group	toggle_scoring	"K"
setkey group	toggle_hidden	"l"
setkey group	toggle_list_all	"L"
setkey group	unsubscribe	"U"    %  unsubscribe
setkey group	up		"\eOA" %  previous line
setkey group	up		"\e[A"
setkey group	up		"^P"

%---------------- Article mode keymap -------------------------------------

setkey article	post_postponed	"\eP"
setkey article	goto_article	"j"
setkey article	pipe_article	"|"
setkey article	skip_quotes	"\t"

setkey article	pageup		"^U"
setkey article	pageup		"\e[5~"
setkey article	pageup		"\eV"

setkey article	pagedn		"\e[6~"
setkey article	pagedn		"^D"
setkey article	pagedn		"^V"

setkey article post "P"
setkey article toggle_show_author "\ea"
setkey article get_parent_header "\ep"
setkey article	catchup_all	"c"
setkey article	catchup_all	"\ec"
setkey article	uncatchup_all	"\eu"
setkey article	catchup		"\eC"
setkey article	uncatchup	"\eU"
setkey article	scroll_dn	" "	% scroll to next page of article or select article
setkey article	scroll_up	"^?"	% scroll to next page of article
setkey article	scroll_up	"b"	% (scroll_up or article_pageup)
setkey article  article_lineup	"\e\e[A"	% Scroll article one line up
setkey article  article_lineup	"\e\eOA"
setkey article  article_linedn	"\e\e[B"	% Scroll article one line down
setkey article  article_linedn	"\e\eOB"
setkey article	article_linedn  "\r"
setkey article  article_search	"/"	% Search forward through article
setkey article  author_search_forward	"a"	% Search forward for an author
setkey article  author_search_backward	"A"	% Search backward for an author
setkey article  cancel		"\e^C"	% Cancel the article
setkey article  delete		"d"	% Mark current article as read and move to the next unread one
setkey article  down		"^N"	% Move to the next article
setkey article  down		"\e[B"
setkey article  down		"\eOB"
setkey article  mark_spot	";"	% Set mark at current article
setkey article  exchange_mark	","	% Set the mark and return to the location of the previous mark.
setkey article  followup	"f"	% Followup on the article
setkey article  forward		"F"	% Forward the article to someone
setkey article  help		"?"	% Show help screen
setkey article  hide_article	"H"	% Hide the article window.
setkey article  art_eob		">"	% goto the end of the article
setkey article  left		"\eOD"
setkey article  left		"\e[D"
setkey article  next		"n"	% next unread article
setkey article  skip_to_next_group	"N"	% next group
setkey article  prev		"p"	% previous unread article
setkey article  quit		"q"	% Quit back to group mode.
setkey article  redraw		"^L"	% Redraw the display
setkey article  redraw		"^R"
setkey article  reply		"r"	% Reply to the author of the current article
setkey article  art_bob		"<"	% goto the beginning of the article
setkey article  right		"\e[C"
setkey article  right		"\eOC"
setkey article  save		"O"	% append to a file in Unix mail format
setkey article  subject_search_forward	"s"	% Search forward/backward for an article with a specific subject
setkey article  subject_search_backward	"S"
setkey article  suspend		"^Z"	% Suspend the newsreader
setkey article  toggle_collapse_threads "\et"
setkey article	toggle_rot13	"\eR"
setkey article	toggle_sort	"\eS"
setkey article  toggle_headers	"t"	% Toggle the display of some headers on and off
setkey article  toggle_quotes	"T"
setkey article  undelete    	"u"	% Mark the current article as unread
setkey article  up		"^P"	% Move to the previous article
setkey article  up		"\eOA"
setkey article  up		"\e[A"
setkey article	header_bob	"\e<"	% Move to first article in list
setkey article	header_eob	"\e>"	% Move to last article in list
setkey article	shrink_window	"^^"	% Ctrl-6 or Ctrl-^	% Shrink header window
setkey article	enlarge_window	"^"	% Shift-6 or just ^	% Enlarge header window
setkey article  next_high_score	"!"

setkey article  wrap_article	"W"    %  toggle wrapping

%setkey article  skip_to_prev_group ""     % No default binding
%setkey article  fast_quit          ""     % No default binding

% This is a special hack for HP terminals to get the arrow keys working.  
% Are there any other terminals being used with non-ANSI arrow keys?
#if$TERM hpterm
  setkey group up "\eA"
  setkey group down "\eB"
  setkey article down "\eB"
  setkey article up "\eA"
  setkey article left "\eD"
  setkey article right "\eC"
#endif

% Command prompt keymap
setkey readline bol		 "^A"		% Beginning of line
setkey readline eol		 "^E"		% End of line
setkey readline right		 "\e[C"		% Move right
setkey readline left		 "\e[D"		% Move left
setkey readline bdel		 "^H"		% Delete backward
setkey readline bdel		 "^?"		% Delete Backward
setkey readline del		 "^D"		% Delete Foreword
setkey readline deleol		 "^K"		% Delete to End of line
setkey readline trim		 "\e/"		% Trim whitespace
setkey readline quoted_insert	 "^Q"		% Quoted insert