home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / uucp / Arn103a.lha / doc / Arn.doc next >
Encoding:
GNU Info File  |  1993-09-08  |  122.7 KB  |  3,181 lines

  1. This is the manual for Arn V1.03a- the USENET newsreader for the Amiga
  2.  
  3. Copyright (C) 1992-93 Roland Bless of Blessed Software Products
  4.  
  5. This program is not in the public domain. It's copyrighted by Roland
  6. Bless. However, this program and its documentation can be freely
  7. distributed, but ONLY if these rules are followed:
  8.  
  9.    * Commercial usage and making profit with it in any form is strictly
  10.      prohibited, but the program and its documentation may be placed on
  11.      electronic dial-up services for downloading by customers/users of
  12.      such services (like BIX, Compuserve)! DISTRIBUTION, except as
  13.      noted above, IS ONLY ALLOWED AT COST-PRICE/FOR NON-PROFIT! Fred
  14.      Fish naturally has the permission to include it in his great pool
  15.      of Amiga Lib(rary) Disks.
  16.  
  17.    * All Copyright-notes must be maintained! All rights reserved!
  18.      Copyright remains by Roland Bless.
  19.  
  20.    * Redistribution of a changed program and/or documentation is not
  21.      allowed!
  22.  
  23.    * The redistribution of a changed source without permission of the
  24.      author is strictly prohibited!
  25.  
  26.    * Distribution of this packet/program together with another
  27.      documentation (e.g. translated) is not allowed! This applies esp.
  28.      to German PD-Dealers.
  29.  
  30.    * The redistribution in a commercial or PD-mailbox program is not
  31.      allowed without my permission (contact rob@spirits.ka.sub.org).
  32.  
  33.    * NO WARRANTY! I do not take the responsibility for any loss of data
  34.      or any kind of trouble caused by `Arn'! USE IT AT YOUR OWN RISK!!
  35.      I do not guarantee that all functions work as described/expected!
  36.  
  37.  
  38. This is the manual for Arn V1.03a- the USENET newsreader for the Amiga
  39. Copyright (C) 1992-93 Roland Bless of Blessed Software Products
  40.  
  41.  
  42. Copyright and copying
  43. **********************
  44.  
  45. `Arn' is copyrighted software! This program is not in the public
  46. domain. It's copyrighted by Roland Bless.
  47.  
  48. However, this program and its documentation can be freely distributed,
  49. but ONLY if these rules are followed:
  50.  
  51.    * Commercial usage and making profit with it in any form is strictly
  52.      prohibited, but the program and its documentation may be placed on
  53.      electronic dial-up services for downloading by customers/users of
  54.      such services (like BIX, Compuserve)! DISTRIBUTION, except as
  55.      noted above, IS ONLY ALLOWED AT COST-PRICE/FOR NON-PROFIT! Fred
  56.      Fish naturally has the permission to include it in his great pool
  57.      of Amiga Lib(rary) Disks.
  58.  
  59.    * All Copyright-notes must be maintained! All rights reserved!
  60.      Copyright remains by Roland Bless.
  61.  
  62.    * Redistribution of a changed program and/or documentation is not
  63.      allowed!
  64.  
  65.    * The redistribution of a changed source without permission of the
  66.      author is strictly prohibited!
  67.  
  68.    * Distribution of this packet/program together with another
  69.      documentation (e.g. translated) is not allowed! This applies esp.
  70.      to German PD-Dealers.
  71.  
  72.    * The redistribution in a commercial or PD-mailbox program is not
  73.      allowed without my permission (contact rob@spirits.ka.sub.org).
  74.  
  75.    * NO WARRANTY! I do not take the responsibility for any loss of data
  76.      or any kind of trouble caused by `Arn'! USE IT AT YOUR OWN RISK!!
  77.      I do not guarantee that all functions work as described/expected!
  78.  
  79. If you like the program and want to honour my work, you can support me
  80. and the further developement of the program by sending me a donation.
  81. My address is:
  82.  
  83.      Roland Bless
  84.      Groetzinger Strasse 44
  85.      FRG --- 76227 Karlsruhe
  86.  
  87. suggested are $20 US or 30DM, but feel free to spend more. Users in
  88. Germany can remit the money. Please send mail to
  89. `rob@spirits.ka.sub.org' for bank account information.
  90.  
  91. I only received 2 donations for non-alpha/beta V1.xx Versions, this is
  92. a little bit disappointing.
  93.  
  94. At the moment, there is no form of registration, because I don't have
  95. the time for these administrative things. I'll invest this time better
  96. into improving the program. `Arn' is no explicit shareware, because
  97. existing newsreaders for UNIX aren't either.
  98.  
  99. Credits
  100. =======
  101.  
  102. I used source code from the following people/institutions.
  103.   1. *Modified* V8-regexp (egrep-style) functions originally from Henry
  104.      Spencer, (C) 1986 by University of Toronto.
  105.  
  106.   2. slightly modified `termcap.c' and `tgoto.c' from the BSD
  107.      distribution, (C) 1980 The Regents of the University of California.
  108.  
  109.  
  110. Introduction
  111. *************
  112.  
  113. `Arn' is a newsreader for USENET-messages(1) written for the family of
  114. AMIGA computers. `Arn' means 'Amiga reads news'. It works with nearly
  115. all known UUCP installations for the AMIGA and is conform to RFC 1036
  116. (Standard for Interchange of USENET Messages).
  117.  
  118. What's a newsreader's task?
  119. ===========================
  120.  
  121. The mass of information you can get today over wide area networks is
  122. simply too much to read all the themes you're interested in.
  123.  
  124. So the first task for a newsreader is to extract the useful information
  125. from the flood of articles. The second task for a newsreader is that
  126. you get informed quick and don't have to deal with administrative
  127. things, like: Did I read this article already? What's new? Where do I
  128. have to send my answer? and so on... `Arn' was designed to offer you
  129. those capabilities. Some features are:
  130.    * table overview over newsgroups and articles
  131.  
  132.    * selection of groups and articles of interest
  133.  
  134.    * five different article-overview display-modi
  135.         - subject-threads in alphabetical order (within a thread
  136.           chronologically)
  137.  
  138.         - subject-threads in chronological order (within a thread
  139.           chronologically)
  140.  
  141.         - no threads, article sorted by date
  142.  
  143.         - compacted versions of the first two, which hide follow-ups
  144.  
  145.    * auto-selection and global/local kill-files
  146.  
  147.    * fast overview presentation of all articles by use of small
  148.      databases
  149.  
  150.    * doesn't require much memory and is fast even with really many and
  151.      large groups
  152.  
  153.    * configurable display of article-headers
  154.  
  155.    * built-in pager, recognizing extra long lines
  156.  
  157.    * full usage of screen sizes
  158.  
  159.    * multi-user support
  160.  
  161.    * works over the serial line (using termcap), too
  162.  
  163.    * rudimentary MIME support
  164.  
  165. The selected newsreading is what `Arn' makes similiar to `nn', a famous
  166. newsreader for UNIX-machines.
  167.  
  168. History
  169. =======
  170.  
  171. I started Februar 1990 writing my own newsreader after getting in
  172. contact with UUCP for the AMIGA. The first aim was to get a reliable
  173. working and RFC-conform newsreader that remembered read messages and
  174. that lets one reply or follow-up on articles. This was a very
  175. rudimentary version, but it worked and because it was similar to `rn'
  176. --a UNIX newsreader-- I called it `Arn'. This concept was used until
  177. Version 0.72.
  178.  
  179. So, `Arn' was written from scratch without using code from other
  180. existing newsreaders. After a while, I noticed that the real information
  181. on the net was only a little part of the big news-volume. Getting out
  182. substancial information in reasonable time induced a need for new
  183. concepts. The UNIX newsreader `nn' by Kim F. Storm seemed to have a
  184. good concept and I tried to implement selected newsreading. I even made
  185. one step beyond `nn' by making groups also selectable. The walking
  186. through all groups was one thing that wasn't good in `nn'. I wanted an
  187. overview of all groups with new and unread articles.
  188.  
  189. You see, `Arn' is a program that reflects my own idea of a good
  190. newsreader, so your's may be different. The choice of a newsreader is
  191. depends mainly on one's personal taste, therefore you may prefer other
  192. newsreaders.
  193.  
  194. Actual changes from one version to another can be found in the
  195. `CHANGES'-file which comes with this distribution.
  196.  
  197. ---------- Footnotes ----------
  198.  
  199. (1)  sometimes also called UUCP-messages
  200.  
  201.  
  202. About this manual
  203. ==================
  204.  
  205. This manual was set using the `texinfo'-package from the Free Software
  206. Foundation.
  207.  
  208. The best what you can do with this manual is to print out the DVI-file
  209. (it has the suffix `.dvi'). A DVI-file is produced by the typeset
  210. program TeX and stands for "device independent file". TeX is a wide
  211. spreaded free distributable program (written by D.E. Knuth) and runs on
  212. a variety of computer-platforms (from Cray to PCs). The good thing
  213. about DVI-files is that you can use them without translation on any
  214. hardware which has a complete TeX or only the special printer-driver
  215. and suitable fonts installed. For best results, use a laserprinter
  216. (maybe your university or friend has one).
  217.  
  218. Naturally, there exists a very good free distributable TeX for the
  219. AMIGA, called PasTeX. Look for it at ftp-servers or local BBs.
  220.  
  221. The second method is, to use it with the AmigaGuide (1) program from
  222. Commodore. This is a hypertext-system, i.e. you can jump to
  223. cross-references and subsections by simply clicking on the keyword.
  224. AmigaGuide can be found on Fish-Disk 870.
  225.  
  226. ---------- Footnotes ----------
  227.  
  228. (1)  AmigaGuide is (C) by Amiga-Commodore Inc.
  229.  
  230.  
  231. Overview
  232. *********
  233.  
  234.  
  235. The concept: `Arn', `ArnMaster', `ArnDaemon'
  236. =============================================
  237.  
  238. `Arn' is a very complex newsreader, i.e. it offers a lot of functions.
  239. The main feature is, that you have a list of groups or article subjects
  240. where you can select the items of interest from. To produce a fast
  241. overview about the articles (subject,author,length), `Arn' uses small
  242. databases (only 1-2% of the newsvolume) that are created by the
  243. companion program `ArnMaster'.
  244.  
  245. `ArnMaster' is the program that updates and maintains the databases
  246. that are used by `Arn'. `Arn' itself cannot create or update the
  247. databases, instead it invokes `ArnMaster' if needed (in some rare
  248. cases). `ArnMaster' should run every time your system got new articles.
  249. Note: `ArnMaster' must have been started and finished before `Arn' is
  250. started, otherwise you have a strong loss in performance (because
  251. `ArnMaster' is called for each group separately).
  252.  
  253. To do this automatically, I wrote the program `ArnDaemon' which starts
  254. `ArnMaster' if certain programs (have run and finished). See ArnDaemon,
  255. for details.
  256.  
  257. So you see, `Arn', `ArnMaster' and `ArnDaemon' build a unit together.
  258.  
  259.  
  260. Overview of files
  261. ==================
  262.  
  263. You should get `Arn' with the following files:
  264. `Arn'
  265.      the newsreader itself
  266.  
  267. `ArnMaster'
  268.      the database manager
  269.  
  270. `ArnDaemon'
  271.      the watch-daemon
  272.  
  273. `Arn.guide'
  274.      the manual (AmigaGuide(1) -Format). To view with AmigaGuide.
  275.  
  276. `Arn.dvi'
  277.      the manual, dvi-format (TeX), should be printed.
  278.  
  279. `.arnrc'
  280.      a sample configuration file for `Arn'
  281.  
  282. `.arnrc.duucp'
  283.      a sample configuration file for DUUCP
  284.  
  285. `.arnmasterrc'
  286.      a sample configuration file for `ArnMaster'
  287.  
  288. `.arnmasterrc.duucp'
  289.      a sample configuration file for DUUCP
  290.  
  291. `termcap'
  292.      a sample termcap entry
  293.  
  294. `Arn.info'
  295.      an icon for Arn
  296.  
  297. `CHANGES'
  298.      release history
  299.  
  300. `sendm'
  301.      script for archiving mails when sending (must have the script bit
  302.      set!)
  303.  
  304. `README'
  305.      important notes about the release, please *read*!!!
  306.  
  307. ---------- Footnotes ----------
  308.  
  309. (1)  AmigaGuide is (C) by Amiga-Commodore Inc.
  310.  
  311.  
  312. System Requirements
  313. ********************
  314.  
  315. `Arn' doesn't require special things. Naturally, you need an AMIGA
  316. computer and at least Kickstart V37 (AmigaOS 2.04), but read the
  317. following sections what may improve performance.
  318.  
  319.  
  320. Hardware
  321. =========
  322.  
  323. `Arn' needs no special hardware, so it should run on all Amiga models.
  324.  
  325.  
  326. Processor type
  327. ---------------
  328.  
  329. The MC68000 is fast enough, but if you really want a *smart* newsreader
  330. that *flies* through news, you'd better use faster processors like the
  331. MC68020,MC68030,MC68040. `Arn' was always designed with extra care for
  332. run time, so things that need a speed up are mainly the text-output or
  333. your harddisk.
  334.  
  335.  
  336. Harddisk
  337. ---------
  338.  
  339. A harddisk is not needed but strongly recommended (for your health...),
  340. respectively a reasonable working is not possible without a harddisk,
  341. and if you have your own site it is really needed for UUCP. The shorter
  342. your average seek time of your harddisk, the faster is `ArnMaster' at
  343. scanning articles, so the average seek time should not be 65ms or
  344. longer.
  345.  
  346.  
  347. Memory (RAM)
  348. -------------
  349.  
  350. Generally speaking: although `Arn' doesn't waste memory, the more
  351. memory the better. With a lot of groups and articles you can really
  352. need a lot of memory, but then you already should have the resources.
  353. `Arn' uses mainly FASTRAM (except for display) and is not a memory
  354. eater, you wont normally use more than 500kBytes.
  355.  
  356.  
  357. Software
  358. =========
  359.  
  360.  
  361. Operating System
  362. -----------------
  363.  
  364. `Arn' works only with Kickstarts since AmigaOS2.04 (V37) and newer OS
  365. versions. Because I have AmigaOS2.04 in ROM (Kickstart 37.175), I
  366. developed and tested the program under it. Because this is now the
  367. 'standard' OS, and I wanted to make use of the new functions, I dropped
  368. support for Kickstarts 1.2 and 1.3 (*you have been warned!*).
  369.  
  370.  
  371. UUCP software
  372. --------------
  373.  
  374. `Arn' is so configurable that it should work with all exsiting UUCP
  375. packages for the Amiga. The two most known  installations are AmigaUUCP
  376. (aka DUUCP, Dillon's UUCP), CNews and some derivatives from CNews.
  377.  
  378. It is recommended to use a UUCP-package that supports an `active'-file.
  379. It contains information about available groups, whether they are
  380. moderated or not and lowest, highest article numbers. If your UUCP
  381. doesn't support an `active'-file `ArnMaster' will do this for you, but
  382. you have the disadvantage of scanning the whole news-tree each time
  383. `ArnMaster' runs. This wastes time. DUUCP doesn't support an
  384. `active'-file, yet, but CNews and it's derived versions do.
  385.  
  386. Furthermore you need certain standard `assign'ements for `Arn'. See
  387. dirs, for details.
  388.  
  389.  
  390. Getting started (quick installation)
  391. *************************************
  392.  
  393. This chapter shows only a few points, that you need for a
  394. *quick*-installation.
  395.  
  396.    * Put `Arn',`ArnMaster',`ArnDaemon' anywhere into your shell-path. A
  397.      good place for them is the directory where all other UUCP binaries
  398.      are, e.g. `UUCP:c'.
  399.  
  400.    * If you have AmigaUUCP, you should look into `.arnrc.duucp' and make
  401.      appropriate modifications. Most config-entries are
  402.      self-explanatory, but if you need to know more about an entry,
  403.      look into the Setup chapter. Edit the file `.arnrc' with an
  404.      editor. You need to change the entries
  405.           NEWSDIR
  406.           ACTIVEFILE
  407.           GROUPLIST
  408.           UUCONFIG
  409.           SENDNEWS
  410.           SENDMAIL
  411.           TIMEOFFSET
  412.      These entries must be set for posting, mailing, too.
  413.           SEQFILE
  414.           SIGNATURE
  415.  
  416.      See .arnrc, for exact meaning of the entries. Place `.arnrc' into
  417.      a directory where you start `Arn' from or simply into `UULIB:'.
  418.      Note that `.arnrc' in the current directory has higher priority
  419.      than the general one in `UULIB:'.
  420.  
  421.    * Be sure that your UUCP-config-file (where UUCONFIG points to)
  422.      contains the following entries
  423.           UserName
  424.           RealName
  425.           NodeName
  426.           NewsEditor
  427.           MailEditor
  428.  
  429.    * The config-file `.arnmasterrc' is needed if `.arnrc' is not placed
  430.      in `UULIB:'. Otherwise you can simply add the config-entries for
  431.      `ArnMaster' to `UULIB:.arnrc'.
  432.  
  433.      This file must have the following entries:
  434.           ACTIVEFILE
  435.           NEWSDIR
  436.  
  437.      The entry UPDATEACTIVE is needed if your news-system doesn't
  438.      support an `active'-file (like DUUCP).
  439.  
  440.    * A temporary directory is needed. `Arn' uses `T:', so be sure that
  441.      this assignement is set correctly.
  442.  
  443.    * Place the file `arnhelp.txt' into `UULIB:'.
  444.  
  445. After you have done all this, you can start `ArnMaster' from a Shell or
  446. CLI. To produce a logfile from `ArnMaster' simply add the entry
  447. `ARNMASTERLOG' FILENAME. After `Arnmaster' has finished (the first run
  448. will last longer than normally), you can start `Arn'. Use the `Arn -s'
  449. command to start `Arn' until you are sure that your configuration is
  450. right. This option is not required, but helps you at the initial
  451. installation (see options).
  452.  
  453. New groups that are not in your `GROUPLIST', but in your active file
  454. are added at the top. So all available groups are shown. How to sort
  455. and change the order, See Grouplist. If you want to "unsubscribe"
  456. newsgroups, See unsubscription.
  457.  
  458. Use `SHIFT-H' anytime for displaying help.
  459.  
  460. See ArnDaemon, for setting up `ArnDaemon'.
  461.  
  462.  
  463. Setup
  464. ******
  465.  
  466. Read this chapter carefully, if you set up `Arn' for the first time. In
  467. general, there are two examples for installation with AmigaUUCP Plus
  468. and AmigaUUCP (DUUCP).
  469.  
  470.  
  471. Directories, paths and assignments
  472. ===================================
  473.  
  474. Needed is the directory `T:', as well as a directory where your news
  475. are stored into. As general configuration directory and place where the
  476. help file can be found is `UULIB:' necessary. If you have DUUCP, this
  477. assignement directory exists already.
  478.  
  479. Your systems "path" should contain the directory where `Arn',
  480. `ArnMaster' and `ArnDaemon' reside (e.g. `UUCP:c'). See AmigaOS
  481. system-documentation for the CLI-command `PATH' how to add something to
  482. your "path".
  483.  
  484. Add all necessary assignements and paths into your `user-startup'.
  485.  
  486.  
  487. Configuration files
  488. ====================
  489.  
  490. `Arn' uses configuration files (besides command-line options) to get
  491. adjusted for certain environments. These files are editable with normal
  492. ASCII-editors. A `.arnrc' in the current directory, from where `Arn' is
  493. started, has higher priority than `UULIB:$USERNAME.arnrc' (>OS2.x only)
  494. and `UULIB:.arnrc'. This is important to remember if you have more than
  495. one `Arn'-user.
  496.  
  497.  
  498. Configuration file `.arnrc'
  499. ----------------------------
  500.  
  501. The configuration entries are simple: they consist of a "keyword" and
  502. are often followed by a "value". This value can be omitted if the
  503. presence of the keyword suffices to specify the configuration (like
  504. 'boolean' values, where presence means 'true'). In this case I call the
  505. keyword a "boolean"-keyword. The "value" is separated from the
  506. "keyword" by spaces or tabs, the minimum is *one* space or tab.
  507. Keywords are not case-sensitive, i.e. upper or lower case doesn't
  508. matter (e.g. text,Text,TEXT have the same meaning). The value FILENAME
  509. includes always the full path, unless stated otherwise.
  510.  
  511. Here is an example of a config file
  512.      # Arn Config-File for AmigaUUCP Version 1.16D
  513.      # this is a comment
  514.      NEWSDIR     UUNEWS:
  515.      SAVENEWS    UUCP:usr/rob/News
  516.      ACTIVEFILE  UULIB:news/active
  517.      GROUPLIST   UULIB:.grouplist
  518.      UUCONFIG    UULIB:Config
  519.      SEQFILE     UULIB:seq
  520.      SCREENSW    YES
  521.      QUOTECHAR   "> "
  522.      TIMEOFFSET  0100 GMT
  523.      SIGNATURE   UULIB:signature
  524.      SENDNEWS    rnews <%s ;%s
  525.      SENDMAIL    sendm %s rob
  526.      PATHTYPE    User
  527.      CATCHUPXREFS Yes
  528.  
  529. Below is an alphabetically order of the config entries. Required
  530. configuration entries are marked with a -!-.
  531.  
  532. `ACTIVEFILE -!-'
  533.      Format: `ACTIVEFILE FILENAME'
  534.      The value specifies the complete path and filename for your
  535.      `active'-file. This entry is vital for `Arn'. See active-file, for
  536.      detailed description.
  537.  
  538. `ARTDISPLAYORDER'
  539.      Format: `ARTDISPLAYORDER MODE'
  540.      This keyword determines the order of displayed articles in the
  541.      article-selector level which is used in all groups by default. You
  542.      can change this behaviour temporarily by using the `V)'
  543.      (View-menu, see article-selector commands).
  544.  
  545.      The MODE is one of
  546.         * `SUBJECT-DATE'
  547.           articles are grouped together by their subjects (to a so
  548.           called  "thread") and are sorted by article-date of the first
  549.           article in the  thread (usually the "parent"-article). Within
  550.           a thread the Date: of the  article determines the order.
  551.  
  552.           shows only the first article  of a thread, with the number of
  553.           follow-ups (this option is not completely  implemented).
  554.  
  555.         * `SUBJECT-ALPHABET'
  556.           threads are displayed with the subjects in alphabetical order
  557.           and within a  thread by article-date order.
  558.  
  559.         * `ARTICLE-DATE'
  560.           displays all articles sorted by their Date: line (no threads).
  561.  
  562.         * `COMPACT-ALPHABETICAL'
  563.           shows only the first article of a thread, with the number of
  564.           follow-ups  (this option is not completely implemented). Same
  565.           order as in  `SUBJECT-ALPHABET'
  566.  
  567.         * `COMPACT-DATE'
  568.           shows only the first article of a thread, with the number of
  569.           follow-ups  (this option is not completely implemented). Same
  570.           order as in  `SUBJECT-DATE'
  571.  
  572. `ASK-FOR-AUTOSELECT-FUPS'
  573.      This keyword doesn't require a value, so it's a "boolean-keyword".
  574.      It's presence causes `Arn' to ask you *every* time you posted a
  575.      follow-up, whether you want to "auto-select" this subject, which
  576.      normally only appears after postings. This is good if you're
  577.      interested in reading answers to your posting.
  578.  
  579. `AUXEDITOR'
  580.      Format: `AUXEDITOR FILENAME'
  581.      You must use this entry if you started `Arn' in terminal-mode. The
  582.      editor must be useable via stdout/stdout streams. Examples are
  583.      Elvis V1.3, memacs 3.9 (from the `auxsupport' package) or
  584.      naturally `edit'. This editor must work from a ` newshell AUX:'
  585.      correctly.
  586.  
  587. `CATCHUPXREFS'
  588.      Boolean-keyword for marking crossposted articles as read if you
  589.      "catchup" a group. If this keyword is missing, `Arn' doesn't care
  590.      about cross-postings if you do a catchup.
  591.  
  592. `COLORS'
  593.      Format: `COLORS WWW XXX YYY ZZZ'
  594.      WWW, XXX, YYY, ZZZ are numbers in hexadecimal (leading 0x), octal
  595.      (leading 0) or decimal. You can specify your own colors for
  596.      `Arn''s screen. The number of values should match with the
  597.      2^(number of bitplanes). The existence of this keyword is
  598.      independent of SCREENDATA. The first number is for pen 1, the
  599.      second for pen 2, etc... Example: `COLORS 0x777 0x000 0xFFF 0xDD0'
  600.      for 2 Bitplanes = 2^2=4 Colors
  601.  
  602. `CUSTOMFONT'
  603.      Format: `CUSTOMFONT FONTNAME SIZE'
  604.      Specify the font for `Arn''s screen. Note that you have to add a
  605.      `.font' suffix to the font-name. Example: `CUSTOMFONT Courier.font
  606.      13'
  607.      Proportional fonts are not recommended, because they'll make
  608.      `Arn''s overview tables looking weird.
  609.  
  610. `DBASEDIR'
  611.      Format: `DBASEDIR DIRECTORY'
  612.      The DIRECTORY determines where the databases and X-files are
  613.      stored. By default, they are stored in the `NEWSDIR' directories,
  614.      too. This entry allows you to read news e.g. via local-networks
  615.      (NFS), because normally you'll not have write-access to the
  616.      server-newspartition. Don't forget to add this line in your
  617.      `.arnmasterrc', too, if you specify it here and have a separate
  618.      `.arnmasterrc'. For reading news over the net, you should
  619.      regularly make a copy of the active-file to your machine, because
  620.      `ArnMaster' creates a copy of the `active'-file.
  621.  
  622. `DOTDIRS'
  623.      boolean-keyword. This entry is obsolete since DUUCP V1.16. Earlier
  624.      AmigaUUCP versions had a 'flat-hierarchy' news-tree. That means
  625.      the articles were stored into directories that were called exactly
  626.      like the newsgroups, namely with dots in their names. The normal
  627.      way of naming directories for newsgroups is by exchanging the dots
  628.      with slashes, so you get a deeper nested news-directory. Example:
  629.      `UUNEWS:comp.sys.amiga.misc' is the 'flat' form,
  630.      `UUNEWS:comp/sys/amiga/misc' is the normal hierarchical form used
  631.      by CNews, AmigaUUCP (since V1.16) and AmigaUUCP Plus. If you
  632.      nevertheless have flat-directories, you must add this keyword.
  633.  
  634. `EXTERNALPRG'
  635.      Format: `EXTERNALPRG Y|N COMMAND'
  636.      This optional entry specifies an external program to be invoked if
  637.      you type `o' ("other") at the pager. The *first* value must be a
  638.      character "Y" or "N" to enable/disable the SHELLWINDOW during
  639.      execution of the external program. A "N" or "n" will NOT open the
  640.      SHELLWINDOW, all other values will. There is a difference between
  641.      "n" and "N": "N" will switch WorkBenchScreen to front, "n" won't!
  642.      For the specification of SHELLWINDOWs see above. If you enable the
  643.      SHELLWINDOW, but the SHELLWINDOW entry is missing, `Arn' takes its
  644.      internal default. After one or more (white) spaces follows the next
  645.      value: A command containing a %s as placeholder for the
  646.      full-pathname to the article. The %s MUST BE PRESENT! Spaces are
  647.      preserved, the whole command-string is copied until end of line.
  648.  
  649.      sample-entry: `EXTERNALPRG  Y   rx postit %s'
  650.  
  651. `FILTER'
  652.      Format: `FILTER COMMAND'
  653.      Program or script to run over your article you wrote, *before*
  654.      posting it. This enables you for example to use a spell checker
  655.      etc... The parameter %s must be part of COMMAND and stands for the
  656.      current temporary articlename. Example: `FILTER  checkarticle %s'
  657.  
  658. `GROUPLIST -!-'
  659.      Format: `GROUPLIST FILENAME'
  660.      Designates the file where `Arn' stores information about what you
  661.      have already read. Its format is described later in detail (see
  662.      Grouplist). It's similar to the `.newsrc' created by `rn'. This
  663.      file will be created for you, if it doesn't exist. The old
  664.      GROUPLIST-file is always renamed to FILENAME.bak the new one is
  665.      always named FILENAME. For those who want to change their
  666.      GROUPLIST with an editor one day: The entries in GROUPLIST for one
  667.      newsgroup are unlimited. Each list for a newsgroup can be
  668.      continued by starting the next line with one or more white-spaces
  669.      (spaces/tabs). The line will be truncated after 256 characters.
  670.      Because `Arn' normally creates and modifies this list
  671.      automatically, there is no need for you to notice this limit.
  672.  
  673. `HEADERDISPLAY'
  674.      Format: `HEADERDISPLAY STRING'
  675.      The value is a string of chars that represent header-lines. The
  676.      non letter chars set the display mode like
  677.         * underlined
  678.  
  679.         * boldfaced
  680.  
  681.         * inverse
  682.  
  683.         * slanted of the following line (combination is possible).
  684.  
  685.      The order in this string induces the order in which the header
  686.      lines will appear when displaying the article!
  687.  
  688.             _ underlined
  689.             # boldfaced
  690.             / slanted
  691.             + inverse
  692.           
  693.             A  Approved:
  694.             C  Control:
  695.             D  Date:
  696.             d  Distribution:
  697.             E  Expires:
  698.             e  Supersedes:
  699.             F  From:
  700.             f  Sender:
  701.             G  Newsgroups: (current newsgroup)
  702.             g  Newsgroups: (current newsgroup only if crossposted)
  703.             I  Message-ID:
  704.             K  Keywords:
  705.             L  Lines:
  706.             N  Newsgroups: (complete newsgroups line)
  707.             n  Newsgroups: (complete newsgroups only if crossposted)
  708.             O  Organization:
  709.             P  Path:
  710.             R  Reply-To:
  711.             r  References:
  712.             S  Subject:
  713.             s  Summary:
  714.             W  FollowUp-To:
  715.             X  X-.....:    (the first of arbitrary lines that begin with X-)
  716.  
  717.      The default string is `n#F#A_S/s/K#DIE0L' which means display
  718.      `Newsgroups:' if crossposted, boldfaced `From:' and `Approved:',
  719.      underlined `Subject:', slanted `Summary:' and `Keywords:',
  720.      boldfaced `Date:', normal `Message-ID:', `Expires:',
  721.      `Organization:' and `Lines:'.
  722.  
  723. `HEADERFILE'
  724.      Format: `HEADERFILE FILENAME'
  725.      Points to the file that is to append to each article header you
  726.      post. If this keyword or its value (filename) is missing, nothing
  727.      is appended to the header.
  728.  
  729. `MAILOPTS'
  730.      Format: `MAILOPTS F D'
  731.      This entry allows two values. If there is an "F" or "From" on the
  732.      line, `Arn' automatically generates a `From:'-line at replies. If
  733.      there is (maybe additionally) a "D" or "Date", the same happens
  734.      with `Date:'.
  735.      Examples:
  736.           MAILOPTS F D
  737.           MAILOPTS From
  738.           MAILOPTS Date From
  739.  
  740. `METAMAIL'
  741.      Format: `METAMAIL COMMAND'
  742.      This entry specifies a template for calling MetaMail if `Arn'
  743.      detects a `Content-Type:' other than `text/plain'. You can specify
  744.      the placeholder `%s' in the COMMAND for the articlename.
  745.      `METAMAIL metamail %s'
  746.  
  747. `NEWSDIR -!-'
  748.      Format: `NEWSDIR DIRECTORY'
  749.      This entry specifies the "news-directory", i.e. the top level
  750.      directory from where the directory/newsgroup tree starts. The last
  751.      character should not be a "/" (slash), because `Arn' will append
  752.      one for you!
  753.      Examples:
  754.           NEWSDIR  UUNEWS:
  755.           NEWSdir  UUCP:usr/spool/news
  756.  
  757. `PAGEROPTS'
  758.      Format: `PAGEROPTS ClearScreen Headerstop'
  759.      Possible values are `ClearScreen' or `HeaderStop' (the first letter
  760.      suffices). The value `ClearScreen' lets the pager clear the screen
  761.      before the next page is printed, so you get a top-down-scrolling
  762.      which is faster than normal scrolling. `HeaderStop' lets the pager
  763.      stop right after the header was printed. This is maybe useful for
  764.      slow remote-connections.
  765.  
  766. `PATHTYPE'
  767.      Format: `PATHTYPE User|No|Domain'
  768.      This optional entry determines how `Arn' generates a `Path:'-line
  769.      for new-articles: `PATHTYPE User' means that `Arn' generates the
  770.      line `Path: user'. `PATHTYPE No' means that `Arn' generates no
  771.      `Path:'-line at all. `PATHTYPE Domain' means that `Arn' generates
  772.      a `Path:'-line with the full-domain systemname (`Path:
  773.      system.domain.topdom!user'), all other values specify a full
  774.      `Path:'-line: `Path: system!user'. For AmigaUUCP Versions >=1.08D
  775.      this entry should be: `PATHTYPE User'
  776.  
  777. `PUBSCREENNAME'
  778.      Format: `PUBSCREENNAME NAME'
  779.      This entry specifies a name for the public-screen that `Arn' opens
  780.      if this keyword is present. Otherwise `Arn' would open a
  781.      non-public custom screen.
  782.  
  783. `QUOTECHAR -!-'
  784.      Format: `QUOTECHAR "CCCC"'
  785.      This entry contains your favourite character(s) that will be used
  786.      for quoting, that means is inserted in the leftmost column in each
  787.      line of the included text at replies or follow-ups. This entry is
  788.      LIMITED in length! The whole entry should not contain more than 6
  789.      characters that means 4 characters maximum of QUOTECHAR, because:
  790.      The first char and the last char are stripped off this string just
  791.      to make it possible for including spaces.
  792.           QUOTECHAR "> "
  793.      Quoted text looks like this:
  794.           > this is a test for quotechar. this is a quoted line of text.
  795.           > this is a test for quotechar. this is a quoted line of text.
  796.      or
  797.           quotechar    (## |)
  798.      Quoted text then looks like this:
  799.           ## |this is a test for quotechar. this is a quoted line of text.
  800.           ## |this is a test for quotechar. this is a quoted line of text.
  801.  
  802. `REPLY-TO'
  803.      Format: `REPLY-TO E-MAIL ADDRESS'
  804.      This optional keyword allows you to specify an alternatively
  805.      e-mail return-address in postings and replies via e-mail.
  806.  
  807. `SAVENEWS -!-'
  808.      Format: `SAVENEWS DIRECTORY'
  809.      This entry specifies the default directory where `Arn' saves your
  810.      articles, if you use the `s' or `w' commands and no other
  811.      directory is specified. The default name for saved articles is the
  812.      groupname.
  813.  
  814. `SCREENDATA'
  815.      Format: `SCREENDATA WIDTH HEIGHT DEPTH VIEWMODES'
  816.      This entry lets you open `Arn''s screen with individual attributes.
  817.      WIDTH and HEIGHT are the (decimal) dimensions in pixels. DEPTH is
  818.      the (decimal) number of desired bitplanes. VIEWMODES is one of the
  819.      modes that is listed in the prefs-program `screenmode' (e.g.
  820.      `NTSC:High Res Laced' or `EURO:72Hz Productivity'). You can use
  821.      every mode that is accessable via the screenmode-preferences
  822.      program.
  823.  
  824.      To get the modes that are not known in plain text you can specify
  825.      the mode with the `IDNUM:' specifier. `IDNUM:0x8004' is equivalent
  826.      to Hires-Interlaced for example. However, this option should be
  827.      used with care.
  828.  
  829. `SCREENSW -!-'
  830.      Format: `SCREENSW Yes|No'
  831.      Favourite editors (named in UUCONFIG) can have their own screens
  832.      and therefore you can force `Arn' to switch or not to switch to
  833.      the WorkBench-Screen (bring it to front). If something like `NO'
  834.      follows (first letter suffices), then `Arn' will not bring the
  835.      WorkBench-Screen to front. If there is a "Yes" or anything other
  836.      than "N", `Arn' will bring the WB-Screen to front. After invoking
  837.      the editor, and after the editor has quit, `Arn' will bring
  838.      *always* the "ArnScreen" to front. If you still don't know what I
  839.      mean, just let it set to "YES".
  840.  
  841. `SELFSEND'
  842.      Format: `SELFSEND COMMAND'
  843.      This is an obsolete option for early AmigaUUCP versions, which
  844.      spooled articles written on your system for your newsfeed, but
  845.      didn't sort them into your newsgroups. So this entry was used to
  846.      spool the article for your own system. This COMMAND is executed
  847.      additionally to `SENDNEWS'. COMMAND must have the parameter `%s'
  848.      in it.
  849.  
  850. `SENDMAIL -!-'
  851.      Format: `SENDMAIL COMMAND'
  852.      `command' designates the program which spools mail for your
  853.      mailfeed/sites. It could be ``mail <%s'', with AmigaUUCP it is
  854.      ``sendmail <%s -f user''. The `%s' is placeholder for the filename
  855.      of the message. If your mail doesn't generate a `From:'-line,
  856.      insert the appropriate `MAILOPTS' entry in `.arnrc'. COMMAND could
  857.      also be a script file, like `sendm' which archives all outgoing
  858.      mail into a folder:
  859.           .key mailfile/a,username
  860.           .bra {
  861.           .ket }
  862.           .dot ~
  863.           
  864.           ; This script is only for archiving outgoing mail
  865.           ; Mail is stored in $maildir/$archive
  866.           
  867.           set maildir= "T:folders"
  868.           set archive= "mail.sent"
  869.           IF exists "{mailfile}"
  870.            IF NOT exists $maildir
  871.               makedir $maildir
  872.            ENDIF
  873.            echo >>$maildir/$archive From rob (ARCHIVE)
  874.            echo >>$maildir/$archive "Date: " NOLINE
  875.            date >>$maildir/$archive
  876.            type >>$maildir/$archive "{mailfile}"
  877.            IF "{username}" EQ ""
  878.               sendmail <{mailfile}
  879.            ELSE
  880.               sendmail <{mailfile} -f "{username}"
  881.            ENDIF
  882.           ELSE
  883.            echo "{mailfile} not found!"
  884.           ENDIF
  885.           unset maildir
  886.           unset archive
  887.  
  888.      Please set the script bit (protect +s file), if you're using
  889.      scripts!
  890.  
  891. `SENDNEWS -!-'
  892.      Format: `SENDNEWS COMMAND'
  893.      This is the command `Arn' invokes, if you want to post an article
  894.      to the net, which means you send it to your newsfeed(s) and/or
  895.      other sites. The COMMAND should contain two placeholders `%s'. The
  896.      first stands for the temporary article-filename, the second for
  897.      the Newsfeed name, which can be ignored by putting it behind a
  898.      semicolon. For AmigaUUCP this line should be
  899.           SENDNEWS rnews <%s ;%s
  900.      For really old versions of AmigaUUCP (before V1.06D) the line
  901.      looks like `SENDNEWS uux %s "%s!rnews"'.
  902.  
  903. `SEQFILE -!-'
  904.      Format: `SEQFILE FILENAME'
  905.      This is a FILENAME for a file which should contain a single number
  906.      in ASCII-Format. It will be used for the Message-ID of postings or
  907.      follow-ups and is increased by `Arn'. This file exists also under
  908.      Amiga-UUCP as `UULIB:seq'. The number is set to 0 if it was
  909.      negative or 32767. At the moment, no locking is done, so there may
  910.      be conflicts sometimes.
  911.  
  912. `SHELLWINDOW'
  913.      Format: `SHELLWINDOW WBENCHTOFRONT WINDOWSPECIFICATIONS'
  914.      This entry is for the piping commands `S',`W' and `|'.
  915.      WBENCHTOFRONT is either `Y' or `N': `N' means to bring the
  916.      WorkBench-Screen *not* into front, all other values do. This entry
  917.      is optional, because `Arn' has a default entry for it:
  918.           Y CON:0/0/640/200/Arn-CLI
  919.      But you can take advantage of your favourite console-handler:
  920.           Y MYCON:0/0/640/200/This is a console window raised by Arn
  921.      `MYCON:' is an example for a custom `CON:'-device. Spaces are
  922.      preserved, the whole string is copied until end of line. Normally,
  923.      the `CON:'-Window will appear on the Workbench-Screen! To get rid
  924.      of this `CON:'-Window, enter "endcli" at the CLI-prompt. You can
  925.      naturally describe here a normal file-name, because `Arn' does an
  926.      `filehandle= Open(SHELLWINDOW,MODE_NEWFILE)' and then an
  927.      `Execute(cmd,filehandle,filehandle)'.
  928.  
  929. `SIGNATURE -!-'
  930.      Format: `SIGNATURE FILENAME'
  931.      The FILENAME of your signature file to append to your
  932.      articles/mails written with `Arn'. NOTE: `Arn' will NOT put any
  933.      characters (e.g. the "--") before your signature-text. But if you
  934.      want this, just insert it into your SIGNATURE-file...
  935.  
  936. `TIMEOFFSET -!-'
  937.      Format: `TIMEOFFSET OFFSET TIMEZONE'
  938.      This entry contains two values: A timezone-name and the offset to
  939.      your time according to this timezone. Example:
  940.             TIMEOFFSET +0100 GMT
  941.      which means that `Arn' will *subtract one hour* from your local
  942.      time and will use/append timezone GMT in `Date:'-lines. The format
  943.      of the time OFFSET is `[+|-]hhmm', where `hh' is the number of
  944.      hours and `mm' ist the number of minutes (0-60). Example: You're
  945.      9.5 (nine a half) hours before GMT so your offset is 930 (nine
  946.      hours and thirty minutes): `TIMEOFFSET +0930 GMT'. The value can
  947.      be preceded by a minus or a plus sign. If no sign is given a plus
  948.      is assumed (which means to *subtract* that value from your local
  949.      time!). Spaces between the signs and the numbers are not allowed!
  950.      Leading zeros are *not* required and can be omitted.
  951.  
  952.      To get your local timezone into the `Date:'-line, just use an
  953.      offset of 0 and then put your local-timezone-name after it.
  954.             TIMEoffset 0 MET
  955.      (MET means Middle-European-Time)
  956.  
  957.      It is recommended to use your offset according to GMT
  958.      (Greenwich-Mean-Time) and use GMT as timezone, because there
  959.      doesn't exist a real standard for timezone-names, yet. The length
  960.      of the TIMEZONE-name is limited to 5 characters! If it is missing
  961.      or too long, `Arn' will display a WARNING and say that it took GMT
  962.      instead!
  963.  
  964. `UUCONFIG -!-'
  965.      Format: `UUCONFIG FILENAME'
  966.      This specifies the filename for a file where to get information
  967.      about the UUCP environment. It looks like this:
  968.           NodeName      spirits
  969.           UserName      rob
  970.           RealName      Roland Bless
  971.           NewsFeed      pilhuhn
  972.           Organization  Blessed Software Products, private, Karlsruhe (FRG)
  973.           MailEditor    Dme
  974.           NewsEditor    Dme
  975.           DomainName    .ka.sub.org
  976.           DefaultNode   pilhuhn
  977.           Moderators    UULIB:moderators
  978.  
  979.      Required entries are `NodeName', `UserName', `RealName', 
  980.      `MailEditor', `NewsEditor'.
  981.  
  982.      Note that these entries are taken from local or environment
  983.      variables first if they exist and have higher priority over
  984.      `UUCONFIG'.
  985.  
  986.      `Moderators' is a special entry that `Arn' uses.
  987.      Format: `MODERATORS FILENAME'
  988.      This FILENAME points to the location were the "moderators"-file
  989.      can be found. The moderators-file contains e-mail addresses of the
  990.      moderators of moderated newsgroups. See moderators, for detailed
  991.      description.
  992.  
  993. `XLIFETIME'
  994.      Format: `XLIFETIME NUMBER'
  995.      This optional entry specifies the default lifetime in days of your
  996.      "X-file" (see X-files) entries, if you add automatically entries
  997.      to X-files (not with your editor). If this entry is missing the
  998.      XLIFETIME is set to 30 days.
  999.  
  1000. NOTE: If you have more than one `Arn'-user you should not place `.arnrc'
  1001. into `UULIB:', but for each user `$USERNAME.arnrc' in `UULIB:' or
  1002. `.arnrc' in the user's home-directory (See Multiuser, for details).
  1003.  
  1004.  
  1005. Configuration file `.arnmasterrc'
  1006. ----------------------------------
  1007.  
  1008. If you have only one `Arn' user, you can just add the configuration
  1009. entries for `ArnMaster' to `UULIB:.arnrc'. This is not possible if you
  1010. have more than one user, because you require only *one* configuration
  1011. file for `ArnMaster', but for each user a different `.arnrc'! Therefore
  1012. the separate configuration file, which has higher priority than
  1013. `UULIB:.arnrc'.
  1014.  
  1015. `ACTIVEFILE'
  1016.      See .arnrc.
  1017.  
  1018. `ARNMASTERLOG'
  1019.      Format: `ARNMASTERLOG FILENAME'
  1020.      If you want that `ArnMaster' logs all actions, you can specify a
  1021.      filename for the logfile here.
  1022.  
  1023. `COUNTLINES'
  1024.      If this keyword is present, `ArnMaster' generates the `Lines:'
  1025.      number in databases if missing in article header. The original
  1026.      article header remains untouched!
  1027.  
  1028. `DBASEDIR'
  1029.      See .arnrc.
  1030.  
  1031. `DOTDIRS'
  1032.      See .arnrc.
  1033.  
  1034. `NEWSDIR'
  1035.      See .arnrc.
  1036.  
  1037. `UPDATEACTIVE'
  1038.      Boolean-keyword to use `ArnMaster' for managing the `active'-file.
  1039.      You *must* specify this entry if your news system doesn't support
  1040.      an `active'-file, e.g. AmigaUUCP V1.16D. Note, that the scanning
  1041.      phase is not necessary if you use CNews or AmigaUUCP Plus.
  1042.  
  1043.  
  1044. active-file
  1045. ============
  1046.  
  1047. The `active'-file contains information about the newsgroups and
  1048. articles that are present on your system (or available). It contains
  1049. newsgroup-names and the range of present article-numbers.
  1050.  
  1051. If you think your news-system doesn't have one, you can use something
  1052. like `UULIB:active'. In the latter case you must create this file by
  1053. writing all the names of the available newsgroups on your system into
  1054. it. One group on each line. A good help would be a `newsgroups' file,
  1055. if existing. In this case you can simply copy it.
  1056.  
  1057. Note that you have to add any new newsgroup to the `active'-file
  1058. manually, if your news-system doesn't support it!
  1059.  
  1060. The `ACTIVEFILE' is read in faster if it's in sorted order. You can do
  1061. that by simply using the `SORT'-command from AmigaOS:
  1062.      sort UULIB:news/active UULIB:news/active.sorted
  1063.      delete UULIB:news/active
  1064.      rename UULIB:news/active.sorted UULIB:news/active
  1065. or add the groups alphabetically by hand.
  1066.  
  1067. The format of the activefile is:
  1068. `GROUPNAME   XXXXXX YYYYYY S'
  1069.  
  1070. GROUPNAME is for example `comp.sys.amiga.programmer', XXXXXX stands for
  1071. the last article number (decimal format), YYYYYY for the first article
  1072. number in this group. The number are expected to fit in the
  1073. `long'-range, but except 0 you shouldn't change values manually.
  1074. `ArnMaster' will correct the entries started with the UPDATEACTIVE
  1075. option.
  1076.  
  1077. S is a newsgroup status flag and has for `Arn' two significant values
  1078. that are represented by lower- or uppercase characters: `y' or `m',
  1079. where `y' stands for posting into group okay, `m' for "moderated"
  1080. group. Postings in moderated groups are not allowed, unless you're the
  1081. moderator himself. `Arn' will display a warning in the case you try to
  1082. post into a moderated group. See moderators, for details.
  1083.  
  1084. Two example lines from an `active'-file:
  1085.      comp.sys.amiga.announce 00046 00039 m
  1086.      comp.sys.amiga.applications 01467 01389 y
  1087.  
  1088.  
  1089. Multiuser `Arn'
  1090. ================
  1091.  
  1092. If you have AmigaOS >2.X, `Arn' checks for the local variable
  1093. `USERNAME', if this doesn't exist it tries the environment (ENV:). If
  1094. the variable is set, `Arn' tries to open the config file
  1095. `UULIB:$USERNAME.arnrc'.
  1096.  
  1097. Other configuration entries that are read from (local/global) variables
  1098. are REALNAME, NODENAME, DOMAINNAME, NEWSEDITOR, MAILEDITOR,
  1099. ORGANIZATION,MODERATORS. If found they have precedence over the ones
  1100. from `UUCONFIG'. This is only possible with AmigaOS 2.0 and later.
  1101.  
  1102. To set up `Arn' for more users you have to:
  1103.   1. create a "home-directory" for each user, i.e. a directory where
  1104.      the user starts the newsreader and other programs from. Example:
  1105.      `UUCP:usr/rob'
  1106.  
  1107.   2. place a modified `.arnrc' into the home-directory or into `UULIB:'
  1108.      named `USERNAME.arnrc' (under OS>2.X with the USERNAME variable
  1109.      set if calling `Arn'). Be sure that `GROUPLIST' and `UUCONFIG' are
  1110.      changed!
  1111.  
  1112.   3. create a separate `UUCONFIG' (See .arnrc, for details) in the
  1113.      home-directory, modify the entries `UserName', `RealName' and so
  1114.      on.... Let the `UUCONFIG' entry in `.arnrc' point to this file!
  1115.  
  1116.   4. Be sure that `UULIB:.arnmasterrc' exists. There should be no
  1117.      `.arnrc' in `UULIB:' any longer!
  1118.  
  1119.   5. Make sure that each user is in his/her home directory where
  1120.      his/her personal `.arnrc' is, when he/she starts `Arn'. Under
  1121.      OS2.04 and later you may prefer the concept of local/environment
  1122.      variables. Set the `USERNAME' variable and `Arn' will use the
  1123.      `$USERNAME.arnrc' in `UULIB:'.
  1124.  
  1125.      That's it!
  1126.  
  1127.  
  1128. Installation in networks with NFS
  1129. ==================================
  1130.  
  1131. To read news from a netserver there are only a few things to change.
  1132.  
  1133.   1. You normally don't have write-access to the news partitions of the
  1134.      netserver. The solution is to specify the `DBASEDIR' in `.arnrc'
  1135.      (see .arnrc). The toplevel directory of `DBASEDIR' must exist,
  1136.      e.g. `mkdir `Work:NewsDbase'' and specify `DBASEDIR
  1137.      `Work:NewsDbase'' in `.arnrc'. Don't forget to add this `DBASEDIR'
  1138.      in `.arnmasterrc', too.
  1139.  
  1140.   2. The `active'-file must be in the format given before (see
  1141.      active-file). `ArnMaster' makes a copy of it, so you should
  1142.      *regularly copy* the `active'-file from your host or news-server
  1143.      to a directory on your machine (normally `UULIB:') and make the
  1144.      appropriate `ACTIVEFILE' entry in `.arnmaster' and `.arnrc'.
  1145.  
  1146.   3. Make an assign `UUNEWS:' to the remote news-directory (NFS-)device
  1147.      or change the `NEWSDIR' entry in the config-files.
  1148.  
  1149.   4. Start `ArnMaster' to create the databases (`ArnDaemon' is of no
  1150.      use...). NOTE: Currently, directories are created in `DBASEDIR' if
  1151.      not existent, but they are *not deleted* if they are empty (this
  1152.      is on my TODO list), yet.
  1153.  
  1154.   5. That's all. Please report any problems to bugs@spirits.ka.sub.org.
  1155.  
  1156.  
  1157. Using `Arn' over the serial port(s)
  1158. ====================================
  1159.  
  1160. You can start `Arn' in a mode, that it uses standard in- and output.
  1161. For flexibility of control- and display-codes a "termcap"-entry is used.
  1162. `Arn' looks for the environment variable `TERMCAP_PATH' (in `ENV:'). It
  1163. should contain a path of files (not directories!), where termcap entries
  1164. can be found. Filenames are separated by spaces or commata. By default
  1165. this path is set to: `s:termcap UUCP:etc/termcap'.
  1166.  
  1167. Don't forget to set the `AUXEDITOR' entry in `.arnrc'.
  1168.  
  1169. To start `Arn' in this mode, you must use the commandline option
  1170. `-TTERMINAL'. With an amiga-ansi terminal you should enter:
  1171.      Arn -Tamiga
  1172. This command must be typed in the remote-shell, that is, if you opened
  1173. with `newshell AUX:' a shell, you must start `Arn' *from this new
  1174. shell*.
  1175.  
  1176.  
  1177. Termcap entries
  1178. ----------------
  1179.  
  1180. Here is a short overview over termcap features. To learn the syntax of
  1181. a termcap entry, you should just look into the sample that comes with
  1182. `Arn'. First there is a field with the name of the terminal emulation,
  1183. for more than one name you can separate them through `|'. This field
  1184. ends with a colon. There are number-fields, boolean fields, and string
  1185. fields. An incomplete example of a termcap entry is:
  1186.      A0|ansi|Minimum ANSI:\
  1187.         :co#80:li#24:am:bs:bw:\
  1188.         :ae=\017:al=\E[L:as=\016:bl=\007:
  1189. `co' and `li' entries designate the number of columns and the number of
  1190. lines that the terminal can display. Both are number-fields. `am' is a
  1191. boolean-field. `bl=\007' is a string-field with an octal number
  1192. encoding the control character. `\E' is used for escape. Lines can be
  1193. continued by a `\' as last char in line. A `:tc=NAME:' as last field
  1194. points to the termcap entry named NAME.
  1195.  
  1196. Required entries:
  1197.    * cursorkeys (d=down, u=up, l=left, r=right)
  1198.           :kd=STRING:ku=STRING:kl=STRING:kr=STRING:
  1199.  
  1200.    * cursor motion codes (`nd' means non destructive space)
  1201.           :do=STRING:up=STRING:le=STRING:nd=STRING:
  1202.  
  1203.    * delete/erase character `:dc=STRING:' or `:ec=STRING:'
  1204.  
  1205.    * insert character `:ic=STRING:'
  1206.  
  1207.    * position cursor to row and column `:cm=STRING:'
  1208.      (`cm' screen relative cursor motion)
  1209.  
  1210.    * clear screen `:cl=STRING:'
  1211.  
  1212.    * clear to end-of-line `:ce=STRING:'
  1213.  
  1214.    * backspace key `:kb=STRING:'
  1215.  
  1216. If one of the entries is missing, `Arn' refuses to work on that
  1217. terminal. The following video attributes are optional.
  1218.      boldfaced on/off `:md=STRING:me=STRING:'
  1219.  
  1220.    * underlined on/off `:us=STRING:ue=STRING:'
  1221.  
  1222.    * slanted on/off `:as=STRING:ae=STRING:'
  1223.      (means alternate character set on/off)
  1224.  
  1225.    * inverse on/off `:mr=STRING:me=STRING:'
  1226.      or if `mr' is not available the standout mode is used instead:
  1227.      `:so=STRING:se=STRING:'
  1228.  
  1229. If some video codes are missing, they are set to the inverse codes.
  1230. Note that inverse video is used for displaying selection, so it's
  1231. important that these entries are set. If inverse codes are not
  1232. available, no attributes are used.
  1233.  
  1234. Furthermore there is also:
  1235. `:kD=STRING:' denoting the <delete char>-key.
  1236.  
  1237. Note that the parsing of cursor keys is currently a hack, so that the
  1238. cursor keys should *not* differ in the first character and only the
  1239. first character of the key_backspace and key_deletechar are used. This
  1240. will be changed to a more reasonable behaviour!
  1241.  
  1242. If using `Arn' in a CON:-shell on the Amiga, you must use the CSI
  1243. '\x9b' (for termcap: \233) for reading the cursor-keys. The CON:-device
  1244. understands normally CSI as well as `ESC[' for introducing
  1245. control-modes, but reading them can only return CSI.
  1246.  
  1247.  
  1248. Starting `Arn'
  1249. ***************
  1250.  
  1251. Normally `Arn' is started from a Shell or CLI. You can use the supplied
  1252. icon with `Iconx' to start `Arn' from WorkBench. `ArnMaster' should
  1253. have run before you start `Arn'.
  1254.  
  1255.  
  1256. Commandline options
  1257. ====================
  1258.  
  1259. Usage: `Arn [-?ipgsXRPN] [-TTERMINAL] [-DDIRECTORY]'
  1260.  
  1261. Options can be set together after one `-' sign or each option single:
  1262. `Arn -R -g' is the same as `Arn -Rg'.
  1263.  
  1264. `?'
  1265. `i'
  1266.      print the version number and usage info.
  1267.  
  1268. `p'
  1269.      starts `Arn' directly in "post-article-mode". After the article is
  1270.      posted (or not), `Arn' quits.
  1271.  
  1272. `s'
  1273.      `Arn' waits for pressing a key after it has started, so you can
  1274.      see better what configuration is used. This is helpful if
  1275.      installing `Arn' for the first time.
  1276.  
  1277. `X'
  1278.      start `Arn' in "X-file-expire-mode". `Arn' will not open it's
  1279.      screen, but look for all X-files and delete old entries (that are
  1280.      those whose expirationdate is reached) in them. You should let run
  1281.      `Arn' regularly with this option by `dcron'.
  1282.  
  1283. `R'
  1284.      reset all entries in your `GROUPLIST' (all groups loose their read
  1285.      marks)
  1286.  
  1287. `g'
  1288.      `Arn' prompts for a groupname to enter after starting and jumps
  1289.      directly into this group (if existing).
  1290.  
  1291. `PN'
  1292.      set `Arn''s task priority to N, where N is an integer between -127
  1293.      and 128. `Arn -P-2X' starts `Arn' in X-file-expire-mode with
  1294.      priority -2.
  1295.  
  1296. `-DDIRECTORY'
  1297.      `Arn' uses this directory as it were a newsgroup. All articles
  1298.      must have single numbers as filename like in normal newsgroups. No
  1299.      information about read/unread articles is saved after exiting.
  1300.      DIRECTORY should specify a complete path and should have *no*
  1301.      trailing "/".
  1302.  
  1303. `-TTERMINAL'
  1304.      starts `Arn' with terminal emulation TERMINAL in the current shell,
  1305.      using standard in- and output streams.
  1306.  
  1307. You can close the shell-window from where you started `Arn' (if you
  1308. didn't started it with `-T' option), because "stderr" is not used and
  1309. in-/output from executed programs is directed to to `NIL:'. Example:
  1310.      run <nil: >nil: Arn >nil: <nil:
  1311. You can close the window after `Arn' was launched.
  1312.  
  1313.  
  1314. Reading news
  1315. *************
  1316.  
  1317. Note that an `active'-file is vital for `Arn', See active-file.
  1318.  
  1319.  
  1320. Grouplist
  1321. ==========
  1322.  
  1323. The `grouplist'-file is the file which determines what newsgroups you
  1324. read and their sequence. It also contains information about read
  1325. articles.
  1326.  
  1327. `Arn' will read the `active'-file and check for groups which are
  1328. missing in the `grouplist' (or if it even doesn't exist). Groups that
  1329. are completely new to your `grouplist' are inserted at the top and a
  1330. '+' is displayed at the group to inform you that this group is new to
  1331. your `active'-file respectively `grouplist'. These groups are
  1332. automatically added (or to be more precise "subscribed") to your
  1333. `grouplist', unless you "unsubscribe" them explicitely. The sequence of
  1334. presenting/reading newsgroups is determined by the sequence of the
  1335. `GROUPLIST' entries (to change this order you can use the `View-Menu',
  1336. see group-selector command table). New groups are always inserted at
  1337. the top, so the newest group can be found in the first position. But,
  1338. if no `grouplist' exists the groups are in alphabetical order.
  1339. To get the same order as in the `active'-file, use the sort option from
  1340. the `View-Menu'.
  1341.  
  1342. In `GROUPLIST' is also stored the last article number from the
  1343. `active'-file, if you leave `Arn' with `Q'. This last article number is
  1344. compared to the numbers in `active'-file next time you start `Arn'. If
  1345. the last article number in `active'-file is higher, there are new
  1346. articles and `Arn' will display this group with an 'N' as new-flag. You
  1347. can forbid `Arn' to update this last article number by exiting it with
  1348. `X', instead of `Q'. That keeps "new" articles marked as "new".
  1349.  
  1350. If `GROUPLIST' is updated, the old `GROUPLIST' can be found in the same
  1351. directory under the same name with the extension `.bak'. If you
  1352. accidentally pressed `Q', you can restore the old marks, by deleting
  1353. and renaming both files.
  1354.  
  1355.  
  1356. Format of Grouplist-files
  1357. --------------------------
  1358.  
  1359. The format of the Grouplist-file is very simple. It's an ASCII-text file
  1360. so you can edit it with a normal editor. Please use an editor which is
  1361. able to edit lines of 256 or more characters, otherwise you have to
  1362. break some lines manually.
  1363.  
  1364. The format syntax is:
  1365. GROUPNAME STATUS-SEPARATOR`<WS>'`;'NUMBER`;'`<WS>'RANGE
  1366.  
  1367. Where GROUPNAME is the normal name of the newsgroup, STATUS-SEPARATOR
  1368. is either `:' or `!'. The `:' denotes subscribed groups, the `!'
  1369. denotes unsubscribed groups. After some whitespaces (tabs or space),
  1370. which are expressed by `<WS>' here, there can follow a number
  1371. surrounded by semicolons. This number is the highest article number of
  1372. the group *last* time you left `Arn' with `Q'. This number is used by
  1373. `Arn' to determine which articles are considered as "new" (namely all
  1374. those, whose article-number is greater than this number).
  1375. RANGE denotes numbers separated by commas with *no* spaces between. A
  1376. range `37-45' stands for all numbers between 37 and 45 (includes 37 and
  1377. 45). The range for each group can be continued on the next line, by
  1378. placing whitespaces in the first column (line-continuation).
  1379.  
  1380. Here is an example of a `GROUPLIST'.
  1381.      de.comp.lang.c: ;96; 37-45,56
  1382.      de.comp.lang.c++: ;109; 30-39
  1383.      de.comp.lang.lisp: ;5;
  1384.      de.comp.lang.misc: ;28;
  1385.      de.comp.lang.pascal: ;43; 11-14
  1386.      de.comp.lang.perl: ;1;
  1387.      de.comm.uucp: ;384; 348-351,382
  1388.      de.comm.gateways! ;1644;
  1389.      de.comm.ham! ;139;
  1390.      de.test: 1-2,300-400,
  1391.       212,231-267,1134,2333
  1392.  
  1393. `de.test' shows an example of line continuation, `de.comm.gateways' and
  1394. `de.comm.ham' are examples of unsubscribed groups.
  1395.  
  1396. Comments in the file are not allowed.
  1397.  
  1398.  
  1399. Unsubscription of newsgroups
  1400. -----------------------------
  1401.  
  1402. To "unsubscribe" a newsgroup means to exclude it from the group
  1403. overview. So you should unsubscribe all those groups you're not
  1404. interested in.
  1405.  
  1406. Use the `U'-command in the group-selector level to get into the
  1407. Unsubscription-Menu. If you want to unsubscribe some newsgroups you
  1408. should select them before calling this menu. See group-selector command
  1409. table, for details.
  1410.  
  1411. Once a group is unsubscribed you can "resubscribe" it with the same menu
  1412. you unsubscibed it.
  1413.  
  1414.  
  1415. The group-selector level
  1416. =========================
  1417.  
  1418. If `Arn' has come up properly, it will display a list of newsgroups
  1419. which have unread or new articles. This looks like this:
  1420.       Arn by R.Bless -   63/158  Newsgroups - page   1 of 3  New/Unread/Total
  1421.      >a   uka.ki                                            +  0/     1/     1
  1422.       b N alt.sys.amiga.uucp                                   5/     6/   115
  1423.       c N de.comp.sys.amiga.uucp                               1/     2/    31
  1424.       d N de.comp.sys.amiga.misc                               8/     9/   308
  1425.       e N alt.sys.amiga.uucp.patches                           1/    10/    11
  1426.       f   de.admin.news.announce                             M 0/     1/     3
  1427.       g N de.admin.news.groups                                 8/    14/   107
  1428.       h N de.admin.archiv                                      1/    65/    69
  1429.       i   de.admin.lists                                       0/     7/     7
  1430.       j   de.admin.mail                                        0/    71/    86
  1431.       k N de.admin.misc                                        1/    70/    77
  1432.       l N de.comp.lang.c                                       3/    11/    11
  1433.       m N de.comm.uucp                                         2/     2/    21
  1434.       n N de.comm.internet                                     2/    34/    34
  1435.       o N de.comm.misc                                         5/    71/    72
  1436.       p   de.comp.databases                                    0/     2/     2
  1437.       q   de.comp.gnu                                          0/     3/     8
  1438.       r   de.comp.graphik                                      0/     1/     1
  1439.       s   de.comp.os.minix                                     0/     8/     8
  1440.       t N de.comp.os.unix                                      5/    32/    35
  1441.       u   de.comp.os.xenix                                     0/     3/     4
  1442.       v N de.comp.security                                     1/     3/     6
  1443.       w   de.comp.sources.d                                    0/     9/    21
  1444.       x N de.comp.tex                                          5/    91/    91
  1445.       y   de.etc.lists                                         0/     1/     1
  1446.       z N de.etc.misc                                          1/    11/    25
  1447.      .a N de.admin.news.misc                                   5/     5/    92
  1448.      .b N de.admin.news.software                               1/     1/     1
  1449.      .c N de.comp.lang.c                                       1/    11/    12
  1450.      .d N de.comp.lang.c++                                     4/    15/    15
  1451.      .e   de.comp.lang.misc                                    0/     2/     2
  1452.  
  1453. The first line is the header-line:
  1454.       Arn by R.Bless -   63/158  Newsgroups - page   1 of 3  New/Unread/Total
  1455. it shows how many groups are included in the current listing (here 63)
  1456. and how many newsgroups are subscribed in your `GROUPLIST' (here a
  1457. total of 158). Furthermore the number of the currently displayed page
  1458. is shown as well as the total number of pages. `New/Unread/Total' is
  1459. only the legend for the columns under it.
  1460.  
  1461. The `N' in the second column shows that there are 'new' articles since
  1462. you last exited `Arn' with `Q' which deletes all 'new' marks. The
  1463. second column makes it easier for one to see which `N' belongs to which
  1464. groups.
  1465.  
  1466. The `+' informs you about new groups in your `active'-file, and `M' is
  1467. shown when the group is "moderated" (see moderators). There is also a
  1468. flag `U' which is shown if you selected to view all unsubscribed
  1469. newsgroups, too.
  1470.  
  1471. There are two ways reading news:
  1472.  
  1473. For speedy news reading you can use the up/down cursor keys to move to
  1474. the desired group and press ENTER to get into the "article selector".
  1475. There you can select articles to read in the same way you did with the
  1476. groups. See article selector, for details.
  1477.  
  1478. For sophisticated news reading you can select all the groups that are
  1479. of your interest: To select a group, just press the letter that is
  1480. listed before the groupname and the line of the selected article will
  1481. appear in inverse text. To select a range of groups press the letter of
  1482. the first group then `-' and `Arn' prompts in the last line `Select
  1483. range:', the next letter entered marks the end of your selection.
  1484.  
  1485. You get to the next page with further newsgroups to select by pressing
  1486. SPACE or cursor right. If you're on the last page and press SPACE
  1487. you'll automatically enter the first selected group. You can press `Z'
  1488. to read the selected groups immediately independent on which page you
  1489. are. If you finished reading one newsgroup you're automatically
  1490. transferred into the next select group until you read all selected
  1491. groups or exited with `Q' or `X'.
  1492.  
  1493.  
  1494. Group-selector commands
  1495. ------------------------
  1496.  
  1497. Here is an overview of all possible commands of the group-selector
  1498. level. The cursor keys are denoted as `C_...'.
  1499.  
  1500. `C_UP'
  1501. `C_DOWN'
  1502.      Moves the `>' prompt up and down pointing to the current article.
  1503.  
  1504. `C_RIGHT'
  1505. `>'
  1506.      Displays the next page of newsgroups if there are any more.
  1507.  
  1508. `C_LEFT'
  1509. `<'
  1510.      Displays the previous page of newsgroups.
  1511.  
  1512. `^'
  1513.      Go to the first page
  1514.  
  1515. `$'
  1516.      Go to the last page.
  1517.  
  1518. `A'
  1519.      Show all subscribed newsgroups (toggles).
  1520.  
  1521. `a...z'
  1522. `.a....z'
  1523. `.A....Z'
  1524.      One letter in lower case selects this newsgroup. If you  press the
  1525.      `-' next, `Arn' waits for another lower case letter  to specify a
  1526.      range.  These letters can be preceeded by an extension character,
  1527.      the dot `.'.  This is possible (and then necessary) if your screen
  1528.      (and font) lets you  show more than 26 lines for selection. This
  1529.      gives you a current maximum  of 78 selection lines.
  1530.  
  1531. `+'
  1532.      Selects all groups that are marked as NEW.
  1533.  
  1534. `@'
  1535.      Inverts any existing selection of the current page.  You can
  1536.      select a whole page by pressing `@' when no  selection exists.
  1537.  
  1538. `#'
  1539.      Selects all groups on all pages (not only the current page).
  1540.  
  1541. `%'
  1542.      Unselects all groups on all pages.
  1543.  
  1544. `ENTER'
  1545.      Enter the group where your prompt points to.  If the group doesn't
  1546.      contain unread or new articles, all  existing articles are listed.
  1547.  
  1548. `G NAME'
  1549.      go to the named newsgroup. Resubscribe unsubscribed newsgroups 
  1550.      this way, too. (case is not important!)
  1551.  
  1552. `/PAT'
  1553. `?PAT'
  1554.      search forward (`/') or backwards (`?') for the groupname
  1555.      containing PAT. PAT is a substring. Searching is not case
  1556.      sensitive! Searching starts at prompt position and can be
  1557.      continued, by simply typing `/ RET'. If the group is found (if it
  1558.      is unsubscribed, `Arn' adds all unsubscribed groups to your
  1559.      display) puts the cursor into front of the group.
  1560.  
  1561. `E'
  1562.      post a new article to the net. See posting.
  1563.  
  1564. `V'
  1565.      This invokes the view-menu. You can alter the number and order of
  1566.      groups  that are displayed in this level. You will see something
  1567.      like:
  1568.      `Show U)nsubscribed, R)ead, M)ove (behind cursor), S)ort, Q)uit:'
  1569.     `U'
  1570.           Show unsubscribed groups, too. This should display all groups
  1571.           that are in    your `grouplist'.
  1572.  
  1573.     `R'
  1574.           Show read groups (those with no unread articles), too.
  1575.           Similar but not always    identical to the `A'-command.
  1576.  
  1577.     `M'
  1578.           Move *selected* groups to the position *behind* the cursor   
  1579.           (the first selected group will appear then in the line below
  1580.           the actual    cursor line). Naturally, this affects only the
  1581.           order in your `grouplist'.
  1582.  
  1583.     `S'
  1584.           Use alphabetical order for the *whole* `grouplist'.
  1585.  
  1586.     `Q'
  1587.           Do nothing, return to newsgroup-selector.
  1588.  
  1589. `U'
  1590.      This invokes the subscription-menu.
  1591.      You can "unsubscribe" or "resubscribe" newsgroups. To "unsubscribe"
  1592.       a newsgroup means that you're not interested in this group and
  1593.      you don't want  to see it in your group-menu. However, you can
  1594.      resubscribe these groups  anytime. The subscription-menu looks
  1595.      like:  `U)nsubscribe, R)esubscribe, Q)uit:'
  1596.     `U'
  1597.           A next submenu is displayed, saying:
  1598.           `S)elected Groups, G)roup at cursor (default):'          If
  1599.           you have selected some newsgroups before, and press `S'      
  1600.              now, all these groups get unsubscribed.
  1601.  
  1602.     `R'
  1603.           The same submenu as with `U' ist displayed. You must have used
  1604.                    the "view-menu" before to show unsubscribed
  1605.           newsgroups.
  1606.  
  1607.     `Q'
  1608.           Do nothing, return to newsgroup-selector.
  1609.  
  1610. `C'
  1611.      Catchup group that's in the cursor line. Note that crosspostings 
  1612.      are not marked as read, unless you specify the `CATCHUPXREFS'
  1613.      keyword  in `.arnrc'.
  1614.  
  1615. `O'
  1616.      This invokes the options-menu where you can turn on/off some
  1617.      general behaviour of  `Arn'. This looks like
  1618.      `H)eaderstop on,L)ocal Kill off,G)lobal Kill off,C)learScreen
  1619.      on,Q)uit:'
  1620.      e.g. if you press `H', "headerstop" is turned on.
  1621.     `H'
  1622.           Turns "header-stop-mode" on/off (default ON). See pager
  1623.           commands.
  1624.  
  1625.     `L'
  1626.           Turns local X-files on/off (default ON). See X-files, for
  1627.           information on X-files.
  1628.  
  1629.     `G'
  1630.           Turns global X-files on/off (default ON).
  1631.  
  1632.     `C'
  1633.           Turns "clear-screen-mode" on/off (default is OFF).   If this
  1634.           mode is enabled the screen is cleared before showing the  
  1635.           next page. Useful if you use more than one bitplane and you
  1636.           think   scrolling is to slow.
  1637.  
  1638. `CTRL-T'
  1639.      Shows or hides the ScreenTitle. This key-combination toggles.
  1640.  
  1641. `R'
  1642.      Re-read the `active'-file. Useful, if new articles arrived and you
  1643.      want to read them without leaving `Arn' first.
  1644.  
  1645. `L'
  1646.      List all newsgroups from grouplist and show their status:
  1647.            newsgroupname                        : U M D xxxxxx-yyyyyy
  1648.      The flags U M D stand for:
  1649.         * U - This group is currently unsubscribed.
  1650.  
  1651.         * M - This group is moderated.
  1652.  
  1653.         * D - This group will be removed from `GROUPLIST'. Their
  1654.      negations are not shown. xxxxxx-yyyyyy is the first and last
  1655.      article number in this group.
  1656.  
  1657. `H'
  1658.      activates a short help-list. The help file must be available. It
  1659.      is *very important* to remember this command.... To stop
  1660.      displaying the help-file, just press `q'.
  1661.  
  1662. `Q'
  1663.      Quit `Arn'  `Arn' will update it's `GROUPLIST' and wait for you to
  1664.      press any  key. All articles that were marked as new are (the next
  1665.      time you  use `Arn') considered as old.
  1666.  
  1667. `X'
  1668.      Same as `Q', but the new-marks are retained (not updated).
  1669.  
  1670. `CTRL-C'
  1671.      Quits `Arn' without updating the `GROUPLIST' (Emergency-exit).
  1672.  
  1673.  
  1674. The article-selector level
  1675. ===========================
  1676.  
  1677. A typical article selection screen will look like this.
  1678.      comp.sys.amiga.programmer - page   1 of   7 - 128 of 168      lines     artnr
  1679.       a Dave Plonka      1.3/2.0 difference w/# of IDCMP messages     39  R    131
  1680.       b Peter Cherna     >                                            20 N     155
  1681.       c charon@ccwf.cc.u 2.04 ROMS on the 3000 -- Is there any wa     11  R    107
  1682.       d Joakim Rosqvist  68040 speed                                  16 N     151
  1683.       e Lee_Robert_Willi a new 1.3 Intuition interface builder        38  R     56
  1684.       f C A Wichura      Re: Absence of new uucp binaries???           -  R     68
  1685.       g Ralph Babel      Re: Allocmem() causes expunge(). When ca     45        43
  1686.       h Bruno Costa      Re: Amiga 2.04 fd files                      20        90
  1687.       i Chris Hanson     AmigaDOS StartNotify() and deletion. Bug     44        17
  1688.       j Peter Cherna     >                                            68        44
  1689.       k Chris Hanson     >                                             -        63
  1690.       l Ronn F. Black    AmigaVision Bug Discovered...                33        22
  1691.       m Markus Wild      Re: Are even HARD links broken under 2.0     45         5
  1692.      >n Mike Meyer       >                                            22         7
  1693.       o Michael B. Smith >                                             -        64
  1694.       p Chris Hooper     >                                             -        86
  1695.       q Mike Meyer       >                                            55       112
  1696.       r Chris Hooper     >                                            34 N     166
  1697.       s Jeff Dickson     Re: Assembler addressing mode                19  R     95
  1698.       t Wolf Faust       Re: Bug in 2.04 parallel device driver?      31  R     84
  1699.       u Mike Schwartz    C Comment question                           13  R    100
  1700.       v Matija Milostnik >                                            22  R    104
  1701.       w Jeff Dickson     >                                            16  R    117
  1702.       x Jeff Dickson     >                                            17  R    122
  1703.       y Brett Bourbin    >                                             -  R    126
  1704.       z Craig Fisher     >                                            26  R    134
  1705.       ---------------------------------------------------------------------------
  1706. The first line shows the groupname that is displayed, the number
  1707. of the page that is actually shown, the number of pages available and
  1708. the number of displayed articles on that pages, as well as the number
  1709. of total articles available in this group. In the example above there
  1710. are 40 articles not displayed (read earlier) which you can display with
  1711. `A' (show all).
  1712.  
  1713. The name of the author is displayed (`ArnMaster' tries to find the
  1714. realname and cuts it to 16 chars maximum, if this fails `(nobody)' is
  1715. displayed instead) and after it the subject. FollowUps to an article
  1716. are marked with `>' instead with the subject. If there is a parent
  1717. article (if it contains no `Re:'), the subject is always printed.
  1718.  
  1719. Articles are sorted according to their posting `Date:' within a subject
  1720. thread. They only come out of order if the poster uses timezones that
  1721. `Arn' doesn't know (`Arn' recognizes 102 different timezones), or are
  1722. not unique. If the sequence of articles is not the chronological,
  1723. you'll see something like this:
  1724.        Re: foobar
  1725.        >
  1726.        >
  1727.        foobar
  1728.        >
  1729.        >
  1730. where foobar is the parent article. Subject-threads can be sorted
  1731. by date (of first article in thread) or alphabetically. Another sort
  1732. order is by article-date, which does not make threads. The sort order
  1733. can be changed by the `V'-command (view), see below.
  1734.  
  1735. Then the number of lines contained in that article follows. If there is
  1736. a `-' instead, it means that `ArnMaster' could not find the
  1737. `Lines:'-line in the article. You can avoid this by using `ArnMaster''s
  1738. `COUNTLINES' option, See .arnmasterrc.
  1739.  
  1740. The flag-field is shown next, `N' means new, `R' read, `D' deleted. The
  1741. last field shows the article number of that article in this group.
  1742.  
  1743. As in the group-selection-level you can read articles in two ways.
  1744.  
  1745. Move the cursor to the desired article and press ENTER resp. RET, the
  1746. pager will show the article.
  1747.  
  1748. Or select individually with `a'...`z',`.a'...`.z',
  1749. `.A'...`.Z',`+',`@',`#' articles. Interesting is the `*' feature: It
  1750. selects the whole unread thread of articles that have the same subject
  1751. as the last one you have selected.
  1752.  
  1753. SPACE takes you through all pages and starts the pager for reading the
  1754. whole bunch of selected news when at the last page. Alternately, you can
  1755. use `Z' or TAB to immediately read your selected articles. TAB does
  1756. automatically a catchup (i.e. mark ALL articles in this group as read)
  1757. if you've read all the articles and takes you to the next selected
  1758. group or if there is none to the group-selection-level.
  1759.  
  1760. If you return to the group-selection-level the group is still marked
  1761. with the `N' flag, if it contained new articles, but the number of new
  1762. (and unread) articles is set to 0. This is a feature and not a bug,
  1763. because you still will be able to distinguish groups containing new
  1764. articles from 'old' groups.
  1765.  
  1766. If entering the group again after reading all 'new' and read articles
  1767. are marked as new and read.
  1768.  
  1769.  
  1770. Article-selector commands
  1771. --------------------------
  1772.  
  1773. `ENTER'
  1774.      displays article which is on your cursorline.
  1775.  
  1776. `SPACE'
  1777.      show next page of articles. If on last page, read selected
  1778.      articles. If there are none selected you get to the next select
  1779.      group or back to the group-selection.
  1780.  
  1781. `a...z'
  1782. `.a....z'
  1783. `.A....Z'
  1784.      selects a single article for later reading.  To select a range
  1785.      type START LETTER`-'END LETTER (to select  articles c-e type
  1786.      `c-e'). All articles which have a dot in the first  column must be
  1787.      selected by a two-key sequence, consisting of the `.'  and the
  1788.      letter in the second column.
  1789.  
  1790. `*'
  1791.      select all unread articles with same subject as the previous
  1792.      selected.
  1793.  
  1794. `+'
  1795.      select all new articles
  1796.  
  1797. `@'
  1798.      invert the selection (selects whole page if no article selected).
  1799.  
  1800. `#'
  1801.      select all articles.
  1802.  
  1803. `%'
  1804.      unselect all articles.
  1805.  
  1806. `A'
  1807.      show all articles (not only unread and new). This function toggles.
  1808.  
  1809. `V'
  1810.      View menu:
  1811.      `1)Subject alphabetical, 2)Subj. date, 3)Article date,
  1812.      4)Compacted, Q)uit'
  1813.  
  1814.      This determines the article order for this and all further groups.
  1815.  
  1816.      The first option shows articles grouped together by their
  1817.      subjects, with the  subjects in alphabetical order and within a
  1818.      thread by article-date order.  The second option displays the
  1819.      threads sorted by article-date of the first  article in the thread
  1820.      (usually the "parent"-article). The third option  displays all
  1821.      articles sorted by their Date: line (no threads, but `*'  still
  1822.      selects the thread). The fourth option shows only the first article
  1823.       of a thread, with the number of follow-ups (this option is not
  1824.      completely  implemented).
  1825.  
  1826. `Z'
  1827.      read all selected articles immediately.
  1828.  
  1829. `TAB'
  1830.      read all selected articles at once and then catchup that group. 
  1831.      You can escape from this action with the `X'-command in the pager 
  1832.      (returning to selection and leaving all unread articles selected.
  1833.  
  1834. `C_UP'
  1835.      cursor up.
  1836.  
  1837. `C_DOWN'
  1838.      cursor down.
  1839.  
  1840. `C_RIGHT'
  1841. `>'
  1842.      same as space.
  1843.  
  1844. `C_LEFT'
  1845. `<'
  1846.      one page back.
  1847.  
  1848. `^'
  1849.      go to first page.
  1850.  
  1851. `$'
  1852.      go to last page.
  1853.  
  1854. `J'
  1855.      junk. Mark the article in the cursor line as read.
  1856.  
  1857. `U'
  1858.      mark unread. Remove the read-mark of the article in the cursor
  1859.      line.
  1860.  
  1861. `C'
  1862.      catch up. Mark all articles in this group as read! Goto next group.
  1863.  
  1864. `CTRL-T'
  1865.      show/hide ScreenTitle.
  1866.  
  1867. `E'
  1868.      post an article to this group.
  1869.  
  1870. `O'
  1871.      options-menu. See group-selector command table.
  1872.  
  1873. `K'
  1874.      X-file menu.  This submenu looks like this:  `E)dit, K)ill,
  1875.      A)utoselect, D)elete, Q)uit:'  `K',`A',`D' are applied to the
  1876.      article where your cursor  points to. See X-file-menu, for details.
  1877.  
  1878. `/'
  1879. `?'
  1880.      this activates the searching in articles on all pages.  If you
  1881.      want to search in all articles you must use the `A'-command before
  1882.       (and the `r' in the MODIFIER).  `/' searches forward from the
  1883.      current cursor position.  `?' searches backwards.  Format:
  1884.      `/'PATTERN`~'MODIFIER
  1885.      PATTERN denotes a "sub-string" or "regular-expression"  (see
  1886.      Regular expressions). If you type `/RET' the search  is continued
  1887.      with the same PATTERN and attributes as before.  MODIFIER:
  1888.     `c'
  1889.           case dependent.
  1890.  
  1891.     `a'
  1892.           search in whole article.
  1893.  
  1894.     `h'
  1895.           search in header (default).
  1896.  
  1897.     `r'
  1898.           search in read articles, too.
  1899.  
  1900.     `R'
  1901.           PATTERN is a regular-expression.
  1902.  
  1903. `M'
  1904.      Miscellaneous-Menu.  This allows you to mark/unmark selected
  1905.      articles or to unsubscribe  this group (see unsubscription).
  1906.            J)unk, U)nread, unS)ubscribe, Q)uit:
  1907.  
  1908. `B'
  1909.      Version info.
  1910.  
  1911. `N'
  1912. `P'
  1913.      go to next or previous selected newsgroup.
  1914.  
  1915. `Q'
  1916.      Quit reading this group. Go to next selected group.
  1917.  
  1918. `X'
  1919.      Go back to newsgroup-selector.
  1920.  
  1921. `CTRL-C'
  1922.      Leave `Arn' immediately (`GROUPLIST' is not saved!). If you press
  1923. SPACE on last page or `Z' or TAB and there are selected articles,
  1924. you'll enter the pager, the lowest level in `Arn'.
  1925.  
  1926.  
  1927. The pager level
  1928. ================
  1929.  
  1930. `Arn' has a builtin pager which gives you the advantage of starting
  1931. actions, like replying directly and it has certain special display
  1932. features like hiding/emphasizing certain header-lines or recognizing
  1933. super long lines.
  1934.  
  1935. It supports some features of the MIME-standard (Multipurpose Internet
  1936. Mail Extensions, see RFC-1341 [Borenstein & Freed]), with builtin
  1937. "quoted-printable"-decoding and "base64"-decoding. Note, that MIME
  1938. hasn't been defined for News as I'm writing this, but it won't hurt to
  1939. offer such support.
  1940. `Arn' can only process messages with `Content-Type: text/plain'
  1941. directly, for all other types METAMAIL is called (see .arnrc).
  1942.  
  1943.  
  1944. Display features
  1945. -----------------
  1946.  
  1947. `Arn' will display an article beginning with the line:
  1948.       Article XXX (of XXX) in XXXXXXX.
  1949.               ^^^     ^^^     ^^^ actual newsgroup
  1950.               |||     Last article-number in this group.
  1951.        Current article-number
  1952.  
  1953. Then follows the header (that are the first lines until a newline is
  1954. detected). The header is displayed as you specified in `.arnrc' or by
  1955. default in this way: display `Newsgroups:' if crossposted, boldfaced
  1956. `From:' and `Approved:', underlined `Subject:', slanted `Summary:' and
  1957. `Keywords:', boldfaced `Date:', normal `Message-ID:', `Expires:',
  1958. `Organization:' and `Lines:'.
  1959.  
  1960. The full header can be displayed by pressing `v' (verbose header), but
  1961. it's displayed without attributes.
  1962.  
  1963. The body-text follows after the header and each line is carefully
  1964. registered in its length so that `Arn' stops after your screen is
  1965. filled up (this is not the whole truth: `Arn' will always display the
  1966. next N-1 lines, if your screen has a maximum of N lines, to let you
  1967. always see/remember the last line from the previous page). Even TABs
  1968. are counted, so no text will scroll off the screen until you pressed a
  1969. key (control characters are not checked, so control codes may confuse
  1970. the pager. In this case blame the poster and not me!). If the next line
  1971. is very long, `Arn' can stop before the bottom line has been reached.
  1972. If `Arn' detects a `^L' (ASCII-12=FormFeed) it just will behave as it
  1973. has reached the N-1 lines: it will stop and prompt:
  1974.      --- MORE (XX %) <XXX> (XX unread) ---
  1975.                ^^     ^^^   ^^
  1976.                |        |   number of unread articles in this group
  1977.                |        --- Article-number
  1978.                --- percent of displayed text
  1979. `Arn' will continue displaying this article if you type SPACE or
  1980. TAB. If stopped at an `^L' (FormFeed=ASCII 12), it will display `^L'
  1981. instead of the real code. (If `Arn' detects a `^L' *within* a line then
  1982. the output of this line is slowed down! If this ^L is not in the first
  1983. column, any of your commands are ignored, until to the end of this
  1984. line.)
  1985.  
  1986. After the number of unread articles there can be some letters in
  1987. brackets `{}'. This shows the article status (`R' for read,`D' for
  1988. marked as deleted, `N' for new).
  1989.  
  1990. If you're reading selected articles, the count will not show unread, but
  1991. `[XX togo]' which means there are `XX' articles remaining if you're
  1992. reading forward (SPACE,`n').
  1993.  
  1994. If you have read all the text, you're at the end of this article or the
  1995. article contains only one page, `Arn' prompts:
  1996.      End of article <XXX> in XXXXXX (XXX). What now?[npq]:
  1997.                      ^^^     ^       ^^^number of unread articles in this
  1998.            Article-number    |          group.
  1999.                              Newsgroup-name
  2000.  
  2001. The number of unread articles *includes* the actual displayed article,
  2002. although you're just reading it. It will be marked as read (and all
  2003. cross-postings, too, if your UUCP- software generates an `Xref:'-line)
  2004. if you now press SPACE. So if the last article in a newsgroup is
  2005. reached, you will see that there's still one article unread (that's the
  2006. one you're reading).
  2007.  
  2008. The line limit is 1024 Bytes (then the line is not longer considered as
  2009. one line!)
  2010.  
  2011. Sometimes, offending messages (e.g. bad jokes) are encoded with the
  2012. "rot(13)"-encryption. This is a very simple encryption, but it prevents
  2013. the reader from directly reading the article. Normally those texts give
  2014. a hint that the contents of the posting/message may be offensive and
  2015. that the rest is "rot"ed. Use `x' for decoding such messages, see below.
  2016.  
  2017. Now you can enter some pager-commands (`h' or `H' for help exists here,
  2018. too!):
  2019.  
  2020.  
  2021. Pager-level commands
  2022. ---------------------
  2023.  
  2024.  
  2025. Basic pager commands
  2026. .....................
  2027.  
  2028. `T'
  2029. `CTRL-R'
  2030.      restarts the current article (disables rot(13)-mode).
  2031.  
  2032. `v'
  2033.      restarts the current article with a verbose header.
  2034.  
  2035. `BS'
  2036. `CTRL-H'
  2037.      Display previous page. Displays the previous page(s) scrolled off 
  2038.      (turns rot-mode off).
  2039.  
  2040. `CTRL-L'
  2041.      Redisplay the last page. Helpful after pressing `h',H for help.
  2042.  
  2043. `O'
  2044.      Options-menu. See group-selector command table, for details.
  2045.  
  2046. `x'
  2047.      display next page in "rot(13)"-mode.
  2048.  
  2049. `D NUM'
  2050.      enter a new rot-number (default is 13). If the text is encrypted 
  2051.      with rot 18, you must use rot 8 to decrypt it.
  2052.  
  2053. `SPACE'
  2054.      displays next page, if at the end of an article *only*  this key
  2055.      marks your article as *read* (plus all  articles in the
  2056.      appropriate groups if it is a crossposting and  your news-system
  2057.      supports the `Xref:'-line) and searches for the  next selected
  2058.      article. If there is none you'll get to the next  selected group,
  2059.      if any.
  2060.  
  2061. `RET'
  2062. `ENTER'
  2063.      Displays only the next line. If pressed at the end of an article 
  2064.      this article will be marked as read.
  2065.  
  2066. `g PAT'
  2067.      searches in this article for given substring (*no `REGEXP'*) 
  2068.      starting at the top. This search is *not case dependent*!  If the
  2069.      pattern is found, the line containing this pattern is  displayed
  2070.      in the first line of the screen, otherwise `Arn'  displays `NOT
  2071.      FOUND!'.
  2072.  
  2073. `G'
  2074.      continue the search for a pattern ('see g').
  2075.  
  2076. `TAB'
  2077.      will also display the next page of text, but does nothing if at 
  2078.      the end of the article.
  2079.  
  2080.  
  2081. Moving to articles in pager
  2082. ............................
  2083.  
  2084. `n'
  2085. `N'
  2086.      read next selected article (leaves the current article unread!). 
  2087.      NOTE: Only `j' marks this article as read or SPACE if  pressed at
  2088.           End of article <XXX> in XXXXXX (XXX). What now?[npq]:
  2089.  
  2090. `p'
  2091. `P'
  2092.      read previous selected article.
  2093.  
  2094. `NUMBER'
  2095.      goto article with this number. A number consists of digits from
  2096.      the set of  0...9.  `Arn' will enter the "command-mode" if you
  2097.      enter a number.  Just press RET/ENTER after you typed in the 
  2098.      desired number. `Arn' now jumps directly to this article  (if
  2099.      available, otherwise it does nothing). After you quit reading this
  2100.      article,  `Arn' continues reading the selected articles, if you
  2101.      were reading selected  articles before jumping.
  2102.  
  2103. `/PAT~MOD'
  2104.      searches for PAT in articles.  PAT must be a substring or a valid
  2105.      "REGEXP"  (See Regular expressions.). MOD is a modifier:
  2106.     `c'
  2107.           case dependent search
  2108.  
  2109.     `a'
  2110.           search for pat in the whole article/text
  2111.  
  2112.     `h'
  2113.           search in header
  2114.  
  2115.     `r'
  2116.           search in read articles, too
  2117.  
  2118.     `R'
  2119.           `pat' is a regular expression.
  2120.  
  2121.      If no modifiers are given, the default is:  case independent
  2122.      search, search in unread articles only, substring (no  regular
  2123.      expression).
  2124.  
  2125.      `/ RET' (no pattern or modifiers specified) means to *search again*
  2126.       with the last pattern and settings.  To abort the search, just
  2127.      press *any* key (it's your task to  keep your fingers away... from
  2128.      the keyboard).  Currently, trailing spaces are not discarded!
  2129.  
  2130. `?PAT~MOD'
  2131.      to search in the other direction (? alone searches for the  same
  2132.      pattern backwards). See explanations for `/PAT~MOD'  above.
  2133.  
  2134.  
  2135. Posting, replying, forwarding, cancel
  2136. ......................................
  2137.  
  2138. `f'
  2139. `F'
  2140.      invokes your editor and produces a "follow-up" (i.e. a public
  2141.      reply into  this or possibly another newsgroup).  This function
  2142.      should only be used if your answer is informative  enough for the
  2143.      whole readership, otherwise you should prefer the  REPLY-function.
  2144.       `F' will include the original article-text, but with the
  2145.      `QUOTECHAR'  inserted at the beginning of each line! Quote only
  2146.      the important passages for  easier remembering the subject, not
  2147.      the whole article!  Try to summarize if possible.  See follow-up,
  2148.      for details.
  2149.  
  2150. `E'
  2151.      enter a new message (post new article to the net).  `Arn' will
  2152.      render you to post a new article to this newsgroup.  (if not
  2153.      moderated! See posting, for details).
  2154.  
  2155. `c'
  2156.      Cancel this article, if it is yours. A control-posting is created 
  2157.      if the `From:'-line contains `UserName@NodeNameDomainName'!  The
  2158.      editor is invoked, same procedure as with follow-up. The cancel 
  2159.      function will send a control-article which is distributed just as
  2160.      normal  news-articles, but because it is a control-article, it
  2161.      will cause the  news-sites to cancel (delete) the article where
  2162.      you pressed this key.  This function is useful, if you posted an
  2163.      article to the net and  it already has left your system, but you
  2164.      nevertheless want to withdraw it  (maybe you posted nonsense,
  2165.      flames...).
  2166.  
  2167. `r'
  2168. `R'
  2169.      Reply. Invokes editor and produces a reply (`R' for quoting text),
  2170.       which is sent as e-mail (private-mail). See reply, for details.
  2171.  
  2172. `M'
  2173.      Invokes miscellaneous-menu which offers you forwarding articles or
  2174.       special-quoted followups (see special follow-ups).  Type `F' for
  2175.      sending this article via e-mail to an addressee  which you are
  2176.      asked for (See Forwarding, for details).
  2177.  
  2178.  
  2179. Other commands
  2180. ...............
  2181.  
  2182. Archiving articles:
  2183. `s NAME'
  2184. `w NAME'
  2185. `os NAME'
  2186. `ow NAME'
  2187.      appends article(s) to a file.
  2188.  
  2189.      `Arn' appends it to the file NAME in the directory  `SAVENEWS'
  2190.      (See .arnrc.), if given, else to  `SAVENEWS:GROUPNAME' if no name
  2191.      is specified! You can save it/them to other directories/devices by
  2192.      specifying the *full path-name* containing a colon `:'. This even
  2193.      works for `prt:', so you can easily print articles with `s prt:'!
  2194.      These commands can be preceded by a range! Examples: (assuming
  2195.      `SAVENEWS' is `UUCP:usr/rob/News' and the current  newsgroup is
  2196.      `comp.sys.amiga.misc')
  2197.  
  2198.         * `s' appends article with header to
  2199.           `UUCP:usr/rob/News/comp.sys.amiga.misc'
  2200.  
  2201.         *  `os' appends all *selected* articles *in thread order* to
  2202.           `UUCP:usr/rob/News/comp.sys.amiga.misc'
  2203.  
  2204.         *  ``w' help' appends article without header to
  2205.           `UUCP:usr/rob/News/help'
  2206.  
  2207.         *  `1000,1010-1040 `s''  appends complete articles
  2208.           1000,1010-1040 to
  2209.           `UUCP:usr/rob/News/comp.sys.amiga.misc'
  2210.  
  2211.         * ``s' UUCP:tmp/help' appends complete article to
  2212.           `UUCP:tmp/help'
  2213.  
  2214.      If the NAME begins with a `|', the rest of NAME and all following
  2215.      text will be considered as shell-commands. Save the article to
  2216.      standard-input of the following command (PIPING): `s |sort to
  2217.      RAM:test' will pass the article to standard-input of `sort', which
  2218.      then will put the result into `RAM:test'. `s | sort to RAM:test'
  2219.      is allowed also. NOTE: `s |' and `w |' commands will sent all
  2220.      further output to `NIL:'! So redirect your output if necessary or
  2221.      use the commands `S'/`W'/`|'! `S' and `W' will open a
  2222.      `SHELLWINDOW' (See .arnrc.) which will act as input/output stream.
  2223.      To get rid of this window and to reenter `Arn', just type `endcli'
  2224.      to the CLI-command prompt. `S' is equivalent with ``S |'' and
  2225.      ``|'', ``W'' with ``W |''.
  2226.  
  2227.      This is *not* a *real* piping mechanism, because it doesn't use the
  2228.      `PIPE:' device and it normally had to "run" the commands following
  2229.      `s |'. This function creates a temporary-file in `T:' and then
  2230.      redirects the input-stream of the following program to this
  2231.      temp-file. The temp-file is then deleted. ``s |'COMMAND OPTIONS
  2232.      FURTHER_COMMANDS' is executed as `command <PIPE_tmpfile options
  2233.      further_commands'. With some shells you're able to do multiple
  2234.      pipes: `S search STDIN fred | sort | type to RAM:test NUMBER'
  2235.  
  2236. `|'
  2237.      is shorthand for ``S |''.
  2238.  
  2239. Marking articles (read or unread):
  2240. `u'
  2241.      don't mark this article as read.  Note: this will *not* unmark all
  2242.      crosspostings, too.
  2243.  
  2244. `j'
  2245.      junk this article (mark it as read) and do `n'.  (If your
  2246.      UUCP-software supports `Xref:'-Lines (CNews and   AmigaUUCP Plus
  2247.      do), all crosspostings are marked as read, too).
  2248.  
  2249. `J'
  2250.      mark this article as read, but stay at this article.
  2251.  
  2252. `C'
  2253.      catch up. `Arn' will ask you for a confirmation. Mark all 
  2254.      articles as read! Goto next group.
  2255.  
  2256. `k'
  2257.      catch up current subject. This command works only when you're
  2258.      reading  selected articles. All articles with the same subject are
  2259.      marked as read  and become unselected! Nothing is written into
  2260.      X-files, so this can be  considered as a temporarily thread-kill
  2261.      (or better thread-skip).
  2262.  
  2263. X-file commands:
  2264. `K'
  2265.      invokes the X-file menu. See article-selector commands.
  2266.  
  2267. `d'
  2268.      this adds the subject of the current article to your local X-file.
  2269.       The subject is cut at a length of 30 characters and the
  2270.      validity-period  is set to the default XLIFETIME.
  2271.  
  2272. Miscellaneous commands:
  2273. `M'
  2274.      invoke the Miscellaneous-menu:
  2275.             F)orward, S)pecial quoted follow-up, Q)uit:
  2276.       See Forwarding, See special follow-ups, for explanation of these 
  2277.      actions.  `Q' quits the menu (no action taken).
  2278.  
  2279. `o'
  2280.      other program. This key invokes the external program `EXTERNALPRG'
  2281.       if specified in `.arnrc'
  2282.  
  2283. `CTRL-T'
  2284.      show screen-title. This key toggles (show/hide).  The window is
  2285.      resized and the `CTRL-L' command is issued.
  2286.  
  2287. `I'
  2288.      show current newsgroup status.
  2289.  
  2290. `h'
  2291. `H'
  2292.      HELP. Display the help-text.
  2293.  
  2294.  
  2295. Range commands
  2296. ...............
  2297.  
  2298. Range commands are executed only for some listed articles. You can
  2299. additionally specify filter flags to restrict the field of activity.
  2300. You first specify the range and then the command that is applied to it.
  2301. Note that you can select articles and then use range command to save
  2302. them for example (`1-$:s s T:test') Format: RANGE CMD
  2303. A range consists of one or more subranges:
  2304.      RANGE:== subrange{","subrange}
  2305.      subrange:== number{":"flags} | number"-"number{":"flags}
  2306.      flags:== [minflag]
  2307.      minflag:== "u" | "U" | "r" | "R" | "d" | "D" | "n" | "N"
  2308.      number:== [digit] | "^" | "." | "$"
  2309.      digit:==  "0" | "1" | "2" | "3" | "4" |
  2310.                "5" | "6" | "7" | "8" | "9"
  2311.      
  2312.      [x] denotes one or more occurrences of x.
  2313.      {x} denotes zero or more occurrences of x.
  2314.      |  means "or"
  2315.      
  2316.      special numbers: ^ first article, $ last article,
  2317.                       . current article.
  2318.      valid flags: U,u,R - unread; r - read;
  2319.                   s - selected; S - not selected;
  2320.                   n - new; N - not new.
  2321.      
  2322.      CMD is one of =,r/j,u/U,w,W,s,S,|
  2323.      
  2324.      / means alternatively and | is here the "Pipe" sign (not
  2325.      "or") and part of the commmand.
  2326.      
  2327.      j,r - mark it read; u,U - mark it unread;
  2328.      w,s - w,W,s,S,| -> see above (save,write)
  2329.  
  2330.  
  2331. Leave the pager
  2332. ................
  2333.  
  2334. `q'
  2335.      Quit reading this article (let it marked read or unread).  Go to
  2336.      next selected article if any.
  2337.  
  2338. `Q'
  2339.      Quit reading this article and goto the article selection or  next
  2340.      selected group.
  2341.  
  2342. `X'
  2343.      Quit reading article and return to article selection page, don't
  2344.      show next  selected article. If you are reading with the
  2345.      TAB-command, which  catchups a group after reading all selected
  2346.      articles, this command aborts  the catchup function and returns to
  2347.      the article-selector level.
  2348.  
  2349. `CTRL-C'
  2350.      Quit `Arn' immedeately don't update `GROUPLIST'.
  2351.  
  2352.  
  2353. Writing news
  2354. *************
  2355.  
  2356. Naturally, you can't only read articles, but you also can reply to
  2357. postings, or create postings yourself. I want to distinguish "posting",
  2358. "follow-up", "reply".
  2359. posting
  2360.      This is a public message sent to all nodes in the net.
  2361.  
  2362. follow-up
  2363.      This is a reply to a posting, which is sent as a public message
  2364.      back into  the newsgroup.
  2365.  
  2366. reply
  2367.      This is a reply, which is not public, but sent via e-mail to the
  2368.      author  of the message on which you replied.
  2369.  
  2370.  
  2371. Posting
  2372. ========
  2373.  
  2374. To "post" means that you write a new article with a new subject. Use
  2375. the `E'-command (enter new message) in all levels for invoking a post.
  2376. `Arn' will ask you for the desired newsgroup(s), the subject and
  2377. distribution. Then it will invoke your favourite editor (see
  2378. `UUCONFIG') and display the correct header. Now you can enter your text
  2379. after a blank line behind the header. If you quit your editor, `Arn'
  2380. will  prompt some choices which are described in detail in the
  2381. follow-up section.
  2382.  
  2383.  
  2384. Follow-up
  2385. ==========
  2386.  
  2387. To follow-up on an article you must be in the pager-level, reading the
  2388. article you want to follow-up on. There exist the commands
  2389.    *  `f' for a follow-up without quotation
  2390.  
  2391.    *  `F' for a follow-up including the quoted article
  2392.  
  2393.    *  `M' for invoking the Miscellaneous-menu which gives the
  2394.      possibility  of a special quoted follow-up. This means you can
  2395.      quote the header  and temporarily change the quotation sign. This
  2396.      is recommended if the article  has already some nested quotations.
  2397.  
  2398. `Arn' generates a temporary file in your `T:' directory.
  2399.  
  2400.  
  2401. article-header
  2402. ---------------
  2403.  
  2404. The header contains all the required lines (RFC 1036). All entries
  2405. taken from the original-article get here with respect to the
  2406. "line-continuation" (a header line can be continued by starting the
  2407. next line with spaces or tabs, if it seems to be too long for an 80
  2408. column display).
  2409.  
  2410. The `Newsgroups:' line contains the same newsgroups as the
  2411. `FollowUp-To:'-line of the original-article (if exists), otherwise the
  2412. `Newsgroups:'-line from the original article is copied. If the
  2413. `FollowUp-To:'-line contains more than one newsgroupname (one comma to
  2414. separate), the following WARNING is displayed.
  2415.      WARNING: Ambiguous FollowUp-To:-Line! Please (e)dit!
  2416. You should enter your editor once more and redirect the discussion into
  2417. only one newsgroup, but if you like, you can also suggest two or more
  2418. newsgroups (it's just a WARNING-message...).
  2419.  
  2420. If the `FollowUp-To:'-line contains something like `poster' or only
  2421. newsgroups that are not in your active-file you get a warning message,
  2422. too. `poster' is a nonsens newsgroup, which should express that the
  2423. author wants a reply instead. If you post to groups that are not in your
  2424. `active'-file, they are stored in the pseudo-newsgroup `junk', which
  2425. means that they are lost (never distributed).
  2426.  
  2427. The `Subject:'/`Title:'-line is generated by inserting a `Re: ' before
  2428. the original `Subject:'-line, but only if this line didn't begin with
  2429. `Re:' or `Re^'! The `Reply-To:'-address is either directly taken from
  2430. your `.arnrc' (`REPLYTO') or `UserName@NodeNameDomainName' as default.
  2431. The `FollowUp-To:'-line is identical with the `Newsgroups:' line. It
  2432. should only contain one newsgroup-name, to direct the follow-ups into
  2433. one group. The `References:' is either created or copied from the
  2434. original article. The `Message-ID:' of the original article is appended
  2435. (`Arn' does an automatic wrap around of long references lines).
  2436. *IMPORTANT:* If nevertheless your EDITOR wraps lines around, make sure
  2437. that the new lines *start* with SPACE or TAB-characters
  2438. (line-continuation!)!
  2439.  
  2440. The `Distribution:' is copied unchanged. The `Organization:' is
  2441. appended if available from `UUCONFIG'. The `Lines:'-line is inserted,
  2442. if you really send the article off. The `HEADERFILE' is appended to the
  2443. header.
  2444.  
  2445.  
  2446. article-body
  2447. -------------
  2448.  
  2449. *After at least one blank line* you can write your text or the
  2450. included/quoted text follows after a line like this:
  2451.      In article <1234@foosite.foo.bar> Freddy Foobar writes:
  2452. (If the realname is missing, the address is taken). `Arn' doesn't
  2453. support multiple parentheses like in: `(Freddy Foobar (the world's
  2454. best))' The RFC 1036 says that this should be avoided!!
  2455.  
  2456. Again: REMEMBER TO LEAVE AT LEAST ONE BLANK LINE BETWEEN THE HEADER AND
  2457. THE MESSAGE-BODY/TEXT!
  2458.  
  2459. Your `SIGNATURE' (from `.arnrc') will be added behind the header.
  2460.  
  2461. After you've finished your editor, `Arn' will prompt:
  2462.      p)ost, e)dit, f)ilter, a)bort:
  2463.  
  2464. If you type `p', `Arn' will check the header for redundant lines and
  2465. removes them, the `FollowUp-To:'-line is removed if it's identical with
  2466. the Newsgroups-line. Then the article is sent to your
  2467. `SENDNEWS'-program that is typically to your spool-directory
  2468. respectively newsfeed. After that, `Arn' executes the
  2469. `SELFSEND'-program if the entry in the `.arnrc' exists/is valid. If you
  2470. have generated a new posting (not a follow-up) or specified the
  2471. `ASK-FOR-AUTOSELECT-FUPS' keyword in `.arnrc', then you'll be asked:
  2472. `Do you want to autoselect this subject? (y/N):' Only if you press `y'
  2473. or `Y' the subject is marked for autoselection. It'll be selected as
  2474. long as your `XLIFETIME' lasts.
  2475.  
  2476.      NOTE: The contents of your posting are not checked/changed after
  2477.      editing, so  YOU ARE RESPONSIBLE FOR ANY NONSENSE IN THE
  2478.      MESSAGE-HEADER! (and the trouble you'll get)
  2479.  
  2480. With `e' you'll enter your editor once more.
  2481.  
  2482. With `f' you can invoke a filter program that changes your article. See
  2483. `FILTER' in `.arnrc' (See .arnrc.).
  2484.  
  2485. With a you don't send this article to the net! The article remains
  2486. still in your `T:' directory as `T:CancelledArt.'USERNAME!
  2487.  
  2488. If you didn't change the article at all, `Arn' will abort automatically.
  2489.  
  2490.  
  2491. Special follow-ups
  2492. -------------------
  2493.  
  2494. This feature can be reached by using the Miscellaneous-menu (command
  2495. `M', then press `S') in the pager level.
  2496.  
  2497. This invokes the special quotation follow-up function. It is recommend
  2498. to use this function whenever the article you want to follow-up on has
  2499. already some levels of nested quotations or if you want to include the
  2500. article-header into your follow-up.
  2501.  
  2502. You're asked `Quote header? y)es or N)o:', default is no. The header is
  2503. always quoted with the `QUOTECHAR' from `.arnrc' Next question is
  2504. `Quotechars: S)pecify, I)nitials, else normal:' If you choose specify,
  2505. you can enter a string of 20 chars max. that is used as quotechar
  2506. (preceding each line of quoted text). If you use initials, `Arn' uses
  2507. the first two letters from the authors first- and lastname if available
  2508. and displays what it suggests as quotechar. If it's okay just press
  2509. return, otherwise you can edit the string. Normally `Arn' uses the
  2510. `QUOTECHAR' from `.arnrc'.
  2511.  
  2512.  
  2513. Reply
  2514. ======
  2515.  
  2516. Attention: No `From:'-line is generated. This is normally the job of
  2517. your sendmail-program (AmigaUUCP: `sendmail -f user').... If this is
  2518. nevertheless not possible, use the `MAILOPTS' in `.arnrc' or try it
  2519. with a script file (see `SENDMAIL' entry in `.arnrc') and write me
  2520. which program has this problems. The principle is the same as with
  2521. FollowUps, but this article then is sent as e-mail via `SENDMAIL'.
  2522.  
  2523. The `To:'-address is created from the following lines: `Reply-To:' if
  2524. available, otherwise `Return-Path:' if available, otherwise `From:'.
  2525.  
  2526. Two empty `Cc:' and `Bcc:' lines are created. The `Subject:'-line
  2527. follows the same rules as in followup-articles. A line `In-Reply-To:'
  2528. is generated containing the articles Message-ID and the newsgroup it is
  2529. from.
  2530.  
  2531. If quoting (`R'), `Arn' creates a first line of text like this:
  2532.      In sub.culture.foobars, article <1234@foosite.UUCP>, you wrote:
  2533. If not quoting this line looks like this:
  2534.      This is a reply to your article <1234@foosite.UUCP>, in sub.culture.foobars.
  2535.  
  2536. Your signature is included after the header. If you don't want a
  2537. signature, delete it within your editor.
  2538.  
  2539. After finished writing the article, `Arn' will prompt:
  2540.      s)end, e)dit, a)bort:
  2541.  
  2542. The message "Sending mail..." is *no proof* that your mail really will
  2543. be spooled/sent off! You must be sure that your entry in `.arnrc' is
  2544. correct and that this mail is really sent (try it once!).
  2545.  
  2546. If you didn't change the article at all, `Arn' will abort
  2547. automatically. If you aborted or an error occured the mail remains
  2548. still in your `T:' directory as `T:CancelledArt.'USERNAME!
  2549.  
  2550.  
  2551. Forwarding
  2552. ===========
  2553.  
  2554. To `forward' an article means to send this article to other people by
  2555. e-mail. This is useful if you think this article/information might be
  2556. useful for some people which are not reading (regularly) this newsgroup.
  2557.  
  2558. Invoke forwarding through the Miscellaneous-menu in the pager-level.
  2559.  
  2560. This command is similiar to `R', but you can specify the mail-addresses.
  2561. `Arn' prompts:
  2562.      Forwarding this article...
  2563.      To:
  2564.      Cc:
  2565.      Bcc:
  2566. At the `To:' you can write down the e-mail addresses of the intended
  2567. receivers. At `Cc:' (carbon copy) all receivers which should get also a
  2568. copy, and at `Bcc:' (blind carbon copy) all people who should get a
  2569. copy, too, but all receivers listed under `To:' and `Cc:' shouldn't
  2570. know about these copies (that's the difference to `Cc:'). You can leave
  2571. these lines blank by typing RET. `Arn' displays:
  2572.      generating mail...
  2573. The generated mail looks like this:
  2574.      To: nobody@nowhere.com
  2575.      Cc:
  2576.      Bcc:
  2577.      Subject: FORWARDED article from amiga.test
  2578.      Reply-To: rob@spirits.ka.sub.org
  2579.      Organization: Blessed Software Products, private, Karlsruhe (FRG)
  2580.      
  2581.      This is an article from amiga.test,
  2582.      forwarded by Roland Bless <rob@spirits.ka.sub.org>.
  2583.      
  2584.      ------------- beginning of forwarded article -------------
  2585.      <header quoted with '|'>
  2586.      
  2587.      <body (not quoted)>
  2588.      ---------------- end of forwarded article ----------------
  2589.  
  2590. `Arn' doesn't show this mail, unless you type `e' at the
  2591.      s)end, e)dit, a)bort:
  2592. If you edit the article you must save it, otherwise `Arn' will abort
  2593. automatically the mail.
  2594.  
  2595.  
  2596. Moderated newsgroups
  2597. =====================
  2598.  
  2599. Moderated groups are special groups where you have no normal write
  2600. rights. They are marked in the group-level with an `M' flag. All
  2601. articles must be approved by a moderator of this newsgroup, which then
  2602. posts the article for you. Non approved articles are thrown away by the
  2603. news-transport system!
  2604.  
  2605. The intention of moderated newsgroups is to get informative newsgroups
  2606. with essential postings and without discussions about postings. This
  2607. normally restricts the traffic.
  2608.  
  2609. Often are groups that contain announcements, lists, sources or binaries
  2610. moderated. To contribute posting to these groups, you have to mail your
  2611. posting to the moderator.
  2612.  
  2613. This is supported by `Arn' with a moderators-file. This file contains
  2614. the e-mail addresses of the appropriate moderators from the moderated
  2615. newsgroups. Enable the use of a moderators file by adding the entry in
  2616. `UUCONFIG':
  2617. `Moderators UULIB:Moderators'.
  2618.  
  2619. The format is as follows:
  2620. NEWSGROUP EMAIL-ADDRESS
  2621.  
  2622. where NEWSGROUP is a newsgroup name, which can have dashes instead of
  2623. dots as a separator between subgroups. You can specify a default entry
  2624. which must have the placeholder `%s', which is replaced with the 'dash'
  2625. newsgroup name. This could be the e-mail address of a host which has a
  2626. complete moderators list and routes your mail to the right moderator.
  2627. This default entry looks like this:
  2628. `all    %s@uunet.uu.net' which is e.g. expanded to
  2629. `news-admin-announce@uunet.uu.net'.
  2630.  
  2631.  
  2632. X-files
  2633. ********
  2634.  
  2635. To automagically suppress messages you're not interested in, you can  
  2636. use the X-file (aka "kill-file").
  2637.  
  2638. Unread messages that are matched by the entries in your X-file are
  2639. simply   skipped and marked as read ("junked") if you're reading
  2640. articles. For   `Subject:' and `From:' X-file entries the articles are
  2641. matched   already if you   enter a newsgroup, so junked articles will
  2642. not appear in the article list.   All other header-fields are examined
  2643. if the article is going to be   displayed.
  2644.  
  2645. You normally have two levels of X-files: global X-files and local ones.
  2646.   Global X-files are examined in EACH newsgroup, unless you turn this  
  2647. feature off in the options-menu.   Local X-files are only active in
  2648. your current newsgroup you're reading   (you can also turn them off)
  2649. and therefore can be different for   every newsgroup.
  2650.  
  2651.  
  2652. X-file menu
  2653. ============
  2654.  
  2655. The easiest way to create/use X-files is to use the `K'-command in  
  2656. the pager-/article-selection level.
  2657.  
  2658. You'll see this line then:
  2659.        E)dit, K)ill, A)utoselect, D)elete, Q)uit:
  2660.   "Edit" lets you edit the kill files (local or global),  
  2661. "Kill","Autoselect","Delete" lead to a further submenu:
  2662.        S)ubject, A)uthor, R)egexp, E)xpression, Q)uit:
  2663.   in pager-mode `T)hread' is a possible choice, too.
  2664.  
  2665. To get rid of all articles that have the same subject press `S', e.g.  
  2666. or `A' to skip all messages written by this author.   `T' puts the
  2667. first Message-ID of the References-line into the X-file and   therefore
  2668. skips all articles refering to this Msg-ID (to abort type 'Q').   Note
  2669. that `T)hread' will not "prekill" articles, i.e. they are displayed in 
  2670.  the article selection menu and junked if you want to read them!!  
  2671. `S)' and `A)' junks/autoselects articles before you enter the article  
  2672. selection pages. To get rid of a thread it's normally the best way to  
  2673. type `S)' here.   `A)'utoselection lets you automatically pre-select
  2674. articles. Note that   auto-selecting/killing an author is much slower
  2675. than   auto-selecting/killing a subject, so if you only have a 68000
  2676. you should   not have too much `From:' entries in X-files!!
  2677.  
  2678. `R)' lets you specify a regular expression (which are slow),
  2679. `E)xpression'   lets you specify a substring to search for. In both
  2680. cases `Arn' prompts   for a Header-Field for which the expression
  2681. should be valid. Note that   only `Subject:' and `From:' are
  2682. pre-killing articles, so they are not   displayed on article-selection
  2683. pages.   Avoid regular expressions! They are processed very slow (I may
  2684. change anytime   over to other regexp).
  2685.  
  2686. After that a second prompt asks for the X-file-scope, that is global or
  2687.   local.   Then a last menu asks:
  2688.        Validity period: A)lways, S)pecify, else default, Q)uit (no change):
  2689.  
  2690. `A'
  2691.      The specified entry will never expire (deleted by `Arn -X').
  2692.  
  2693. `S'
  2694.      If you type `S' here, the next prompt asks for the date:
  2695.               Enter entry-expiration-date (mmddyyyy):
  2696.        The "mmddyyyy" says that you have to enter the first two  
  2697.      digits as month, the next two as day and the last four digits  
  2698.      the full year. There are no spaces or separators allowed.
  2699.  
  2700. `RET'
  2701.      If you simply type RET the default expiration period (XLIFETIME) is
  2702.        taken. See .arnrc.
  2703.  
  2704. `Q'
  2705.      Your last chance to prevent adding this entry.
  2706.  
  2707. `Arn' will add/create the entry in the X-file automatically for you.
  2708.  
  2709. X-file format
  2710. =============
  2711.  
  2712. You naturally can add manually entries which is normally easy. An X-file
  2713.   entry looks like this:
  2714.        Header-field:/pattern~command expirationdate
  2715.   If the header field is missing `Subject:' is default.   Pattern is a
  2716. sub-string that, if it matches with the header-line which begins   with
  2717. Header-field, will cause a command to be executed.   If there is the
  2718. letter 'r' after the ~ in the command characters, the   pattern is
  2719. interpreted as regular expression and not as sub-string.   The regular
  2720. expression is an V8-regexp, which is explained in detail in   the
  2721. chapter "Regular Expressions" (see Regular expressions).   'c' will
  2722. make matching (both regular expression and substring) case-dependent.  
  2723. The '^' modifier restricts sub-string matching to the beginning. This is
  2724.   useful if you want to kill a certain thread, but not all diverging
  2725. topics, too.   Example: `gaga~^' kills `Subject: Re: gaga', but not  
  2726. `Subject: Re: foobar (was Re: gaga)'. This '^' modifier is used by  
  2727. the `S)' command in the X-file menu (see X-file-menu).
  2728.  
  2729. Command is   'j'(junk) or   's'(autoselect)   Again junk is default if
  2730. this field is omitted.
  2731.  
  2732. For AUTOSELECTION, i.e. articles that match are selected if you enter  
  2733. this group, you must specify the 's' command.
  2734.  
  2735. The lifetime of each entry can be limited to the expirationdate. This  
  2736. is optional, if there is none expirationdate specified, the lifetime  
  2737. of this entry is unlimited (unless you delete it by hand!).   Note that
  2738. the entry is only IGNORED if the expirationdate is reached.   To
  2739. physically delete the redundant lines, you must start "Arn" with  
  2740. command-line option "-X". This inconvenience is because of better  
  2741. performance during reading articles. I recommend to run regularly  
  2742. "Arn -X" via "dcron".
  2743.  
  2744. `Arn' sets the lifetime automatically to `XLIFETIME' days,   if you're
  2745. adding entries with "S","A","T" or "K".
  2746.  
  2747. The expirationdate has the format:   `ddmmyyyy', with `dd'-day,
  2748. `mm'-month, `yyyy'-year
  2749.  
  2750. The / and ~ are separators and can be obtained itself by doubling:   //
  2751. is the slash itself or ~~ accordingly tilde.   Please note that you
  2752. have to override special regexp-meta-signs by   \ (backslash) (but
  2753. `Arn' makes it at S,A,T automatically).
  2754.  
  2755. BTW: Concerning 'S': `Arn' cuts the subject to 30 characters.
  2756.  
  2757. X-files consider only HEADERS for matching patterns at the moment.  
  2758. You can specify the header field like From:, Keywords:, Summary:, etc. 
  2759.  as mentioned above.
  2760.  
  2761. Local X-files are named ".X<UserName>" and located in the newsgroup  
  2762. sub-dir. The global-X-file is named ".glX<UserName>" and is located in 
  2763.  the same directory as your GROUPLIST-file is.
  2764.  
  2765. Note: If you're searching for a subject ('/') and this subject is in   
  2766.      your X-file, "Arn" will execute the X-command (maybe junk)        
  2767. and skip to the next article not in your X-file. This behaviour        
  2768. may change in future.
  2769.  
  2770.  
  2771. Regular expressions
  2772. ********************
  2773.  
  2774. Regular expressions are somewhat complex and not always easy to  
  2775. understand, but you normally won't need all the features, so don't
  2776. worry!   (Syntax in a BNF-like form)
  2777.  
  2778. Valid regular expressions:
  2779. Terminal symbols are enclosed in ' ', they mean the textual symbol
  2780. itself.   Nonterminal symbols are enclosed in < >.   {x} denotes zero
  2781. or more occurrences of x.   [x] denotes one or more occurrences of x.  
  2782. |  means "or"
  2783.        <regexp>:== <branch>{'|'<branch>}
  2784.        <branch>:== {<piece>}
  2785.        <piece>:== <atom>
  2786.        <piece>:== <atom>'*'   (matches sequence of 0 or more matches of the atom)
  2787.        <piece>:== <atom>'+'   (matches sequence of 1 or more matches of the atom)
  2788.        <piece>:== <atom>'?'   (matches a match of the atom or the null-string)
  2789.        <atom> :== '('<regexp>')' | <range> | '.' | '^' | '$' | '\'<char> | <char>
  2790.      
  2791.        '.' matches ANY character
  2792.        '^' matches the NULL-string at the beginning
  2793.        '$' matches the NULL-string at the end
  2794.        '\' matches the character that immediately follows.
  2795.      
  2796.        <range>:== '['<sequence>']'  matches any single character from
  2797.                                     the <sequence>
  2798.        <sequence>:== [<char>] | <char>'-'<char> | '^'[char]
  2799.        '-' means the full list of ASCII characters between the two characters.
  2800.        '^' means "not", so it matches all characters not from the rest of the
  2801.        sequence.
  2802.        To include ']' or '-' in the sequence make it the fist character in the
  2803.        sequence.
  2804.      
  2805.        <char> :== any valid character (esp. 'A'-'Z','a'-'z','0'-'9')
  2806.  
  2807. To override the meta-characters *,-,. etc. use the backslash before  
  2808. (\* means the asterisk itself). Somehow, this seems not always to work
  2809. as   one expects. Didn't have the time to figure it out, yet.
  2810.  
  2811. Puuhh! Sorry for that. Now some concrete examples:
  2812.        regexp                           match                       no match
  2813.        ----------------------------------------------------------------------
  2814.        abc                              aabbaaaabc                  abababacb
  2815.        Multiple words are allowed       Multiple words are allowed  Multiple
  2816.        abc|abd                          abababd                     xyzab
  2817.        ([Aa](miga)?)(-*)500             Amiga-500                   500
  2818.        ([Aa](miga)?)(-*)500             Aa-500                      A
  2819.        ([Aa](miga)?)(-*)500             A-500                       miga
  2820.        ab*bc                            abbbbc                      ac
  2821.        ab*bc                            abc                         axbbc
  2822.        ab+bc                            abbc                        abc
  2823.        ab+bc                            abbbbbc                     abq
  2824.        ab?bc                            abbc                        abbbc
  2825.        ab?bc                            abc                         ac
  2826.        ^abc$                            abc                         abcc
  2827.        ^abc                             abcc                        aabc
  2828.        abc$                             aabc                        abca
  2829.        a.c                              abc                         abb
  2830.        a.c                              axc                         ac
  2831.        a.*c                             axyzc                       axyzd
  2832.        ^a(bc+|b[eh])g|.h$               abh                         abcf
  2833.        (bc+d$|ef*g.|h?i(j|k))           effgz                       zzz
  2834.  
  2835.  
  2836. ArnMaster
  2837. **********
  2838.  
  2839.  
  2840. Purpose
  2841. ========
  2842.  
  2843. `ArnMaster' creates (small) databases for `Arn'. These databases are   
  2844. read by `Arn' and inform it about subject, author, lines, followups,
  2845. etc.    To get fast and comfortable news-reading these databases are
  2846. required.    Because of their clever design they are quite small (ca.
  2847. 2% of your news-volume)    and can be used on systems with low disk
  2848. space, too.    Without `ArnDaemon', you must start `ArnMaster' only
  2849. once if you've got    in new articles. It'll run over all groups
  2850. containing new articles and    update all databases for the groups.
  2851. After `ArnMaster' has    finished, you can start `Arn' and read your
  2852. news without any delay.    `Arn' invokes `ArnMaster' only if the
  2853. database seems to be    older than the entry in the `active'-file. This
  2854. can happen if you    posted a single article and `ArnMaster' did not
  2855. run over this group    yet or was not started after posting.
  2856.  
  2857. Please note, that the processing speed depends strongly on your
  2858. hard-disk    seeking speed (and fragmentation of the news-partition,
  2859. which is    unavoidable). `ArnMaster' itself doesn't need much CPU-time
  2860. in general    so don't blame me for bad coding....    I use red-black
  2861. (i.e. near-balanced) binary trees for managing big groups.
  2862.  
  2863. The time that `ArnMaster' needs for scanning will increase if your   
  2864. news-system doesn't support an ACTIVEFILE.
  2865.  
  2866. Don't be alarmed by the long time an initial run can last. This is quite
  2867.    normal if you have a lot of articles and all databases have to be
  2868. build    from scratch. The speed depends mainly on the fragmentation of
  2869. your    News-Harddisk and how many articles in each group are scanned. 
  2870.   On the same disk I got speed results from 150 articles/min    upto
  2871. 844 articles/min (excerpt from logfile):
  2872.  
  2873.         arnmasterV0.20 (03 Sep 93 22:30:46) Total articles scanned: 4478 in 109/192 groups
  2874.         arnmasterV0.20 (03 Sep 93 22:30:47) CREATED 'Lines:' : 117
  2875.         arnmasterV0.20 (03 Sep 93 22:30:47) ENDED: Elapsed time 05:18s (844/min)
  2876.  
  2877. In every day usage, `ArnMaster' needs only to scan all new articles   
  2878. and takes advantage of the already existing databases. So typical run  
  2879.  times are in the minute range. Low scan rates can be a result of only a
  2880.    few new articles in each group, so the overhead of getting from
  2881. group to    group and opening/reading/writing the database in might be
  2882. too big in    respect to the number of new/scanned articles.
  2883.  
  2884.  
  2885. `.arnmasterrc'
  2886. ===============
  2887.  
  2888. `ArnMaster' requires a configuration file, it can be the separate   
  2889. file `.arnmasterrc' in `UULIB:' or if you have only one global   
  2890. `.arnrc' (i.e. no other `Arn'-user) in your `UULIB:',    you can add
  2891. necessary entries for `ArnMaster' there.    However, `.arnmasterrc' has
  2892. the higher priority!
  2893.  
  2894. The separate configuration file is required if you have several   
  2895. `Arn' users.
  2896.  
  2897. Note that the former keyword `NEWSDIRTYPE'    is no longer valid in
  2898. `.arnrc'!
  2899.  
  2900. Currently these entries are possible (required entries have a -!-):
  2901. `ACTIVEFILE -!-'
  2902.      where is your `active'-file and what's its name? See active-file, 
  2903.           for details about the `ACTIVEFILE'.
  2904.  
  2905. `ARNMASTERLOG'
  2906.      where should `ArnMaster' have its logfile?
  2907.  
  2908. `DOTDIRS'
  2909.      (obsolete). See .arnrc, for details.
  2910.  
  2911. `NEWSDIR'
  2912.      Specify the name of your newsgroups directory.    If this entry is
  2913.      missing `UUNEWS:' is default.
  2914.  
  2915. `DBASEDIR'
  2916.      Destination directory for `.newsdb'-files. This entry    is
  2917.      optional, because normally the `.newsdb' files are    kept in the
  2918.      `NEWSDIR'. But if you have no permission to    write in `NEWSDIR'
  2919.      (e.g. a server), you should specify    this entry to a directory
  2920.      on your machine. The top    level directory you give as value must
  2921.      exist!
  2922.  
  2923. `COUNTLINES'
  2924.      If this keyword is present, `ArnMaster' generates the    `Lines:'
  2925.      number in databases if missing in article    header. The original
  2926.      article header remains untouched!    See also `-L' option.
  2927.  
  2928. `UPDATEACTIVE'
  2929.      This keyword is like the `-A' option and creates/updates    the
  2930.      active-file for you. YOU MUST SPECIFY this keyword    if you have
  2931.      AmigaUUCP (Dillon) or any other UUCP-news-    software that
  2932.      doesn't support an `active'-file. See also    `-A' option.
  2933.  
  2934.      Example:
  2935.              ACTIVEFILE    UULIB:news/active
  2936.              ARNMASTERLOG  T:logfile
  2937.              DOTDIRS       Yes
  2938.              COUNTLINES
  2939.  
  2940.  
  2941. Usage
  2942. ======
  2943.  
  2944. `ArnMaster' should be placed the directory where your other UUCP
  2945. commands   feel comfortable (e.g. `UUCP:c' or `UUCP:bin').   User of
  2946. Dillon's AmigaUUCP *MUST* specify the `-A' option   (unless you already
  2947. have an `active'-file) or the `UPDATEACTIVE'   keyword in
  2948. `.arnmasterrc'.
  2949.  
  2950. `ArnMaster' can only be started from a Shell/CLI:
  2951.        Arnmaster [-?idALCP(n)X] [-g|G groupname]
  2952.    Options:
  2953. `-?'
  2954. `-i'
  2955.      Info about usage and version.
  2956.  
  2957. `-d'
  2958.      Debug. Some more information is printed during scanning on  
  2959.      standard-output (stdout).
  2960.  
  2961. `-P(n)'
  2962.      Set Task Priority to (n). Example: -P-2 sets the priority to   -2.
  2963.  
  2964. `-X'
  2965.      Deletes ALL databases.   YOU shoud manually delete the copy of the
  2966.      `active'-file   `ACTIVE.bak', too!
  2967.  
  2968. `-g NAME'
  2969.      Scan only group name.
  2970.  
  2971. `-G DIRECTORY'
  2972.      Scan only special directory and create `.newsdb'.     Normally
  2973.      `Arn' uses this option if it is directed to a     directory.
  2974.  
  2975. `-A'
  2976.      Scan all newsgroups and update your `ACTIVEFILE'.     IMPORTANT:
  2977.      This switch *must* be present if you use Dillon's     AmigaUUCP!!
  2978.  
  2979. `-L'
  2980.      Generates `Lines:' number in databases if missing in article    
  2981.      header. The original article header remains untouched!     Because
  2982.      counting the lines will require some time this     option is NOT
  2983.      default. You can alternatively use the     `COUNTLINES' keyword in
  2984.      the config-file.
  2985.  
  2986. `-C'
  2987.      Check for inconsistent databases.     This option forces
  2988.      `ArnMaster' to read all the databases     and to rescan articles
  2989.      if they are not in the database,     but in the active-range.    
  2990.      Expired articles are deleted from the database     avoiding
  2991.      displaying subjects for non-existent articles.     This option was
  2992.      introduced due to a bug in `Arnmaster'     which sometimes caused
  2993.      missing datasets in the databases.     THIS OPTION WILL MAKE YOUR
  2994.      DATABASES AS ACTUAL AS POSSIBLE.
  2995.  
  2996.  
  2997. Action
  2998. =======
  2999.  
  3000. `ArnMaster' reads your `active'-file and compares it with the    copy
  3001. `ACTIVE.bak'.    If there are differences the group is scanned.    [If
  3002. you specified the `-A' option or the keyword `UPDATEACTIVE'    is in
  3003. the `ArnMaster' config file, `ArnMaster' will scan all groups    that
  3004. it found in `ACTIVEFILE'.    If you don't have an `ACTIVEFILE' yet, you
  3005. simply should list    ALL newsgroups you get in the `ACTIVEFILE', one
  3006. groupname per line. You    maybe can copy the `newsgroups' file from
  3007. AmigaUUCP to `ACTIVEFILE', if    there are *no* entries after the
  3008. newsgroupname in a line. Don't forget    (although not required) to set
  3009. the 'm' flag for moderated groups, once    `ArnMaster' 'created' the
  3010. `ACTIVEFILE'].
  3011.  
  3012. First, the old database is read if it exists, discarding all expired   
  3013. entries, then all new articles are scanned and the information is   
  3014. written back into a new database.    The databases are created in the
  3015. group directories by default (or in the    `DBASEDIR' directory
  3016. hierarchy) with the name `.newsdb'.
  3017.  
  3018. `ArnMaster' assumes that 0 is not a valid    article-number. If all
  3019. groups are scanned, the current active file is    copied under the same
  3020. name with the extension `.bak'.
  3021.  
  3022.         Note:    Databases may contain false information if you delete
  3023.      articles    manually (esp. articles with highest numbers). New
  3024.      articles may    get old subjects from deleted articles.    You can
  3025.      try the `-C' option first, but if this fails    delete all
  3026.      databases with `arnmaster -X',    then invoke `ArnMaster' once
  3027.      again and all databases should    be corrected.
  3028.    To have consistent databases it is recommended to start   
  3029. `ArnMaster' after each expire-run, too (best with -C)!!
  3030.  
  3031.  
  3032. FixActive
  3033. ----------
  3034.  
  3035. For CNews/wCNews/AmigaUUCP Plus users there is a special feature:   
  3036. You can use `ArnMaster' as `fixactive' (which is faster and    treats
  3037. empty groups correct) by simply linking or copying `ArnMaster'    to
  3038. `fixactive'. `ArnMaster' only updates the active-file then.
  3039.  
  3040.  
  3041. Logfile
  3042. ========
  3043.  
  3044. The main logfile entries look like this:
  3045.      arnmasterV0.14 -(09 Dec 92 19:18:37)- group.name:      12/102:102
  3046.    The number before the slash are the articles that Arnmaster should
  3047. have    scanned (in this example 12). This number is calculated from the
  3048.    difference between `ACTIVEFILE' and `ACTIVEFILE.bak'. If there is a 0
  3049.    it means that `ArnMaster' looked for expired entries.
  3050.  
  3051. The next number shows how many articles `ArnMaster' actually has got in
  3052.    its database. The number after the colon shows how many articles it 
  3053.   should be refering to the `ACTIVEFILE'. If these numbers are not the
  3054. same    then there are some expired/deleted articles.
  3055.  
  3056.  
  3057. Errors
  3058. =======
  3059.  
  3060. If you got CORRUPT DATABASES you can *try* to fix it by deleting the   
  3061. corrupt `.newsdb' and rerun `ArnMaster' on this group (see `-g'   
  3062. option).    The article number `ArnMaster' reports with corrupt
  3063. databases is not    always correct, but you could look for this article
  3064. and see if this    article is causing problems because of a strange
  3065. header format.
  3066.  
  3067. You should report database errors to bugs@spirits.ka.sub.org, but only 
  3068.   if you send an lharced and uuencoded `.newsdb' with the concerning
  3069. article    header. You can find out the article number and group in
  3070. your `ARNMASTERLOG'.
  3071.  
  3072.  
  3073. ArnDaemon
  3074. **********
  3075.  
  3076. `ArnDaemon' is a program that automatically calls `ArnMaster'   (see
  3077. ArnMaster) to update all databases if `rnews' or `expire'   ran and 
  3078. therefore it's likely that the databases need a refresh.   It's called
  3079. daemon, because it should reside in the background and watch   for
  3080. those programs. To get `ArnDaemon' started, you should add the  
  3081. following line in your `startup-sequence' or `user-startup':
  3082. `run arndaemon <nil: >nil: -L t:logfile'
  3083.  
  3084. The -L option says that the following argument is the name of a logfile
  3085. in   which `ArnMaster' writes. If this option is missing, no logfile
  3086. will be   used.   The usage is:
  3087.        arndaemon [-L logfile][-X program][-A programlist][-P(n)T(n)]
  3088.  
  3089. Description of switches:
  3090. `-L'
  3091.      specify logfile, is explained with `ArnMaster'.
  3092.  
  3093. `-A'
  3094.      describes the program-list, which specifies the programs on which
  3095.      `ArnDaemon'  calls the program to execute (normally `ArnMaster'). 
  3096.      The list is a list of TaskNames separated by commas (spaces are
  3097.      *not*  allowed). The default program-list is: `rnews,expire' 
  3098.      NOTE: ** for AmigaUUCP (Dillon) you should specify
  3099.      `rnews,trimnews' **
  3100.  
  3101. `-X'
  3102.      the program to invoke if one program of the program-list was
  3103.      detected.  Default is `ArnMaster'.
  3104.  
  3105. `-P'
  3106.      set `ArnDaemons' priority to value n. The value must follow
  3107.      directly, e.g.  `-P-2' sets the priority to -2.
  3108.  
  3109. `-T'
  3110.      period in seconds in which `ArnMaster' waits/sleeps after it has
  3111.      scanned   the process-list. (Default is 8 seconds).
  3112.  
  3113.  
  3114. Theory of working
  3115. ==================
  3116.  
  3117. `ArnDaemon' looks for the programs from the program-list in the  
  3118. CLI-Process-list and if it finds a program running it'll wait 2 seconds
  3119.   and then look again if the program is still running. If so then it'll
  3120.   wait another 2 seconds and so on... But if the program is not active
  3121. for   a period of 1 minute, `ArnMaster' (or the through `-X' specified
  3122. program)   is invoked. `ArnDaemon' waits until the execution has
  3123. finished   and then watches every 8 seconds again for the programs.  
  3124. Note that 8 seconds is normally not enough to detect a single (own)
  3125. posting.
  3126.  
  3127. To quit `ArnDaemon' just send `CTRL-C' (or `^D',`^E',`^F'),   so
  3128. 'break'ing the daemon-process from CLI will quit `ArnDaemon'.
  3129.  
  3130.  
  3131. Bugs
  3132. *****
  3133.  
  3134. fmode() is disabled within pager due to a bug in the SAS/C-library, so
  3135. you may get strange effects if you have article with CRLF as
  3136. EOL-indicator. This causes more serious problems when using `Arn' in
  3137. termcap-mode. Sorry, I hope this is fixed soon by SAS.
  3138.  
  3139. Another bug may show-up and cause strange behaviour: It's the CMD_CLEAR
  3140. command from the console device, which writes 0-bytes into memory
  3141. (sometimes in Arn's headerbuffer, so the header seems to be broken).
  3142. This bug exists in OS2.04 and is patched by the `setpatch'-program
  3143. >=V37.28.
  3144.  
  3145. Please send *detailed* bug reports to: `rob@spirits.ka.sub.org'. These
  3146. *must* include the full version string (including date) of `Arn',
  3147. respectively `ArnMaster' or `ArnDaemon' and information about your
  3148. system (showconfig command output is good for this).
  3149.  
  3150. The termcap entries for input (keys) are not used correctly.
  3151.  
  3152.  
  3153. Todo-list
  3154. **********
  3155.  
  3156. Besides this manual needs some revision, there are a lot of functions
  3157. I'd like to see in `Arn', but I didn't had the time to implement them,
  3158. yet:
  3159.  
  3160.    * compacted threads - only the first article of a thread is shown, a
  3161.      count for follow-ups on this subject is given, too. Selecting this
  3162.      article means to select the whole thread.
  3163.  
  3164.    * locking mechanisms - use of lock-files or owndevunit.library for
  3165.      avoiding conflicts with news-software.
  3166.  
  3167.    * ArnDaemon should use file-notification if possible.
  3168.  
  3169.    * Correct reading of cursor keys from termcap
  3170.  
  3171.    * NNTP-support.
  3172.  
  3173.    * groupname completion.
  3174.  
  3175.    * save existing selections at exit.
  3176.  
  3177.    * restricted function levels for AUX:-modes
  3178.  
  3179.    * mouse/intuition-support.
  3180.  
  3181.