home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Otherware
/
Otherware_1_SB_Development.iso
/
amiga
/
comms
/
network
/
grn116a.lha
/
grn.doc
< prev
next >
Wrap
Text File
|
1992-05-20
|
35KB
|
720 lines
GRn - GadTools Read News program By Mike Schwartz and Mike Smith
For those of you who wish to contribute some money for this
program, my address is:
Mike Schwartz
1124 Fremont Ave.
Los Altos, CA 94024
I do not ask, particularly, for any kind of donation, but I have
been asked several times in E-Mail for my address... Feel free
to donate :) but feel no obligation to do so. I wrote GRn for
myself, first and foremost, but when I saw how well it worked,
I decided to give it away to my friends who also post on the
net. Any money I do receive will be shared with Matt Dillon
and Mike Smith (I am not greedy :)
VERY NEW!!!! 1.16a is the new release version number!
GRn is no longer BETA! I have changed the version to reflect
its compatibility with Dillon's UUCP package. The current
version of GRn is now V1.16a. The 'a' will change as updates
are made, but the 1.16 won't change until a 1.17 or later release
of UUCP.
So, what's new? Thanks to Michael B. Smith, GRn now supports
CNews style directory structure as well as the traditional
1.15 comp.sys.amiga.* flat directory structure. That's the only
major change since the last beta release (1.29). Since I am
still running 1.15, I have only been able to test the flat directory
stuff still works. If you have problems with the HFS support,
please use the bug-report button! My first suggestion, however,
is to adjust your stacksize UP...
CREDITS
Again, special thanks to Peter Cherna 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
:):)
Also, special thanks to Georg Sassen for his assistance with the
DICE startup from workbench problem that haunted me for weeks.
Now 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. Once you start using it, you
won't want to use anything LESS (not else :) DICE RULES!!!
IMPORTANT!!! IMPORTANT!!! IMPORTANT!!!
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...
NEW!!! NEW!!! NEW!!! (Version 1.29)
This is a smaller and faster version of GRn. This is due to compiling
with small model DICE. DICE is an amazingly great improvement over SAS
in terms of run-time speed and code size over SAS.
V1.29 is mainly a bug fix release. Since it is switched to a new compiler,
I want to make sure that it still works for most of you. If you are using
1.28 or lower, it would be of great help to me if you switch to 1.29 and
report any new bugs you might find.
The two main fixes in 1.29 are the listview scroller bug (see below) and
the thread guru bug.
NEW!!! NEW!!! NEW!!! (version 1.28)
GRn is much more customizable, thanks to tooltypes. See the documentation
below (Fixed in 1.28) for details on the tooltypes. The grn.info that
comes with this distribution now
Now distributed with GRn (starting with V1.28) will be another neato utility
I wrote to enhance UUCP on the Amiga 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.
NEW!!! NEW!!! NEW!!! (version 1.27)
The publish feature has finally been implemented. From the groups mode,
hit the publish button. A file requester will be presented for you to
choose the binary file which you want to publish. GRn will automatically
uuencode and make as many 30K posts/parts as needed to completely post
the binary. The subject line of each message is formatted as
filename (part x/y)
One of these years, GRn will automatically be able to SAVE these multipart
files and uudecode them.
I am including the uuencode that I use (never had any problems with it)
as part of the 1.27 and up distribution. If anyone has problems with
this version of uuencode, I am willing to replace mine with theirs...
Also, regrettably, I have NO idea who wrote this uudecode program, or
I would give him the credit he deserves.
NOTE WELL: The uuencode program should be placed in the same directory
as GRn. As near as I can tell, there is no provision in Matt's UUCP
variables/heierarchy for a uuencode or uudecode variable. This is subject
to change, of course.
ALSO NOTE: The Stop Button in the fuel guage requester for publish does
nothing.
Starting with version 1.27, GRn now comes with a standalone GRnrc program. This
program runs from the CLI and updates your grnrc file. So, how is this useful?
The intent is to put it into your crontab. The program will go and update the
uulib:user.grnrc file to reflect the new news articles. This will greatly speed
up the launch time of GRn since it won't have to add or prune new articles.
CLI command syntax:
grnrc username
You have to specify username on the commandline so grnrc knows which grnrc file
to update. You can, of course, use grnrc for multiple users by using multiple
invocations with the appropriate names.
I personally won't be using this program, but some of the beta testers have
requested this feature, and it was pretty simple to hack out from the rest
of the GRn program.
Also, if you add a second command line parameter (any string will do) as in:
grnrc username debug
GRnrc will print out status messages.
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 to 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 later.
Coming soon to an Amiga near you - GMail!
BASIC CONCEPTS AND REQUIREMENTS
GRn requires 2.04 (or higher) of the Amiga OS plus Matt Dillon's UUCP package
1.13. There may be a small problem or two with higher versions of UUCP, since I
don't use them or test with them. I am counting on you folks who use it to help
me to find/fix these problems. I am perfectly willing to provide you the
support you need! I am perfectly satisfied with 1.13, so I haven't bothered to
upgrade - if it ain't broke, why fix it? :)
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 - about 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...
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 browser listviews.
OPERATION
GRn operates in a single window, which can have two different looks to it. The
two modes of operation are Groups Mode and Articles Mode. In Groups Mode, you
perform operations on the newsgroups themselve. In Articles Mode, you perform
operations on the articles in a selected group.
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 your updated news tree information
to your .grnrc file.
Both Groups Mode and Articles Mode have a Text gadget near the bottom of the
window which are used to display messages. For Groups Mode, the total number of
groups, articles, and unread articles is displayed. For Articles Mode, article
number, remaining article count, and the name of the next group is displayed.
In Groups mode, you are presented with a list of all the news groups, along with
the number of articles in each group and the number of unread articles in each
group.Below this list of groups are a set of buttons which operate on the
selected newsgroup. You can catchup (mark all articles as read) in a newsgroup,
read a newsgroup (go to articles mode), post to a newsgroup, or publish a binary
file to a newsgroup. There is also a "bug report" button, which will
automatically send me e-mail so you can easily access me to get bugs and/or
enhancements done.
Click once on a newsgroup to select it and the various buttons become active as
appropriate. It doesn't make sense to be able to read an empty newsgroup, so
the "Read" button will be disabled, for example. Click again on the newsgroup
is the same as clicking once and doing "Read".
In Articles Mode, the window takes a new display format. The list at the top
becomes a list of the articles in the selected group, including status
(READ/UNREAD), article number (actually the filename), the sender (parsed from
the From: field of the 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 the Usenet header information. When "Hide
Read" is checked, the articles list will only show UNREAD articles.
Below the checkboxes is a row of buttons. The "Groups" button returns you to
the Groups Mode display. The Prev and Next buttons (bound to the 'n' and 'b'
keys) automatically move you to the previous and next article in the articles
list, respectively. The Next Unread button moves you to the next UNREAD
article. The Prev Group and Next Group (bound to the 'N' and 'B' keys)
automatically move you to the previous and next groups, respectively. And
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 status Text gadget, 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.
The preliminary version of GRn uses the News and Mail Editors specified in your
UULIB:config file. The next release of GRn will have its own composition window
added to it so the package will be fully integrated.
TECHNICAL INFORMATION
GRn internall 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 new field into the UUCP 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.
If you want to restart GRn, delete the .grnrc file...
You still need to run TrimNews to expire your news tree articles.
ALPHA 1.10 NOTES
This section documents what is NOT implemented in the 1.00 alpha version of GRn.
Groups Mode:
1. Publish not implemented or working.
2. Various preferences gadgets not implemented.
These will include:
default sort type, default hide headers, etc.
3. Group list should resort itself in the order the user reads the groups.
Currently, the list is sorted alphabetically...
Articles Mode:
1. Delete button to be added, which will remove an article from the .grnrc list.
The article will remain in your UUNEWS: directory until expired.
2. There is no way to kill a user or thread, yet.
3. The fact that an article is a followup (i.e. Re:) should be kept separate from
the Subject field so as to make the Sort By Subjects work better.
Main Program:
1. There is no way to add new groups to the groups list, other than to delete the
.grnrc file and start over.
2. The program should remember the window position from execution to execution.
BUG FIXES
V1.10
1. When the program was run from an Icon, the followup and reply functions broke.
This is due to Execute() not being passed the full path to the PostNews and
SendMail program. It works if you put the GRn executable in the same directory
as your UUCP binaries.
2. Added spacebar to amode, which pages down a page.
3. Added cursor keys up/down to scroll listview up/down in amode.
4. Implemented Post button in gmode and amode.
5. Made the window open against the right edge of the screen. This is handy for
when your news/mail editor opens on the left side...
6. Added my nifty (pat pat pat my own back :) requester package.
Beta 1.20 Notes
Thanks in particular to Loren Rittle, Matt Dillon, and Peter Cherna (and many others)
for helping me get an even better version of GRn ready for release. Loren helped me
make SAS 'C' NOT open a stdio window when GRn is run from workbench. Matt helped a
great deal with consistency with his UUCP package. And Peter helped solve a problem
I was having with GT_Underscore.
I also want to formally announce that Matt has agreed to make GRn part of the next
UUCP distribution. Naturally, the sources will be included. For the time being, though,
I want to keep control of the source until I get it into the shape we all want to see it
in.
What's New:
1. GRn is fully compliant with Dillon's UUCP package. It now uses the UUNews config
entry instead of requiring a uunews: assign. GRn now looks for s:uuconfig first
before looking for uulib:config. And if s:uuconfig exists, and there is a uulib
config variable in it, it is used instead of the hard assign uulib:.
2. A single enforcer hit was found and squashed. I have egg all over my face after
misreading the autodocs for gadtools and posting about the problem in csa.programmer.
3. GT_Underscore has been added to the various gadgets that now have keyboard equivalents.
Keep in mind that the keyboard equivalents ARE case sensitive!
All the gadgets are rendered in Topaz80 font now. The grn.font is still used for
the listviews only! grn.font allows 84 columns of text in the listviews, while
topaz allows about 60.
4. A new button has been added to the groups mode display called Junk. If you click on this,
you will be asked if you really want to junk the selected newsgroup. When you junk a
newsgroup, it is deleted from the news tree (but not your uunews:) so you can filter
out the newsgroups you don't care to see in the group list LISTVIEW.
5. Fancier signature support has been added. The program now looks for user.signature
in the uunews:newsgroup/ directory first. Then it looks for uulib:user.signature.
Then it looks for uulib:.signature. The theory behind this is that you can have
a unique .signature for each newsgroup you post to.
6. Full key support has been added to groups mode. The cursor keys scroll the group list
LISTVIEW.
7. The requester package I wrote has been cleaned up quite a bit. It now uses Topaz 8-point
font and should never mess up again!!! (famous last words...)
8. The very first grn.font I sent with the first beta (1.10) required you to run FixFonts
on it to make it work. Many people got the now famous "Can't CreateGadget" error message.
Sorry the message is so crude, but gadtools doesn't tell me why the gadget wasn't created...
The new distribution will come with the fixed font.
9. GRn is designed for an interlaced display. If I cut out half the vertical resolution, the
program would be unusable. However, some of you actually use a non-interlace workbench...
This release of GRn detects that you aren't in interlace and will open its own custom screen.
10. Minor glitches in Next Unread, Next Group, and Prev Group have been fixed. These should
work just fine now.
11. TEXT_KIND gadtools gadgets require that your software uses a static buffer to hold the
text that the gadget will display. As I wrote earlier, I misunderstood the autodocs
and though that gadtools would copy the string to a safe place. Therefore, in the last
release, some of the Text gadgets would display garbage at times. This is no longer the
case.
12. The previous version of GRn was imploded (compressed). I will no longer distribute it
in this form. You can go implode it yourself. I only imploded the binary because it
is a sure way to ensure that debug hunks and symbol hunks are stripped from the executable.
(SAS adds these hunks for debugging purposes only - but the executable loads real real real
slow if they are in the file).
13. And best news of all. The grnrc file has been totally redone to reduce the disk space it
uses and also speed up the initialization time. My grnrc went from 350K down to < 60K
for 30 newsgroups and 2000 articles. GRn takes about 10 seconds to load it and be up
and running now.
14. The grnrc file now has a version number embedded in it. The software will tell you to
delete old grnrc files so it can create new ones. In the future, the grnrc file is likely
to change when I add preferences items to it, kill files, and threading information.
All of the above in one night's work.
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. I want to (and everyone want it) add the ability for GRn to follow threads via the
References field. I haven't decided exactly how to implement it, or it would be
in this version. Please be patient (or send suggestions via bug reports).
3. GRn still has no facility to unjunk junked newsgroups nor find new ones. A new button
will be added to the groups mode display to handle this.
4. When reading articles with lines longer than 84 characters, the lines are truncated.
GadTools doesn't support listviews with two (horizontal AND vertical) scrollers...
Next version will split long lines and continue them on a new one.
5. 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).
6. 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.
7. If someone will send me explicit details about how CNews maintains its news directories,
I will try to add support for it in the near future. (Send me email if you use it).
8. I intend to implement a nifty kill-file dialog/requester.
9. 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...
10. The next version of GRn will detect postings done from other users of GRn and notify
you via a text gadget in the articles mode. So far, GRn has only been public for
4 days, and I have received over 100 bug reports (mostly duplicate requests) from over
40 people! I want to thank all of you for your support.
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 (in progress), 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...
Beta 1.22 Notes:
What's new:
1. The program now uses significantly less memory. It used to allocate 128 bytes
each (for each article) for from and header. Now it allocates what it needs.
The savings is dramatic! For my 30 groups and 3000 articles, the old GRn
used 1,650,624 bytes. This new beta version, for the same newstree, uses
711,864 bytes.
2. The bug report button now sends bug reports to grnbugs@amiga0.sf-bay.org, so
I can keep them separate from my regular mail.
Beta 1.23 Notes
What's new:
1. GT_Underscore added to all requesters.
2. GT_Underscore added to junk gadget. If you use the key, the group is junked without
asking you if it is ok. This is to make it very fast to trim a lot of newsgroups
down to the few you want. I suggest you use the mouse and gadget, because it will ask,
especially if it is only a few to junk!
3. GRn no longer chokes if a newsgroup has no .next file in it.
Beta 1.24 was skipped because it was only sent to a few testers.
Beta 1.25 Notes
What's new:
1. Fixed problem with program openning its own custom screen in LoRes.
2. Window height will never exceed 400 pixels.
3. Tried to make requesters more system friendly (less tendancy to block others)
4. Fixed a bug in the Save feature.
5. Added my first cut at threading support!
6. TaskID added to tempfile names for posting and mail functions.
7. Long lines are split into two lines in article browser listview.
8. Tabs expanded into spaces in article browser listview.
Beta 1.26 Notes:
I accidentally posted 1.25 with a bug in it. I tried to delete it from my UUSPOOL:
before it got out. It should not be used. 1.26 is the one to use!
Added to 1.26:
1. Lines starting with capital X are not stripped from headers when hide-headers
option is on. This way, we will all know who is using GRn :) Also, there
might be other interesting items in the headers worth seeing!
2. Added date text gadget to the articles mode
Fixed in 1.27:
1. QueryOverscan used to determine window height.
2. A bug in v1.26 caused blank lines to be deleted from articles displayed.
This is fixed.
3. Catch Up button added to articles mode.
4. The 'u' key (next unread) wasn't being processed in articles mode.
5. The 'b' key is aliased (does same thing as) the 'p' key in articles mode.
I find it easier to hit n/b together to go next/prev article than to hunt
for the 'p' key. This key is not shown as a GT_Underscore, as the 'p'
key is still implemented.
6. GRn used to fail if not PostNews or SendMail variables were set. Now, these
default to PostNews and SendMail. If these aren't on your path, or GRn is
not in the same directory as your binaries, this will cause GRn to fail
to find those binaries when run from Workbench. This is a WARNING so beware!
7. The panic routine now writes its error messages to uuspool:logfile as well
as attempting to print to the cli window. GRn does not print error messages
if run from workbench.
8. GT_Underscore added to YES/NO requester for quit, are you sure?
9. GRnrc program implemented. It simply reads in the existing tree, if found,
updates it, and writes it back out. Useful for cron to launch in the
background and will speed up the launch of grn itself.
10. Increased size of internal buffers for from: and subject: fields to 512 bytes.
Some turkeys out there actually have strings longer than 128 here :)
11. Increased size of all internal buffers that were 128 bytes to 256 bytes, except
as in 10. above.
12. Added the publish feature. Now there is a way to post multipart binaries
from directly within GRn. See the NEW!!! NEW!!! section at the top of the
doc file!
Fixed in 1.28
1. News editor and mail editor not parsed correctly. Fixed.
2. Use GetVPModeID() to find out workbench screen resolution. This makes
GRn truly open its own custom interlace screen when necessary.
3. Added UUCP bug report. This posts a bug report to alt.sys.amiga.uucp
in Matt Dillon's standard bug report format...
4. Improved the article display code to try to find a magical guru bug
that I have yet to see for myself. The program is also now compiled
with stack checking enabled. I would appreciate bug reports from
people who get the crash and then run GRN from the CLI to see if
it is a stack problem. Naturally, the fix for this would be to
increase your STACK size in the CLI and the GRN icon! I personally
run with a 64K stacksize in my CLI, and a 16K stack in my GRn icon
and never see the problem. I always run GRn from the workbench/icon.
5. Actually added the 'b' key, which I missed in V1.27... :)
6. Added initial ToolType support for a few of the things that people
are asking me for. I am not going to test these things thouroughly,
however. I am depending on those of you who NEED these features to
report problems to me and I will make the fixes. The tooltypes are:
TOP=top y coordinate of window
LEFT=left x coordinate of window
WIDTH=width of window
HEIGHT=height of window
MSGFONT=name of font
MSGFONTSIZE=size of font
LOGFILE=filename (full path!)
WRAPCOL=column
The grn.icon that comes with this release has these tooltypes commented
out so you can see the exact format. Note for MSGFONT, you MUST use
fontname.font format or GRn will fail with unpredictable error message :)
If the TOP,LEFT,WIDTH,and HEIGHT are specified, then GRn will NOT attempt
top open its custom screen. Also, if you specify screen dimensions, you
must they will override GRn's concept of what they should be. The WRAPCOL
tooltype allows you to specify what column to wrap article text at. You
will need to specify this if you use a font of your own choosing. TOPAZ
8 point font requires a wrap at somewhere between 60 and 64, while grn.font
requires it at 80-84.
The LOGFILE tooltype lets you specify the name of a file which GRn uses
to print error messages and other log messages (currently only errors).
Type the logfile out to see why GRn is failing when run from workbench...
Logfile defaults to uuspool:logfile (always when run from CLI) unless
overridden by the tooltype. If GRn fails for some reason before getting
to figure out your logfile, it will print its panic message to
uuspool:logfile as well.
7. Fixed a bug in my ParseName() routine which didn't handle nested parenthesis
correctly in usernames.
8. GRn bug report feature now puts the version number in the subject field
so I know which version of GRN you are "bugging" me about :)
9. When posting news, GRn now looks for the file uulib:user.nrefs. The contents
of this file are appended to the header portion of your article that will be
posted. I've been asked to add this feature, though I don't know what real
use it will be (please email me the answers :)!! Anyhow, GRn has already
been doing something similar by adding the line "X-NewsSoftware: GRn..."
to your news articles. Incidentally, even with hide-headers selected,
any article posted by GRn will still show the X-NewsSoftware line in
the message body - this way we all know who is using GRn :)
10. Fixed a nit in the publish feature. It included the full pathname to
the file that was uuencoded (i.e. begin code:grn-src/grn.lzh 777).
Now it just uses the filename.
Fixed in V1.29
1. Found the bug with the article view gadget not resetting to the top of
the listview when using the thread and next unread gadgets. I normally
don't use these, so I couldn't figure out what people were complaining
about. But a very clear message from Norman R. Kraft made me see the
problem and it was an easy one to fix.
2. Found a bug in the thread logic that can cause GURUs. No new guru
bugs have been reported since V1.28 was released, but this will
make GRn more bulletproof.
3. GRn is now being compiled with the DICE compiler. I am attempting
to keep it SAS source compatible, but I can make no guarantees
that if I stick with DICE that GRn sources will always be this way.
GRn V1.28 compiled with SAS was 70844 bytes (LARGE CODE/DATA). With
DICE, it is 52724 bytes (SMALL CODE/DATA). And DICE's library routines
appear to work MUCH MUCH MUCH faster than those that SAS supplies.
4. Found a nasty bug in DICE startup code that kept GRn from working from
workbench. This kept a new release of GRn from happening for a couple
of weeks. Thanks to Georg Sassen for tracking this down for me!!!