home *** CD-ROM | disk | FTP | other *** search
- GRn
-
- Gadtools Read News
- for the Amiga
-
- by
-
- Mike Schwartz
- Michael B. Smith
-
- ================================================================================
-
- Mike Schwartz Michael B. Smith
- 1124 Fremont Ave. P.O. Box 6791
- Los Altos, CA 94024 Charlottesville, VA 22906
-
- mykes@amiga0.sf-bay.org mbs@adastra.cvl.va.us
-
-
- GRn is FreeWare. But, if you have a desire to donate, please feel free. :)
-
- We've gone to a great deal of trouble to try to make sure that GRn is as usable
- and bug-free as possible, but we can't guarantee it. Use GRn at your own risk.
-
-
- CREDITS
-
- Special thanks to Peter Cherna of Commodore-Amiga for his assistance with my
- GadTools questions. I still can't do EVERYTHING I want to with GadTools, but
- I am getting better, especially with his help. :):)
-
- Special thanks to Georg Sassen for his assistance with a DICE startup problem
- that haunted me for weeks.
-
- Special thanks are due to Matt Dillon, as well. He has helped me to make GRn
- as compatible with UUCP as possible. As well, his 'C' compiler, DICE, is head
- and shoulders above the rest of the Amiga 'C' compilers. If you don't have it,
- it is well worth the $50 to get the registered version.
-
- Special thanks to Christopher A. Wichura, who has been very helpful in getting
- GRn "clean" of Enforcer hits and Mungwall violations.
-
- IMPORTANT NOTES
-
- Throughout this document, "I" refers to the original author, Myke Schwartz.
-
- To install, read the file INSTALL which should have come with this archive.
-
- For run-time parameters, see the file GRn.man which should have come with this
- archive.
-
- GRn requires release 2.04 of AmigaDOS.
-
- GRn is designed to work with Dillon's AmigaUUCP versions 1.13, 1.15 and 1.16.
- It should work with NFS mounted C-News partitions as well. An NNTP module is
- in the works.
-
- GRn is written in 'C'. And typical of 'C' programs, it requires a bit of
- stack space. GRn should comfortably run with 16K of stack. It probably
- will work with 8K, but I won't guarantee it. Some of the subroutines have
- as much as 5K in auto variables/arrays...
-
- Due to way WorkBench works, you must either:
-
- a) Install GRn in the same directories where SendMail, PostNews
- and UUEncode reside, or
-
- b) Put absolute pathnames for SendMail and PostNews in your
- UULIB:Config file (you must still have UUEncode in the same
- directory).
-
- We may come up with a way to resolve this in the future.
-
- The "STOP" button in the fuel gauge requester in the Publish function does
- nothing.
-
-
- MANIFEST
-
- Each version of GRn should come with the following files:
-
- README
- CHANGES
- INSTALL
- TODO
- PROBLEMS
- GRn
- GRn.info
- uuencode
- GRn.doc
- GRn.man
- fonts/grn.font
- fonts/grn/8
-
- Some archives of GRn will also include a version of MailMinder.
-
- Some archives of GRn will include source.
-
- UUENCODE
-
- A version of UUEncode is included as part of the GRn distribution. If anyone
- has problems with this version of uuencode, I am willing to replace mine with
- theirs. Regrettably, I have NO idea who wrote this uudecode program, or I
- would give him the credit he deserves.
-
-
- MAILMINDER
-
- Now distributed with GRn is another neato utility written to enhance UUCP
- under 2.04 (and up). This utility is called MailMinder. MailMinder adds
- appIcon(s) to your workbench display that (in default form) is a mailbox
- with flag up (if you have mail) or flag down (if you don't). MailMinder is
- fully configurable via tooltypes and can automatically launch DMail (or
- whatever) when you have mail or when you doubleclick the icon.
-
- Included with MailMinder are custom Icons drawn by Paul Broe, Dave Connors,
- Stephan Lussier, and Andy Wright. My thanks to these guys! Special thanks
- to Andy Wright, who passes along some very nifty scripts and such to go
- along with MailMinder.
-
-
- INTRODUCTION AND OVERVIEW
-
- I've been on UseNet for over 7 years now (causing everyone pain and misery, I'm
- sure :). For the last year (plus), I've been using Matt Dillon's Amiga UUCP
- package to actually get to read/write news and mail on my Amiga instead of
- having to use some cryptic and barbaric Unix user interface over the phone at
- 2400 broads (oops, baud :).
-
- But after using DNews for all this time, I have always wanted to replace it with
- something that works better for the Amiga - something that uses Intuition and
- runs from an Icon, etc. Also, Matt has been too busy to polish up DNews to meet
- my demanding specifications :)
-
- Ever since 2.0 has come out, I've been using the new 2.0 functions. I typically
- don't write hard disk based programs for public consumption on the Amiga, so it
- never has made a difference to me to support 1.3. So if you don't have 2.0, you
- may as well stop reading and delete these files, or you may start drooling :) Or
- you should go and get 2.0. It is worth it. Once you go 2.0, you won't go back.
-
- I should also mention that I have tried to find other PD news readers, but none
- have even come close to what I envisioned an Amiga oriented News Reader to be.
- Too many of them are clones of Unix teletype style interfaces for my personal
- liking.
-
- GRn can be started from the CLI or from the workbench icon. I personally use
- the latter.
-
-
- BASIC CONCEPTS AND REQUIREMENTS
-
- GRn is patterned after some screen shots of XRn (X-Windows Read News) that a
- friend of mine sent to me. I've never used XRn, but it looks like a great user
- interface for News. I doubt that GRn is totally a look- and feel-alike for XRn,
- but it deserves a plug anyhow. Anything that makes Unix less cryptic is worth
- the plug!
-
- GRn assumes that you have the basic Amiga UUCP system assigns in place - UUCP:,
- UUTMP:, UUMAIL:, UUNEWS:, etc. GRn creates a file called username.grnrc in your
- UULIB: directory, where it keeps track of the News database. This file is NOT
- in ascii format, and can grow to be quite large - as much as 256 bytes per news
- article in your UUNEWS: directory tree. However, the binary format used
- provides for as fast a startup/shutdown as I could get, considering the
- inefficiencies of the Amiga filesystem for scanning directories.
-
- Due to problems with Dillon's software not using the system path to find its
- binaries, I've found that the only way to get GRn to work properly from a
- workbench icon is to put the GRn executable in the same directory as Dillon's
- binaries. More specifically, Dillon's PostNews Execute()'s BatchNews, RNews,
- and UUX, but when GRn is run from a workbench ICON, those Execute()s fail for
- some reason. Remember, if you keep your UUCP binaries in UUCP:c, as I do, put
- the GRn executable and Icon in UUCP:c also! GRn deliberately uses the full path
- to the executables as found in your environment variables or UULIB:config...
-
- So, for correct operation of GRn from the WorkBench, the binary directory must
- contain these programs: GRn, GRn.info, RNews, UUX, UUXqt, BatchNews, SendMail,
- PostNews and UUEncode (needed for Publish). To use GRn from the CLI, all of
- these programs must be on the CLI path.
-
- Finally, GRn is designed to work with its own custom 8-point font. This font is
- called grn.font and must be installed in your fonts: directory. There are
- valid reasons for choosing to do so... First of all, although GRn is pretty
- smart about algorithmically placing and sizing the various gadgets, it is easy
- for the user to choose a font that makes the gadgets not fit appropriately in
- the window. Second, the font I chose is narrow, so you can fit more columns of
- text in the browse listviews.
-
- OPERATION
-
- GRn operates in a single window, which can have two different looks to it. The
- two modes of operation are Group Mode and Article Mode. In Group Mode, you
- perform operations on newsgroups. In Article Mode, you perform operations on
- the articles in the selected newsgroup.
-
- There is a close gadget on the window. Use this gadget ONLY if you want to quit
- without updating your .grnrc file! The "Quit" button on the groups mode window
- is the normal method of quitting which saves updated news tree information to
- your .grnrc file.
-
- Both Group Mode and Article Mode have a Text gadget near the bottom of the
- window which is used to display messages. For Group Mode, the total number of
- newsgroups, articles, and unread articles is displayed. For Article Mode, the
- article number, remaining article count, and the name of the next newsgroup is
- displayed.
-
- In Group mode, you are presented with a list of all the newsgroups, along with
- the number of articles in each newsgroup and the number of unread articles in
- each newsgroup. Below this list of groups are a set of buttons which operate on
- the selected newsgroup. You can Catchup in a newsgroup, Read a newsgroup,
- Post to a newsgroup, or Publish a binary file to a newsgroup.
-
- You must select a newsgroup as the first step for any of these functions (that
- is, click on the newsgroup name). Click once on a newsgroup to select it and
- the various buttons become active as appropriate. For example, it doesn't make
- sense to be able to read a newsgroup which has no articles, so the "Read" button
- will be disabled. Double-clicking on the newsgroup is the same as clicking once
- and then clicking "Read".
-
- To Catchup, click on the Catchup button after selecting a newsgroup. All
- articles for that newsgroup will be marked as "read".
-
- To Read, click on the Read button after selecting a newsgroup. You will be
- taken to the Article Mode screen (explained below).
-
- To Post, click on the Post button after selecting a newsgroup. Your specified
- editor will be executed for you to enter the article. If you run GRn on a
- custom screen, you may need to enter LeftAmiga-M to bring the editor to the
- front screen. After you exit your editor, GRn requests you to confirm that
- you still wish to post the article. If you confirm, GRn does so. If not, the
- article is discarded. GRn also detects whether or not you actually changed
- the article. If you did not, GRn asks you whether to abort the posting or not.
-
- To Publish, click on the Publish button after selecting the newsgroup you wish
- to publish the file in. A file requester will be presented for you to choose the
- desired file to publish. GRn will automatically uuencode and make as many 500
- line posts as needed to completely post the file. The subject line of each
- message will be formatted as "<filename> (part x/n)".
-
- There is a "bug report" button, which will automatically send me e-mail so you
- can easily access me to get bugs and/or enhancements done. There is also a UUCP
- Bug Report button which will post a message to the alt.sys.amiga.uucp newsgroup,
- to report bugs with UUCP.
-
- In Article Mode, the window takes a new display format. The list at the top
- becomes a list of the articles in the selected group, including the status
- (READ/UNREAD), the article number, the sender (parsed from the "From:" field
- of the article header), and the subject. This is a convenient way to browse
- through the articles available to read!
-
- There are two checkboxes below the list of articles named "Hide Headers" and
- "Hide Read Messages". When "Hide Headers" is checked, the browser window at the
- bottom of the window will not display article header information. When "Hide
- Read Messages" is checked, the articles list will only show UNREAD articles.
- "Hide Read Messages" is not yet implemented, so the box is permanently
- "ghosted".
-
- Below the checkboxes is a row of buttons. The "Groups" button returns you to
- the Group Mode display. The Prev button (bound to the 'p' and the 'b' keys)
- moves you to the prior article, if any. The Next button (bound to the 'n' key)
- moves you to the next article in the list, if any. The Unread button moves you
- to the next UNREAD article. The Next Group button (bound to the 'N' key)
- moves you to the next newsgroup with unread articles (if there are no
- newsgroups with unread articles, you are taken to the next group in the
- newsgroup list). The Prev Group button (bound to the 'P' and 'B' keys) moves
- you to the previous group in the newsgroup list. Finally, there is a cycle
- gadget that allows you to specify how to sort the list of articles.
-
- You can sort the articles list by Number, From, or Subject fields. This allows
- you a lot of flexibility as to how the Next/Prev functions work. If you sort by
- Number, you read in the order the messages were posted by Dillon's UUCP. If you
- sort by From, you can read all the articles by a certain person in order. If
- you sort by Subject, you can read the articles in "thread" fashion.
-
- Below these buttons are three text gadgets used to display the From:,
- Organization:, and Subject: fields from the selected article. When the "Hide
- Headers" option is selected, this is typically the header information that you'd
- care about, anyhow. But if you want to see other information in the headers,
- you always can with the click of the mouse... I like the Hide Headers feature,
- because you will more often than not be able to see entire articles in the
- browser window this way.
-
- Below the text gadgets is the article browser window. This window will contain
- the text (with or without headers) of the selected article. You have a choice
- of using the Mouse to scroll this window or to use the keyboard cursor keys.
- Unfortunately, one of the oversights in GadTools.library is that there is no way
- to tell how the user has used the mouse to scroll the ListView, so intermixing
- can be a bit confusing - but it does work as well as possible.
-
- Below the browser window is another row of buttons that operate on the
- currently selected article. You may save the article to a file, Reply to the
- article's poster via Mail, Forward the article to someone, FollowUp (post) to
- the article, or Print the article to your printer.
-
- This version of GRn uses the News and Mail Editors specified in your
- UULIB:config file. A future release of GRn will have its own composition
- window added to it so the package will be fully integrated.
-
- TECHNICAL INFORMATION
-
- GRn internally consists of three logical modules: main, gmode, and amode. The
- main program starts by parsing the environment variables NEWSEDITOR, MAILEDITOR,
- and USERNAME or finds them in UULIB:config. If the .grnrc file is found, main
- reads it into memory and then scans the newsgroups for deleted articles
- (pruning) and new articles. If the .grnrc file is not found, main scans UUNEWS:
- for groups and articles and builds a tree from scratch. main also checks to see
- if another copy is running and aborts if so (before reading the tree, of
- course). Two copies of GRn running at the same time can cause the News Trees to
- be out of sync and cause problems not worth addressing.
-
- For each group, the hide headers, hide read, and sort options are kept. This
- way, you can read one group sorted by subject and another sorted by from.
-
- When posting or replying, GRn puts a custom extension field into the article
- headers: "X-NewsSoftware: GRn, etc."
-
-
- RECOMMENDATIONS
-
- I recommend that you use your normal newsreader to catchup on all your news
- right away. Then you run GRn and use the catchup feature to get in sync.
-
- What's coming next:
-
- 1. I still want to work on the way sort by subject works. The Re: part should not be
- considered during the sort, except to put the original posting first.
-
- 2. The publish and hide unread gadgets are still disabled. Publish will allow you to
- automagically uuencode and post (in as many parts as needed) binary files to a news
- group. I will add a reverse option to the articles mode to automagically combine
- these kinds of postings and uudecode them (when you use SAVE).
-
- 3. There is still a huge wasted area below the groups LISTVIEW in groups mode. I intend
- to add new features there in the future. Please be patient. I intend to implement
- a full-blown uulib: configuration editor, preferences (like a way to change my bug
- report path if I move, GRn task priority, etc.), a button to start/stop CRON and
- UUCICO, and eventually GMail.
-
- 4. I intend to implement a nifty kill-file dialog/requester.
-
- 5. I will add the capability of GRn to iconify itself (into an appIcon). I have done this
- with other programs already, and it's no big deal...
-
- Things NOT implemented (I decided against doing):
-
- 1. Allowing the user to specify the font of his choice for the listviews.
- Until the Amiga has higher resolution and faster hardware display, it
- doesn't make sense to not have at least 80 columns of text for the
- article browser.
-
- 2. I was going to add some sort of statistic display while GRn was starting
- up. It is not needed anymore, since GRn zips now.
-
- 3. There were complaints about the size of the grnrc file. I was going to
- add a compressor/decompressor to shrink this. I have a real fast one I
- use in my games that does about what LHARC does (same percentage, but
- much faster). It isn't needed anymore, since I reduced the grnrc file
- size by 80%.
-
- Call for discussion:
-
- I have an idea that I would like feedback on. I want to implement a news/mail
- editor that is 100% consistent with the GRn interface. Currently, GRn supports
- no particular editor well. An integrated editor may seem controversial at first
- glance, but let me describe it in more detail and then you can send me flame
- mail (or whatever) with your opinions.
-
- The editor I envision has a different look for mail and news editing, so let me
- describe Mail first. The top of the window (same window as GRn uses now) would
- have String gadgets for you to enter To:, Subject:, Cc:, Bcc:, and Attachment:
- header fields. Next to each string gadget will be a button - if you hit the To:
- button, a requester with a listview containing your aliases and EVERY username
- GRn and GMail ever see in From: and Path: fields of all news articles and mail
- messages would pop up and you can simply select a name. If you click on the
- button next to attachment, a file requester pops up to request what file you
- wish to send as a binary with the mail (uuencoded, split, automagically). At
- the bottom of the window there will be several gadgets, among them: Save, Send,
- Abort, Include article/message, Include File, and print.
-
- The article editor has different gadgets at the top: newsgroups, subject, etc.
- Similar to the mail editor, you can click a button next to newsgroups: and you
- get a listview requester with a list of ALL newsgroups your UUCP knows about to
- choose from. At the bottom of this window, you have similar buttons to the mail
- editor.
-
- Now that you have a feel for the nature of the editor (unified environment),
- I'd like to point out that I don't believe the editor should be a massive,
- full-blown program editor by any means. In fact, I believe the editor should
- be pretty minimal. It will do word wrap and cut and paste (to the
- clipboard.device). It will be more than useable for what it is designed to do -
- edit mail and news articles (what a concept :)
-
- OK, I've had my say, let me know your opinions...
-
-