ftp://space.mit.edu/pub/davis/slrn
It should be appearing at various mirror sites including:
ftp://ftp.uni-stuttgart.de:/pub/unix/misc/slang
ftp://ftp.prz.tu-berlin.de/pub/unix/news/reader/slrn
ftp://ftp.ntua.gr/pub/lang/slang/
Changes since 0.9.0 are attached to the end of this message.
Here are some of slrn's features:
* Runs under Unix, VMS, and OS/2
* Interface to HTML browser (lynx, netscape,...)
* True referenced-based threading
* Draws a colored thread tree using line drawing characters
* Sophisticated score (Kill) file support with scores that
can be set to expire
* Multiple server support
* Multiple windows
- Header summary window showing threads
- Article window
* Very Customizable
- Keybindings
- Extension langauge for writing sophisticated macros
- Colors
For example, the default colors, say, using a color xterm such as
rxvt, shows the top status bar in blue on white, the author's name
in the header summary window as magenta on white, the thread tree
as red lines connecting subject titles, the window status lines
appear as yellow on blue, the article headers in the article window
are cyan on white, the quoted text appears as red on white, and
the body of the article appears as blue on white.
- Monochrome attributes
On non-color terminals, monochrome attributes may be specified for
subject titles, headers, status lines, etc.
- Server -> newsrc mappings
* Built-in support for MIME
* Smart screen updating
* Customizable online help
* Automatic reconnect if server drops connection
* Fast on slow modem connections. It does not read the whole active file
like many other newsreaders. Many people have concluded that
slrn is the fastest available newsreader.
* XTerm mouse support with clickable buttons
* Easy decoding of base64 and uuencoded of articles
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
--
John E. Davis Center for Space Research/AXAF Science Center
617-258-8119 MIT 37-662c, Cambridge, MA 02139
http://space.mit.edu/~davis
Unfortunately, 0.9.1.0 has a nasty bug that is triggered if the user
does not specify a quote string. I corrected the bug and released
0.9.1.1 with the bug fix.
Here is a patch for 0.9.1.0:
--- /nfs/wiwaxia/h1/davis/d1/src/release/slrn/src/post.c Mon Oct 21 01:59:34 1996
+++ post.c Tue Oct 22 13:55:39 1996
@@ -383,13 +383,17 @@
/* Now body. Check for non-quoted lines. */
if (err == NULL)
{
- unsigned int qlen = strlen (Slrn_Quote_String);
+ char *qs = Slrn_Quote_String;
+ unsigned int qlen;
+
+ if (qs == NULL) qs = ">";
+ qlen = strlen (qs);
err = "Your message does not appear to have any unquoted text.";
while (NULL != fgets (line, sizeof (line), fp))
{
num++;
- if (!strncmp (line, Slrn_Quote_String, qlen))
+ if (!strncmp (line, qs, qlen))
continue;
colon = slrn_skip_whitespace (line);