home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / source / netnwscd.sit / Readme < prev    next >
Text File  |  1990-10-22  |  6KB  |  146 lines

  1.  
  2. NetNews Starter Code Package (NNSCP)  October 1990 
  3. ===================================================
  4. If you have picked up this code in hopes of finding a nifty new news reader 
  5. you will be disappointed and should probably stick with one of the HyperCard 
  6. based readers. If, on the other hand, you've thought about tinkering with a 
  7. news reader you may find this a useful starting point.  The code requires 
  8. Think C 4.0 or later and MacTCP.  While this code does produce a perfectly
  9. acceptable new reader (I use it as my sole news reader), it is best viewed as
  10. sample code.  The user interface is cumbersome in parts and the code is not
  11. robust enough to be considered a finished product.  I call this code a starter
  12. package because it implements a "news reader in the raw", base functionality,
  13. ready to be customized with features of your design.
  14.  
  15. You may copy the NNSCP in whole or in part as long as you don't try to make
  16. money off it, or pretend that you wrote it.
  17.  
  18. Disclaimer
  19. ===========
  20. No warrantee of any kind, express or implied, is included with this software; 
  21. use at your own risk, responsibility for damages (if any) to anyone resulting 
  22. from the use of this software rests entirely with the user.
  23.  
  24. Copyright
  25. =========
  26. The file 'nntp.h' and most of 'nntp.c' is borrowed from the UN*X 'rn' program.
  27. The TCP code is a reworking of various TCP programs which have been kicking 
  28. around the net. Everything else is original and is copyright ⌐ Tom Bereiter, 
  29. 1990.
  30.  
  31. Author
  32. ======
  33. comments, bugs, and such should be directed to:
  34.  
  35.     Tom Bereiter
  36.     cs.utexas.edu!halley!twb
  37.  
  38. About this program:
  39. ===================
  40.  - news reader only (contains no code for posting)
  41.  - multi-window: group list, article lists, article windows
  42.  - group list displays either all groups or subscribed-to groups
  43.  - article list groups articles into 'threads' by subject
  44.  - article windows are subclasses of CEditDoc, so articles can be edited and 
  45.    saved.
  46.  - uses only synchronous TCP calls
  47.  - it is not fully debugged
  48.     
  49. User documentation
  50. ==================
  51. There isn't any.  But, the user interface is intuitive enough you shouldn't 
  52. have any problems.  Double-click on a group to open the article list.  Double-
  53. click on an article list line to open the article.  The numbers in the left 
  54. column are the number of unread articles.
  55.     A file 'newsrc' is created which contains information on all subscribed-
  56. to groups.  The file is plain text, in the same format as a UN*X '.newsrc' 
  57. file.  This also means that you can import a '.newsrc' simply by sticking it 
  58. in the same directory.
  59.  
  60. Why did I bother writing this?
  61. ==============================
  62.     My current project is a news reader/database which provides a consistent 
  63. interface for accessing both new news and referencing old articles.  "News 
  64. with a memory, more user friendly than grep."
  65.     The first stage of the project was a vanilla news reader.  The basic news 
  66. reader came up fast enough, seemed solid enough, and seemed general enough 
  67. that I thought others would find it useful.
  68.     I also hope to encourage, through example, the distribution of more Mac 
  69. source code.
  70.  
  71. Features I'd like to see:
  72. =========================
  73.  - use async TCP to speed things up (e.g. read next group's subject list while 
  74.    user is reading an article).
  75.  - both next/previous for either unread articles or any articles.
  76.  - way to reorder subscribed-to list (other than editing newsrc).
  77.  - posting
  78.  - full configuration dialog
  79.  - text searching for both lists and article docs.
  80.  - a proper 'Prefs' file rather than stealing the first line of 'newsrc'.
  81.  - join and xbin for comp.binaries.mac files
  82.  - do something with articles >32K better than truncating
  83.  - printing
  84.  
  85. Building the NNSCP 
  86. ==================
  87. These notes assume that you are a C programmer who is already familiar with the
  88. Think C environment.
  89.  
  90. From the Think C package you need:
  91.     Ñ the core class files
  92.     Ñ the more class files for CColorWindow
  93.     Ñ CEditDoc and CEditPane files from the'TCL Demos:TinyEdit Folder'.
  94.       (Note: If you have a big screen you may want to change the width constant
  95.       in CEditPane::IEditPane from 432 to something larger, like 600).
  96.     Ñ qsort.c from 'C Libraries:sources'
  97.  
  98. From MacTCP you need:
  99.     Ñ dnr.c, MacTCPCommonTypes.h, TCPPB.h, GetMyIPAddr.h, and AddressXlation.h.
  100.       If this is the first Think C based MacTCP program you have compiled there is
  101.       a modest amount of porting needed to make these files work.  I have included
  102.       a context diff, tcp.diffs, showing the changes I made to the files from the
  103.       MacTCP Evaluation Kit (1.0).
  104.  
  105. Help Think C find all the files (try Make and use Disk with quick check off), then
  106. compile and run.  The first time you run you will be asked for the name of your
  107. news host.  If you haven't imported a 'newsrc' file the Subscribed Groups list will
  108. be empty--add groups from the 'All Groups' list.  If you have trouble connecting to
  109. your news host, make sure the problem is this program not your comm link by testing
  110. with a HyperCard based news reader.
  111.  
  112. The following files are included with this distribution:
  113.     News.╣
  114.     News.╣.rsrc
  115.     Readme
  116.     tcp.diffs
  117.     News src:News.c
  118.     News src:CNewsApp.c
  119.     News src:CnewsApp.h
  120.     News src:CGroupList.c
  121.     News src:CGroupList.h
  122.     News src:CArticleList.c
  123.     News src:CArticleList.h
  124.     News src:CArticleDoc.c
  125.     News src:CArticleDoc.h
  126.     News src:CListWind.c
  127.     News src:CListWind.h
  128.     News src:newslists.c
  129.     News src:newslists.h
  130.     News src:bits.c
  131.     News src:bits.h
  132.     News src:nntp.c
  133.     News src:nntp.h
  134.     News src:tcpio.c
  135.     News src:utility.c
  136.  
  137. Known bugs
  138. ==========
  139. - most error conditions have never been tested (e.g. out of memory)
  140. - boundary checking for valid list items is inadequate
  141. - List Manager's idea of clipping regions seems to be easily confused. There 
  142.   are hacks in CLList::DelLine,SetLine to partially work around this.
  143. - I have a slow news server that seems to require a delay between the 
  144.   TCPCreate and the TCPOpen.  Timeouts are either coded wrong or have no effect.
  145. - can be confused by 'dead' news groups
  146.