1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258
|
The slrn FAQ
John E. Davis <davis@space.mit.edu>
Matthias Friedrich <matt@mafr.de>
Thomas Schultz <tststs@gmx.de>
Thomas Wiegner <wiegner@gmx.de>
Peter J Ross <peadar.ruadh@gmail.com>
Version 0.9.9p1, October 2008
Frequently asked questions about the slrn newsreader.
______________________________________________________________________
Table of Contents
1. General questions about slrn
1.1 What is slrn ?
1.2 Where can I download slrn ?
1.3 Where is slrn 's documentation?
1.4 Are there any mailing lists and/or newsgroups about slrn ?
1.5 slrn appears quite stable. Why don't you call it version 1.0?
1.6 How well are slang-2 and Unicode supported right now?
1.7 I upgraded from version 0.9.8.1 to 0.9.9. What do I have to
change in my slrnrc?
2. Configuration
2.1 Is it possible to set my ``From:'' header line for postings?
2.2 How can I set my ``Message-ID:'' header?
2.3 How can I set the size of the article pager?
2.4 What charset settings should I use under Windows?
2.5 How can I use an external e-mail program for replies?
2.6 The thread tree is not drawn properly. Why?
2.7 Can I use the mouse with slrn ?
2.8 How can I rotate signatures in slrn ?
3. Usage
3.1 What is a prefix argument?
3.2 Treatment of read articles
3.2.1 How can I never mark articles as read?
3.2.2 How can I get slrn to show both read and unread articles?
3.2.3 How can I retrieve read articles from the same thread?
3.2.4 How can I retrieve other read articles?
3.2.5 I want to see full threads as soon as they contain at least
one unread article. Can slrn do this?
3.3 Handling of binary postings
3.3.1 How do I uudecode articles?
3.3.2 What are the advantages of using uudeview ?
3.3.3 What about yEnc?
3.3.4 Can I put multipart binary postings into one thread?
3.4 How can I mark cross-posts as read in other groups as well?
3.5 Why doesn't the ``L'' command work as advertised?
3.6 How do I cross-post an article?
3.7 How do I use the mouse in an XTerm to copy/paste?
3.8 How can I sort the list of newsgroups?
4. Scoring
4.1 What is scoring?
4.2 How can I killfile with slrn ?
4.3 How do I set up slrn to read a scorefile?
4.4 What is the format of an slrn scorefile?
4.5 Where can I get a full description of slrn 's regular
expressions?
4.6 How can I test whether my regular expressions do what I expect
them to do?
4.7 Is there an easy way to watch or kill threads / authors?
4.8 Do I need to remove expired entries from my scorefile manually?
4.9 How do I score on a specific ``Subject'' line, e.g., ``test''
messages?
4.10 How do I score articles from a specific person?
4.11 How do I score articles from a specific site?
4.12 How do I score followups?
4.13 Is it possible to score followups to my own postings?
4.14 How do I kill cross-posts from a specific group?
4.15 How do I score all cross-posts?
4.16 How do I make it so I read only articles from a specific
person?
4.17 How do I score articles that have no ``References'' line but
whose ``Subject'' line starts with ``Re:''?
4.18 How do I score subjects that contain only uppercase characters?
4.19 How can I filter people without a real name?
5. slrnpull
5.1 What is slrnpull ?
5.2 Why can't I post when using slrnpull ?
5.3 How do I get a full list of newsgroups?
6. I found a bug in slrn !!!
6.1 slrn hangs infinitely when I press the delete key
6.2 Non US-ASCII characters are displayed incorrectly.
6.3 The bug I found is not listed here. What do I do now?
6.3.1 Some additional notes for the advanced user
7. About this document
7.1 History
______________________________________________________________________
1. General questions about slrn
1.1. What is slrn ?
slrn (``S-Lang read news'') is a Usenet newsreader that runs in text
mode on various Unix and Unix-like operating systems (including
Linux), Windows, OS/2, BeOS, MacOS X and VMS.
It supports scoring rules to highlight, sort or kill articles to make
reading news more efficient. Furthermore it is highly customizable,
allows free key-bindings and can be extended using the S-Lang macro
language. Offline reading is possible using either slrnpull (shipped
with slrn) or a local newsserver like Leafnode or INN.
1.2. Where can I download slrn ?
If you run Linux, your distribution probably contains a slrn package
that might not offer the latest version, but is more or less ``ready
to go''.
If you wish to obtain a more current version of slrn for Linux or
another supported OS, details can be found at
<http://slrn.sourceforge.net/download.html>
Additional resources are available at <http://slrn.sourceforge.net/>.
Note: Upgrading is especially recommended if you are currently using a
0.9.8.1pl1 or pl2 version, in which significant bugs exist.
1.3. Where is slrn 's documentation?
The source distribution contains a lot of documentation; on Unix-like
systems, it is likely to be installed somewhere in /usr/share/doc or
/usr/doc. It contains manpages (type man slrn at the command prompt),
the slrn Reference Manual (manual.txt) and several other useful
resources like a sample slrnrc (configuration) file.
If you are new to slrn, please make sure to read the file FIRST_STEPS.
It should get you started.
If you cannot find this documentation on your system, you can find it
online via <http://slrn.sourceforge.net/documentation.html>.
1.4. Are there any mailing lists and/or newsgroups about slrn ?
If you have general questions about slrn that are not covered by its
documentation, please make use of the appropriate newsgroups or
mailing list rather than writing to the maintainer directly:
The appropriate newsgroup for questions about slrn is
news.software.readers. There is also a German speaking equivalent
(de.comm.software.newsreader).
slrn-user is a mailing list for discussion of the use, development and
extension of slrn. You can subscribe to it through the web interface
at <http://lists.sourceforge.net/lists/listinfo/slrn-user>.
To keep track of slrn's development, simply subscribe to slrn-
announce. It is a low-traffic moderated list that informs you about
new releases, important bugfixes or major changes to the website. The
subscription address is
<http://lists.sourceforge.net/lists/listinfo/slrn-announce>. All
announcements are also mailed to slrn-user, so there is no need to
read both lists.
1.5. slrn appears quite stable. Why don't you call it version 1.0?
The main reason for the sub-1.0 version number is the poor handling of
different character sets. Users of a modern newsreader expect it to
support Unicode as well as legacy character sets. So, you'll see slrn
1.0 as soon as slrn is ported to the new slang-2 library and running
reasonably stable.
1.6. How well are slang-2 and Unicode supported right now?
Since version 0.9.8.1pl1, slrn compiles against slang-2.
Since version 0.9.8.1pl2, slrn uses iconv for internal charset
handling and supports UTF-8, with some bugs left.
Both versions were never officially released, although some Linux
distributions shipped them.
In version 0.9.9 a lot of bugs in the UTF-8 handling have been fixed.
A current drawback of slang-2 is that its regexp engine lacks UTF-8
support. When you run slrn in UTF-8 mode, you should have your score
file in UTF-8 as well. You may still encounter surprising results; in
particular, regexp matching has no error handling for invalid UTF-8.
1.7. I upgraded from version 0.9.8.1 to 0.9.9. What do I have to
change in my slrnrc?
Since there were fundamental changes in the internal character set
handling, the configuration of this has also changed. The
configuration variables charset, editor_uses_mime_charset,
fold_headers, mime_charset and use_mime, and the configuration command
compatible_charsets are no longer valid. To set character sets for
display, editor and posting, use the new charset command instead.
2. Configuration
2.1. Is it possible to set my ``From:'' header line for postings?
On (properly configured) Unix-like systems, slrn should be able to
determine a valid ``From:'' header line itself. However, you can also
set one explicitly using the following variables in your slrnrc file:
set realname "Your Real Name"
set username "username"
set hostname "your.host.name"
This will cause slrn to generate a ``From:'' header line of the form:
From: Your Real Name <username@your.host.name>
Note: It is possible that your system administrator disabled this
feature to make sure everybody uses his or her correct name and
address when posting. To find out whether this is the case, type slrn
--version and look for strict_from in the feature list. If it is
enabled (indicated by a plus sign), you cannot set your ``From:''
header line yourself.
2.2. How can I set my ``Message-ID:'' header?
First of all, slrn will only attempt to create the ``Message-ID:''
header line if it was not compiled with the --disable-gen-mid option
(check gen_msgid in the output of slrn --version) and the
generate_message_id config variable has not been set to ``0''.
To create a valid Message-ID, slrn needs to know the fully qualified
domain name (FQDN) of the host it is running on. In most cases, slrn
can find it by querying the system. In case this does not work
properly, you can alternatively set the domain (right-hand) part of
your Message-IDs via the posting_host command. If you think you need
this feature, please read the corresponding entry in the reference
manual carefully.
Note: Some Linux distributions (e.g. Ubuntu) do not provide the option
of giving the system a fully qualified domain name during
installation. This can be fixed by editing the /etc/hosts file. E.g.,
Before:
127.0.0.1 localhost
127.0.1.1 desktop
After:
127.0.0.1 localhost
127.0.1.1 desktop.your.domain desktop
2.3. How can I set the size of the article pager?
Unless you ``zoom'' the article pager (using ``z''), slrn will split
the screen and display some article headers at the top. By default, it
gives about 75% of the lines to the article pager, but leaves at least
four lines for the header overview. At runtime, you can change this
using enlarge_article_window (bound to ``^'') and
shrink_article_window (bound to ``CTRL-^'').
There is no config variable you could use to make permanent changes to
this; fortunately, it is very easy to set it using a simple S-Lang
macro. For example,
______________________________________________________________________
define set_size_of_article_pager ()
{
set_article_window_size (int(SCREEN_HEIGHT*0.8));
}
!if (register_hook ("resize_screen_hook", "set_size_of_article_pager"))
message ("Warning: Could not register set_size_of_article_pager" +
" for resize_screen_hook");
______________________________________________________________________
would give about 80% of the screen to the pager. If you want the
header overview to have a fixed size, you can use an argument like
SCREEN_HEIGHT-10 instead, which would make it six lines high (after
the command, the article pager has SCREEN_HEIGHT-10 lines; four lines
are used by status bars).
2.4. What charset settings should I use under Windows?
As on any other operating system, this depends on the character set
your terminal uses. When using slrn on Windows, two problems connected
with character sets frequently appear:
1. The terminal may not use the character set used in the Usenet
articles you are trying to read. In this case, you depend on slrn
to convert between the two character sets to display certain (8bit)
characters correctly. You can enable this by setting the config
command charset to use the appropriate value (all supported
character sets are listed in the reference manual), for example:
charset display "ibm850"
2. Your editor may use a different character set than your terminal.
This is often the case with GUI editors that have their own window,
e.g. gvim. In this case, you may want slrn to convert character
sets when displaying messages, but not when calling the editor on
them, so you should put a line like this into your slrnrc file:
charset editor "utf-8"
3. To enable utf-8 display for slrn in windows you need at least slang
2.1.4pre39. You'll have to change the font in the console to a
TrueType font which is capable of displaying utf-8 characters. To
active slrn utf-8 mode you'll have to type one of the following
commands in the console:
chcp 65001
set LANG=en_US.UTF-8
2.5. How can I use an external e-mail program for replies?
You can use the config variable mail_editor_command for this. The
following example will use mutt as an external e-mail program for
replies:
set mail_editor_command "/usr/bin/mutt -H '%s'"
set mail_editor_is_mua 1
Setting mail_editor_is_mua to 1 tells slrn not to try and send any e-
mail, because the external program used as the e-mail editor will han-
dle this itself.
2.6. The thread tree is not drawn properly. Why?
There are a couple of reasons for this. The most simple may be that
the font that you are using does not support line drawing characters.
Simply switching fonts to a dec-vt220 compatible font may solve the
problem. This is usually the case with Windows telnet applications.
If you see strings like ``mq>'' or ``tq>'' instead of a thread tree
make sure that your terminal or terminal emulator supports vt100
escape sequences. This is the case for most emulators like the Linux
console, NetBSD's wscons, xterm, rxvt and others. Set the TERM
environment variable to vt100 and start slrn to see if the thread is
drawn correctly. If this isn't the case, you have to fix your
termcap/terminfo file. For termcap based systems, the ``ac'', ``as''
and ``ae'' capabilities have to be set correctly. On terminfo based
systems, the ``acsc'', ``smacs'' and ``rmacs'' capabilities need
adjustment.
If you can't solve the problem that way because your terminal setup or
your terminal emulator is severely broken, consider setting
set simulate_graphic_chars 1
in your slrnrc file. It restricts slrn to plain ASCII characters for
drawing the tree.
A major drawback of the vt100 solution is, that vt100 terminals can't
display colors. Since most terminal emulators support ANSI colors, you
could start slrn with the ``-C'' command line switch or use the
following configuration command to force the use of colors:
set use_color 1
But if you want to use colors with other programs as well, you need a
real solution to this problem. Try the following:
Find a $TERM setting that supports line drawing characters like the
vt100 or vt220. Then create a new termcap entry based on that terminal
with additional color capabilities and save it to ~/.termcap. It might
look like this:
myterm:\
:Co#8:NC#3:pa#64:\
:AB=\E[4%dm:AF=\E[3%dm:op=\E[m:\
:mb=\E[5m:md=\E[1m:me=\E[0m:mk=\E[8m:mr=\E[7m:\
:cl=\E[H\E[J:vi=\E[?25l:ve=\E[?25h:\
:tc=vt100:
On some systems, you can then set $TERM to 'myterm' and the settings
apply. On others, you need to do something like this:
TERMCAP=$HOME/.termcap
export TERMCAP
eval `tset -s myterm`
2.7. Can I use the mouse with slrn ?
xterm (and some compatible terminal emulation programs) have a feature
called ``mouse reporting'' that slrn can turn on to support using the
mouse. To enable this whenever the terminal offers it, put
set mouse 1
into your slrnrc file. To force the mouse to be used, startup slrn
using the -m command line option - of course, this will not have the
desired effect if your terminal really does not have this feature ;-)
If you want to know what exactly you can do with the mouse, please see
the entry on the variable mouse in the reference manual.
2.8. How can I rotate signatures in slrn ?
There are different ways to do this - chose one:
The easiest way is probably to call a sig rotation program in the
post_editor_command in your slrnrc file. In the following example, the
program fortune is called and its output gets written to ~/.signature.
After that, the editor jed is called:
set post_editor_command "fortune -s > ~/.signature; jed '%s' -g %d -tmp"
If you want to chose the signature depending on the group you are
posting to, you can set the config variable signature using a macro;
in the following example, .signature.german gets selected for all
newsgroups in de.* and .signature.english gets selected for any other
group. Call this macro from post_hook and article_mode_hook to switch
the signature automatically.
______________________________________________________________________
define set_signature ()
{
variable signature_file = ".signature.english";
if (0 == strncmp (current_newsgroup(), "de.", 3))
signature_file = ".signature.german";
set_string_variable ("signature", signature_file);
}
______________________________________________________________________
If you want more sophisticated per-group settings, we recommend the
macro identity.sl from Emanuele Bassi's slrn page:
<http://www.emmanuelebassi.net/slrn/>.
Note: slrn itself does not have an option to execute a program and use
its output as the signature. Such an option would require piping,
which is not available on all platforms. If you're on a Unix-like
system and still want to use pipes, you can make ~/.signature a named
pipe and attach a daemon sig randomizer to it. Various programs that
do this are available on the net - one example is the program autosig.
3. Usage
3.1. What is a prefix argument?
Many key-bindings accept prefix arguments. A prefix argument is a
number that is generated prior to a key sequence and is used as a way
of controlling the behavior of that key sequence. It is generated by
pressing the ``ESC'' key and then pressing the keys that correspond to
the number. For example, to generate a prefix argument of 314, simply
press the 4 keys: ``ESC 3 1 4''.
Some functions use such arguments as repeat factors. That is, the
function bound to the key sequence that they modify will be repeated
the number of times specified by the prefix argument.
Other functions may simply use it as a way of slightly modifying the
behavior of the function. For example, if ``1'' is used as a prefix
argument for the ``followup'' function, the original article's headers
will be included in the followup message; if ``2'' is used, the
article also does not get modified (i.e. slrn does not insert quoting
characters and neither attaches nor strips signatures). Without a
prefix argument, you get a ``regular'' followup without the original
article's headers.
3.2. Treatment of read articles
By default, slrn does not display articles that were previously marked
as read. In most cases, this makes entering groups a lot faster,
especially as slrn currently does not cache the headers locally and
thus would have to download all the header information from the server
again, each time you enter a group.
At first, most people who are used to a newsreader that always shows
all available messages are often disappointed by this. After some
time, they might find that slrn's default way of doing things allows
them to read their news efficiently, because it keeps their mind on
articles they did not yet deal with.
However, others still prefer to see everything and even if you don't,
you still need to re-read an old article now and then. The following
questions deal with these cases:
3.2.1. How can I never mark articles as read?
There is an option for it - you just need to set
``auto_mark_article_as_read'' to 0 in your slrnrc file.
In most cases, you will find that this is not what you really wanted
to do, as it will make it difficult to find the ``new'' articles (i.e.
the ones you did not yet read), so you might want to consider the
answers to the following questions.
3.2.2. How can I get slrn to show both read and unread articles?
If you want to see all articles in a group (read and unread ones),
simply set a ``prefix argument'' before entering a newsgroup. Using
the default bindings, you can do this by pressing ``ESC 1 RETURN'' in
group mode. There are variations of this; the online help or the
manual will tell you more about them.
If you always want to enter groups that way, pressing three keys
instead of one is annoying. You can avoid this using a special
keybinding in your slrnrc file. Here is an example:
setkey group "set_prefix_argument(4); () = select_group();" " "
With this line, pressing ``SPACE'' in group mode will enter the
selected group with four as the prefix argument.
However, you might find it sufficient to make use of the following
ways to display specific articles that were previously marked as read:
3.2.3. How can I retrieve read articles from the same thread?
If you want to read the ``parent'' of the article you are currently
reading (e.g. because the author did not quote enough material to
understand his message), ``ESC p'' will attempt to find it, using the
``References'' header line.
It is also possible to find all ``children'' of a given article using
``ESC Ctrl-P'' (note that this does not work with all servers) and,
using a recursive combination of both, to reconstruct the entire
thread tree. This is done by pressing either ``ESC 1 ESC p'' or ``ESC
2 ESC p'' - the second alternative can be much faster, but the first
is more likely to find all articles even if some articles contain
incomplete ``References''.
3.2.4. How can I retrieve other read articles?
You can locate any article if it is available on your server and you
know its Message-ID. Pressing ``ESC l'' will produce the necessary
prompt.
3.2.5. I want to see full threads as soon as they contain at least
one unread article. Can slrn do this?
This is currently not implemented, although it should be possible to
achieve such an effect using a macro.
For many, this behaviour would be a useful compromise between the two
extremes of seeing all messages and seeing unread ones only, so this
feature might be added in a future version of slrn.
3.3. Handling of binary postings
slrn is primarily designed as a newsreader (i.e. for reading and
processing text messages); it is not a dedicated agent for downloading
and decoding binary postings from Usenet. However, there is some basic
functionality for decoding binary postings and there are some ways to
make handling them a bit more convenient:
3.3.1. How do I uudecode articles?
Fortunately, the easiest way is also the most efficient. Basically
this involves using the ``#'' key to numerically tag articles that you
want to decode and then the ``:'' key to start the decode process. The
only restriction is that multi-part uuencoded articles must be tagged
in their proper order (see the next question if you think this is too
much trouble). There is no need to uudecode one article at a time.
Simply mark everything that you would like to decode and then press
``:''. Here is an actual example taken from
alt.binaries.pictures.fractals:
- 9:[Mike In Indy] Kaboom! - kaboom.gif (0/1)
- 3078:[Mike In Indy] Kaboom! - kaboom.gif (1/1)
- 23:[Gumbycat ] lucifer.gif (0/7)
- 433:[Gumbycat ] lucifer.gif - for Halloween (5/7)
- 433:[Gumbycat ] lucifer.gif - for Halloween (3/7)
- 433:[Gumbycat ] lucifer.gif - for Halloween (4/7)
- 433:[Gumbycat ] lucifer.gif - for Halloween (6/7)
- 244:[Gumbycat ] lucifer.gif - for Halloween (7/7)
- 434:[Gumbycat ] lucifer.gif - for Halloween (1/7)
- 433:[Gumbycat ] lucifer.gif - for Halloween (2/7)
- 16:[Paul Carlson] My Halloween Fractal - devil.gif (0/1)
- 4310:[Paul Carlson] My Halloween Fractal - devil.gif (1/1)
As you can see, 3 files have been posted: kaboom.gif, lucifer.gif, and
devil.gif (At the time of this writing, it is Halloween weekend).
Both kaboom.gif and devel.gif are single part files whereas
lucifer.gif is a seven part series. Since lucifer.gif is displayed out
of order, care must be exercised when tagging it (slrn will sort
threads by subject and in this case the poster used an inconsistent
subject format -- usually, sorting will result in the correct order-
ing). Assuming that we wish to decode these three gif images, the
``#'' key will be used to tag them. The result of using the ``#'' key
is shown below:
- 9:[Mike In Indy] Kaboom! - kaboom.gif (0/1)
1- 3078:[Mike In Indy] Kaboom! - kaboom.gif (1/1)
- 23:[Gumbycat ] lucifer.gif (0/7)
6- 433:[Gumbycat ] lucifer.gif - for Halloween (5/7)
4- 433:[Gumbycat ] lucifer.gif - for Halloween (3/7)
5- 433:[Gumbycat ] lucifer.gif - for Halloween (4/7)
7- 433:[Gumbycat ] lucifer.gif - for Halloween (6/7)
8- 244:[Gumbycat ] lucifer.gif - for Halloween (7/7)
2- 434:[Gumbycat ] lucifer.gif - for Halloween (1/7)
3- 433:[Gumbycat ] lucifer.gif - for Halloween (2/7)
- 16:[Paul Carlson] My Halloween Fractal - devil.gif (0/1)
9- 4310:[Paul Carlson] My Halloween Fractal - devil.gif (1/1)
Now nine headers have been numerically tagged. To decode these, simply
press the ``:'' key. slrn will prompt for a filename to save the arti-
cles to and after saving, it will prompt to go ahead and decode. The
decoded files will be placed in the directory specified by the
``decode_directory'' variable that one can set in the slrnrc file. The
end result is that after tagging with the ``#'' key, one presses ``:''
and hits return twice. To un-tag articles, press ``ESC #''.
3.3.2. What are the advantages of using uudeview ?
slrn can be linked against the uudeview library; in this case, it will
use the library functions to decode uuencoded articles. Unlike slrn's
internal routines, uudeview is usually able to decode multipart
messages even if you did not tag them in the correct order. Another
advantage of (current versions of) uudeview is that it supports yEnc
(see next question for details). A disadvantage is that it needs a lot
more memory for decoding than slrn.
I got reports that uudeview decoded files for which slrn's code failed
(and vice versa), so if you run into problems with a particular binary
posting, it might be worth trying both - to allow this, there is the
config variable ``use_uudeview'' which can be set to zero in case you
have uudeview support compiled in, but want to use the builtin code
nonetheless.
To link against uudeview, you need to have the library installed on
your system; one way to get it is its homepage at
<http://www.fpx.de/fp/Software/UUDeview/>. You also need to pass
``--with-uu'' to the configure script when building slrn (on Unix-like
systems). If you did not compile your copy of slrn yourself, you can
still find out whether it has uudeview support by looking for a ``+''
sign in front of ``uudeview'' in the output of ``slrn --version''.
3.3.3. What about yEnc?
yEnc <http://www.yenc.org/> is a way to encode binaries that makes use
of 8bit characters, thus creating less overhead than the traditional
uuencode and base64 methods. For this reason, it has become
increasingly popular in certain binary groups. slrn does not have
native support for yEnc: one reason for this is that I do not need
this feature myself and so far, no patches for it have been
contributed; besides, yEnc is still under development and still has
some drawbacks which I'd like to see solved first. However, there
already are two ways to decode such messages:
Prior to 0.9.7.4, slrn would corrupt some yEnc-encoded postings (by
removing backspace-letter combinations traditionally used for
formatting text messages). As this code has now been removed, you can
pipe yEnc-encoded messages to external decoding programs from slrn; if
you want to decode them from within slrn, you can link against a
current version of uudeview, which now also supports yEnc (see
previous question for details on this). However, uudeview sometimes
generates ``no data found'' error messages when dealing with yEnc-
encoded postings (even if it does decode them correctly); if you want
to avoid them, you need at least version 0.9.8.0 of slrn, which simply
ignores them.
3.3.4. Can I put multipart binary postings into one thread?
That option has been added in slrn 0.9.7.1. To use it, you need to
define a macro that can compare two subjects and tell slrn whether or
not they should be put into the same thread. An implementation of such
a macro that should work for most cases and can serve as a starting
point for your own experiments can be found in macros/multipart.sl in
the source distribution.
3.4. How can I mark cross-posts as read in other groups as well?
For slrn to mark an article as read in more than one group, it needs
information about what groups the article was cross-posted to. This
information is provided by the ``Xref'' header. Not all servers
provide this header so this feature will not work with those servers.
Now suppose that your server provides the ``Xref'' header as one of
the headers of the article and at the same time, provides support for
the NOV database (via the ``XOVER'' NNTP command). In this case,
unless the server has been configured to provide the ``Xref'' header
as part of the NOV database, slrn will not be able to get the header
without accessing the article. Unfortunately, ``Xref'' is optional
under NOV so many systems do not automatically provide it even though
it is one of the recommended headers.
To summarize, make sure that your server provides the ``Xref'' header
AND if it supports NOV, make sure that the ``Xref'' header is part of
the NOV database.
3.5. Why doesn't the ``L'' command work as advertised?
Capital ``L'' lists all un-subscribed groups that slrn knows about.
slrn gets this information through one of three sources. It tries the
following in order and stops when one is successful:
1. From the server via the active file. It only does this if the line
``set read_active 1'' is in your slrnrc file. By default, slrn does
not read the active file.
2. By querying the server using the ``LIST ACTIVE'' NNTP command with
a wildmat argument. Please note that not all servers support this
kind of query.
3. From the groups listed in your newsrc file. In that case, the ``L''
command will only list unsubscribed groups that are present in this
file.
The last one always succeeds with results that may be less than
desirable. If you have a fast network connection to your server,
simply put
set read_active 1
in your slrnrc file. If you do not want slrn to read the active file
because your connection is slow, see whether or not your server sup-
ports ``LIST ACTIVE'' with a wildmat argument. As a last resort, try
to keep a full list of newsgroups in your newsrc file.
3.6. How do I cross-post an article?
There are two ways:
1. When slrn prompts for a newsgroup, simply specify a comma-separated
list of newsgroups. Do not use spaces!
2. Edit the ``Newsgroups'' header line when editing the message.
Again, the list of newsgroups must be comma separated with no
whitespace. Also make sure that you do not wrap this line.
Note: When crossposting, it is often polite to set a ``Followup-To''
header.
3.7. How do I use the mouse in an XTerm to copy/paste?
If mouse reporting is turned on (via the ``-m'' command line switch or
the ``mouse'' config variable), you need to hold down the shift key to
mark text for copy/paste.
3.8. How can I sort the list of newsgroups?
Depending on what exactly you want to do, there are different
possibilities: First of all, you can use the interactive
``move_group'' command (by default bound to ``m'') to move a single
newsgroup to a different position. Before doing this, I recommend you
display all subscribed groups (using ``toggle_hidden'', usually bound
to ``l'', if necessary) so you won't be surprised by the result.
However, if you want to sort all groups alphabetically, you don't have
to do this manually. slrn comes with a simple macro that does the job
for you (gsort.sl) and you can find a more sophisticated one on the
macro page of J.B. Nicholson-Owens.
On Unix-like systems, you can also use the sort command to sort your
/newsrc file (do this while slrn is not running). For example, if you
use .jnewsrc as your newsrc file:
sort .jnewsrc > .jnewsrc-sorted
mv .jnewsrc-sorted .jnewsrc
Note: Simply doing sort -o .jnewsrc .jnewsrc may or may not work
depending on your version of sort.
4. Scoring
4.1. What is scoring?
Scoring is a method to give articles a score based on user-defined
rules. The idea behind this is to give articles with a high score a
higher priority while articles with a low score (less than zero) are
marked as read.
When entering a group, all articles are given a score of ``0''. Then
the list of scoring rules, the ``scorefile'', is applied to each
article. The scorefile might give articles from ``John Doe'' a higher
score, while articles with the word ``Gnus'' in their subjects get a
negative score. More than one rule may apply cumulatively to the same
article.
In the end, threads with high-score articles appear at the top of your
screen and can be read before other, possibly less interesting,
articles.
4.2. How can I killfile with slrn ?
slrn has no killfile, but the same effect can be achieved with its
scorefile. Assigning a particularly low score will do the trick:
[news.software.readers]
Score: =-9999 % I'm not interested in articles on gnus
Subject: gnus
In this example, all articles in news.software.readers that have the
substring ``gnus'' in their Subject lines are assigned a negative
score. The equals sign before the score value tells slrn to assign the
score -9999 and to skip all other tests for the affected article; oth-
erwise, the score would be added to the score value of all previous
matching rules and subsequent rules could increase the score again.
If the score of an article is equal to or less than kill_score (which
happens to be -9999 if you didn't change it), the article does not
even get displayed, so the above scoring rule effectively killfiles
all articles that have ``gnus'' in their subject line.
4.3. How do I set up slrn to read a scorefile?
In order for slrn to read a scorefile, it must know the name of the
scorefile. This is specified by putting the appropriate line in your
slrnrc file. For example, if the name of the scorefile is ``Score''
and it is located in the ``News'' subdirectory, then add the line:
set scorefile "News/Score"
to your slrnrc file.
4.4. What is the format of an slrn scorefile?
The format of slrn's scorefiles is described in the file score.txt
which is part of the documentation that comes with the source package.
That file also contains some examples.
4.5. Where can I get a full description of slrn 's regular expres-
sions?
slrn makes use of the regexp engine built into the S-Lang programmer's
library. Thus, a full description of the regexp syntax that can be
used in slrn's scorefiles can be found in the documentation of S-Lang.
In version 2.1, this is chapter 22 of the file slang.txt (also
available online). Please note that in slrn, the default is \C (case
insensitive), not \c.
4.6. How can I test whether my regular expressions do what I expect
them to do?
The grep-like utility rgrep that comes with the editor jed uses the
same regexp engine as slrn, so you can use it. Alternatively, Matthias
Friedrich wrote a small program that can be used to make such tests.
He posted the source to de.comm.software.newsreader (Message-ID is
<slrn9u07di.93n.matt@endeavour.mafr.de>); you can get the article from
Google Groups.
4.7. Is there an easy way to watch or kill threads / authors?
Editing the scorefile and adding entries manually can become quite
time-consuming if you want to score on threads or authors regularly.
The interactive command create_score (default binding is ``K'' in
article mode) makes it easy to create a new scorefile entry based on
the currently selected article.
If you want to watch or kill subthreads via a single keystroke, you
may like the ``one-key scoring macro'' that is available from the
macro section of the slrn website:
<http://slrn.sourceforge.net/macros.html>.
4.8. Do I need to remove expired entries from my scorefile manually?
Using the ``Expires:'' keyword, you can specify that a certain scoring
rule should only be valid until a given date. After that, slrn ignores
it and will warn you on startup, but does not remove the entry from
the scorefile. If you often use this keyword, expired entries will
clutter up your scorefile and make it difficult to read.
Fortunately, Felix Schueller wrote a perl script called cleanscore
that can remove expired entries from your scorefile automatically for
you. On Unix-like systems, it can even be called as a cron job, so you
don't need to worry about expired entries at all. cleanscore is
included in the contrib directory of slrn's source distribution and
can also be downloaded from the slrn website:
<http://slrn.sourceforge.net/downloads/>.
4.9. How do I score on a specific ``Subject'' line, e.g., ``test''
messages?
The most simple version is
Score: -9999
Subject: test
This matches all ``Subject'' lines which contain the substring
``test'' case insensitively. The above matches ``test'', ``TEST'',
``teSt'',``Kerneltest'', ``protesting'', etc.
In order to limit this to all ``Subject'' lines containing the word
``test'' rather than the substring use this:
Score: -9999
Subject: \<test\>
The following will score articles whose ``Subject'' line is exactly
``test'':
Score: -9999
Subject: ^test$
Finally, a score entry that filters all test-postings to non-test
groups:
[~*.test]
Score: -9999
Subject: ^test$
4.10. How do I score articles from a specific person?
The following rule
Score: -9999
From: name@who\.knows\.where
assigns a score of -9999 to the person with the email address
``name@who.knows.where''.
4.11. How do I score articles from a specific site?
Score: -9999
From: @who\.knows\.where
will give a score of -9999 to a ``From'' line that contains
``@who.knows.where''. An alternative would be to score on the Message-
ID header field:
Score: -9999
Message-Id: @who\.knows\.where>
4.12. How do I score followups?
We're assuming that a followup contains a ``Subject'' line starting
with ``Re:'' and/or has a ``References'' header line. To assign a
score of -9999 to such an article use:
Score:: -9999
Subject: ^Re:
References: .
Note the use of the double colon following the score keyword. This
indicates that the score is an OR type expression. This means that the
above score will pick out articles with subjects that begin with
``Re:'' OR have a ``References'' line (OR both).
To score articles that have both a ``Subject'' line starting with
``Re:'' and a ``References'' header line, use the single colon form:
Score: -9999
Subject: ^Re:
References: .
Single colon forms are AND expressions.
4.13. Is it possible to score followups to my own postings?
Scoring followups to your own postings is quite easy if slrn generates
the Message-IDs of your articles (see the question on ``generating
Message-IDs'' for details). In this case, all you have to do is to
look for username@your.hosts.fqdn in the ``References'' header line.
Of course, you need to replace username and your.hosts.fqdn with the
strings that are correct for your setup - if in doubt, look at the
Message-ID of one of your own articles to find out.
Score: 1000
References: username@your\.hosts\.fqdn>
Note that this will catch articles that reference one of your articles
directly or indirectly (e.g. a followup to a followup to your arti-
cle). If you only want to score direct followups, make sure to check
the last ID in the ``References'' header line only (note the trailing
dollar sign):
Score: 1000
References: username@your\.hosts\.fqdn>$
4.14. How do I kill cross-posts from a specific group?
You have two choices: either use the ``Xref'' header line or the
``Newsgroups'' header line. If possible, you should avoid the
``Newsgroups'' line in your scorefiles, as it is usually not included
in the NOV (news overview) data, so retrieving it requires extra
server communication that may slow down scoring (and thus entering
groups) significantly. So if your server provides ``Xref'' header
lines, use them.
Assume that you want to score any article that was cross-posted to an
``astrology'' newsgroup. Then use one of the following forms:
Score: -9999
Xref: astrology
Score: -9999
Newsgroups: astrology
To say it again, the latter version is usually much slower, and should
be avoided whenever the necessary pattern is available from ``Xref''.
4.15. How do I score all cross-posts?
Like the previous answer you have two choices: to use the ``Xref''
line (preferred) or the ``Newsgroups'' line. The first choice uses the
fact that a cross-posted article will have two colons in the ``Xref''
header field. So, use a score of the form:
Score: -9999
Xref: :.*:
If you do not have the option of using the ``Xref'' line, use:
Score: -9999
Newsgroups: ,
However, you may want to tolerate cross-posts if a ``Followup-To''
header line is set. The following rule scores articles that are cross-
posted into many groups (e.g. more than 2) and have no ``Followup-To''
line (note that this rule is ``expensive'', as usually neither ``News-
groups'' nor ``Followup-To'' are included in the NOV data).
Score: -9999
Newsgroups: ,.*,
~Followup-To: .
4.16. How do I make it so I read only articles from a specific per-
son?
The answer is simple: kill articles by everyone else. Assume that you
want to read only articles by someone whose ``From'' line contains:
``someone@i.like''. Then use a score of the form:
Score: -9999
~From: someone@i\.like
Note the use of the NOT indicator (~).
4.17. How do I score articles that have no ``References'' line but
whose ``Subject'' line starts with ``Re:''?
Define a score based on the ``References'' line and the ``Subject''
line, e.g.,
Score: -9999
~References: .
Subject: ^Re:
Here the ``References'' pattern simply says that the article must not
have a ``References'' line. The ``Subject'' pattern uses a regular
expression that says ``Re:'' must occur at the beginning of the ``Sub-
ject''. This will match the strings ``Re:'', ``re:'', ``rE:'', and
``RE:''. To match only ``Re:'', use the regular expression
Subject: ^\cRe:
Here, ``\c'' turns on case-sensitivity. To turn it off (which is the
default), use ``\C'', e.g.:
Subject: ^\cRe:.*\Ctest
4.18. How do I score subjects that contain only uppercase characters?
Use something like:
Score: -9999
~Subject: \c[a-z]
This will assign a score of -9999 to any article whose ``Subject''
header line does not contain a lowercase character. If you also want
to kill followups to such articles use:
Score: -9999
Subject: ^Re: \c[^a-z]*$
~Subject: ^Re: *
The last one says that the article will be killed if the ``Subject''
satisfies the two conditions:
1. It begins with ``Re: '' and the rest of the line does not contain a
lowercase character.
2. It does not begin with ``Re:'', followed by blanks only.
The last constraint is necessary to avoid killing articles that are
followups to articles with an empty ``Subject'' line. Of course, one
might want to kill such articles as well.
4.19. How can I filter people without a real name?
Some people dislike posters who don't post under their full real name.
Of course, slrn has no way of knowing whether a given name is a real
name or not; however, a name that does not contain a space is most
probably not a full real name, so a commonly used rule is to check for
the ``From'' header line to contain at least two spaces (one inside
the name and one between the name and the address), separated by non-
blank characters:
[*]
Score: -9999
~From: [ ]+[^ ]+[ ]+
5. slrnpull
5.1. What is slrnpull ?
slrnpull is a program that pulls a small newsfeed from an NNTP server
and saves it to a local spool. slrn can subsequently read from this
spool without needing to contact the server, so you can use both
programs together to read your news offline (e.g. because you pay for
your Internet connection by the second).
Since version 0.9.8.0, slrnpull optionally allows you to pull only the
article headers first, mark those you are interested in for download
inside of slrn and get only the marked article bodies later. This can
reduce download cost and disk space for groups in which you only want
to read a small percentage of all articles. If you are interested in
this functionality, please read slrnpull/README.offline.
5.2. Why can't I post when using slrnpull ?
In order to post an article via slrnpull, slrn needs to place the
article in slrnpull's out.going directory. Two things are necessary
for this to happen:
First of all, slrn must know that you are using the slrnpull out.going
directory for posts. Make sure the line
set use_slrnpull 1
is in your slrnrc file. This indicates to slrn that the news spool is
an slrnpull news spool.
The second point is, you must have write permission to the out.going
directory in order for slrn to place your article in that directory.
The permissions may be changed via the Unix command:
chmod ugo+rwxt out.going
Do not put this in your slrnrc file!
5.3. How do I get a full list of newsgroups?
You will have to go online for that. Run slrn as follows:
slrn --nntp -h YOUR.NEWS.SERVER -a -f groups.dat --create
This will start slrn and download the groups and put them in the file
groups.dat. Before actually doing this, modify your slrnrc file to
make sure write_newsrc_flags has its default setting
set write_newsrc_flags 0
so that all groups will be written out to groups.dat.
6. I found a bug in slrn !!!
First, please check whether the bug you discovered is already
discussed here:
6.1. slrn hangs infinitely when I press the delete key
This is a known bug; however, it's not a problem in slrn, so I cannot
fix it. slrn uses a library called S-Lang for its screen input/output
and some Linux distributions (including RedHat) patch that library to
get Unicode support. Unfortunately, the patch they use makes S-Lang
unstable.
To get rid of this program, you can get the vanilla S-Lang sources
from the public FTP space <ftp://space.mit.edu/pub/davis/slang> of its
author, John E. Davis and compile them yourself.
However, simply uninstalling the S-Lang package that came with your
distribution and replacing it with your own version might break
dependencies in your system's package management - even if you build
your own RPM package: Some packages explicitly depend on the patched
version!
For this reason, you may have to install the unpatched version in a
different directory than the patched one that came with your distro,
e.g. in /usr/local/. To make sure slrn uses the right one, point the
configure script to it using --with-slang-library=/path/to/lib and
--with-slang-includes=/path/to/includes. Additionally, you either need
to specify --enable-hardcode-libs or point the environment variable
LD_LIBRARY_PATH to the library path when running slrn.
If you experience such a problem, please also report it as a bug to
your distributor, so we will hopefully see no more broken S-Lang
packages in the future. For RedHat, I got a report that it already got
fixed in version 8.
Also, slang 2.0 includes Unicode support, so these kinds of problems
are hopefully gone for good.
6.2. Non US-ASCII characters are displayed incorrectly.
Most such problems should disappear after upgrading to current
versions of both slrn (0.9.9 or higher) and the S-Lang library (2.1 or
higher).
6.3. The bug I found is not listed here. What do I do now?
The bug might already be fixed, so please consider upgrading to the
latest release of slrn or at least check whether the problem is listed
in the current changes file.
If you find that the bug is still unreported, send a bug report either
to John E. Davis <davis@space.mit.edu> or to the slrn-user mailing
list.
Please give a detailed description of what you did, how you expected
slrn to behave and what slrn did instead; also include the exact error
messages (in case you got any) and information that might be needed to
reproduce the bug or that might make it easier to find it, such as
o Which actions make the bug appear
o The output of ``slrn --version''
o If a certain article caused the problem, the Message-ID of that
article (or even the article itself, if it is not too long)
o Details of your configuration that might be relevant, like config
files (after deleting personal data like passwords). The output of
``slrn --show-config'' would be especially useful here
6.3.1. Some additional notes for the advanced user
If you have an idea what piece of code is causing the bug and how to
fix it, comments on this (or even a patch) are of course welcome, too.
If you think the problem might be on the server side, the command line
switch --debug can be used to log the dialog with the server to a
file. Note that the resulting file may become quite large and may
contain your password! Keep this in mind when attaching it to bug
reports: Delete personal data, shorten it to the significant portion
(if you have some basic knowledge about NNTP) or use bzip2 and ask
before sending large session transcripts.
If slrn crashes (i.e. gets terminated because of a segmentation
fault), it may also be helpful if you can provide a stack backtrace.
If you're willing to do this, try the following steps to get one
(assuming you use a Unix-like environment and have script and gdb
installed):
At the command line, type:
script
gdb slrn
Then, at the prompt of gdb, type:
run [command line arguments here]
[do whatever leads to the crash here]
bt
quit
Finally, type exit to leave the shell opened by script. This should
have lead to a file called typescript; please include the portion of
it that starts with (gdb) bt in your bug report.
7. About this document
The latest version of this FAQ is available from the slrn
documentation page : <http://slrn.sourceforge.net/documentation.html>.
Suggestions for improvements are always welcome.
7.1. History
2008-07-20: Revision 1.3
Updated, mostly by TW and PJR, for changes in version 0.9.9.
2004-10-04: Revision 1.2
Added a note on the version numbering.
2003-08-25: Revision 1.1
Minor corrections before the release of 0.9.8.0.
2003-08-19: Revision 1.0
The first version of this FAQ documents slrn 0.9.8.0. It merges
the three files FAQ, SCORE_FAQ and slrnpull/FAQ written by John
E. Davis. Matthias Friedrich and Thomas Schultz updated the
existing entries and wrote some new ones.
|