home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / comms / network / grn116a.lha / grn.doc < prev    next >
Text File  |  1992-05-20  |  35KB  |  720 lines

  1. GRn - GadTools Read News program By Mike Schwartz and Mike Smith
  2.  
  3. For those of you who wish to contribute some money for this
  4. program, my address is:
  5.  
  6. Mike Schwartz
  7. 1124 Fremont Ave.
  8. Los Altos, CA  94024
  9.  
  10. I do not ask, particularly, for any kind of donation, but I have
  11. been asked several times in E-Mail for my address...  Feel free
  12. to donate :) but feel no obligation to do so.  I wrote GRn for
  13. myself, first and foremost, but when I saw how well it worked,
  14. I decided to give it away to my friends who also post on the
  15. net.  Any money I do receive will be shared with Matt Dillon
  16. and Mike Smith (I am not greedy :)
  17.  
  18.  
  19. VERY NEW!!!! 1.16a is the new release version number!
  20.  
  21. GRn is no longer BETA!  I have changed the version to reflect
  22. its compatibility with Dillon's UUCP package.  The current
  23. version of GRn is now V1.16a.  The 'a' will change as updates
  24. are made, but the 1.16 won't change until a 1.17 or later release
  25. of UUCP.
  26.  
  27. So, what's new?  Thanks to Michael B. Smith, GRn now supports
  28. CNews style directory structure as well as the traditional
  29. 1.15 comp.sys.amiga.* flat directory structure.  That's the only
  30. major change since the last beta release (1.29).  Since I am
  31. still running 1.15, I have only been able to test the flat directory
  32. stuff still works.  If you have problems with the HFS support,
  33. please use the bug-report button!  My first suggestion, however,
  34. is to adjust your stacksize UP...
  35.  
  36.  
  37. CREDITS
  38.  
  39. Again, special thanks to Peter Cherna for his assistance with
  40. my GadTools questions.  I still can't do EVERYTHING I want to
  41. with GadTools, but I am getting better, especially with his help
  42. :):)
  43.  
  44. Also, special thanks to Georg Sassen for his assistance with the
  45. DICE startup from workbench problem that haunted me for weeks.
  46.  
  47. Now special thanks are due to Matt Dillon, as well.  He has helped
  48. me to make GRn as compatible with UUCP as possible.  As well, his
  49. 'C' compiler, DICE, is head and shoulders above the rest of the
  50. Amiga 'C' compilers.  If you don't have it, it is well worth the
  51. $50 to get the registered version.  Once you start using it, you
  52. won't want to use anything LESS (not else :)  DICE RULES!!!
  53.  
  54.  
  55.  
  56. IMPORTANT!!! IMPORTANT!!! IMPORTANT!!!
  57.  
  58. GRn is written in 'C'.  And typical of 'C' programs, it requires a bit of
  59. stack space.  GRn should comfortably run with 16K of stack.  It probably
  60. will work with 8K, but I won't guarantee it.  Some of the subroutines have
  61. as much as 5K in auto variables/arrays...
  62.  
  63.  
  64. NEW!!! NEW!!! NEW!!! (Version 1.29)
  65.  
  66. This is a smaller and faster version of GRn.  This is due to compiling
  67. with small model DICE.  DICE is an amazingly great improvement over SAS
  68. in terms of run-time speed and code size over SAS.
  69.  
  70. V1.29 is mainly a bug fix release.  Since it is switched to a new compiler,
  71. I want to make sure that it still works for most of you.  If you are using
  72. 1.28 or lower, it would be of great help to me if you switch to 1.29 and
  73. report any new bugs you might find.
  74.  
  75. The two main fixes in 1.29 are the listview scroller bug (see below) and
  76. the thread guru bug.
  77.  
  78. NEW!!! NEW!!! NEW!!! (version 1.28)
  79.  
  80. GRn is much more customizable, thanks to tooltypes.  See the documentation
  81. below (Fixed in 1.28) for details on the tooltypes.  The grn.info that
  82. comes with this distribution now 
  83.  
  84. Now distributed with GRn (starting with V1.28) will be another neato utility
  85. I wrote to enhance UUCP on the Amiga under 2.04 (and up).  This utility is
  86. called MailMinder.  MailMinder adds appIcon(s) to your workbench display
  87. that (in default form) is a mailbox with flag up (if you have mail) or
  88. flag down (if you don't).  MailMinder is fully configurable via tooltypes
  89. and can automatically launch DMail (or whatever) when you have mail or
  90. when you doubleclick the icon.
  91.  
  92. Included with MailMinder are custom Icons drawn by Paul Broe, Dave Connors,
  93. Stephan Lussier, and Andy Wright.  My thanks to these guys!  Special thanks
  94. to Andy Wright, who passes along some very nifty scripts and such to go
  95. along with MailMinder.
  96.  
  97. NEW!!! NEW!!! NEW!!! (version 1.27)
  98.  
  99. The publish feature has finally been implemented.  From the groups mode,
  100. hit the publish button.  A file requester will be presented for you to
  101. choose the binary file which you want to publish.  GRn will automatically
  102. uuencode and make as many 30K posts/parts as needed to completely post
  103. the binary.  The subject line of each message is formatted as 
  104.     filename  (part x/y)
  105.  
  106. One of these years, GRn will automatically be able to SAVE these multipart
  107. files and uudecode them.
  108.  
  109. I am including the uuencode that I use (never had any problems with it)
  110. as part of the 1.27 and up distribution.  If anyone has problems with
  111. this version of uuencode, I am willing to replace mine with theirs...
  112. Also, regrettably, I have NO idea who wrote this uudecode program, or
  113. I would give him the credit he deserves.
  114.  
  115. NOTE WELL:  The uuencode program should be placed in the same directory
  116. as GRn.  As near as I can tell, there is no provision in Matt's UUCP
  117. variables/heierarchy for a uuencode or uudecode variable.  This is subject
  118. to change, of course.
  119.  
  120. ALSO NOTE:  The Stop Button in the fuel guage requester for publish does
  121. nothing.
  122.  
  123. Starting with version 1.27, GRn now comes with a standalone GRnrc program.  This
  124. program runs from the CLI and updates your grnrc file.  So, how is this useful?
  125. The intent is to put it into your crontab.  The program will go and update the
  126. uulib:user.grnrc file to reflect the new news articles.  This will greatly speed
  127. up the launch time of GRn since it won't have to add or prune new articles.
  128.  
  129. CLI command syntax:
  130.  
  131.     grnrc username
  132.  
  133. You have to specify username on the commandline so grnrc knows which grnrc file
  134. to update.  You can, of course, use grnrc for multiple users by using multiple
  135. invocations with the appropriate names.
  136.  
  137. I personally won't be using this program, but some of the beta testers have
  138. requested this feature, and it was pretty simple to hack out from the rest
  139. of the GRn program.
  140.  
  141. Also, if you add a second command line parameter (any string will do) as in:
  142.  
  143.     grnrc username debug
  144.  
  145. GRnrc will print out status messages.
  146.  
  147. INTRODUCTION AND OVERVIEW
  148.  
  149. I've been on UseNet for over 7 years now (causing everyone pain and misery, I'm
  150. sure :).  For the last year (plus), I've been using Matt Dillon's Amiga UUCP
  151. package to actually get to read/write news and mail on my Amiga instead of
  152. having to use some cryptic and barbaric Unix user interface over the phone at
  153. 2400 broads (oops, baud :).
  154.  
  155. But after using DNews for all this time, I have always wanted to replace it with
  156. something that works better for the Amiga - something that uses Intuition and
  157. runs from an Icon, etc.  Also, Matt has been to busy to polish up DNews to meet
  158. my demanding specifications :)
  159.  
  160. Ever since 2.0 has come out, I've been using the new 2.0 functions.  I typically
  161. don't write hard disk based programs for public consumption on the Amiga, so it
  162. never has made a difference to me to support 1.3.  So if you don't have 2.0, you
  163. may as well stop reading and delete these files, or you may start drooling :) Or
  164. you should go and get 2.0.  It is worth it.  Once you go 2.0, you won't go back.
  165.  
  166. I should also mention that I have tried to find other PD news readers, but none
  167. have even come close to what I envisioned an Amiga oriented News Reader to be.
  168. Too many of them are clones of Unix teletype style interfaces for my personal
  169. liking.
  170.  
  171. GRn can be started from the CLI or from the workbench icon.  I personally use
  172. the later.
  173.  
  174. Coming soon to an Amiga near you - GMail!
  175.  
  176. BASIC CONCEPTS AND REQUIREMENTS
  177.  
  178. GRn requires 2.04 (or higher) of the Amiga OS plus Matt Dillon's UUCP package
  179. 1.13.  There may be a small problem or two with higher versions of UUCP, since I
  180. don't use them or test with them.  I am counting on you folks who use it to help
  181. me to find/fix these problems.  I am perfectly willing to provide you the
  182. support you need!  I am perfectly satisfied with 1.13, so I haven't bothered to
  183. upgrade - if it ain't broke, why fix it?  :)
  184.  
  185. GRn is patterned after some screen shots of XRn (X-Windows Read News) that a
  186. friend of mine sent to me.  I've never used XRn, but it looks like a great user
  187. interface for News.  I doubt that GRn is totally a look- and feel-alike for XRn,
  188. but it deserves a plug anyhow.  Anything that makes Unix less cryptic is worth
  189. the plug!
  190.  
  191. GRn assumes that you have the basic Amiga UUCP system assigns in place - UUCP:,
  192. UUTMP:, UUMAIL:, UUNEWS:, etc.  GRn creates a file called username.grnrc in your
  193. UULIB:  directory, where it keeps track of the News database.  This file is NOT
  194. in ascii format, and can grow to be quite large - about 256 bytes per news
  195. article in your UUNEWS:  directory tree.  However, the binary format used
  196. provides for as fast a startup/shutdown as I could get, considering the
  197. inefficiencies of the Amiga filesystem for scanning directories.
  198.  
  199. Due to problems with Dillon's software not using the system path to find its
  200. binaries, I've found that the only way to get GRn to work properly from a
  201. workbench ICON is to put the GRn executable in the same directory as Dillon's
  202. binaries.  More specifically, Dillon's PostNews Execute()'s BatchNews, RNews,
  203. and UUX, but when GRn is run from a workbench ICON, those Execute()s fail for
  204. some reason.  Remember, if you keep your UUCP binaries in UUCP:c, as I do, put
  205. the GRn executable and Icon in UUCP:c also!  GRn deliberately uses the full path
  206. to the executables as found in your environment variables or UULIB:config...
  207.  
  208. Finally, GRn is designed to work with its own custom 8-point font.  This font is
  209. called grn.font and must be installed in your fonts:  directory.  There are
  210. valid reasons for choosing to do so...  First of all, although GRn is pretty
  211. smart about algorithmically placing and sizing the various gadgets, it is easy
  212. for the user to choose a font that makes the gadgets not fit appropriately in
  213. the window.  Second, the font I chose is narrow, so you can fit more columns of
  214. text in the browser listviews.
  215.  
  216. OPERATION
  217.  
  218. GRn operates in a single window, which can have two different looks to it.  The
  219. two modes of operation are Groups Mode and Articles Mode.  In Groups Mode, you
  220. perform operations on the newsgroups themselve.  In Articles Mode, you perform
  221. operations on the articles in a selected group.
  222.  
  223. There is a close gadget on the window.  Use this gadget ONLY if you want to quit
  224. without updating your .grnrc file!  The "Quit" button on the groups mode window
  225. is the normal method of quitting which saves your updated news tree information
  226. to your .grnrc file.
  227.  
  228. Both Groups Mode and Articles Mode have a Text gadget near the bottom of the
  229. window which are used to display messages.  For Groups Mode, the total number of
  230. groups, articles, and unread articles is displayed.  For Articles Mode, article
  231. number, remaining article count, and the name of the next group is displayed.
  232.  
  233. In Groups mode, you are presented with a list of all the news groups, along with
  234. the number of articles in each group and the number of unread articles in each
  235. group.Below this list of groups are a set of buttons which operate on the
  236. selected newsgroup.  You can catchup (mark all articles as read) in a newsgroup,
  237. read a newsgroup (go to articles mode), post to a newsgroup, or publish a binary
  238. file to a newsgroup.  There is also a "bug report" button, which will
  239. automatically send me e-mail so you can easily access me to get bugs and/or
  240. enhancements done.
  241.  
  242. Click once on a newsgroup to select it and the various buttons become active as
  243. appropriate.  It doesn't make sense to be able to read an empty newsgroup, so
  244. the "Read" button will be disabled, for example.  Click again on the newsgroup
  245. is the same as clicking once and doing "Read".
  246.  
  247. In Articles Mode, the window takes a new display format.  The list at the top
  248. becomes a list of the articles in the selected group, including status
  249. (READ/UNREAD), article number (actually the filename), the sender (parsed from
  250. the From:  field of the header), and the subject.  This is a convenient way to
  251. browse through the articles available to read!
  252.  
  253. There are two checkboxes below the list of articles named "Hide Headers" and
  254. "Hide Read Messages".  When "Hide Headers" is checked, the browser window at the
  255. bottom of the window will not display the Usenet header information.  When "Hide
  256. Read" is checked, the articles list will only show UNREAD articles.
  257.  
  258. Below the checkboxes is a row of buttons.  The "Groups" button returns you to
  259. the Groups Mode display.  The Prev and Next buttons (bound to the 'n' and 'b'
  260. keys) automatically move you to the previous and next article in the articles
  261. list, respectively.  The Next Unread button moves you to the next UNREAD
  262. article.  The Prev Group and Next Group (bound to the 'N' and 'B' keys)
  263. automatically move you to the previous and next groups, respectively.  And
  264. finally, there is a cycle gadget that allows you to specify how to sort the list
  265. of articles.
  266.  
  267. You can sort the articles list by Number, From, or Subject fields.  This allows
  268. you a lot of flexibility as to how the Next/Prev functions work.  If you sort by
  269. Number, you read in the order the messages were posted by Dillon's UUCP.  If you
  270. sort by From, you can read all the articles by a certain person in order.  If
  271. you sort by Subject, you can read the articles in "thread" fashion.
  272.  
  273. Below these buttons are three text gadgets used to display the From:,
  274. Organization:, and Subject:  fields from the selected article.  When the "Hide
  275. Headers" option is selected, this is typically the header information that you'd
  276. care about, anyhow.  But if you want to see other information in the headers,
  277. you always can with the click of the mouse...  I like the Hide Headers feature,
  278. because you will more often than not be able to see entire articles in the
  279. browser window this way.
  280.  
  281. Below the text gadgets is the article browser window.  This window will contain
  282. the text (with or without headers) of the selected article.  You have a choice
  283. of using the Mouse to scroll this window or to use the keyboard cursor keys.
  284. Unfortunately, one of the oversights in GadTools.library is that there is no way
  285. to tell how the user has used the mouse to scroll the ListView, so intermixing
  286. can be a bit confusing - but it does work as well as possible.
  287.  
  288. Below the status Text gadget, is another row of buttons that operate on the
  289. currently selected article.  You may save the article to a file, Reply to the
  290. article's poster via Mail, Forward the article to someone, FollowUp (post) to
  291. the article, or Print the article to your printer.
  292.  
  293. The preliminary version of GRn uses the News and Mail Editors specified in your
  294. UULIB:config file.  The next release of GRn will have its own composition window
  295. added to it so the package will be fully integrated.
  296.  
  297. TECHNICAL INFORMATION
  298.  
  299. GRn internall consists of three logical modules, main, gmode, and amode.  The
  300. main program starts by parsing the environment variables NEWSEDITOR, MAILEDITOR,
  301. and USERNAME or finds them in UULIB:config.  If the .grnrc file is found, main
  302. reads it into memory and then scans the newsgroups for deleted articles
  303. (pruning) and new articles.  If the .grnrc file is not found, main scans UUNEWS:
  304. for groups and articles and builds a tree from scratch.  main also checks to see
  305. if another copy is running and aborts if so (before reading the tree, of
  306. course).  Two copies of GRn running at the same time can cause the News Trees to
  307. be out of sync and cause problems not worth addressing.
  308.  
  309. For each group, the hide headers, hide read, and sort options are kept.  This
  310. way, you can read one group sorted by subject and another sorted by from.
  311.  
  312. When posting or replying, GRn puts a new field into the UUCP headers
  313. "X-NewsSoftware:  GRn, etc."
  314.  
  315.  
  316. RECOMMENDATIONS
  317.  
  318. I recommend that you use your normal newsreader to catchup on all your news
  319. right away.  Then you run GRn and use the catchup feature to get in sync.
  320.  
  321. If you want to restart GRn, delete the .grnrc file...
  322.  
  323. You still need to run TrimNews to expire your news tree articles.
  324.  
  325. ALPHA 1.10 NOTES
  326.  
  327. This section documents what is NOT implemented in the 1.00 alpha version of GRn.
  328.  
  329. Groups Mode:  
  330. 1.      Publish not implemented or working.  
  331.  
  332. 2.      Various preferences gadgets not implemented.
  333.     These will include:
  334.         default sort type, default hide headers, etc.
  335. 3.    Group list should resort itself in the order the user reads the groups.
  336.     Currently, the list is sorted alphabetically...
  337.  
  338. Articles Mode:
  339. 1.    Delete button to be added, which will remove an article from the .grnrc list.
  340.     The article will remain in your UUNEWS: directory until expired.
  341. 2.    There is no way to kill a user or thread, yet.
  342. 3.    The fact that an article is a followup (i.e. Re:) should be kept separate from
  343.     the Subject field so as to make the Sort By Subjects work better.
  344.  
  345. Main Program:
  346. 1.    There is no way to add new groups to the groups list, other than to delete the
  347.     .grnrc file and start over.
  348. 2.    The program should remember the window position from execution to execution.
  349.  
  350. BUG FIXES
  351. V1.10    
  352.  
  353. 1.    When the program was run from an Icon, the followup and reply functions broke.
  354.     This is due to Execute() not being passed the full path to the PostNews and
  355.     SendMail program.  It works if you put the GRn executable in the same directory
  356.     as your UUCP binaries.
  357. 2.    Added spacebar to amode, which pages down a page.
  358. 3.    Added cursor keys up/down to scroll listview up/down in amode.
  359. 4.    Implemented Post button in gmode and amode.
  360. 5.    Made the window open against the right edge of the screen.  This is handy for
  361.     when your news/mail editor opens on the left side...
  362. 6.    Added my nifty (pat pat pat my own back :) requester package.
  363.  
  364. Beta 1.20 Notes
  365.  
  366. Thanks in particular to Loren Rittle, Matt Dillon, and Peter Cherna (and many others)
  367. for helping me get an even better version of GRn ready for release.  Loren helped me
  368. make SAS 'C' NOT open a stdio window when GRn is run from workbench.  Matt helped a
  369. great deal with consistency with his UUCP package.  And Peter helped solve a problem
  370. I was having with GT_Underscore.
  371.  
  372. I also want to formally announce that Matt has agreed to make GRn part of the next
  373. UUCP distribution.  Naturally, the sources will be included.  For the time being, though,
  374. I want to keep control of the source until I get it into the shape we all want to see it
  375. in.
  376.  
  377. What's New:
  378.  
  379. 1.    GRn is fully compliant with Dillon's UUCP package.  It now uses the UUNews config
  380.     entry instead of requiring a uunews: assign.  GRn now looks for s:uuconfig first
  381.     before looking for uulib:config.  And if s:uuconfig exists, and there is a uulib
  382.     config variable in it, it is used instead of the hard assign uulib:.
  383.  
  384. 2.    A single enforcer hit was found and squashed.  I have egg all over my face after
  385.     misreading the autodocs for gadtools and posting about the problem in csa.programmer.
  386.  
  387. 3.    GT_Underscore has been added to the various gadgets that now have keyboard equivalents.
  388.     Keep in mind that the keyboard equivalents ARE case sensitive!
  389.     All the gadgets are rendered in Topaz80 font now.  The grn.font is still used for
  390.     the listviews only!  grn.font allows 84 columns of text in the listviews, while
  391.     topaz allows about 60.
  392.  
  393. 4.    A new button has been added to the groups mode display called Junk.  If you click on this,
  394.     you will be asked if you really want to junk the selected newsgroup.  When you junk a
  395.     newsgroup, it is deleted from the news tree (but not your uunews:) so you can filter
  396.     out the newsgroups you don't care to see in the group list LISTVIEW.
  397.  
  398. 5.    Fancier signature support has been added.  The program now looks for user.signature
  399.     in the uunews:newsgroup/ directory first.  Then it looks for uulib:user.signature.
  400.     Then it looks for uulib:.signature.  The theory behind this is that you can have
  401.     a unique .signature for each newsgroup you post to.
  402.  
  403. 6.    Full key support has been added to groups mode.  The cursor keys scroll the group list
  404.     LISTVIEW.
  405.  
  406. 7.    The requester package I wrote has been cleaned up quite a bit.  It now uses Topaz 8-point
  407.     font and should never mess up again!!! (famous last words...)
  408.  
  409. 8.    The very first grn.font I sent with the first beta (1.10) required you to run FixFonts
  410.     on it to make it work.  Many people got the now famous "Can't CreateGadget" error message.
  411.     Sorry the message is so crude, but gadtools doesn't tell me why the gadget wasn't created...
  412.     The new distribution will come with the fixed font.
  413.  
  414. 9.    GRn is designed for an interlaced display.  If I cut out half the vertical resolution, the
  415.     program would be unusable.  However, some of you actually use a non-interlace workbench...
  416.     This release of GRn detects that you aren't in interlace and will open its own custom screen.
  417.  
  418. 10.    Minor glitches in Next Unread, Next Group, and Prev Group have been fixed.  These should
  419.     work just fine now.
  420.  
  421. 11.    TEXT_KIND gadtools gadgets require that your software uses a static buffer to hold the
  422.     text that the gadget will display.  As I wrote earlier, I misunderstood the autodocs
  423.     and though that gadtools would copy the string to a safe place.  Therefore, in the last
  424.     release, some of the Text gadgets would display garbage at times.  This is no longer the
  425.     case.
  426.  
  427. 12.    The previous version of GRn was imploded (compressed).  I will no longer distribute it
  428.     in this form.  You can go implode it yourself.  I only imploded the binary because it
  429.     is a sure way to ensure that debug hunks and symbol hunks are stripped from the executable.
  430.     (SAS adds these hunks for debugging purposes only - but the executable loads real real real
  431.     slow if they are in the file).
  432.  
  433. 13.    And best news of all.  The grnrc file has been totally redone to reduce the disk space it
  434.     uses and also speed up the initialization time.  My grnrc went from 350K down to < 60K
  435.     for 30 newsgroups and 2000 articles.  GRn takes about 10 seconds to load it and be up
  436.     and running now.
  437.  
  438. 14.    The grnrc file now has a version number embedded in it.  The software will tell you to
  439.     delete old grnrc files so it can create new ones.  In the future, the grnrc file is likely
  440.     to change when I add preferences items to it, kill files, and threading information.
  441.  
  442. All of the above in one night's work.
  443.  
  444. What's coming next:
  445.  
  446. 1.    I still want to work on the way sort by subject works.  The Re: part should not be
  447.     considered during the sort, except to put the original posting first.
  448.  
  449. 2.    I want to (and everyone want it) add the ability for GRn to follow threads via the
  450.     References field.  I haven't decided exactly how to implement it, or it would be
  451.     in this version.  Please be patient (or send suggestions via bug reports).
  452.  
  453. 3.    GRn still has no facility to unjunk junked newsgroups nor find new ones.  A new button
  454.     will be added to the groups mode display to handle this.
  455.  
  456. 4.    When reading articles with lines longer than 84 characters, the lines are truncated.
  457.     GadTools doesn't support listviews with two (horizontal AND vertical) scrollers...
  458.     Next version will split long lines and continue them on a new one.
  459.  
  460. 5.    The publish and hide unread gadgets are still disabled.  Publish will allow you to
  461.     automagically uuencode and post (in as many parts as needed) binary files to a news
  462.     group.  I will add a reverse option to the articles mode to automagically combine
  463.     these kinds of postings and uudecode them (when you use SAVE).
  464.  
  465. 6.    There is still a huge wasted area below the groups LISTVIEW in groups mode.  I intend
  466.     to add new features there in the future.  Please be patient.  I intend to implement
  467.     a full-blown uulib: configuration editor, preferences (like a way to change my bug
  468.     report path if I move, GRn task priority, etc.), a button to start/stop CRON and
  469.     UUCICO, and eventually GMail.
  470.  
  471. 7.    If someone will send me explicit details about how CNews maintains its news directories,
  472.     I will try to add support for it in the near future.  (Send me email if you use it).
  473.  
  474. 8.    I intend to implement a nifty kill-file dialog/requester.
  475.  
  476. 9.    I will add the capability of GRn to iconify itself (into an appIcon).  I have done this
  477.     with other programs already, and it's no big deal...
  478.  
  479. 10.    The next version of GRn will detect postings done from other users of GRn and notify
  480.     you via a text gadget in the articles mode.  So far, GRn has only been public for
  481.     4 days, and I have received over 100 bug reports (mostly duplicate requests) from over
  482.     40 people!  I want to thank all of you for your support.
  483.  
  484. Things NOT implemented (I decided against doing):
  485.  
  486. 1.    Allowing the user to specify the font of his choice for the listviews.  Until the
  487.     Amiga has higher resolution and faster hardware display, it doesn't make sense to
  488.     not have at least 80 columns of text for the article browser.
  489.  
  490. 2.    I was going to add some sort of statistic display while GRn was starting up.
  491.     It is not needed anymore, since GRn zips now.
  492.  
  493. 3.    There were complaints about the size of the grnrc file.  I was going to add a
  494.     compressor/decompressor to shrink this.  I have a real fast one I use in my
  495.     games that does about what LHARC does (same percentage, but much faster).  It
  496.     isn't needed anymore, since I reduced the grnrc file size by 80%.
  497.  
  498. Call for discussion:
  499.  
  500. I have an idea that I would like feedback on.  I want to implement a news/mail editor that
  501. is 100% consistent with the GRn interface.  Currently, GRn supports no particular editor
  502. well.  An integrated editor may seem controversial at first glance, but let me describe
  503. it in more detail and then you can send me flame mail (or whatever) with your opinions.
  504.  
  505. The editor I envision has a different look for mail and news editing, so let me describe
  506. Mail first.  The top of the window (same window as GRn uses now) would have String gadgets
  507. for you to enter To:, Subject:, Cc:, Bcc:, and Attachment: header fields.  Next to each
  508. string gadget will be a button - if you hit the To: button, a requester with a listview
  509. containing your aliases and EVERY username GRn and GMail ever see in From: and Path:
  510. fields of all news articles and mail messages would pop up and you can simply select
  511. a name.  If you click on the button next to attachment, a file requester pops up to
  512. request what file you wish to send as a binary with the mail (uuencoded, split, 
  513. automagically).  At the bottom of the window there will be several gadgets, among them:
  514. Save (in progress), Send, Abort, Include article/message, Include File, and print.
  515.  
  516. The article editor has different gadgets at the top: newsgroups, subject, etc.  Similar
  517. to the mail editor, you can click a button next to newsgroups: and you get a listview
  518. requester with a list of ALL newsgroups your UUCP knows about to choose from.  At the
  519. bottom of this window, you have similar buttons to the mail editor.
  520.  
  521. Now that you have a feel for the nature of the editor (unified environment), I'd like
  522. to point out that I don't believe the editor should be a massive, full-blown program
  523. editor by any means.  In fact, I believe the editor should be pretty minimal.  It will
  524. do word wrap and cut and paste (to the clipboard.device).  It will be more than useable
  525. for what it is designed to do - edit mail and news articles (what a concept :)
  526.  
  527. OK, I've had my say, let me know your opinions...
  528.  
  529. Beta 1.22 Notes:
  530.  
  531. What's new:
  532.  
  533. 1.    The program now uses significantly less memory.  It used to allocate 128 bytes
  534.     each (for each article) for from and header.  Now it allocates what it needs.
  535.     The savings is dramatic!  For my 30 groups and 3000 articles, the old GRn
  536.     used 1,650,624 bytes.  This new beta version, for the same newstree, uses
  537.     711,864 bytes.
  538.  
  539. 2.    The bug report button now sends bug reports to grnbugs@amiga0.sf-bay.org, so
  540.     I can keep them separate from my regular mail.
  541.  
  542. Beta 1.23 Notes
  543.  
  544. What's new:
  545.  
  546. 1.    GT_Underscore added to all requesters.
  547.  
  548. 2.    GT_Underscore added to junk gadget.  If you use the key, the group is junked without
  549.     asking you if it is ok.  This is to make it very fast to trim a lot of newsgroups
  550.     down to the few you want.  I suggest you use the mouse and gadget, because it will ask,
  551.     especially if it is only a few to junk!
  552.  
  553. 3.    GRn no longer chokes if a newsgroup has no .next file in it.
  554.  
  555.  
  556. Beta 1.24 was skipped because it was only sent to a few testers.
  557.  
  558.  
  559. Beta 1.25 Notes
  560.  
  561. What's new:
  562.  
  563. 1.    Fixed problem with program openning its own custom screen in LoRes.
  564.  
  565. 2.    Window height will never exceed 400 pixels.
  566.  
  567. 3.    Tried to make requesters more system friendly (less tendancy to block others)
  568.  
  569. 4.    Fixed a bug in the Save feature.
  570.  
  571. 5.    Added my first cut at threading support!
  572.  
  573. 6.    TaskID added to tempfile names for posting and mail functions.
  574.  
  575. 7.    Long lines are split into two lines in article browser listview.
  576.  
  577. 8.    Tabs expanded into spaces in article browser listview.
  578.  
  579. Beta 1.26 Notes:
  580.  
  581. I accidentally posted 1.25 with a bug in it.  I tried to delete it from my UUSPOOL:
  582. before it got out. It should not be used.  1.26 is the one to use!
  583.  
  584. Added to 1.26:
  585.  
  586. 1.    Lines starting with capital X are not stripped from headers when hide-headers
  587.     option is on.  This way, we will all know who is using GRn :)  Also, there
  588.     might be other interesting items in the headers worth seeing!
  589.  
  590. 2.    Added date text gadget to the articles mode
  591.  
  592. Fixed in 1.27:
  593.  
  594. 1.    QueryOverscan used to determine window height.
  595.  
  596. 2.    A bug in v1.26 caused blank lines to be deleted from articles displayed.
  597.     This is fixed.
  598.  
  599. 3.    Catch Up button added to articles mode.
  600.  
  601. 4.    The 'u' key (next unread) wasn't being processed in articles mode.
  602.  
  603. 5.    The 'b' key is aliased (does same thing as) the 'p' key in articles mode.
  604.     I find it easier to hit n/b together to go next/prev article than to hunt
  605.     for the 'p' key.  This key is not shown as a GT_Underscore, as the 'p'
  606.     key is still implemented.
  607.  
  608. 6.    GRn used to fail if not PostNews or SendMail variables were set.  Now, these
  609.     default to PostNews and SendMail.  If these aren't on your path, or GRn is
  610.     not in the same directory as your binaries, this will cause GRn to fail
  611.     to find those binaries when run from Workbench.  This is a WARNING so beware!
  612.  
  613. 7.    The panic routine now writes its error messages to uuspool:logfile as well
  614.     as attempting to print to the cli window.  GRn does not print error messages
  615.     if run from workbench.
  616.  
  617. 8.    GT_Underscore added to YES/NO requester for quit, are you sure?
  618.  
  619. 9.    GRnrc program implemented.  It simply reads in the existing tree, if found,
  620.     updates it, and writes it back out.  Useful for cron to launch in the 
  621.     background and will speed up the launch of grn itself.
  622.  
  623. 10.    Increased size of internal buffers for from: and subject: fields to 512 bytes.
  624.     Some turkeys out there actually have strings longer than 128 here :)
  625.  
  626. 11.    Increased size of all internal buffers that were 128 bytes to 256 bytes, except
  627.     as in 10. above.
  628.  
  629. 12.    Added the publish feature.  Now there is a way to post multipart binaries
  630.     from directly within GRn.  See the NEW!!! NEW!!! section at the top of the
  631.     doc file!
  632.  
  633. Fixed in 1.28
  634.  
  635. 1.    News editor and mail editor not parsed correctly.  Fixed.
  636. 2.    Use GetVPModeID() to find out workbench screen resolution.  This makes
  637.     GRn truly open its own custom interlace screen when necessary.
  638. 3.    Added UUCP bug report.  This posts a bug report to alt.sys.amiga.uucp
  639.     in Matt Dillon's standard bug report format...
  640. 4.    Improved the article display code to try to find a magical guru bug
  641.     that I have yet to see for myself.  The program is also now compiled
  642.     with stack checking enabled.  I would appreciate bug reports from
  643.     people who get the crash and then run GRN from the CLI to see if
  644.     it is a stack problem.  Naturally, the fix for this would be to
  645.     increase your STACK size in the CLI and the GRN icon!  I personally
  646.     run with a 64K stacksize in my CLI, and a 16K stack in my GRn icon
  647.     and never see the problem.  I always run GRn from the workbench/icon.
  648. 5.    Actually added the 'b' key, which I missed in V1.27... :)
  649. 6.    Added initial ToolType support for a few of the things that people
  650.     are asking me for.  I am not going to test these things thouroughly,
  651.     however.  I am depending on those of you who NEED these features to
  652.     report problems to me and I will make the fixes.  The tooltypes are:
  653.     TOP=top y coordinate of window
  654.     LEFT=left x coordinate of window
  655.     WIDTH=width of window
  656.     HEIGHT=height of window
  657.     MSGFONT=name of font
  658.     MSGFONTSIZE=size of font
  659.     LOGFILE=filename (full path!)
  660.     WRAPCOL=column
  661.  
  662.     The grn.icon that comes with this release has these tooltypes commented
  663.     out so you can see the exact format.  Note for MSGFONT, you MUST use
  664.     fontname.font format or GRn will fail with unpredictable error message :)
  665.     If the TOP,LEFT,WIDTH,and HEIGHT are specified, then GRn will NOT attempt
  666.     top open its custom screen.  Also, if you specify screen dimensions, you
  667.     must they will override GRn's concept of what they should be.  The WRAPCOL
  668.     tooltype allows you to specify what column to wrap article text at.  You
  669.     will need to specify this if you use a font of your own choosing.  TOPAZ
  670.     8 point font requires a wrap at somewhere between 60 and 64, while grn.font
  671.     requires it at 80-84.
  672.  
  673.     The LOGFILE tooltype lets you specify the name of a file which GRn uses
  674.     to print error messages and other log messages (currently only errors).
  675.     Type the logfile out to see why GRn is failing when run from workbench...
  676.     Logfile defaults to uuspool:logfile (always when run from CLI) unless
  677.     overridden by the tooltype.  If GRn fails for some reason before getting
  678.     to figure out your logfile, it will print its panic message to
  679.     uuspool:logfile as well.
  680.  
  681. 7.    Fixed a bug in my ParseName() routine which didn't handle nested parenthesis
  682.     correctly in usernames.
  683. 8.    GRn bug report feature now puts the version number in the subject field
  684.     so I know which version of GRN you are "bugging" me about :)
  685. 9.    When posting news, GRn now looks for the file uulib:user.nrefs.  The contents
  686.     of this file are appended to the header portion of your article that will be
  687.     posted.  I've been asked to add this feature, though I don't know what real
  688.     use it will be (please email me the answers :)!!  Anyhow, GRn has already
  689.     been doing something similar by adding the line "X-NewsSoftware: GRn..."
  690.     to your news articles.  Incidentally, even with hide-headers selected,
  691.     any article posted by GRn will still show the X-NewsSoftware line in
  692.     the message body - this way we all know who is using GRn :)
  693.  
  694. 10.    Fixed a nit in the publish feature.  It included the full pathname to
  695.     the file that was uuencoded (i.e. begin code:grn-src/grn.lzh 777).
  696.     Now it just uses the filename.
  697.  
  698. Fixed in V1.29
  699.  
  700. 1.    Found the bug with the article view gadget not resetting to the top of
  701.     the listview when using the thread and next unread gadgets.  I normally
  702.     don't use these, so I couldn't figure out what people were complaining
  703.     about.  But a very clear message from Norman R. Kraft made me see the
  704.     problem and it was an easy one to fix.
  705.  
  706. 2.    Found a bug in the thread logic that can cause GURUs.  No new guru
  707.     bugs have been reported since V1.28 was released, but this will
  708.     make GRn more bulletproof.
  709.  
  710. 3.    GRn is now being compiled with the DICE compiler.  I am attempting
  711.     to keep it SAS source compatible, but I can make no guarantees
  712.     that if I stick with DICE that GRn sources will always be this way.
  713.     GRn V1.28 compiled with SAS was 70844 bytes (LARGE CODE/DATA).  With
  714.     DICE, it is 52724 bytes (SMALL CODE/DATA).  And DICE's library routines
  715.     appear to work MUCH MUCH MUCH faster than those that SAS supplies.
  716.  
  717. 4.    Found a nasty bug in DICE startup code that kept GRn from working from
  718.     workbench.  This kept a new release of GRn from happening for a couple
  719.     of weeks.  Thanks to Georg Sassen for tracking this down for me!!!
  720.