home *** CD-ROM | disk | FTP | other *** search
-
- Simple NEWS 1.90α
- =================
-
- SNEWS 1.0 (to version 1.12) was written by John McCombs
-
- SNEWS 1.90 (alpha release without source) was re-coded by:
- Michael Studte - michael@izumi.DIALix.oz.au, and
- John Dennis - john@miyu.DIALix.oz.au
-
- All bug reports should be sent to either John Dennis or me (Michael
- Studte).
-
- INTRODUCTION TO VERSION 1.90α
- =============================
-
- This is an alpha release of SNEWS version 1.90. Snews is currently
- under upgrading to add several features. This release is purely for
- those people currently using version 1.12 of SNews and who are having
- problems with a few of the bugs (most notably the "out of memory" bug
- when exiting threads using <ESC>).
-
- John Dennis and I are currently re-writing several large sections of
- the SNEWS source, and we hope to get all the suggestions people make
- included in the next full beta. Please note that John and I do not do
- this professionally, or for profit, we simply do it to keep up our
- programming practice and we only get to do it when we have a spare 15
- minutes in the odd day.
-
- Note: This document is basically the SNEWS 1.0 documentation. All new
- additions to Snews as of version 1.90, as documented, are denoted by an
- asterisk "*".
-
- Please see the section at the end of this file "SNEWS 1.90
- ADDITIONS" for specific information that differs from previous
- versions of SNEWS.
-
- INTRODUCTION
- ============
-
- 'Simple NEWS' is an news add-on for UUPC. It is intended for use as a
- leaf node and offers:
-
- - Threaded news reading. This allows you to be much more
- selective about what you read, enabling you to cover many more
- newsgroups.
- * Using the right and left arrow keys, threads can be traversed
- forward and backwards now.
-
- - That when a cross-posted article is read the news-reader marks all
- the other instances of the article as read too.
-
- - Separate rc files are kept for each user, which record the individual
- articles that you have seen. This is in contrast to some readers
- which simply record the highest article number read. The user is
- defined, as for mail users, in the file pointed to by the UUPCUSRRC
- environment variable.
- * As of SNEWS 1.90α, all personal USER variables are kept in
- the SNEWS.RC file. The program no longer uses UUPC's
- PERSONAL.RC file. The UUPC.RC file is still used by Snews for
- news posting compatibility.
-
- - Usual range of response facilities: follow-up news, reply by mail,
- forward by mail, save article/thread to disk.
- * A new feature is the EXTRACT function (key "w"). It saves
- articles in the UUPC mailbox format, with a header of 20
- hex01's. Thus, extracted news articles can be read later at the
- user's convenience.
- NOTE: Currently these extracted msgs are saves to the file
- "\EXTRACT.NWS" on the current disk drive. In the future
- release, the name and location of this file can be set in the
- SNEWS.RC file.
-
- - Articles are now stored in one file per newsgroup, rather than
- one file per article. This results in an enormous saving (up to 3:1)
- in disk space on disks with with a default cluster size of 4kb per
- cluster.
-
- - Processing of batched/compressed news. Unbatched and uncompressed
- are not processed. Control messages are not processed.
-
- - Posting - Posts are unbatched and uncompressed. You can only post
- to your 'mailserv'. You cannot feed another site. Posting can only
- be done from within the news reader SNEWS. If you are looking for
- something to feed other sites why not try Waffle?
-
- - 'Received date' oriented expire to maintain the news database.
-
- I looked at porting Tass and wnews, but in the end decided they were
- far more effort than it was worth, as these news systems were more
- complicated than was necessary for a single user (at a time) dos
- implementation. Especially when the PC is likely to be a leaf node.
-
- Generally the algorithms used are simple, but the speed is adequate
- for a feed for several users, expiring after 5-10 days. The main
- bottleneck occurs during the 'expire' operation, which must rewrite
- the entire news database.
- * Version 1.90 comes with a program NEXPIRE.EXE which allows the user
- to interactively decide which newsgroups to expire.
-
- 'Simple NEWS' was built rather quickly (and it shows in places :-) to
- suit my own needs. I'm distributing it in the hope you might find it
- useful.
-
- [Posting is a bit of a kludge. The D... and X... files are created,
- then queued using the UUCP program. If you look in the source code
- you will see this is all a bit dodgy. I should sort this out some
- time. I've tested it by posting to a Waffle system which isn't all
- that fussy, and by posting to a CNEWS/Unix SYSV system, which is
- rather particular].
-
-
- Requirements
- ------------
-
- - A minimum of PC-XT, 640k RAM, plenty free. The uncompress
- is the hungry bit. If you use a lot of TSR's, you could get
- around this by having your feed use 12 bit compression.
-
- - Several megabytes of disk depending on size of the feed.
- In NZ the 100 groups in my active file runs at about 45MB/month. So
- you need to turn it over reasonably quickly.
-
- - You must have installed UUPC and the optional program, UUCP in
- particular. I'm using 11k. You do not need any UUPC sources to
- build Simple NEWS.
-
- The sources compile under Borland's TC++ and BC++, but I imagine you
- should be able to compile it under earlier versions of TC and port it
- to other MS-DOS ANSI C compilers without much trouble.
-
-
- Support
- -------
-
- I don't want to be *deluged* with complaints, bug reports, or suggestions
- for improvements. I can think of enough of these for myself, :-). And
- no whining about the dodgy processing of the headers. This will be
- fixed sometime.
-
- If you have a problem, please try hard to solve it before you contact
- me. If you find a bug let me know. Unless a bug absolutely cripples
- you, you'll have to wait for the next release. This policy arises
- largely out of the fact that email costs me $$$.
-
- * For suggestions for features to be included in future versions,
- send email to Michael Studte (me) or John Dennis (see addresses at
- top of this file). Some suggestions have been made already, and we
- can't guarantee that we can add all suggestions (remember, we do
- this in our free time :).
-
- * JohnD and I would most be helped at this stage by bug reports (as
- fully documented as possible, type of equipment, type of crash), so
- we can create a best-working version of snews as soon as possible.
-
-
- Caveats & Copyright
- -------------------
-
- Version 1.90α and up of this software is copyright (1992) by
- Michael Studte and John McCombs of Shinohara Industries, Perth,
- Western Australia.
-
- Version 1.12 of this software is copyright (1991) by John McCombs,
- Christchurch, New Zealand.
-
- This package is free software, but NOT public domain; you can
- redistribute it and/or modify it under the terms of the GNU
- General Public License, version 1, as published by the Free Software
- Foundation.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- See the file COPYING, which contains a copy of the GNU General
- Public License.
-
- The compress included here was not written by me, and is to the best
- of my knowledge in the public domain. Any unix compatible compress may
- be used.
-
-
- Acknowledgments
- ---------------
-
- I'd like to thank Steve Kohlenberger, of PreSoft Architects, for
- making suggestions and doing some testing for me.
-
- Version 1.90 Acknowledgements
- -----------------------------
- First of all, thanks to John McCombs for allowing us to modify his
- code. A great little program that we hope to make just a touch
- better.
- To all people who made suggestions and bug reports up to this
- point, you guys are too numerous to mention. Thanks one and all.
-
-
-
- FILES AND DIRECTORIES
- =====================
-
- NEWS BASE DIRECTORY - This is the top level directory for Simple NEWS.
- the active file and the users rc files are kept here. This directory
- is defined by the environment variable UUPCNEWS
-
- *.NRC - These files have a list of the articles which a user has
- seen. The name of the file is derived from the 'mailbox' variable,
- for example my news rc file would be 'john.nrc'. The nrc files are
- kept in the news base directory.
-
- The nrc files are created and maintained automatically by the news
- reader and should not be edited by hand. If one becomes corrupted,
- just delete it.
- * NOTE: The 'mailbox' variable now has to be declared in the
- SNEWS.RC file. See the section at the end of this file (or the
- sample SNEWS.RC file) for more info.
-
- HISTORY - The history file contains a list of the message-id's of all
- the cross-posted articles in the database. It is used by the
- news-reader to find all the instances of a cross-posted article,
- The file fields are message-id, received date in seconds (Unix date),
- newsgroup name & article number for each instance of the article.
- The history entries are added by 'unbatch' and deleted by 'expire'.
-
- ACTIVE - The active file contains a list of the newsgroups we expect to
- get. The format is defined under installation, below. All articles
- to newsgroups not defined in the active file are posted to junk.
- You MUST use 'addgroup' and 'rmgroup' to maintain the active file.
- DON'T use and editor on it.
-
- The active file is in the news base directory.
-
- NG - This file is a list of newsgroup names, one per line, that you
- can post to. You can post only to groups listed in this file. The
- newsgroups file is in the news base directory. If you want to
- prevent anyone posting, simply remove the ng file.
-
- POST.LOG - This file, which is in the news base directory, is a log
- of all postings. You can read this file with 'mail' using the
- -f option.
-
- ARTICLES - these are placed in files in a directory called 'newsbase'
- which is a sub-directory of the news base directory. There is one text
- file and one index file for each newsgroup. The name of the text file
- is found in the second field of the corresponding entry in the active
- file. For example if the news base directory is d:\uucp\news
- then articles in comp.sys.ibm.pc might be in a file called:
-
- d:\uucp\news\newsbase\87297243
-
- and the index file will be
-
- d:\uucp\news\newsbase\87297243.IDX
-
- Don't change these files by hand - use expire to do the deletion,
- to keep the active file in sync. Use 'addgroup' to create them
- and 'rmgroup' to remove them.
-
- INDEX FILES - Each newsgroup has an index file which has information
- about the articles in that newsgroup. The format is
-
- 00000000 00000001 687297893 Re: senior (humph!)
- 00001927 00000002 687297893 need rx02 controller.
- 00002801 00000003 687297893 Re: senior (humph!)
- 00003707 00000004 687297893 Another dumb luser story
-
- The first field is the offset of the article in the text file. The
- second field is the article number. The third field is the date/time
- that the article was added to the database, and the fourth field
- is the article subject. This latter field is used by the newsreader
- to build the threads.
-
- INCOMING NEWS BATCHES - These are placed by UUPC in the directory
- defined by the 'NewsDir' UUPC.RC variable. Unbatch processes the
- batches from this directory, and deletes them when done.
-
- EXE Files - These can be placed in any directory that is included
- in the PATH statement. They are unbatch.exe, snews.exe, expire.exe
- addgroup.exe rmgroup.exe and compress.exe.
-
-
- INSTALLATION
- ============
-
- Installation is easy.
-
- 0. First get UUPC going and delivering news batches into the
- 'incoming' directory. The name of this directory is set in the
- UUPC.RC file using the 'NewsDir' variable. The incoming directory
- *must* be reserved solely for this purpose, and it must have
- no files in it, other than the news batches that 'uuxqt' will
- create there.
-
- 1. Put "set UUPCNEWS=c:\uucp\news" in your autoexec.bat. This is
- the 'root' directory for your news system. The 'active', 'ng' etc
- files are placed here and the news database is a subdirectory
- of this directory. UUPCNEWS must be *different* from the 'NewsDir'
- specified in the UUPC.RC file.
-
- The 'NewsDir' directory is where batches of news are deposited by
- 'uuxqt'. It is also the place where 'unbatch' looks for work.
- If your news base directory is "c:\uucp\news" then you might
- use "c:\uucp\news\incoming" as the 'NewsDir', eg:
-
- set UUPCNEWS=c:\uucp\news <-- in autoexec.bat
-
- NewsDir=c:\uucp\news\incoming <-- in UUPC.RC
-
- * 2. Create the SNEWS.RC file in your main UUPC directory (the one
- where PERSONAL.RC and UUPC.RC are located). This can be easily
- done by copying the file PERSONAL.RC to SNEWS.RC or by
- manually creating one.
-
- This file has been separately created to accomodate the new
- variables that can be set for SNEWS.
-
- The variables that may be set in this file are:
-
- Mailbox=joe - Your "account name" (your mailbox name)
-
- Name=Joe Bloggs - Your "real" name
-
- Home=d:/uupc - UUPC "home" directory
-
- Signature=a.sig - Signature file (in home directory)
-
- * Aliases=d:/uupc/aliases.txt - full path to alias file,
- which is a UUPC mail style alias file. SNews
- now supports mailing of articles to ALIASES.
-
- Organization= JAFWA, Cal-Animage Zeta, Perth, Western Australia
-
- * Replyto=michael@izumi.DIALix.oz.au - A Reply-To address
- that will be included in posted article headers.
- Previous versions of SNews did not use this
- variable.
-
- Editor=q %s - Editor to be used for entering articles.
-
- * These new colour variables define the LOOK of your system, and
- allow people on monochrome systems to define the screen output
- differently from colour-screen users.
-
- color helpf <col> - Help screen foreground
- color helpb <col> - Help screen background
- color textf <col> - Text window foreground
- color textb <col> - Text window background
- color headb <col> - Screen header background
- color headf <col> - Screen header foreground
- color msgb <col> - Message line (bottom) background
- color msgf <col> - Message line foreground
-
- * <col> can be of the following colours:
-
- whi - grey note: the shortened names do not have
- bla - black to be used - only the first 3
- blu - blue letters of the colour are checked.
- gre - green
- red - red
- mag - magenta
- cya - cyan
- yel - yellow
-
- add "+" to the end of these and you will get the high intensity
- version of the same colour. eg: whi+ = white cya+ = light cyan
- and so on. Fiddle round with it till you get the colours you want.
-
- A sample SNEWS.RC file is included. (See it for more
- documentation on how to customise SNEWS.)
-
-
- 3. Create the 'active' file in this directory, using 'addgroup'.
- For example:
-
- addgroup alt.sources comp.sys.ibm.pc.misc comp.sys.ibm.pc
-
- Each entry has the form of "alt.sources 87297268 00000000 00000000 y".
- The first number is the filename of the file where the articles are
- stored. The next two numbers are the the lowest article number
- (minus 1) and the highest article number, respectively.
- The three numbers MUST be EXACTLY 8 digits long with EXACTLY one space
- between them. The last field is ignored.
-
- An example 'active.bat' file is included.
-
- ADDGROUP should be run from a batch file, so that you can easily
- re-initialise the news system should the need ever arise.
-
- 4. Create a the 'ng' newsgroups file in the same directory as the active
- file. This file should contain the names of the newsgroups that
- you wish to be able to post in. As a minimum you probably want
- the groups in your active files, less the names of the moderated
- groups. The file 'ng' looks like this:
-
- alt.angst
- alt.aquaria
- alt.artcom
- alt.astrology
- alt.atheism
-
- An example 'ng' file is included.
-
- * In the next version, the "addgroup" program will allow you to
- specify whether a newsgroup may be posted to (read-only or
- read/write), and if so, will automatically include the group's
- name in the "ng" file.
-
- 5. Edit the makefile and run it, and/or put the exe files in the
- DOS PATH.
-
- 6. Call your host and get some news. Copy some of these batches into
- another directory, so that you can use them again for testing
- purposes.
-
- Run 'unbatch'. This is where most problems occur. Check:
-
- - That your disk is not full.
-
- - That the 'TempDir' directory specified in the UUPC.RC
- file exists. Check that there is also room on this drive.
-
- - Before the unbatch there should be some files with names
- like '290f8f99.001'. These are the news batches.
-
- - Dump the first part of one of these batches. The file
- should start with '#! cunbatch'. If it doesn't, check that
- your host is sending compressed batched news to you.
-
- - Run 'unbatch -n'. The -n switch tells unbatch to feed the
- first batch to compress and then stop. If you look in TempDir
- you should see two files, '$unbatch' and '$unbatch.z'. The
- first file is the uncompressed version of the latter.
-
- If the uncompress fails, check that you are using the
- compress.exe supplied with Simple NEWS. If you have another
- compress.exe make sure the the SNEWS one is first on the DOS
- PATH.
-
- Compress is run with the command line 'compress -d $unbatch.z',
- and it must *not* convert unix type linefeeds to DOS style
- cr/lf.
-
- Look in '$unbatch' with an editor. You should see news
- articles separated by the string '#rnews <number>'.
-
- 5. Modify UUIO.BAT putting "unbatch" after the last line of the
- file.
-
- Once you have done this you should have your batches processed
- automatically after transfer. Use SNEWS to read your news, and
- run expire once in a while to deleted the old stuff. You could
- stick the expire in your autoexec file.
-
-
- Help!
- -----
-
- In general you should not edit/delete the active file or the news
- database files by hand. Use only addgroup/rmgroup/unbatch/expire
- for these tasks.
-
- The history and *.nrc files should not be edited by hand, but
- deleting them is not fatal. If they get corrupted, just delete
- them.
-
- The active file, article text files and index files are all checked
- to ensure that they stay in sync. If something gets corrupted you
- can probably fix the problem by using rmgroup to delete the affected
- group, then using addgroup to put it back. The most likely cause of
- this problem is 'unbatch' or 'expire' crashing.
-
- If things get really messed up your only option may be to re-init the
- news system.
-
- You cannot post articles without a valid 'ng' file. You can only
- post to newsgroups listed in the 'ng' file.
-
-
- SNEWS - NEWS READER
- ===================
-
- SNEWS is a threaded news reader, somewhat reminiscent of TASS. The
- display has three levels, choose a newsgroup, choose a thread, and
- read an article. At each level the Home/End/PgUp/PgDn/UpArr/DnArr
- can be used to move around. ENTER selects whatever you are
- pointing at, and TAB moves you to the next unread group/article.
- To read the all of a thread (read and unread) keep hitting ENTER.
- ESCAPE takes you back a level.
-
- 'h' invokes a help screen, 'c' marks all articles in a group as read.
- 'p' posts an article, from any level.
-
- * F1 also calls up the help screen (added for standardisation purposes)
- * F2 now displays the values set via the SNEWS.RC file.
-
- When reading an article 'r' and 'f' allow a mail reply and a news
- followup of the current article, respectively. You are given the
- option of quoting the article. 'x' toggles a rot13 conversion of the
- article. PgUp from the start of the article will display all the
- headers.
-
- The above commands are case sensitive.
-
- SNEWS maintains a list in the user's .nrc file of which articles have
- been seen.
-
- In the group and thread levels the number of unread articles, if any,
- is displayed, followed by the total number of articles, in brackets,
- for each group/thread.
-
- The threads are constructed in the order that the articles were unbatched
- which is usually pretty close to the chronological order.
-
- * Snews allows stepping forward and backward through articles now.
- Using the right arrow key will take you to the next article in the
- current thread, while the left arrow takes you to the previous
- article.
-
- When you read a cross-posted article, all the other instances of that
- article, in the other newsgroups, are also marked as read. This saves
- you having to sort out which articles you have previously seen. If
- you use 'c' to mark all the articles in a group as read, the instances
- of cross-posted articles in other groups are *not* marked.
-
- Free memory is shown in [] at the top of each page. You'll probably
- have a hard time using it all up.
-
-
- Posting
- -------
-
- You can only post to newsgroups listed in the 'ng' file in the news base
- directory. If a newsgroup name is in the 'active' file, but not in the
- 'ng' you will not be able to post to that group. This is a suitable way
- to prevent posts to a moderated group.
-
- A copy of each post is saved in a file called 'post.log' in the news base
- directory. This file may be perused using mail, with a command like
-
- mail -f \uucp\news\post.log
-
-
- UNBATCH
- =======
-
- Just run it. It looks for work in the UUPC.RC NewsDir directory,
- and tosses the articles into the files defined in the active file.
- News batches are removed as they are successfully processed.
-
- The only option is "-n". This option causes the program to halt after
- uncompressing the first batch, without unbatching it. The uncompressed
- file remains in the temp directory. This switch is helpful in tracing
- unpacking problems.
-
- Requires COMPRESS.EXE to be on the PATH. Unbatch requires around
- 500k of free memory for the uncompress of 16 bit news batches.
-
-
- UBN
- ===
-
- Stands for "Unbatch New Technology" :-) It's a re-written version of
- Unbatch that is generally twice as fast and works in exactly the same way.
- It is still really beta code, and tho it works fine here, it may not
- work well elsewhere. You have been warned. It doesn't check for enough
- disk space yet, so ensure that you have enough space on the temp drive
- to uncompress your batches. It's faster because all articles are buffered
- in memory, rather than disk, and the newsgroup files are kept open if
- the next article is destined for the same newsgroup. Articles bigger than
- the memory buffer are written to disk much the same as the old way. If an
- error occurs, it should exit gracefully.
-
-
- IDXFIX
- ======
-
- This utility will fix your indexes if they should become corrupted. The
- old index is written over from the text file (the one with the messages
- in it), and the active file is updated to reflect the number of articles
- now present. Usage:
-
- idxfix <newsgroup>
-
- With <newsgroup> being the name of the group you want to fix. Will only
- accept one newsgroup at a time.
-
-
- EXPIRE
- ======
-
- Expire takes one argument, the number of days.
-
- expire 5
-
- will delete articles 5 days or older from the news database.
-
- Expire will give you summary of the number of articles and size
- of the remaining news database, and of the articles deleted.
-
- IEXPIRE
- =======
-
- IExpire is an expire program to interactively expire selected
- newsgroups.
-
- IExpire takes one argument, the number of days.
-
- expire 5
-
- will delete all articles from user-selected areas 5 days or older.
-
- Expire will list each newsgroup that contains articles and ask if
- you would like to expire it. You can reply (in either upper or
- lower case):
- y - yes, expire articles
- n - no, do not expire articles in group
- q - no, do not expire articles, quit program
-
- IExpire will give a similar summary of the number of articles
- deleted as Expire, BUT it will only report on areas that were
- selected for expiry (ie. if you don't expire any group [by pressing
- 'n' to all newsgroups], the summary will list 0K and 0 articles in
- the newsbase).
-
-
- ADDGROUP
- ========
-
- The 'addgroup' utility is used to create or add groups to the active
- file. For example:
-
- addgroup alt.sources comp.sys.ibm.pc.misc comp.sys.ibm.pc
-
- will add these groups, creating an new active file if none exists.
- The newsgroup files in the 'newsbase' directory are also created.
-
-
- RMGROUP
- =======
-
- To remove a newsgroup, simply run rmgroup, followed by the newsgroup
- names. For example
-
- rmgroup alt.sources comp.sys.ibm.pc.misc comp.sys.ibm.pc
-
- This will remove the files and delete the entry from the active file.
- The 'ng' newsgroups file is unaffected.
-
-
- -------------------------------------------------------------------------
-
- SNEWS 1.90α ADDITIONS
- =====================
-
- - SNEWS now uses a file SNEWS.RC. It no longer supports the
- PERSONAL.RC file. UUPC will still require it, though. Also, a
- DOS variable SNEWSRC must be set up and point to the SNEWS.RC
- file.
-
- - The help function in SNEWS can now be called with either the
- "h" key or by pressing F1.
-
- - The F2 key lists all "important" variables as set via the
- SNEWS.RC and UUPC.RC files.
-
- - SNEWS now supports color definition in the SNEWS.RC file. You
- can alter the look of the various screen parts' colours. See
- the section above on color (or the sample SNEWS.RC file) for
- more information.
-
- - SNEWS threaded newsreading can now be done by using the right
- and left arrow keys to step forwards AND back through a thread.
-
- - SNEWS' posting of email and articles is made a little bit more
- user-friendly. After creating and editing an email/article, the
- user can now (S)end it, (E)dit it again, or (A)bort it. Also,
- when emailing a reply, the destination email address will be
- displayed above the "Send/Edit/Abort" msg to ensure correct
- addressing.
- (In future versions, there will be an additional option to
- allow the modification of some of the headers, like changing
- the "Distribution:" attribute, and the like.)
-
- - When writing an email message, the address to send to can be
- specified in alias format, if the ALIASES keyword in the
- SNEWS.RC file has been enabled and set to point to your UUPC
- alias file.
-
- - IEXPIRE is a new program for those people who prefer to
- individually expire their newsgroups. See the section above on
- IEXPIRE for more info. The original EXPIRE program is provided
- for those who prefer to run their EXPIRE program in a batch
- without user interaction (in future, the two programs will be
- merged).
-
- - UBN is a plug-in replacement for UNBATCH. Since UBN is still in
- the development stage (it works so far on the machines we've
- been able to test it on) the original UNBATCH program is still
- provided. UBN provides a speed increase of about 50% over
- UNBATCH, more, if your hard disk system is extremely slow. UBN
- tries to use internal memory instead of temporary files,
- whenever possible.
-
- --
- Good luck and may the News be with you
-
- Michael Studte John Dennis
- michael@izumi.DIALix.oz.au john@miyu.DIALix.oz.au
-