home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 479a.lha / barn_v2.01 / barn.doc < prev    next >
Text File  |  1991-02-10  |  15KB  |  410 lines

  1.               BARN - Bah's Amiga ReadNews
  2.  
  3.              Version 2.0 - January 6, 1991
  4.  
  5.             Written by Jeff Van Epps (aka Lord Bah)
  6.  
  7.  
  8. 1 OVERVIEW
  9.  
  10. 1.1 Purpose
  11.  
  12.     BARN is a Usenet news-reader designed to replace "Anews", which comes
  13. with AmigaUUCP 1.03D.  It is intended to behave quite a bit like "rn" from
  14. the UNIX world.
  15.  
  16. 1.2 Features
  17.  
  18.     Follows subject threads while reading articles.  This means that after
  19. you read one article, you are next presented with the next article in the
  20. newsgroup with the same subject.
  21.  
  22.     Kill files allow you to weed out messages regarding subject which you
  23. aren't interested in, or from people whose messages waste your time.
  24.  
  25.     Article pager behaves like "more", with forward and backward paging and
  26. display of percentage of article read.
  27.  
  28.     Email reply function and post followup article function use editor
  29. specified by the user in a configuration file.    Both functions have an
  30. "include article" option.
  31.  
  32.     Configuration files allow multiple users to read news on the same
  33. machine, from the same directory, at the same time.
  34.  
  35.  
  36. 2 REQUIREMENTS
  37.  
  38. 2.1 Hardware
  39.  
  40.     There are no specific hardware requirements.
  41.  
  42. 2.2 Software
  43.  
  44.     So far, BARN has only been used on AmigaUUCP 1.03D systems.  But it
  45. should understand any future versions with no problems.
  46.  
  47.     It does require the "rmail" program to send email.
  48.  
  49.  
  50. 3 INSTALLATION
  51.  
  52. 3.1 Executable
  53.  
  54.     Place the "barn" executable wherever you want, most conveniently
  55. somewhere in your path.
  56.  
  57. 3.2 Configuration File
  58.  
  59.     Edit the supplied "barn.config" file for your site.  Blank lines are
  60. ignored, and any line beginning with a "#" in column 1 is a comment.  Each
  61. line is of the form "variable=value", with no spaces allowed around the
  62. equal sign.
  63.  
  64.     user=username
  65.  
  66.     This is the equivalent of UserName in UULIB:Config.  It is the user
  67. name by which the mail system addresses mail to you.  It is used in the
  68. From: line of outgoing mail and news postings.
  69.  
  70.     node=machinename
  71.  
  72.     This is the equivalent of NodeName in UULIB:Config.  It is the name by
  73. which the outside world knows your machine.  It is used in the From: line
  74. of outgoing mail and news postings.
  75.  
  76.     name=Joe User
  77.  
  78.     This is the equivalent of RealName in UULIB:Config.  It is your full
  79. name.  It is used in the From: line of outgoing mail and news postings.
  80.  
  81.     domain=.server.company.com
  82.  
  83.     This is the equivalent of DomainName in UULIB:Config.  It is used in
  84. constructing the From: line of outgoing mail and news postings.  The full
  85. constructed line is:  From: $node!$user@$domain ($name).  I don't consider
  86. this general enough, but I haven't had to come up with anything better yet.
  87.  
  88.     editor=stevie
  89.  
  90.     The editor which will be invoked to compose email and followups.
  91.  
  92.     newsrc=.newsrc
  93.  
  94.     The name of the file which keeps track of which articles you have read
  95. in each newsgroup.
  96.  
  97.     kill=KILL
  98.  
  99.     The name of the kill files.  There will be one global kill file in the
  100. root of the news directory structure whose kill rules will apply to all
  101. articles in all newsgroups.  There is also a local kill file within each
  102. newsgroup which applies to only that newsgroup.  This filename must start
  103. with the letters "KILL".
  104.  
  105.     signature=UULIB:.signature
  106.  
  107.     The contents of the signature file will be appended to the outgoing
  108. email and news articles which you compose before you are placed in the
  109. editor.  The contents will NOT be appended after you exit the editor, so
  110. you may delete the signature if you want.
  111.  
  112.     lines=23
  113.     columns=80
  114.  
  115.     These define the dimensions of the window in which you will run the
  116. program.  I'm new to Amiga programming and haven't yet bothered to figure
  117. out how to obtain the current window size or adjust to dynamic resizing
  118. during execution.
  119.  
  120.     noscroll=true
  121.  
  122.     Setting this variable to any value (even false!) will cause the pager
  123. to start each new page at the top of the window rather than scrolling.
  124.  
  125. 3.3 Multiple Users
  126.  
  127.     If you will have multiple users certain rules should be followed
  128. regarding configuration files.
  129.  
  130.     There will be one configuration file for each user.  I recommend naming
  131. the files <username>.config or barn.<usename>.
  132.  
  133.     Within each config file, the variables "user", "name", "newsrc",
  134. "kill", and "signature" will change.  I recommend setting "newsrc" to
  135. <username>.newsrc and "kill" to KILL.<username>.  The others are up to you.
  136.  
  137.     The variables "lines", "columns", "noscroll", and "editor" may be
  138. different in each config file depending on individual user preference.
  139.  
  140.     When the config file to be used is not named "barn.config", you must
  141. specify it on the command line, i.e.
  142.  
  143.     barn <username>.config
  144.  
  145. 3.4 Initial .newsrc file
  146.  
  147.     Create a text file called ".newsrc" in the base directory where news is
  148. stored (usually UUNEWS:).  Each line must have the name of a newsgroup
  149. (e.g. comp.sys.amiga), a space and a "0".  This file will be used by BARN
  150. to keep track of which articles have already been read in each newsgroup.
  151.  
  152.     If you have been using a different newsreader, you may indicate to BARN
  153. which articles you have already read in each newsgroup.  Each line in the
  154. newsrc file contains the newsgroup name, one space, and a sequence of
  155. markers separated by commas.  Each marker is either one number or an
  156. inclusive range of two numbers separated by a dash.  As an example:
  157.  
  158.     comp.sys.amiga 1-500,512,520-534
  159.  
  160.     indicates that in newsgroup comp.sys.amiga, articles numbered 1 thru
  161. 500, 512, and 520 thru 534 have been read.  Articles numbered 501 thru 511,
  162. 513 thru 519, and 535 or higher have not been read.
  163.  
  164.  
  165. 4 OPERATION
  166.  
  167. 4.1 Newsgroup Selection Level
  168.  
  169.     BARN will scan the newsgroups listed in the newsrc file in the order in
  170. which they are listed.    Upon encountering each newsgroup, it will descend
  171. into that directory.  For each file in the directory whose name does not
  172. begin with "KILL", it will interpret the filename as an article number and
  173. determine whether or not that article has already been read, based on the
  174. markers for that newsgroup in the newsrc file.    If the article has not been
  175. read, then the headers of the article are read and compared against the
  176. global and local kill files.  If the article is not killed, it is added to
  177. the list of articles to be read.
  178.  
  179.     When finished scanning the directory, BARN presents the newsgroup name
  180. and the number of unread articles to the user and asks if the user wishes
  181. to read the newsgroup now.  If there are no unread articles, BARN proceeds
  182. to the next newsgroup in the newsrc file without user intervention.
  183.  
  184.     User commands at the newsgroup selection level:
  185.  
  186.     a        About BARN.  Prints credits and version.
  187.     c        Catch up.  Mark all articles in the newsgroup as read.
  188.     n        No, don't read this newsgroup now.  Markers are not updated.
  189.     q        Quit BARN.    Writes the newsrc file and exits.
  190.     y        Yes, read this newsgroup now.  Goes to article selection level.
  191.  <space>    Same as Yes.
  192.  h,H,or ?   Prints help for this level.
  193.  
  194. 4.2 Article Selection Level
  195.  
  196.     The interesting headers of the lowest numbered article are presented to
  197. the user along with the article selection level prompt.
  198.  
  199.     User commands at the article selection level:
  200.  
  201.     a        About BARN.  Prints credits and version.
  202.     c        Catch up.  Mark all articles in the newsgroup as read.
  203.     f        Post followup news article.  Uses user's $editor from config.
  204.     F        Followup, including contents of current article in new article.
  205.     j        Junk this article (mark it as read).
  206.     k        Kill articles matching the current subject pattern.
  207.     K        Kill, placing this kill pattern in the local kill file.
  208.     m        Mark this article as unread.
  209.     n        No, don't read this article.  Mark it as read.
  210.     q        Quit this newsgroup.
  211.     r        Reply to article originator via email.  Uses $editor from config.
  212.     R        Reply, including contents of current article.
  213.     w        Write this article.  Prompts for filename.
  214.     y        Yes, read this article now.
  215.  <space>    Yes, read this article now.
  216.  <minus>    Go to previously displayed article, marking it as unread.
  217.  <equal>    Scan subject threads.
  218.     /        Find next article with subject which BARN will prompt for.
  219.     #        Go to article with number BARN will prompt for (if unread).
  220.  h,H,or ?   Print help for this level.
  221.  
  222.     Unless directed otherwise, BARN will present the next article matching
  223. the current subject thread.  If there is no such article, it will present
  224. the lowest numbered article still unread.
  225.  
  226.     There are some commands which are less than completely clear, so I'll
  227. go over them.
  228.  
  229. 4.2.1 Followups
  230.  
  231.     The Subject header is copied from the current article, and other
  232. headers are generated from sources such as the config file, the system date
  233. and time, etc.    These headers are placed into a temporary file named
  234. T:arnreply.  The user's signature is appended to the file, and the user's
  235. editor specified in the config file is started, given the temporary
  236. filename as an argument on the command line.  If the user specified an
  237. including followup (capital F command), then the text of the current
  238. article is placed in the temporary file between the headers and the
  239. signature, with each line prefixed by "> ".
  240.  
  241.     When the editor returns, the last modification time of the temporary
  242. file is checked.  If it was not modified by the user while in the editor,
  243. the followup operation is aborted.  If it was modified, then the contents
  244. of the temporary file are sent as an email message to "inews@bisco".  This
  245. is a cheap way to post news for me, but I realize that no one else will be
  246. able to use it.  For now, you will have to obtain the source for BARN and
  247. modify this address to one which you can reach which will let you post
  248. news.  Eventually, either I will fix this or someone else will fix this and
  249. I will include the fix in a subsequent release of BARN.
  250.  
  251. 4.2.2 Replies
  252.  
  253.     Replies are almost identical to followups.    The only difference is that
  254. a To: field is inserted into the temporary file addressing the mail to the
  255. originator of the article before invoking the editor, and the To: field is
  256. extracted again after exiting the editor (allowing the user to change the
  257. destination of the message in the editor, in case the From: field from the
  258. original article was bad).  The "rmail" program is then fed the contents of
  259. the temporary file and given the address as an argument.
  260.  
  261.     This should probably use the Reply-To: field if one exists, but I
  262. haven't gotten around to it yet.
  263.  
  264. 4.2.3 Kill Files
  265.  
  266.     Each line of a kill file contains a header name and a regular
  267. expression, such as:
  268.  
  269. 1    Subject: MS-DOS
  270. 2    Sender: fool@school
  271. 3    Subject: ^Re:
  272. 4    Subject: word.*process
  273.  
  274. (1) kills any article whose subject line contains the string "MS-DOS".  (2)
  275. kills any article whose sender header line contains the string
  276. "fool@school".  (3) kills any article whose subject line begins with "Re:".
  277. (4) kills any article whose subject line contains the string "word",
  278. followed by any number of characters, followed by the string "process".
  279.  
  280.     Any "interesting" header may be used in a kill file.  Currently,
  281. "interesting" is defined as one of: "Subject", "From", "To", "Date",
  282. "Sender".  A future version of BARN will allow these to be specified in a
  283. file referenced from the config file.
  284.  
  285.     For a full description of regular expressions, see the regexp man page.
  286.  
  287.     Any kill file can be edited with a normal editor, but don't leave any
  288. blank lines.  Do not edit the global kill file while BARN is running, and
  289. do not edit a local kill file while BARN is in that newsgroup, or your
  290. changes to the file will be lost when BARN writes out its idea of what the
  291. kill file is.
  292.  
  293.     When you use the 'K' command to add a subject to the local kill file,
  294. BARN will escape with a backslash any characters in the subject which would
  295. have special meaning to regexp and add a pattern on the front of the
  296. subject which matches any number of "Re:"-type prependages.
  297.  
  298. 4.2.4 Mark as Unread
  299.  
  300.     The 'm' command is not well-implemented at this time.  It should keep
  301. the article out of the user's sight until all other articles in the
  302. newsgroup have been dealt with.  Instead the user will see the article
  303. again right after the next subject thread is exhausted.
  304.  
  305.     It will be improved.
  306.  
  307. 4.2.5 Write Article
  308.  
  309.     This prompts for a filename and then writes the current article to that
  310. filename in the directory from which BARN was executed using the AmigaDOS
  311. "copy" command.
  312.  
  313. 4.2.6 Previous Article
  314.  
  315.     Returns to the previously displayed article and unmarks ONLY that
  316. article, even if the user has just executed a 'k' - kill command on that
  317. subject.
  318.  
  319. 4.2.7 Scan Subjects
  320.  
  321.     For each unique subject still unread, displays the first article number
  322. using that subject, the number of reply articles under the same subject,
  323. and the subject text.
  324.  
  325. 4.2.8 Find Subject
  326.  
  327.     The '/' command sets the current subject thread to whatever the user
  328. enters.  The system behaves just as if an article with that subject had
  329. been read.  This includes using the user-entered subject as a kill pattern.
  330.  
  331. 4.3 Pager Level
  332.  
  333.     BARN's built-in pager displays the article one page at a time, using
  334. the 'lines' and 'columns' variables from the config file.  Most of the
  335. commands valid at the article selection level are also valid within the
  336. pager.
  337.  
  338.     User commands at the pager level:
  339.  
  340.     a        About BARN.  Prints credits and version.
  341.     b        Go backward one page.
  342.  <space>    Go forward one page.
  343.  <return>   Go forward one line.
  344.    <bs>     Go backward one page.
  345.  h,H,or ?   Print help for the pager level.
  346.  
  347.     and  [fFjkKmnqrRw]    from the article selection level.
  348.  
  349.  
  350. 5 LIMITATIONS
  351.  
  352. 5.1 Followup
  353.  
  354.     As noted in section 4.2.1, you will probably not be able to post news
  355. from your system unless you can modify the source code.  There is no method
  356. for posting "base" articles, only followups.
  357.  
  358. 5.2 From Name
  359.  
  360.     The "From:" line constructed may not be in a form suitable for your
  361. site.
  362.  
  363. 5.3 Article Expiration
  364.  
  365.     I consider article expiration to be a separate function.  I've supplied
  366. a short shell script that I use to do this; modify to suit.
  367.  
  368.  
  369. 6 FUTURE ENHANCEMENTS
  370.  
  371.     Junking a range of article numbers.
  372.  
  373.     Verbose command to display all article headers.
  374.  
  375.     Customizable list of "interesting" headers, not just "From", "Date", and
  376. "Subject".
  377.  
  378.     Use Message-ID to avoid multiple display of cross-posted articles.  I
  379. currently do this with an external program.
  380.  
  381.     More interesting commands to handle articles which have already been read.
  382.  
  383.  
  384. 7 SOURCE CODE MODIFICATION
  385.  
  386.     I use SAS C 5.10.  There are probably some library functions that I use
  387. which Manx does not provide.  I also use Miles Bader's "cc" front-end to
  388. "lc" to sort out all of the compiler options.  You will also need to find
  389. Henry Spencer's "regexp" library to recompile.
  390.  
  391.     If you do make modifications, please send them to me rather than
  392. releasing them yourself so that I can try to keep track of different
  393. versions.  Thank you for your cooperation.
  394.  
  395.  
  396. 8 CREDITS
  397.  
  398.     Uses sendpacket.c and raw.c from the AmigaUUCP distribution, which is
  399. apparently now in the hands of an entity called Dynamyx.  The mentioned source
  400. files were written by CBM and Chuck McManis, respectively.  I'll put my source
  401. in the public domain eventually, but I want to make sure there are no bugs
  402. first.
  403.  
  404.     Uses the regexp library written by Henry Spencer and copyrighted by
  405. the University of Toronto in 1986.
  406.  
  407.     All else written by Jeff Van Epps.
  408.  
  409.     Compiled with SAS C 5.10.
  410.