Last-Modified: Dec 11, 1999 This is the slrn FAQ. Send comments, suggestions, or corrections to davis@space.mit.edu. slrn is a newsreader that runs under Unix, VMS, OS/2, Win32, and BeOS operating systems. The latest version of slrn is available via anonymous ftp from . It is also available from: ftp://ftp.uni-stuttgart.de/pub/unix/misc/slang/ ftp://ftp.fu-berlin.de/pub/unix/news/slrn/ ftp://ftp.ntua.gr/pub/lang/slang/ More information about slrn is available on the World Wide Web via . If you are viewing this FAQ with slrn, press `g' to go from one subject to the next. Questions addressed: 0. Where can I find more information about slrn? 1. Instead of drawing lines for the thread tree, I see `mq'. Why? 2. I do not see a thread tree. Why? 3. When I mark an article as read, why aren't cross-posts marked as read also? 4. What is a prefix argument? 5. How do I re-read articles in a newsgroup that I have already read? 6. Can I use the mouse with slrn? 7. How do I use the mouse in an Xterm to cut/paste? 8. What is the easiest way to uudecode articles? 9. How do I cross-post an article? 10. How do I find the previously read articles of a thread? 11. Why doesn't the `L' command work as advertised? 12. Where can I find more information about slrn? 13. How can I set my `From' line for my posts? 14. Why doesn't set_author_display work? Answers: ------------------------------ Subject: 0. Where can I find more information about slrn? Although there is a man page, it probably does not cover the latest slrn features. A better source of information about new features may be found in the `changes.txt' file that is distributed with slrn. Also, all .slrnrc options are described in the example `slrn.rc' file that is distributed with slrn. More help may also be available from http://space.mit.edu/%7Edavis/slrn.html In particular, this web page contains links to other sources of slrn information. You can also participate in the development of slrn by improving its documentation. If you would like to submit some documentation for slrn, please use a text-only format. At some point, I plan to put all of slrn's documentation in SGML format and then process the SGML document to produce man pages, html pages, TeX, RTF, etc... Finally, if you create additional documentation for slrn and make it available via the WWW, please let me know about it and I will create a link to your web page. ------------------------------ Subject: 1. Instead of drawing lines for the thread tree, I see `mq'. Why? There are a couple of reasons for this. The simplest 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. Another reason for this is that your terminfo file may not be set up properly. The obvious solution is fix the terminfo file. However, this may not be possible without the correct tools (untic and tic) and many systems do not have those tools installed. Although slang is a terminfo based system, there is another solution based on termcap if you are using version 0.99.18 of slang or later. First of all, get a termcap entry that contains the appropriate capabilities for an alternate character set, that is, the termcap `ac', `ae', `as', and possibly `eA' capabilities. Let's call this file `my_termcap'. Then do: setenv TERMCAP `pwd`/my_termcap eval `tset -s terminal-name` (Replace `terminal-name' by your terminal name). `tset' will then read and parse the my_termcap file and set the TERMCAP variable appropriately. You will want to put this in your .login file. ------------------------------ Subject: 2. I do not see a thread tree. Why? See the answer to the previous question. ------------------------------ Subject: 3. When I mark an article as read, why aren't cross-posts marked as read also? 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. ------------------------------ Subject: 4. What is a prefix argument? Many key-bindings accept prefix arguments. A prefix argument is an integer that is generated prior to a key sequence and is used as a way of controlling the behavior the key sequence. It is generated by pressing the ESC key and then pressing the keys that correspond to the integer. 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. Some other functions may simply use it as a way of slightly modifying the behavior of the function. For example, if a prefix argument is used as a modifier for the `followup' function, the original article's headers will be included in the followup message. Without a prefix argument, the headers will not be included in followups. ------------------------------ Subject: 5. How do I re-read articles in a newsgroup that I have already read? When entering a newsgroup, simply use a `prefix argument'. This means, press ESC and then a number followed by the key sequence that you use to enter the newsgroup. For example, if you use the RETURN key, then press `ESC 1 RETURN'. ------------------------------ Subject: 6. Can I use the mouse with slrn? If slrn is run in an Xterm or on a win32 system, it can use the mouse. To enable it, add the line set mouse 1 to your .slrnrc file. This will cause slrn to enable mouse reporting on systems that support it. If run on Unix, the TERM environment variable is used to determine whether or not mouse support is available. To force the mouse to be used, startup slrn using the -m option, e.g., `slrn -m'. The actions defined for the mouse are specified in the following table: Group Mode: Object Button Action ------------------------------------------------ Top Status line any specified by button label Group Name any select group Bottom Status line middle toggle display of unread groups Bottom Status line left page-down Bottom Status line right page-up Article Mode: Object Button Action ------------------------------------------------ Top status line any specified by button label Header status line left header page down right header page up middle hide article window Article status line left next unread right previous unread middle toggle quotes Header item any select item Article window left article page down right article page up middle hide article window ------------------------------ Subject: 7. How do I use the mouse in an Xterm to cut/paste? The easiest way is to hold down the shift key when using the mouse for cut/paste operations. The other way is to simply get an slrn prompt, e.g., search for something then after cut/paste abort the search. ------------------------------ Subject: 8. What is the easiest way to 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. There is no need to uudecode one article at a time. Simply mark everything that you would like to decode 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 devel.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 ordering). 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 9 headers have been numerically tagged. To decode these, simply press the `:' key. slrn will prompt for a filename to save the articles 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 #'. ------------------------------ Subject: 9. 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 Newsgroup 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. Helpful hint: If you forget the name of a newsgroup while inside the editor, suspend the editor with Ctrl-Z and use more/less/most to view your .newsrc file. If your editor is sophisticated enough, you can really simplify this process by using the `editor_command' keyword in your .slrnrc file. For example, if you use jed as your editor, you can set your editor command to something like: editor_command "jed ~/.jnewsrc -2 %s -g %d" This says to load the file ~/.jnewsrc into the editor, split the window, then load the file that slrn wants to edit in one of the windows and then goto a specified line number. ------------------------------ Subject: 10. How do I re-read previously read articles of a thread? `ESC p' will attempt to find the parent as specified by the references header of the current article querying the server if necessary. To find the children of the current article (articles that reference it), use `ESC Ctrl-P'. Finally, to reconstruct the entire tree (all parents and all children), use `ESC 1 ESC p'. ------------------------------ Subject: 11. 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: a. 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. b. By querying the server using the XGTITLE nntp command. This requires your server to support this command and the line `set use_xgtitle 1' must be in your .slrnrc file. c. From the groups listed in your newsrc file. The `L' command will only list unsubscribed groups that are present in this file. The last one (c) 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 your connection is slow via something like ppp and you do not want slrn to read the active file, then see whether or not your server supports XGTITLE command. If it does, allow slrn to use it via set use_xgtitle 1 As a last resort, try to keep a full list of newsgroups in your newsrc file. ------------------------------ Subject: 12. Where can I find more information about slrn? The newsgroup news.software.readers frequently contains articles that pertain to slrn. Many knowledgeable slrn users actively participate in the newsgroup making the group a great slrn resource. There are several web pages devoted to slrn. Just follow the links off of the slrn home page at http://space.mit.edu/%7Edavis/slrn.html. ------------------------------ Subject: 13. How can I set my `From' line for my posts? Use the .slrnrc settings: set hostname "YOUR.HOST.NAME" set username "USERNAME" set realname "YOUR REAL NAME" This will cause slrn to use a From line of the form: From: USERNAME@YOUR.HOST.NAME (YOUR REAL NAME) Finally, if a slang function called `make_from_string_hook' exists, then it will be used to generate the `From' header, e.g., define make_from_string_hook () { return "W. J. Clinton " } ------------------------------ Subject: 14. Why doesn't set_author_display work? This variable is nolonger meaningful and is ignored by recent versions of slrn. Instead, the user is encouraged to use the much more flexible interface provided by `header_display_format' variable.