This is the README file for the beta release of the uuconf library.

It was written by Ian Lance Taylor.  I can be reached at ian@airs.com,
or, equivalently, uunet!cygint!airs!ian, or c/o Cygnus Support, 
48 Grove Street, Somerville, MA, 02144, USA.

This package is covered by the Gnu Library General Public License.
See the file COPYING.LIB for details.  If you would like to do
something with this package that you feel is reasonable but you feel
is prohibited by the license, contact me to see if we can work it out.

WHAT IT IS

This is a beta release of the uuconf library.  The uuconf library
provides a set of functions which can be used to read UUCP
configuration files.  V2, HDB, and Taylor UUCP configuration files are
supported.

Also included are two programs, uuchk and uuconv.  uuchk will read
configuration files and display the information it finds in a verbose
format.  This can be helpful to ensure that your configuration files
are set up as you expect.  uuconv can be used to convert configuration
files from one type to another.  This is particularly helpful for
people installing Taylor UUCP on a existing system who want to take
advantage of the additional functionality provided by the Taylor UUCP
configuration files.

This is strictly a beta release.  The library provides all the
information needed for uuchk and uuconv, but does not yet provide
everything needed for uucp or cu.  I am releasing it now to get
feedback and to provide the uuconv program to people using Taylor
UUCP.

This may well be the only time this library is release independently.
This library will be provided with Taylor UUCP, and future releases of
the library will probably only occur as part of the complete Taylor
UUCP package.

HOW TO USE IT

Configure and optionally install the package as described in INSTALL.

The functions provided by the library are described in uuconf.h.  At
the moment there is no additional documentation.

Programs which use the library should include uuconf.h, and should not
include any of the other header files.  The functions listed in
uuconf.h all begin with the string "uuconf_".  The internal library
functions all begin with the string "_uuconf_".  The internal library
functions should not be called by a program which uses the library, as
they may change in future releases.  The uuchk program is an example
of program which uses the library; uuconv is not, as it relies upon
internal data structures.

The uuchk program takes a single optional option, -I, which may be
used to specify an alternate Taylor UUCP main configuration file.  The
default configuration file is $(newconfigdir)/config ($(newconfigdir)
is defined in Makefile).  For example:
    uuchk
    uuchk -I /usr/tmp/tstuu/Config1

The uuconv program requires two options: -i to specify the input type
and -o to specify the output type.  Both options take a string
argument, which must be one of "v2", "hdb", or "taylor".  uuconv also
takes an optional -I option, which is the same as the -I option to
uuchk.  The conversion is not intended to be perfect, and the results
should be manually inspected.  In particular, the dialcode file is not
converted (as the format is the same for all three configuration file
types, it may simply be copied to the appropriate new name).  uuconv
will create new files in the current working directory.  For example:
    uuconv -i hdb -o taylor
    uuconv -i taylor -I /usr/tmp/tstuu/Config1 -o v2

NOTES

The initial underscore on the internal library functions is required
by the GNU standards.  As ANSI C reserves external identifiers with an
initial underscore for the implementation, it is possible, though
unlikely, that this will cause problems on other implementations; no
workaround is currently provided for such problems.

The library functions rely upon the following functions:

    fclose      fopen       free        fseek
    ftell       getc        isalpha     isdigit
    islower     isspace     isupper     malloc
    realloc     rewind      strchr      strcmp
    strcspn     strlen      strncmp     strspn
    tolower     toupper

and the following header files:

    ctype.h     errno.h     stdio.h

If the following functions cannot be found by the configure script,
replacements will be used (the replacement for strerror is Unix
dependent):

    getline     memcpy      strcasecmp  strdup
    strerror    strncasecmp strtol

If the following header files are found, they will be included:

    libc.h      limits.h    memory.h    stddef.h
    stdlib.h    string.h    strings.h	sys/types.h

The following functions are required on Unix only:

    fcntl       fileno

The following headers are used, if found, on Unix only:

    fcntl.h     sys/file.h
