So you just got my modified Snews, heh?

If you are a Demon Internet subscriber, I assume that you have already installed and used Demon's Snews 1.30 (or 1.31) and I'm trying to fill in the remaining gaps.

If you are not a Demon Internet subscriber, but you have already installed and used some version of Snews (either Demon's or anybody else's), I recommend you get in touch with me to discuss this. There aren't so many people interested in DOS programs these days that I run any risk of being flooded with contacts.

Is this the latest version of this document?

I wrote the first version of it in December 1998, but if it's successful I may continue updating it regularly, especially if I continue making changes to Snews.

It will be published in two ways.

1. On my web site, where you can read it using a browser. If you don't have a web browser, I recommend using telnet to contact Lynx and browse text-only; there's no graphics in this file, so you're not losing anything. I have no automatic mechanism for uploading this file to my web site, so it is not necessarily the latest version. http://www.johnwash.co.uk/snews/readme.htm

2. Within zip files of Snews executables (snews.zip) and developer source (snewssrc.zip). These are also available on my web site, in subdirectories of http://www.johnwash.co.uk/snews/ The subdirectories are named according to date and minimum required CPU type (2='286, 3='386, etc). Unless you are a C programmer, or have a free Internet connection, don't bother to download the source. The zip files are created automatically, so the latest snews.zip contains the latest version of this file.

How do I install this version of Snews?

Within snews.zip you'll find an snews.exe. Search your hard disk to find the snews.exe that you're normally running, and overwrite it with the new version. You do take back-ups, don't you? Being biased, I can't imagine you'll ever want to return to your previous version, but you may think differently. :-)

Put in the same directory the snews.fnt file that you find in snews.zip. This is not essential. It is only needed for a feature that changes the video character generator to support several fonts (e.g. accented characters). In particular, if you're blind and using a speech synthesiser, I believe there is no point in you having this font file. Also put in the same directory the snews.hlp file. This is needed so that the F1 key gives help text (previously the help was within the .exe).

That's it. You have completed a successful upgrade.

What features will I immediately notice?

That depends on what features you already use.

When reading articles, paging down gives a one line overlap instead of the two line overlap that many people dislike.

Try F3. Some of the toggles that formerly were on/off are now 3-way toggles, adding "Once". This means the next time you use the value it will be on, but will then flip back to off. I find this especially useful for the rarely used "header quoting" toggle. If you mail something to a sysadmin, you probably want to include the headers, but it's so easy to forget to turn the option off again afterwards. This way it's turned off afterwards even if you forget.

While you're trying F3, you'll also notice there's a new option to include message headers when you're searching. This is particularly handy if you're searching for a date or an email address.

Following up to an article gives accurate prompts (previously they could be misleading or wrong, with certain combinations of header lines).

If you change your From: line (e.g. change jane@anywhere.com to john@anywhere.com) your .wrk file will be correctly generated.

Articles marked for deletion are displayed with a 'd' in the top right of the screen. The 'D' (delete) and 'u'/'U' (undelete) commands immediately update this marker on the screen.

The S/A/E prompt (the prompt when editing a reply) has been extended. Press 'M' to attach a MIME compatible attachment. You will be prompted for a filename. This uses the base64 encoding that any half-way decent modern software will decode.

Dates are "Year 2000 compatible". Years are written with 4 digits instead of 2. I do not believe there are any Y2K bugs in this version of Snews.

Aliases are handled better, and multiple aliases (separated by comma and/or spaces) are accepted.

The P/E/A prompt is no longer fussy about upper/lower case.

