This library is a C interface to the Unicode Characters Database.
It delivers most, but not all information from the UCD, the chief
omissions are the UniHan database and (currently) the non-simple case
transformations.

If you're using this, please drop me (H. Peter Anvin <hpa@zytor.com>)
a note; probably there will eventually be a mailing list.

To compile, adjust the file MCONFIG to suit your needs, and build it
with "make".  See the man page (libucd.3) and the header file (ucd.h)
for API information.

