Provided by: cnews_cr.g7-39_i386 bug


       spacefor - check available space for news
       queuelen - get length of outbound-news uucp queues
       sizeof - get size of file(s) for news
       ctime,  getabsdate  - convert dates to and from internal representation
       for news
       newshostname - get host name for news
       gngp - search text using a newsgroup pattern
       canonhdr - extract header and canonicalize
       newslock - do locking for news


       /usr/lib/news/spacefor filesize location [ site ]
       /usr/lib/news/queuelen site
       /usr/lib/news/sizeof [ -i ] file ...
       /usr/lib/news/ctime [ -i ] [ -u ] decimaldate
       /usr/lib/news/getabsdate absolute-printable-date
       /usr/lib/news/gngp [ -arv ] ngpattern file ...
       /usr/lib/news/canonhdr [ -dm ] [ file ] ...
       /usr/lib/news/newslock locktemp lockname


       These programs are minor utilities used by various parts of C News.

       Spacefor determines how many files of size filesize can fit in location
       (incoming,  articles,  control,  archive,  or outbound to site) without
       cramping things unduly.  The precise locations of these places, and how
       low  space  gets  before  it  is  unduly  cramped,  are  site-specific.
       Spacefor invokes df(1) or the equivalent system call to  determine  the
       available space.

       Queuelen reports how many news batches uucp has queued up for site.

       Sizeof  reports  the  total  number of bytes in the file(s).  (This may
       seem redundant with ls -l, but  the  format  of  ls -l  varies  between
       systems  and  sizeof  looks  after  all  that.)   Nonexistent files are
       silently ignored.  If the -i option is given, sizeof  prints  one  line
       per  (existing) file, with name and size, and does not print the total.

       Ctime  and  getabsdate  convert  dates  in   human-readable   form   to
       (getabsdate)  and  from (ctime) decimal ASCII representations of Unix’s
       internal integer dates.  Their functionality resembles  that  of  their
       namesakes in the C library.  Getabsdate parses only absolute dates, not
       relative dates.  Under -u, ctime will print GMT instead of local  time.
       Under -i, ctime will print the time in GMT in Internet format.

       Newshostname  reports  the name of this system for news purposes.  This
       may differ from the name of the particular CPU it is run on; a  cluster
       of  CPUs sharing a filesystem tree would all have the same newshostname
       name.  Typically newshostname gets the name from  /var/lib/news/whoami;
       failing  that,  it  consults  various  other possible sources (e.g. the
       hostname command).

       Gngp resembles grep except  that  its  search  is  based  on  newsgroup
       patterns    (e.g.    ‘comp’,   which   matches   ‘comp’,   ‘comp.lang’,
       ‘comp.lang.c’,  ...;  ‘comp,!comp.lang.c’  which  matches  ‘comp’   and
       ‘comp.lang’ but not ‘comp.lang.c’; etc.).  Gngp prints only the line(s)
       that contain a substring that  matches  the  ngpattern.   Normally  the
       substring must run from a point in the line to its end.  If the -a flag
       is given, the eligible substrings start at the beginning  of  the  line
       and  end  at  white space or the end of the line.  The -v option prints
       only lines that do not match.  The -r flag reverses  the  inputs,  with
       patterns coming from the file and the argument taken as the line(s).

       Canonhdr  takes  the concatenation of its input file(s) (standard input
       if none) as an article, and outputs the header from  the  article  with
       header  keywords canonicalized for easier processing.  Canonicalization
       forces all alphabetics to lower case except the first  letter  of  each
       (hyphen-separated)  word in the keyword, which is forced to upper case.
       (One  exception:  ‘‘Message-ID’’  is  the  canonical  form  of   [e.g.]
       ‘‘message-id’’.)   Under  -d,  canonhdr will also canonicalise dates in
       Date: and Expires: headers, adding a Date: header if none  is  present.
       Under  -m,  it will accept RFC 822 headers and rewrite them as RFC 1036

       Newslock makes a link named lockname to the file locktemp, and  returns
       exit  status  0 for success, 1 if the link could not be made (typically
       because lockname already existed).  This is used for shell-file locking
       in  C  News.  It is a subset of ln(1) except that (a) no error messages
       are ever produced and (b) the link is guaranteed to  fail  if  lockname
       already  exists.   (Some  brain-damaged versions of ln helpfully remove
       lockname in that case, making them useless for locking.)


       /usr/spool/uucp/*       uucp queues
       /var/lib/news/whoami    news host name
       /var/lib/news/L.*       lock temporaries
       /var/lib/news/LOCK*     lock files


       df(1),  uucp(1),  ls(1),  ctime(3),  grep(1),  newsdb(5),  expire(8CN),
       newsbatch(8CN), rnews(8CN), newsmaint(8CN)
       Internet RFCs 822, 1036 and 1123


       Written at U of Toronto by Henry Spencer and Geoff Collyer.


       Spacefor and queuelen are unfortunately somewhat system-specific, since
       df output and uucp file layout vary between different versions.  (Using
       system calls in spacefor doesn’t help, as the system calls differ too.)

       Queuelen probably ought to count bytes rather than  batches,  but  that
       would make its system-dependency even worse.

       The need for sizeof and newslock is a botch.

       Ctime  probably  shouldn’t  assume GMT under -i, but dealing with local
       time zones gets into a swamp of portability problems.

                                  25 Aug 1994                     NEWSAUX(8cn)