-------
Install
-------

I have worked extremely hard (talking rivers of sweat here) to ensure that the
build system satisfies all the developers of this project (i.e., me). In other
words, if you're working on MacOSX 10.1 with my patched up version of automake
then it will build fine. Of course, the chances of that are pretty darn remote
(unless you're me). Sorry.

The official release should build, though. You will need to run configure like

    CXX=c++ ./configure ...

on MacOSX. Of course, if you don't care about all the UUS-TreeView/Cocoa stuff
and just want the latest UTF8String* stuff, well, you probably don't want this
overblown build system anyway.

And, after all, unless I know you exist - and at the moment I don't - should I
really waste my time making things easy for you? Eh? Eh?! Answer me *that*!

With lots of evil cackling,
Frank

--------
Contents
--------

1.  UTF8String & UCS4String
2.  UTF8StringPair & UTF8StringMap
3.  UTF8-UCS4-String
4.  UTF8StringTree & UUS-TreeView

    =======================
1.  UTF8String & UCS4String
    =======================

This pair of classes, and they are very much a pair, just as UCS-4 and UTF-8
themselves are very much a pair, provide a mechanism for manipulating UNICODE
strings stored in either format. UTF8String is principally a conversion class,
whereas UCS4String is more of an editing class. Both insist on validated
content, so direct writing to arrays is not possible; however, both provide
handy and powerful iterators.

The source is fairly well documented, and utf8test.cpp provides examples of how
to use the classes.

If you use these classes, please report any bugs you find. Comments/Criticism
welcome.

Regards, Frank

6th May, 2002
Francis James Franklin <fjf@alinameridon.com>
=============================================

    ==============================
2.  UTF8StringPair & UTF8StringMap
    ==============================

UTF8StringMap is a kind of hash-map or ordered vector of UTF8StringPair.

Like UTF8String & UCS4String it has a copy-on-write (COW) implementation; COW
is awkward in multi-threaded applications, but can have considerable benefits
where lots of copying is likely.

The UTF8StringPair class is *not* the same as the earlier sub-class/structure
UTF8String::UTF8StringPair used by substring_replace ().

Regards, Frank

8th August, 2002
Francis James Franklin <fjf@alinameridon.com>
=============================================

    ================
3.  UTF8-UCS4-String
    ================

UTF8-UCS4-String is a module in wvware rather than the old libeXtra/utils
sub-directory. I have adopted AbiWord's directory naming convention. I'll
probably be adding unix/ at some point, but since I'm doing most of my work
at home on my Apple, mostly I'll be working on the Cocoa port.

16th September, 2002
Francis James Franklin <fjf@alinameridon.com>
=============================================

    =============================
4.  UTF8StringTree & UUS-TreeView
    =============================

This is very much a work-in-progress and the API is likely to change a lot
between early releases. UTF8StringTree implements a SAX interface; it's up
to the calling program to provide an XML parser (and zlib/iconv support, if
necessary). UTF8StringTree builds a tree of UTF8StringTree::Node (or sub-
classes) putting attributes and XML Namespace maps into UTF8StringMap
instances; there is some support for CSS style maps as well, although this
is one area that is certain to change.

UUS-TreeView is a Cocoa framework and application (for MacOSX) that provides
a GUI interface for examining a UTF8StringTree structure - very useful for
debugging! UUS-TreeView is Objective-C++ but does provide one or two
interfaces which are purely Objective-C. These interfaces (ObjC & ObjC++)
are very much in flux and should not be used (yet).

NOTE: The Cocoa build adds some NSString extensions to the UTF8String class.

29th September, 2002
Francis James Franklin <fjf@alinameridon.com>
=============================================