The 'D' command (added in Demon's version 1.30) now skips to the next unread article. If you don't like this, add delete_skip=0 to your .rc file.

Better support for Mail2Snz users. If you're not a Mail2Snz user, this won't interest you!

Various bug fixes, especially those curing resource leakages, such as memory and file handles. In some cases, leaving files open lead to strange behaviour, e.g. 'R', press return to abandon the command, then 'r', led to a file save error in your editor.

What features can I discover?

Threading by subject is not the only way now. Press F4 in the newsgroups display, enter a newsgroup, and now the articles are displayed in chronological order. If you press F4 twice before entering a newsgroup, the display is in reverse chronological order. That's latest arrivals at the top.

ctrl+S applies the 'S' command to this article and all the articles remaining in the thread. This is of particular use if you take a newsgroup as headers only, and fetch articles with a utility such as make_get by processing the extracts.txt file.

ctrl+D and ctrl+U apply the 'D' or 'U' command to this article and all the articles remaining in the thread. This is a reuse of keys formerly allocated for other purposes.

What features can I add by modifying my .rc file?

show_hdr 1

Instead of displaying all or none of the header, this is my preferred way of seeing the header, a kind of "management by exception". The header display starts at the first "unusual" line. You can still scroll up as well as down, so you're not barred from seeing everything, but I find this serves to draw my attention to things I might otherwise miss.

topper = filename

This is just like a .sig file, but it's included at the beginning of your message. I don't often set one up, but I find it handy for a few days when I want all my mail to include something like:

"Hi, I've been on holiday the past 6 months, so I'm sorry you've not had a quick reply"

Furthermore, you can have such files on a newsgroup by newsgroup basis. Before searching for a .sig/topper/header file in the .rc description, it looks for such a file in the newsbase. Suppose you're keen on widgets, and your alt.widgets newsgroup is stored in files xxxxxxxx and xxxxxxxx.idx. Create a file xxxxxxxx.sig containing "I'm a widget fan!" and this will be appended to all your postings and replies for that group.

quote_initials 1

I don't recommend this. But I like it. When replying it puts initials in front of the quoted material, however some people jump up and down and say it's non-standard.

expiry_display 1

Shows an extra column of figures in the newsgroup display, the expiry specified in your expire.dat file.

cursor_mod = x

'x' is a digit that controls how the cursor is displayed. This is of particular use to blind and partially sighted users.

           cursor_mod=X in .rc to invoke, where X is
                        1 for hardware cursor on line
                        2 for 2 big blobs instead of "->"
                        3 for 2 big blobs and h/w cursor
                        4, 5  same as 0, 1
                        6 for 1 big blob instead of "->"
                        7 for 1 big blob and h/w cursor

del_display = 1

Shows which threads are deleted (D) or partially so (d).

search_all 1

Sets search-headers toggle on at start-up.

mailhost = post.demon.co.uk

Use a smart mail host if a message is being sent to more than one destination. This results in less use of your disk space and less online time because a single message is sent instead of one for each destination site. Strongly recommended.

direct_post 1

Generation of files for direct posting to an NNTP server is possible. A modified version of ka9q is needed. For further details, read mods.h (also included in snews.zip) and look for a suitable ka9q (aka YAN) on http://www.isis.ukgateway.net/

mdecoder = udecoder = bdecoder =

Specify external decoders for file attachments. Further details in mods.h (included in snews.zip).

colour textt cccc

Article top/header text colour cccc.

colour textq cccc

Article quoted text colour cccc.

colour texts cccc

Article sig/footer text colour cccc.

news_from =

Use this if you prefer to post to Usenet from a different address, for example to make it easier to detect incoming junk mail. I use news_from=john$ because some of the junk mail harvesters appear to ignore names with unusual characters.

news_replyto =

Similar to news_from, but it needs the full name, not just the bit before the '@'.

delete_skip = 0

The default is '1'. This affects whether or not the 'D' command skips to the next unread article.

maillog=userid

This is likely to be of interest only to Mail2Snz users who are using multiple names, e.g. for handling mailing lists. This variant of the standard 'maillog' line will cause outgoing mail to be routed to a .txt file derived from the &mail.. newsgroup name. E.g. a reply to a message in &mail.uuuu will be stored in uuuu.txt.

Note that underscores in .rc keywords are not significant and are recommended to increase readability.

show_eof =

Displays the indicated string at the end of each message, giving a fast visual indication that you've reached the end of the current article, and that TAB will take you to a new one.

show_eof = -

..or alternatively specify a single character to have this displayed as a "ruler" across the bottom of each message. The minus-sign and underscore characters are good for this purpose, and ASCII code 196 (hex C4) is even better.

tab_thread = 1

Normally pressing TAB at the thread level takes you to the next thread with unread articles, and jumps to the first of those articles. Set tab_thread to 1 if instead you'd prefer the initial TAB to remain at the thread level, with a 2nd TAB required to actually enter the thread. This allows you to use K, down-arrow or similar to skip over and ignore the thread based on it's Subject heading only - there's no need to see even a single page of any of it's articles.

Latin1 =

You may well come across articles which contain "odd", apparently garbage characters - particularly Greek letters. In such cases, it's often the case that the sender has used a different character set (font) than the standard DOS one. One of the most common (at least round these parts of the world) is ISO-8859-1 (otherwise known as Latin1), which covers most of Western Europe.

You may simply press Shift-F10 to manually enable translation mode, which has three settings :-

    us-ascii    - the normal mode
    iso-8859-1
    windows-1252 (the above, plus additional characters)

Leaving this setting out, or setting to '0' only provides this manual translation feature. Set it to '1' to enable auto-translation where the message headers indicate such a font has been used. Alternatively set it to '2' to always use windows-1252 in preference to 8859-1 (as in practice, many Windows based programs use this, despite signalling 8859-1 in their headers)

------------------------------------------------- FineTuning via the GET and KILL file interface.

There is now a mechanism for adding and deleting entries from these two files (which strictly speaking are the province of KA9Q). The KILL file controls which articles will or won't be downloaded in full. Such messages appear as "Header-Only" articles, ones which appear to have no body (text) associated with them. An entry in the GET file can cause such articles to be downloaded in full during a later online session.

Note that instead of the usual indication of the current line number of the article...
x / N lines
header-only articles instead display...
(nnnnn lines)
which indicates the size of the article, based on it's Lines: header.

The following commands are available :-

at the article level...
 g  'get' the current message, i.e. write it's msg-id to the GET file
 G  get rest of thread, i.e. the current & following articles
^G  same as G, but also marks thread for subsequent retrieval
    i.e. "!Subject: Re: " written to killfile
 k  kill (i.e. mark as read) current message and move on (same as 'n')
 K  kill (i.e. mark as read) entire thread
^K  kill entire thread and mark for subsequent ignoring
    i.e. "Subject: Re: " written to killfile
^A  kill or keep current author's articles
    i.e. "From: 
" or "!From:
" to killfile \ similar to TAB - pages down through an article, and when end is reached will jump to the next unread, un-killed article. (i.e. the next non header-only, with-body article) | as for '\', but ignores read/unread status. at the thread level... g/G and ^G work as above, but operate on the entire thread K and ^K work as above, also operating on the entire thread \ and | find the next thread containing un-killed articles at the group level... ^K killfile the selected group, marking it for header-only downloads. i.e. "Newsgroups: **" to killfile

In non-expert mode, most of the above keys use a "yes/no/undo" style prompt - the latter allowing the removal of previous get/kill requests. The kill file option also allows for the "expiry" of rules, allowing the duration for which the rule operates to be set (default is 7 days), after which time the rule is automatically removed. The default for this can be changed via an entry in the .rc file...

e.g. killfile_duration = 30

Note that an external utility, "snzTune" is used to actually make the changes to the GET and KILL files - this would normally be called via a batch file immediately after Snews has been run.

For details on this, see :- http://www.roborat.demon.co.uk/programs/snews.htm