This commit was manufactured by cvs2svn to create tag 'CVS_2_0_20000711'.

git-svn-id: https://svn.apache.org/repos/asf/subversion/tags/CVS_2_0_20000711@836704 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/HACKING b/HACKING
deleted file mode 100644
index c0dad9e..0000000
--- a/HACKING
+++ /dev/null
@@ -1,69 +0,0 @@
-If you are contributing code to the Subversion project, please read
-this first.
-
-We're using ANSI C, and following the GNU coding standards.  Emacs
-users can just load svn-dev.el to get the right indentation behavior
-(most source files here will load it automatically, if
-`enable-local-eval' is set appropriately).
-
-Read http://www.gnu.org/prep/standards.html for a full description of
-the GNU coding standards; but here is a short example demonstrating
-the most important formatting guidelines:
-
-   char *                                     /* func type on own line */
-   argblarg (char *arg1, int arg2)            /* func name on own line */
-   {                                          /* first brace on own line */
-     if ((some_very_long_condition && arg2)   /* indent 2 cols */
-         || remaining_condition)              /* new line before operator */
-       {                                      /* brace on own line, indent 2 */
-         arg1 = some_func (arg1, arg2);       /* space before opening paren */
-       }                                      /* close brace on own line */
-     else
-       {
-         do                                   /* format do-while like this */
-           {
-             arg1 = another_func (arg1);
-           }
-           while (*arg1);
-       }
-   }
-
-In general, be generous with parentheses even when you're sure about
-the operator precedence, and be willing to add spaces and newlines to
-avoid "code crunch".  Don't worry too much about vertical density;
-it's more important to make code readable than to fit that extra line
-on the screen.
-
-
-Other Conventions:
-==================
-
-In addition to the GNU standards, Subversion uses these conventions:
-
-   * Use only spaces for indenting code, never tabs.  Tab display
-     width is not standardized enough, and anyway it's easier to
-     manually adjust indentation that uses spaces.
-
-   * Stay within 80 columns, the width of a minimal standard display
-     window.
-
-   * Signify internal variables by two underscores after the prefix.
-     That is, when a symbol must (for technical reasons) reside in the
-     global namespace despite not being part of a published interface,
-     then use two underscores following the module prefix.  For
-     example:
-
-        svn_fs_get_ver_prop ()       /* Part of published API. */
-        svn_fs__parse_props ()       /* For internal use only. */
-
-   * Put this comment at the bottom of new source files to make Emacs
-     automatically load svn-dev.el:
-
-        /* 
-         * local variables:
-         * eval: (load-file "svn-dev.el")
-         * end:
-         */
-
-     (This assumes the C file is located in subversion/subversion/,
-     where svn-dev.el is.)
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index 7c85a29..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,3 +0,0 @@
-Installation is not yet possible, this code is still under
-development.
-
diff --git a/README b/README
deleted file mode 100644
index df22dd1..0000000
--- a/README
+++ /dev/null
@@ -1,46 +0,0 @@
-               Subversion, a version control system.
-               =====================================
-
-This code is still under development.  For an overview, visit 
-
-   http://subversion.tigris.org/
-
-If you like what you see, then run "make ps" inside the doc/ directory
-and read any PostScript files that result.
-
-See COPYING for copyright information.
-See HACKING for development information.
-See INSTALL for installation information.
-
-A rough guide to the source tree:
-
-   doc/         
-      User and Developer documentation.
-   www/
-      Subversion web pages (live content at http://subversion.tigris.org/).
-   apr/
-      Apache Portable Runtime library (vendor branched, see apr/README.svn).
-   glib/
-      GNU Library (vendor branched, see glib/README.svn).
-   subversion/  
-      Source code to subversion itself (as opposed to external libraries).
-   subversion/include/
-      Public header files for users of subversion libraries.
-   subversion/libsvn_fs/
-      The versioning "filesystem" API.
-   subversion/libsvn_svr/
-      The server library.
-   subversion/libsvn_delta/
-      Common code for tree deltas.
-   subversion/libsvn_vdiff/
-      Common code for text deltas.
-   subversion/libsvn_pdiff/
-      Common code for property deltas.
-   subversion/libsvn_wc/
-      Common code for working copies.
-   subversion/libsvn_ra/
-      Common code for repository access.
-   subversion/libsvn_client/
-      Common code for client operations.
-   subversion/client/
-      The command line client
diff --git a/doc/Makefile b/doc/Makefile
deleted file mode 100644
index a4a983d..0000000
--- a/doc/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-### Convert texinfo files to Info, HTML, PostScript, etc. ###
-
-default: html
-
-all: txt info html dvi ps pdf
-
-www: all
-	cp -f ./svn-design.html ../../www
-	cp -f ./svn-design.ps ../../www
-	cp -f ./svn-design.pdf ../../www
-
-txt: 
-	makeinfo --no-headers svn-design.texi > svn-design.txt
-
-info: 
-	makeinfo svn-design.texi
-
-html: 
-	makeinfo --no-headers --html svn-design.texi \
-                 > svn-design.html
-
-html-web: html
-	cp ./svn-design.html ../../www/
-
-dvi: 
-	tex svn-design.texi
-	tex svn-design.texi
-
-ps: dvi
-	dvips svn-design.dvi -o svn-design.ps
-
-pdf: dvi
-	/usr/local/bin/dvipdf svn-design.dvi svn-design.pdf
-
-log:
-	cvs2cl.pl -r -t
-
-texclean: 
-	rm -f *~ *.aux *.cp *.cps *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr
-
-clean: texclean
-	rm -f *.info *.html *.ps *.pdf *.tar *.gz *.zip
diff --git a/doc/README b/doc/README
deleted file mode 100644
index e3cdba2..0000000
--- a/doc/README
+++ /dev/null
@@ -1,94 +0,0 @@
-Design documentation for Subversion is here.
-
-You'll want to get 
-
-   ftp://ftp.gnu.org/pub/gnu/texinfo/texinfo-4.0.tar.gz
-
-and use the up-to-date `makeinfo' found therein.
-
-============================================================================
-JimB fixed up a lot of our Texinfo problems, here's what he says:
-============================================================================
-
-I think I've got things straightened out now.  Unfortunately, I don't
-seem to have permission to check anything into the repository.  We are
-working on the Tigris repository again, right?
-
-savonarola:doc$ cvs commit
-cvs commit: Examining .
-Waiting for Emacs...Done
-cvs server: User 'jimb' cannot access .
-cvs server: User 'jimb' cannot access .
-cvs server: User 'jimb' cannot access .
-
-
-Anyway, once I can commit things, here's the scoop:
-
-- Info builds cleanly, so I've removed the --no-verify flag from the
-  makeinfo command.  Any complains can be taken as real problems.
-- The dvi builds without complains about undefined cross references.
-
-
-As far as I can tell, our tools should work for us exactly as we'd
-hope:
-
-- There is no need to list next, prev, and up links in our @node
-  lines.  (Certainly a critical requirement.)
-
-- The Emacs commands can rebuild all our menus automatically and
-  accurately.
-
-- makeinfo will only complain about real problems.
-
-
-The only real problem is that makeinfo's error messages are pretty
-unhelpful.  It often misidentifies the error, so it's not at all
-obvious how to fix a file it doesn't like.  But here are the rules we
-have to follow; I found problems in each of these areas.
-
-- @node and sectioning commands (@chapter, @section, ...) should
-  always come in pairs --- the @node command on one line, and the
-  sectioning command on the very next line.  This goes for the ``top''
-  @node as well, which should be followed by a @top command.
-
-- @node names must be globally unique.  This is an unfortunate
-  property of info, but it's inherent in the format.  Ben had a lot of
-  ``Overview'' nodes.
-
-- @menu commands should be properly formatted.  They should look like
-  this:
-
-    @menu
-    * Filesystem::
-    * Server Library::
-    @end menu
-
-  Not this:
-
-    @menu
-    * Filesystem
-    * Server Library
-    @end menu
-
-  If we always use C-c C-u C-a, this should just work.
-
-- @menu commands should always list the correct nodes.
-
-When these rules are broken, the error messages from makeinfo are
-pretty unhelpful --- bordering on utterly random.  They complain that
-nodes are undefined when they're perfectly clearly correct.
-
-We should always use C-c C-u C-a (`texinfo-all-menus-update') to
-reconstruct a file's menus, instead of editing the menus by hand.
-That will eliminate the bottom two problems.
-
-You can also give a prefix to C-c C-s, which tells it to list the
-@node commands alongside their sectioning commands.  This is helpful
-for finding mismatches.
-
-============================================================================
-JimB also says:
-============================================================================
-
-For defining functions, you should definitely use @deffun or
-@deftypefun, not @itemize nor @table.
diff --git a/doc/architecture.texi b/doc/architecture.texi
deleted file mode 100644
index 57a4cb7..0000000
--- a/doc/architecture.texi
+++ /dev/null
@@ -1,145 +0,0 @@
-@node Architecture
-@chapter Architecture
-
-
-Subversion is conceptually divided into a number of separable layers.
-
-Assuming that the programmatic interface of each layer is well-defined,
-it is easy to customize the different parts of the system.  Contributors
-can write new client apps, new network protocols, new server processes,
-new server features, and new storage back-ends.
-
-The following diagram illustrates the "layered" architecture, and where
-each particular interface lies.
-
-@example
-@group
-             +--------------------+
-             | commandline or GUI |
-             |    client app      |
-         +----------------------------+      <====== Client interface
-         |      Client Library        |
-         |                            |
-         |        +----+              |
-         |        |    |              |
- +-------+--------+    +--------------+----+ <====== Network interface
- | Working Copy   |    | Repository Access |
- | Management lib |    |       lib         |
- +----------------+    +---------+---------+
-                       |      libneon      |
-                       +---------+---------+
-                      ^              ^
-                     /              /
-               DAV  /              /  HTTP
-                   /              /
-                  v              v
-          +---------+    +---------+
-          |         |    |         |
-          | Apache  |    | Apache  |
-          |         |    |         |
-          +---------+    +---------+
-          | mod_DAV |    |         |
-        +-------------+  | mod_SVN |
-        | mod_DAV_SVN |  |         |
- +------+-------------+--+---------+-------+ <===== Server interface
- |                                         |
- |           SVN Server Library            |
- |                                         |
- +-----------------------------------------+ <===== Filesystem interface
- |                                         |
- |          Subversion Filesystem          |
- |                                         |
- +-----------------------------------------+
-
-@end group
-@end example
-
-
-
-@menu
-* Client Layer::              Client-side overview.
-* Network Layer::             Network overview.
-* Server Layer::              Server-side overview.
-@end menu
-
-@c ------------------------------------------------------------------
-@node Client Layer
-@section Client Layer
-
-The Subversion client, which may be either command-line or GUI, draws on
-three libraries.
-
-The first library provides an API for managing the client's working copy
-of a project.  This includes operations like renaming or removal of
-files, patching files, extracting local diffs, and routines for
-maintaining administrative files in the @file{SVN/} directory.
-
-The second library provides an API for exchanging information with a
-Subversion repository.  This includes the ability to read files, write
-new versions of files, and ask the repository to compare a working copy
-against its latest version.
-
-The third library provides general client functions such as
-@code{update()} and @code{commit()}, which may involve one or both of
-the other two client libraries.
-
-For details, @xref{Client}.
-
-@c ------------------------------------------------------------------
-@node Network Layer
-@section Network Layer
-
-The network layer's job is to move the repository API requests over a
-wire.
-
-On the client side, a network library translates these requests into a
-set of either HTTP 1.1 or WebDAV method extensions.  The information is
-sent over TCP/IP to an Apache server.  Apache is used for the following
-reasons:
-
-@itemize @bullet
-@item
-      it is time-tested and extremely stable;
-@item
-      it has built-in load-balancing;
-@item
-      it has built-in proxy and firewall support;
-@item
-      it has authentication and encryption features;
-@item
-      it allows client-side caching;
-@item
-      it has an extensible module system
-@end itemize
-
-Our suspicion is that any attempt to write a dedicated "Subversion
-server" (with a "Subversion protocol") would inevitably end up evolving
-towards Apache's already-existing feature set.  (However, Subversion's
-layered architecture certainly doesn't @emph{prevent} anyone from
-writing a totally new network layer!)
-
-Depending on whether DAV or HTTP 1.1 is used, an appropriate Apache
-module will translate the method-requests back into API calls against a
-particular repository.
-
-For details, @xref{Protocol}.
-
-@c ------------------------------------------------------------------
-@node Server Layer
-@section Server Layer
-
-The back-end of Subversion consists of two libraries: the Subversion
-Server library and the Subversion Filesystem.
-
-The @dfn{Subversion Server library} implements the same repository API
-that the client uses, but multiplexes the calls to different
-repositories on the server machine.
-
-When the requests reach a particular repository, they are interpreted by
-the @dfn{Subversion Filesystem library}.  The Subversion Filesystem is a
-custom Unix-like filesystem, with a twist: writes are versioned and
-atomic, and no data is ever deleted!  This filesystem is implemented on
-top of a normal filesystem, using Berkeley DBM files or something
-similar.
-
-For a more detailed explanation: @xref{Server}.
diff --git a/doc/client.texi b/doc/client.texi
deleted file mode 100644
index c1e465f..0000000
--- a/doc/client.texi
+++ /dev/null
@@ -1,881 +0,0 @@
-@node Client
-@chapter Client
-
-The Subversion client is built on three libraries.  One operates
-strictly on the working copy and does not talk to the repository.
-Another talks to the repository but never changes the working copy.  The
-last library uses the first two to provide operations such as
-@code{commit} and @code{update}, that both talk to the repository and
-change the working copy.
-
-The initial client is a Unix-style command-line tool (like standard
-CVS), but it should be easy to write a GUI client as well, based on the
-same libraries.  The libraries capture the core Subversion
-functionality, segregating it from user interface concerns.
-
-This chapter describes the libraries, and the physical layout of working
-copies.
-
-@menu
-* Deltas::                      
-* Working copies and the working copy library::  
-* The repository access library::  
-* The client operation library::  
-@end menu
-
-@c -----------------------------------------------------------------------
-@node Deltas
-@section Deltas
-
-A delta is a data structure that compactly describes the differences
-between two arbitrary directory trees.  Deltas can also carry ancestry
-information, indicating how the files in one tree are related to files
-in the other tree, if this is available.  Finally, deltas can describe
-changes to file meta-information, like permission bits, creation dates,
-and so on.  Both the working copy and repository access libraries
-operate on deltas.
-
-Deltas use three distinct structures:
-@itemize @bullet
-@item
-@dfn{text deltas}, which describe changes to a string of bytes, like the
-contents of a file,
-@item
-@dfn{property deltas}, which describe changes to a list of named
-properties, perhaps using text deltas, and
-@item
-@dfn{tree deltas} proper, which describe changes to directory trees.
-@end itemize
-
-The term @dfn{delta} without qualification generally means a tree delta,
-unless some other meaning is clear from context.
-
-@menu
-* Text Deltas::                 
-* Property Deltas::             
-* Tree Deltas::                 
-* Skeltas::                     
-@end menu
-
-
-@c -----------------------------------------------------------------------
-@node Text Deltas
-@subsection Text Deltas
-
-A text delta describes the difference between two strings of bytes, the
-@dfn{source} string and the @dfn{target} string.  Given a source string
-and a target string, we can compute a text delta; given a source string
-and a delta, we can reconstruct the target string.  However, note that
-deltas are not invertible: you cannot always reconstruct the source
-string given the target string and delta.
-
-The standard Unix ``diff'' format is one possible representation for
-text deltas; however, diffs are not ideal for internal use by a version
-control system, for several reasons:
-@itemize @bullet
-@item
-Diffs are line-oriented, which makes them human-readable, but sometimes
-makes them perform poorly on binary files.
-@item
-Diffs represent a series of replacements, exchanging selected ranges of
-the old text with new text; again, this is easy for humans to read, but
-it is more expensive to compute and less compact than some alternatives.
-@end itemize
-
-Instead, Subversion uses the VDelta format, as described in @cite{Hunt,
-J. J., Vo, K.-P., and Tichy, W. F.  An empirical study of delta
-algorithms.  Lecture Notes in Computer Science 1167 (July 1996), 49-66.}
-David Korn and Kiem-Phong Vo have submitted an Internet Draft, titled
-``The VCDIFF Generic Differencing and Compression Data Format,''
-describing an improvement to VDelta which we may adopt.
-
-The concrete form of a text delta, used for transmitting such deltas
-over the net, is a well-formed XML element, having the following form:
-@example
-<text-delta>@var{data}</text-delta>
-@end example
-Here, @var{data} is the raw VDelta data, escaped appropriately for XML
-character data.
-
-
-@c -----------------------------------------------------------------------
-@node Property Deltas
-@subsection Property Deltas
-
-A property delta describes changes to a property list, of the sort
-associated with files, directories, and directory entries, and version
-numbers.  A property delta can record creating, deleting, and changing
-the text of any number of properties.
-
-A property delta is an unordered set of name/change pairs.  No two
-pairs within a given property delta have the same name.  A pair's name
-indicates the property affected, and the change indicates what happens
-to its value.  There are two kinds of changes:
-@table @code
-@item set @var{value}
-Change the value of the named property to the byte string @var{value}.
-If there is no property with the given name, one is added to the
-property list.
-@item delete
-Remove the named property from the property list.
-@end table
-
-At the moment, the @code{set} command can either create or change a
-property value.  However, this simplification means that the server
-cannot distinguish between a client which believes it is creating a
-value afresh, and a client which believes it is changing the value of an
-existing property.  It may simplify conflict detection to divide
-@code{set} into two separate @code{add} and @code{change} operations.
-
-In the future, we may add a @code{vdelta} change, which specifies a
-change to an existing property's value as a VDelta-format text delta.
-This would give us a compact way to describe small changes to large
-property values.
-
-The concrete form of a property delta, used for transmitting such deltas
-over the net, is a well-formed XML element, having the following form:
-@example
-<property-delta>@var{change}@dots{}</property-delta>
-@end example
-Each @var{change} in a property delta has one of the following forms:
-@example
-<set name='@var{name}'>@var{value}</set>
-<delete name='@var{name}'/>
-@end example
-The @var{name} attribute of a @code{set} or @code{delete} element gives
-the name of the property to change.  The @var{value} of a @code{set}
-element gives the new value of the property.
-
-If either the property name or the property value contains the
-characters @samp{&}, @samp{<}, or @samp{'}, they should be replaced with
-the sequences @samp{&#38}, @samp{&#60}, or @samp{&#39}, respectively.
-
-
-@c -----------------------------------------------------------------------
-@node Tree Deltas
-@subsection Tree Deltas
-
-A tree delta describes changes between two directory trees, the
-@dfn{source tree} and the @dfn{target tree}.  Tree deltas can describe
-copies, renames, and deletions of files and directories, changes to file
-contents, and changes to property lists.  A tree delta can also carry
-information about how the files in the target tree are derived from the
-files in the source tree, if this information is available.
-
-The format for tree deltas described here is easy to compute from a
-Subversion working directory, and easy to apply to a Subversion
-repository.  Furthermore, the size of a tree delta in this format is
-independent of the commands used to produce the target tree --- it
-depends only on the degree of difference between the source and target
-trees.
-
-A tree delta is interpreted in the context of three parameters:
-@itemize @bullet
-@item
-@var{source-root}, the name of the directory to which this complete
-tree delta applies,
-@item
-@var{version}, indicating a particular version of @dots{}
-@item
-@var{source-dir}, which is a directory in the source tree that we are
-currently modifying to yield @dots{}
-@item
-@dots{} @dfn{target-dir} --- the directory we're constructing.
-@end itemize
-When we start interpreting a tree delta, @var{source-root},
-@var{source-dir}, and @var{target-dir} are all equal.  As we walk the
-tree delta, @var{target-dir} walks the tree we are constructing, and
-@var{source-dir} walks the corresponding portion of the source tree,
-which we use as the original.  @var{Source-root} remains constant as we
-walk the delta; we may use it to choose new source trees.
-
-A tree delta is a list of changes of the form
-@example
-<tree-delta>@var{change}@dots{}</tree-delta>
-@end example
-which describe how to edit the contents of @var{source-dir} to yield
-@var{target-dir}.  There are three kinds of changes:
-@table @code
-
-@item <delete name='@var{name}'/>
-@var{Source-dir} has an entry named @var{name}, which is not present in
-@var{target-dir}.
-
-@item <new name='@var{name}'>@var{content}</new>
-@var{target-dir} has an entry named @var{name}, which is not present in
-@var{source-dir}; @var{content} describes the file or directory to which
-the new directory entry refers.
-
-@item <replace name='@var{name}'>@var{content}</replace>
-Both @var{source-dir} and @var{target-dir} have an entry named
-@var{name}, which has changed; @var{content} describes the new file or
-directory.
-
-@end table
-Any entries in @var{source-dir} whose names aren't mentioned are assumed
-to appear unchanged in @var{target-dir}.  Thus, an empty
-@code{tree-delta} element indicates that @var{target-dir} is identical
-to @var{source-dir}.
-
-In the change descriptions above, each @var{content} takes one of the
-following forms:
-@table @code
-
-@item <file @var{ancestor}>@var{prop-delta} @var{text-delta}</file>
-The given @var{target-dir} entry refers to a file, @var{f}.
-@var{Ancestor} indicates which file in the source tree @var{f} is
-derived from, if any.
-
-@var{Prop-delta} is a property delta describing how @var{f}'s properties
-differ from that ancestor; it may be omitted, indicating that the
-properties are unchanged.
-
-@var{Text-delta} is a text delta describing how to construct @var{f}
-from that ancestor; it may also be omitted, indicating that @var{f}'s
-text is identical to its ancestor's.
-
-
-@item <file @var{ancestor}/>
-An abbreviation for @code{<file @var{ancestor}></file>} --- a file
-element with no property or text delta, thus describing a file identical
-to its ancestor.
-
-
-@item <directory @var{ancestor}>@var{prop-delta} @var{tree-delta}</directory>
-The given @var{target-dir} entry refers to a subdirectory, @var{sub}.
-@var{Ancestor} indicates which directory in the source tree @var{sub} is
-derived from, if any.
-
-@var{Prop-delta} is a property delta describing how @var{sub}'s
-properties differ from that ancestor; it may be omitted, indicating that
-the properties are unchanged.
-
-@var{Tree-delta} describes how to construct @var{sub} from that
-ancestor; it may be omitted, indicating that the directory is identical
-to its ancestor.  @var{Tree-delta} should be interpreted with a new
-@var{target-dir} of @file{@var{target-dir}/@var{name}}.
-
-Since @var{tree-delta} is itself a complete tree delta structure, tree
-deltas are themselves trees, whose structure is a subgraph of the target
-tree.
-
-
-@item <directory @var{ancestor}/>
-An abbreviation for @code{<directory @var{ancestor}></directory>} --- a
-directory element with no property or tree delta, thus describing a
-directory identical to its ancestor.
-
-@end table
-
-The @var{content} of a @code{new} or @code{replace} tag may also contain
-a property delta, describing changes to the properties of that
-@emph{directory entry}.
-
-In the @code{file} and @code{directory} elements described above, each
-@var{ancestor} has one of the following forms:
-@table @code
-
-@item ancestor='@var{path}'
-The ancestor of the new or changed file or directory is
-@file{@var{source-root}/@var{path}}, in @var{version}.  When this
-appears as an attribute of a @code{file} element, the element's text
-delta should be applied to @file{@var{source-root}/@var{path}}.  When
-this appears as an attribute of a @code{directory} element,
-@file{@var{source-root}/@var{path}} should be the new @var{source-dir}
-for interpreting that element's tree delta.
-
-@item new='true'
-This indicates that the file or directory has no ancestor in the source
-tree.  When followed by a @var{text-delta}, that delta should be applied
-to the empty file to yield the new text; when followed by a
-@var{tree-delta}, that delta should be evaluated as if @var{source-dir}
-were an imaginary empty directory.
-
-@item @var{nothing}
-If neither an @code{ancestor} nor a @code{new} attribute is given, this
-is an abbreviation for @code{ancestor='@var{source-dir}/@var{name}'},
-with the same version number.  This makes the common case --- files or
-directories modified in place --- more compact.
-
-@end table
-
-If the @var{ancestor} spec is not @code{new='true'}, it may also contain
-the text @code{version='@var{v}'}, indicating a new value for
-@var{version}, in which we should find the ancestor.
-
-If a filename or path appearing as a @var{name} or @var{path} in the
-description above contains the characters @samp{&}, @samp{<}, or
-@samp{'}, they should be replaced with the sequences @samp{&#38},
-@samp{&#60}, or @samp{&#39}, respectively.
-
-Suppose we have the following source tree:
-@example
-/dir1/file1
-      file2
-      dir2/file3
-           file4
-      dir3/file5
-           file6
-@end example
-  
-If we edit the contents of @file{/dir1/file1}, we can describe the
-effect on the tree with the following tree delta, to be applied to the
-root:
-@example
-<tree-delta>
-  <replace name='dir1'>
-    <directory>
-      <tree-delta>
-        <replace name='file1'>
-          <file>@var{text-delta}</file>
-        </replace>
-      </tree-delta>
-    </directory>
-  </replace>
-</tree-delta>
-@end example
-The outer @code{tree-delta} element describes the changes made to the root
-directory.  Within the root directory, there are changes in @file{dir1},
-described by the nested @code{tree-delta}.  Within @file{/dir1}, there are
-changes in @file{file1}, described by the @var{text-delta}.
-
-If we had edited both @file{/dir1/file1} and @file{/dir1/file2}, then
-there would simply be two @code{replace} elements in the inner
-@code{tree-delta}.
-
-As another example, starting from the same source tree, suppose we
-rename @file{/dir1/file1} to @file{/dir1/file8}:
-@example
-<tree-delta>
-  <replace name='dir1'>
-    <directory>
-      <tree-delta>
-        <delete name='file1'/>
-        <new name='file8'>
-          <file ancestor='/dir1/file1'/>
-        </new>
-      </tree-delta>
-    </directory>
-  </replace>
-</tree-delta>
-@end example
-As above, the inner @code{tdelta} describes how @file{/dir1} has
-changed: the entry for @file{/dir1/file1} has disappeared, but there is
-a new entry, @file{/dir1/file8}, which is derived from and textually
-identical to @file{/dir1/file1} in the source directory.  This is just
-an indirect way of describing the rename.
-
-Why is it necessary to be so indirect?  Consider the delta representing
-the result of:
-@enumerate
-@item
-renaming @file{/dir1/file1} to @file{/dir1/tmp},
-@item
-renaming @file{/dir1/file2} to @file{/dir1/file1}, and
-@item
-renaming @file{/dir1/tmp} to @file{/dir1/file2}
-@end enumerate
-(in other words, exchanging @file{file1} and @file{file2}):
-@example
-<tree-delta>
-  <replace name='dir1'>
-    <directory>
-      <tree-delta>
-        <replace name='file1'>
-          <file ancestor='/dir1/file2'/>
-        </replace>
-        <replace name='file2'>
-          <file ancestor='/dir1/file1'/>
-        </replace>
-      </tree-delta>
-    </directory>
-  </replace>
-</tree-delta>
-@end example
-The indirectness allows the tree delta to capture an arbitrary
-rearrangement without resorting to temporary filenames.
-
-Another example, starting from the same source tree:
-@enumerate
-@item
-rename @file{/dir1/dir2} to @file{/dir1/dir4},
-@item
-rename @file{/dir1/dir3} to @file{/dir1/dir2}, and
-@item
-move @file{file3} from @var{/dir1/dir4} to @var{/dir1/dir2}.
-@end enumerate
-Note that @file{file3}'s path has remained the same, even though the
-directories around it have changed.  Here is the tree delta:
-@example
-<tree-delta>
-  <replace name='dir1'>
-    <directory>
-      <tree-delta>
-        <replace name='dir2'>
-          <directory ancestor='/dir1/dir3'>
-            <tree-delta>
-              <new name='file3'>
-                <file ancestor='/dir1/dir2/file3'/>
-              </new>
-            </tree-delta>
-          </directory>
-        </replace>
-        <delete name='dir3'/>
-        <new name='dir4'>
-          <directory ancestor='/dir1/dir2'>
-            <tree-delta>
-              <delete name='file3'/>
-            </tree-delta>
-          </directory>
-        </new>
-      </tree-delta>
-    </directory>
-  </replace>
-</tree-delta>
-@end example
-In other words:
-@itemize @bullet
-@item
-@file{/dir1} has changed;
-@item
-the new directory @file{/dir1/dir2} is derived from the old
-@file{/dir1/dir3}, and contains a new entry @file{file3}, derived from
-the old @file{/dir1/dir2/file3};
-@item
-there is no longer any @file{/dir1/dir3}; and
-@item
-the new directory @file{/dir1/dir4} is derived from the old
-@file{/dir1/dir2}, except that its entry for @file{file3} is now gone.
-@end itemize
-
-Some more possible maneuvers, left as exercises for the reader:
-@itemize @bullet
-@item
-Delete @file{dir2}, and then create a file named @file{dir2}.
-@item
-Rename @file{/dir1/dir2} to @file{/dir1/dir4}; move @file{file2} into
-@file{/dir1/dir4}; and move @file{file3} into @var{/dir1/dir3}.
-@item
-Move @file{dir2} into @file{dir3}, and move @file{dir3} into @file{/}.
-@end itemize
-
-
-@node Skeltas
-@subsection Skeltas
-
-It is sometimes useful to represent a set of changes to a tree, just as
-a tree delta does, without providing any text deltas.  Text deltas are
-often large and expensive to compute, and tree deltas can be useful
-without them.  For example, one can detect whether two changes conflict
---- whether they change the same file, for example --- without knowing
-exactly how the conflicting files changed.
-
-A @dfn{Skelta} is a simply tree delta in which all text deltas are
-omitted --- it is a ``skeleton delta''.  The @code{svn commit} command
-uses skeltas to provide early notice of conflicts: first, the client
-transmits a skelta to the server, which can check for textual conflicts
-and reject the user's commit, before the client takes the time to
-transmit the (possibly large) textual changes.
-
-
-
-@c -----------------------------------------------------------------------
-@node Working copies and the working copy library
-@section Working copies and the working copy library
-
-Working copies are client-side directory trees containing both versioned
-data and Subversion administrative files.  The functions in the working
-copy management library are the only functions in Subversion which
-operate on these trees.
-
-@menu
-* The layout of working copies::  
-* The working copy management library::  
-@end menu
-
-@c -----------------------------------------------------------------------
-@node The layout of working copies
-@subsection The layout of working copies
-
-This section gives an overview of how working copies are arranged
-physically, but is not a full specification of working copy layout.
-
-As with CVS, Subversion working copies are simply directory trees with
-special administrative subdirectories, in this case named "SVN" instead
-of "CVS":
-
-@example
-@group
-                             myproj
-                             / | \
-               _____________/  |  \______________
-              /                |                 \
-            SVN               src                doc
-        ___/ | \___           /|\             ___/ \___
-       |     |     |         / | \           |         |
-      base  ...   ...       /  |  \     myproj.texi   SVN
-                           /   |   \              ___/ | \___
-                      ____/    |    \____        |     |     |
-                     |         |         |      base  ...   ...
-                    SVN      foo.c     bar.c     |
-                ___/ | \___                      |
-               |     |     |                     |
-             base   ...   ...               myproj.texi
-          ___/ \___
-         |         |
-       foo.c     bar.c
-
-@end group
-@end example
-
-Each @file{dir/SVN/} directory records the files in @file{dir}, their
-version numbers and property lists, pristine versions of all the files
-(for client-side delta generation), the repository from which @file{dir}
-came, and any local changes (such as uncommitted adds, deletes, and
-renames) that affect @file{dir}.
-
-Although often it would often be possible to deduce certain information
-(such as the origin repository) by examining parent directories, this is
-avoided in favor of making each directory be as much a self-contained
-unit as possible.
-
-For example, immediately after a checkout the administrative information
-for the entire working tree @emph{could} be stored in one top-level
-file.  But subdirectories instead keep track of their own version
-information.  This would be necessary anyway once the user starts
-committing new versions for particular files, and it also makes it
-easier for the user to prune a big, complete tree into a small subtree
-and still have a valid working copy.
-
-The SVN subdir contains:
-
-@itemize @bullet
-
-@item
-A @file{base} directory, containing the pristine repository versions of
-the files in the corresponding working directory.
-
-@item
-A @file{versions} file, the first entry of which records the version
-number of this directory (and, by implication, the version number of any
-files not otherwise mentioned).  The remaining entries are for files at
-other versions.
-
-It may help to think of this file as the functional equivalent of the
-CVS/Entries file.
-
-@item
-A @file{properties} file, recording properties for this directory and
-all directory entries and files it contains.  Although this information
-could be stored in the @file{versions} file, it is sufficiently
-separable to warrant its own file; very often one wants to look up a
-version without looking up a property, and vice-versa.
-
-@item
-A @file{changes} file, recording uncommitted changes to and from this
-directory (adds, removes, renames).
-
-@item
-A @file{lock} file, whose presence implies that some client is currently
-operating on the adminstrative area.
-
-@item
-A @file{tmp} directory.
-
-@end itemize
-
-The formats of these files are not specified yet.
-
-@c -----------------------------------------------------------------------
-@node The working copy management library
-@subsection The working copy management library
-
-@itemize @bullet
-@item
-  @b{Requires:}
-  @itemize
-  @item
-    a working copy
-  @end itemize
-@item
-  @b{Provides:}
-  @itemize
-  @item
-    ability to manipulate the working copy's versioned data
-  @item
-    ability to manipulate the working copy's administrative files
-  @end itemize
-@end itemize
-
-This library performs "offline" operations on the working copy.
-
-Note that the interface as given here is incomplete.  This section
-concentrates on functions meant to be used in conjunction with the
-repository access library, such as routines to produce deltas and make
-committable changes.  But functions used most often @emph{within} the
-working copy library itself, and only rarely outside it, are left
-unspecified here.  For example, there is a @w{@code{ver_t
-wc_base_version (path)}} function, and a @w{@code{ver_t wc_lock (path)}}
-function, but they are not part of the conceptual interface this section
-describes.
-
-In the function names and descriptions below, the term @dfn{node} refers
-to any kind of object in a Subversion tree.  At the moment, Subversion
-trees can only contain files and directories, but we will eventually add
-symlinks and other interesting creatures; these are all nodes.
-
-@table @code
-
-@item skelta_t wc_make_skelta (pathlist)
-Returns a skelta -- a delta object describing the changes to
-@emph{paths} but not including the actual content of the changes (i.e.,
-the vdeltas).  In other words, this is how you get a list of all local
-modifications.
-
-A @emph{pathlist} contains directories or files; directories may be
-entered recursively.  Multiple paths must be support because of
-scenarios like the following:
-
-@example
-   $ ls
-   src/  foo/  other/  bar/  baz/  README  Makefile
-   $ svn commit foo/ bar/ baz/qux.c
-@end example
-
-The commit is atomic, and covers some but not all of the subdirectories
-available.  Therefore, it must be possible to request a delta for any
-subset of the working tree.  Although some files and directories outside
-that subset might also have been modified, the delta will not include
-those changes.
-
-@item delta_t wc_fill_skelta (skelta)
-
-Turns @emph{skelta} into a delta by generating the appropriate vdiffs
-and pdiffs, and placing them into the skelta.
-
-@item delta_t wc_make_delta (pathlist)
-Equivalent to 
-
-@example
-   wc_fill_skelta (make_skelta (pathlist))
-@end example
-
-@item bool wc_apply_delta (delta)
-
-Applies @emph{delta} to the working copy.
-
-@item bool wc_add (path)
-
-Add the file @emph{path} (i.e., tweak the administrative files
-appropriately).
-
-@item bool wc_delete (path)
-
-Remove this file.
-
-@item bool wc_rename (old_path, new_path)
-
-Move/rename this file (within the working copy, of course).
-
-@item bool wc_copy (src_path, dest_path)
-
-Copy this file (within the working copy).
-
-@item str_t wc_get_node_prop (path, propname)
-
-Return local value of @emph{propname} for the file or directory
-@emph{path}.
-
-@item str_t wc_get_dirent_prop (path, propname)
-
-Return local value of @emph{propname} for the directory entry @emph{path}.
-
-@item proplist_t wc_get_node_proplist (path)
-
-Return all properties (names and values) of file or directory
-@emph{path}, in a hash table.
-
-@item proplist_t wc_get_dirent_proplist (path)
-
-Return all properties (names and values) of directory entry @emph{path},
-in a hash table.
-
-@item proplist_t wc_get_node_propnames (path)
-
-Return all property names for file or directory @emph{path}.
-
-@item proplist_t wc_get_dirent_propnames (path)
-
-Return all property names for a directory entry.
-
-@end table
-
-@c -----------------------------------------------------------------------
-@node The repository access library
-@section The repository access library
-
-@itemize @bullet
-@item
-  @b{Requires:}
-  @itemize
-  @item
-    network access to a Subversion server
-  @end itemize
-@item
-  @b{Provides:}
-  @itemize
-  @item
-    the ability to interact with a repository
-  @end itemize
-@end itemize
-
-This library performs operations involving communication with the
-repository.
-
-@subsection Reading History
-
-@table @code
-@item ver_t ra_latest (repos, user)
- Report the latest version number for @emph{repos}.
-@item prop_t ra_get_ver_prop (repos, user, ver, propname)
- Return the value of @emph{propname} on @emph{ver}.
-@item proplist_t ra_get_ver_proplist (repos, user, ver)
- Return all properties (names and values) of @emph{ver}.
-@item proplist_t ra_get_ver_propnames (repos, user, ver)
- Return all property keys for a @emph{ver}.
-@end table
-
-@subsection Reading Nodes
-
-@table @code
-@item node_t ra_read (repos, user, ver, path)
- Return a node from the repository.
- If @emph{path} is a file, returns full contents of the file.
- If @emph{path} is a directory, returns a list of dir_entries.
- @c todo: explain nodes, explain lazy reading
-@item str_t ra_get_node_prop (repos, user, ver, path, propname)
- Return value of @emph{propname} for @emph{path} in @emph{repos}.
-@item str_t ra_get_dirent_prop (repos, user, ver, path, propname)
- Return value of @emph{propname} for the directory entry @emph{path} in
- @emph{repos}.
-@item proplist_t ra_get_node_proplist (repos, ver, path)
- Return all properties (names and values) of @emph{path} in @emph{repos}.
-@item proplist_t ra_get_dirent_proplist (repos, user, ver, path)
- Return all properties (names and values) of directory entry @emph{path}
- in @emph{repos}.
-@item proplist_t ra_get_node_propnames (repos, user, ver, path)
- Return all property names for @emph{path} in @emph{repos}.
-@item proplist_t ra_get_dirent_propnames (repos, user, ver, path)
- Return all property names for directory entry @emph{path} in @emph{repos}
-@end table
-
-@subsection Difference Queries
-
-@table @code
-@item skelta_t ra_get_status (repos, user, skelta)
- Return status (up-to-date or not) for the files mentioned in @emph{skelta}.
-@item delta_t ra_get_update (repos, user, skelta)
- Return changes for files mentioned in @emph{skelta}.  Like
- @code{ra_get_status}, but returns filled delta instead of a skelta.
-@item delta_t ra_get_delta (repos, user, ver1, path1, ver2, path2)
- Return delta between two trees in @emph{repos}.@*
-@item diff_t ra_get_diff (repos, user, ver1, path1, ver2, path2)
- @c todo: skelta vs file diff list problem, talk w/ Jim
- Return a text diff between versions in @emph{repos}.
- (This must be done server side, the client doesn't have enough
- information to make the diff.)
-@end table
-
-@subsection Writing
-
-@table @code
-@item token_t ra_submit (repos, user, skelta)
- Submit @emph{skelta} for approval (see @pxref{Locking}).
-@item ver_t ra_write (repos, user, delta, token)
- Write previously-approved @emph{delta} into the repository.@*
- Returns the @emph{repos}'s new version number.@*
- This @emph{delta} and @emph{token} must correspond to the @emph{skelta}
- and @emph{token} of a previous @code{submit()} call.
-@item bool ra_abandon (repos, user, token)
- Abandon the commit identified by token.  For example, a user might
- interrupt the client between calls to @code{submit()} and
- @code{write()}, and the server would want to know the commit has been
- abandoned so it can clear out its pool of approved changes.
-@end table
-
-@c -----------------------------------------------------------------------
-@node The client operation library
-@section The client operation library
-
-@itemize @bullet
-@item
-  @b{Requires:}
-  @itemize
-  @item
-    the working copy management library
-  @item
-    the repository access library
-  @end itemize
-@item
-  @b{Provides:}
-  @itemize
-  @item
-    all client-side Subversion commands
-  @end itemize
-@end itemize
-
-These functions correspond to user-level client commands.  
-
-They are listed here to show how it is possible to implement them using
-the libraries given above, not to explain what they do.  Their behavior
-corresponds to the CVS operations of the same names.
-
-@table @code
-@item bool add (path)
- Passes @emph{path} to @code{wc_add()}.
-@item bool checkout (repos, ver, path)
- todo: discuss serialized delta vs lazy reading
-@item bool commit (pathlist, log_msg)
- Make a skelta with @code{wc_make_skelta()}, @code{ra_submit()} it to
- the repository for approval.  If an approval token is forthcoming, use
- @code{wc_fill_skelta()} to produce a delta, along with the
- @emph{log_msg} as a property change on the version, and send it and the
- token back to the repository via @code{ra_write()}.  Else if no
- approval, then @code{abandon()} the commit.
-@item bool diff (pathlist)
- A Subversion diff, like a CVS diff, can involve information available
- only to the server, or client, or both:
- @enumerate
- @item @w{@b{diff locally modified file against its base version}}@*
-   Just run diff locally.
- @item @w{@b{diff local file against a repository-only version}}@*
-   Call @code{ra_get_delta()}, then @code{wc_apply_delta()} to the
-   pristine base version to get the new file (result probably stored in
-   @file{SVN/tmp/}, of course), then run diff on the local file and the
-   new file.
- @item @w{@b{diff two repository-only versions}}@*
-   Call @code{ra_get_diff()}.
- @end enumerate
-@item bool import (pathlist)
- A special case of @code{add()}, which see.
-@item bool log (ver)
- Call @code{ra_get_ver_prop()} with the appropriate property name.
-@item bool rename (old_path, new_path)
- Pass through to @code{wc_rename()}.
-@item bool remove (pathlist)
- Pass through to @code{wc_delete()}.
-@item bool branch (branchname, pathlist)
- Uses @code{wc_copy()} (see @pxref{Model}).
-@item bool tag (tagname, pathlist)
- Same as @code{branch()}, and may also set properties marking this as a
- read-only clone, so it behaves like a CVS tag.
-@item bool status (pathlist)
- Call @code{ra_get_status()}.
-@item bool update (pathlist)
- Call @code{ra_get_update()}, passing result to
- @code{wc_apply_delta()}.  (There may be streamy variants of these so
- the application of a delta doesn't need to wait for the entire delta to
- have arrived.)
-@end table
-
-@c todo: can't wait to add `annotate' to this list!
diff --git a/doc/future.texi b/doc/future.texi
deleted file mode 100644
index 6fe52b6..0000000
--- a/doc/future.texi
+++ /dev/null
@@ -1,209 +0,0 @@
-@node Future
-@chapter Future
-
-Here are some thoughts on features to include in later releases of
-Subversion.
-
-@menu
-* High Priority Items::         
-* Blue Sky Items::              
-@end menu
-
-@c -----------------------------------------------------------------------
-@node High Priority Items
-@section High Priority Items
-
-These are things that @emph{should} be released in Subversion 1.0, if we
-really want to achieve the goal of creating a compelling replacement for
-CVS.
-
-
-@menu
-* Annotation::                  
-* Repository Conversion::       
-* User Interface for Branches and Tags::  
-@end menu
-
-@node Annotation
-@subsection Annotation
-
-We need to provide annotation of individual files (i.e. who wrote which
-line in which version), because CVS does this reasonably well.
-
-The information needed to annotate files should be stored by the
-filesystem as properties.  
-
-The ``annotate'' method itself should be implemented as a server-side
-plug-in.  This makes the output much more hackable.
-
-
-@node Repository Conversion
-@subsection Repository Conversion
-
-We need to write a tool which will convert a CVS repository into an SVN
-repository, preserving all history.  This is absolutely critical in
-persuading people to switch to SVN.
-
-
-@node User Interface for Branches and Tags
-@subsection User Interface for Branches and Tags
-
-This is a tricky issue.
-
-The Subversion Filesystem implements branches and tags by using
-``clones'';  both branches and tags appear as ordinary directories in
-the filesystem.
-
-We have been told that this implementation is quite confusing for
-end-users.  (The closed-source version-control system @emph{Perforce}
-uses this method.)  It's apparently confusing, when browsing the
-filesystem, to know which subdirectories represents the main-lines of a
-project, and which represent branches or tags.  This problem is made
-worse by users accidentally (or carelessly) creating clone directories
-in bad places, such as inside the trees they're cloning.
-
-There are a number of proposed solutions being discussed.  They all
-center on two principles:
-
-@itemize @bullet
-@item
-  Recommending a repository filesystem structure that cleanly divides
-  trunks, branches, and tags;
-@item
-  Implementing client behavior that ``hides'' this repository structure
-from the end user, and allows them to continue using intuitive branch
-and tag commands.
-@end itemize
-
-
-@c -----------------------------------------------------------------------
-@node Blue Sky Items
-@section Blue Sky Items
-
-
-These are features we'd like to see in Subversion someday, but aren't
-critical for a 1.0 release.
-
-
-@menu
-* Server Grep::                 
-* Scripting Language::          
-* Smart conflict resolution::   
-* Mirroring Servers::           
-* Inter-Repository Communication::  
-* SQL Back-End::                
-* Digital Signatures::          
-* Import/Export format::        
-* SMTP access::                 
-@end menu
-
-@node Server Grep
-@subsection Server Grep
-
-Write a server-side plug-in which can quickly search a filesystem's text
-and properties.
-
-
-@node Scripting Language
-@subsection Scripting Language
-
-Write a server-side plug-in which provides glue between @emph{svn_main}
-and libguile.so, libperl.so, or libpython.so.  The server becomes
-@b{very} extensible if it has an interpreted language built into it;
-it's also very nice for writing test suites!
-
-
-@node Smart conflict resolution
-@subsection Smart conflict resolution
-
-Certain kinds of conflicts can be resolved without human intervention.
-For example, files like @file{/etc/passwd} just need to keep lines
-unique by username and user ID.
-
-Right now, merging new repository data into a modified working copy of
-a passwd file can result in a textual conflict even when there's no
-"semantic conflict".  But if the Subversion client knew something
-about the format of passwd files, then it could merge without flagging
-a conflict.
-
-A similar rule could be used for ChangeLogs, based on the dates in the
-header lines.  And so on.
-
-Since all merging takes place on the client, these ``smart merges''
-should be implemented as a client-side plug-in.
-
-
-@node Mirroring Servers
-@subsection Mirroring Servers
-
-This is like the ClearCase multisite feature.  Essentially, it is a
-redundant distributed repository.  The repository exists on two or
-more cooperatively mirroring servers (each one presumably being close,
-network-wise, to its intended users).  A commit from any user is visible
-on all the servers.
-
-The best way to implement this is by creating a ``hierarchy'' of
-Subversion servers, much like the DNS or NIS system.  We can define a
-server @dfn{master} to contain the ``authoritative'' repository.  We can
-then set up any number of @dfn{slave} servers to mirror the master.  The
-slave servers exist primarily as local caches; it makes @code{reads} and
-@code{updates} faster for geographically disperse users.  When a user
-wishes to @code{commit}, however, her delta is always sent to the master
-server.  After the master accepts the change, the delta is automatically
-``pushed'' out to the caching slave servers.
-
-
-@node Inter-Repository Communication
-@subsection Inter-Repository Communication
-
-This is one that people request a lot: the ability to commit changes
-first to a local "working repository" (not visible to the rest of the
-world), and then commit what's in the working repository to the real
-repository (with the several commits maybe being folded into one
-commit).  
-
-Why do people want this?  It may be the psychological comfort of making
-a snapshot whenever one reaches a good stopping point, but not
-necessarily wanting all those ``comfort points'' to become
-publically-visible commits.
-
-The best way to implement this is to allow ``clones'' to cross between
-repositories. (@xref{Bubble-Up Method}.)
-
-In other words, Joe Hacker sets up a personal Subversion repository on
-his desktop machine; he creates a local ``clone'' of a subtree from a
-public repository.  He commits to his clone (which turns it into a
-branch), and when he's done, he performs a branch-merge back into the
-public repository.
-
-
-@node SQL Back-End
-@subsection SQL Back-End
-
-The Subversion filesystem will probably use Berkeley DB to store data on
-disk; however, a real SQL database provides much more reliable
-transactions.  Someone can rewrite the filesystem back-end to speak SQL.
-
-
-@node Digital Signatures
-@subsection Digital Signatures
-
-A few people have mentioned cryptographic signing of deltas.  It's a
-cool idea, and we should leave the door open for it.
-
-
-@node Import/Export format
-@subsection Import/Export format
-
-Suggested by Jason Robbins; he mentioned this as a nice thing to have
-someday.  It makes repositories easy to transport.
-
-
-@node SMTP access
-@subsection SMTP access
-
-Write a totally independent Network Layer which is an SMTP server on one
-end, and speaks to the Subversion server library on the back end.  It
-would neat to be able to "mail in" commits, or receive working-copy
-updates through e-mail.
-
diff --git a/doc/goals.texi b/doc/goals.texi
deleted file mode 100644
index 56771b2..0000000
--- a/doc/goals.texi
+++ /dev/null
@@ -1,239 +0,0 @@
-@node Goals
-@chapter Goals
-
-The goal of the Subversion project is write a version control system
-that takes over CVS's current and future user base @footnote{If you're
-not familiar with CVS or its shortcomings, then skip to
-@ref{Model}}. The first release has all the major features of CVS, plus
-certain new features that CVS users often wish they had.  In general,
-Subversion works like CVS, except where there's a compelling reason to
-be different.
-
-So what does Subversion have that CVS doesn't?
-
-@itemize @bullet
-@item
-It versions directories, file-metadata, renames, copies and
-removals/resurrections.  In other words, Subversion records the changes
-users make to directory trees, not just changes to file contents.
-
-@item
-Tagging and branching are constant-time and constant-space.
-
-@item
-It is natively client-server, hence much more maintainable than CVS.
-(In CVS, the client-server protocol was added as an afterthought.
-This means that most new features have to be implemented twice, or at
-least more than once: code for the local case, and code for the
-client-server case.)
-
-@item
-The repository is organized efficiently and comprehensibly.  (Without
-going into too much detail, let's just say that CVS's repository
-structure is showing its age.)
-
-@item
-Commits are atomic.  Each commit results in a single version number,
-which refers to the state of the entire tree.  Files no longer have
-their own version numbers.
-
-@item
-The locking scheme is only as strict as absolutely necessary.
-Reads are never locked, and writes lock only the files being
-written, for only as long as needed.
-
-@item
-It has internationalization support.
-
-@item
-It handles binary files gracefully (experience has shown that CVS's
-binary file handling is prone to user error).
-
-@item
-It has a fully-realized internal concept of users and access
-permissions.
-
-@item
-It takes advantage of the Net's experience with CVS by choosing better
-default behaviors for certain situations.
-
-@end itemize
-
-Some of these advantages are clear and require no further discussion.
-Others are not so obvious, and are explained in greater detail below.
-
-@menu
-* Rename/removal/resurrection support::  
-* Text vs binary issues::       
-* I18N/Multilingual support::   
-* Branching and tagging::       
-* Miscellaneous new behaviors::  
-@end menu
-
-@c -----------------------------------------------------------------------
-@node Rename/removal/resurrection support
-@section Rename/removal/resurrection support
-
-Full rename support means you can trace through ancestry by name
-@emph{or} by entity.  For example, if you say "Give me version 12 of
-foo.c", do you mean version 12 of the file whose name is @emph{now}
-foo.c (but perhaps it was named bar.c back at version 12), or the file
-whose name was foo.c in version 12 (perhaps that file no longer exists,
-or has a different name now)?  In Subversion, both interpretations are
-available to the user.
-
-@c -----------------------------------------------------------------------
-@node Text vs binary issues
-@section Text vs binary issues
-
-Historically, binary files have been problematic in CVS for two
-unrelated reasons: keyword expansion, and line-end conversion.
-@*
-@itemize @bullet
-@item
-@dfn{Keyword expansion} is when CVS expands "$Revision$" into "$Revision
-1.1$", for example.  There are a number of keywords in CVS: "$Author$",
-"$Date$", and so on.
-@*
-@item
-@dfn{Line-end conversion} is when CVS gives plaintext files the
-appropriate line-ending conventions for the working copy's platform.
-For example, Unix working copies use LF, but Windows working copies use
-CRLF.  (Like CVS, the Subversion repository stores text files in Unix LF
-format).
-@end itemize
-@*
-Both keyword substitution and line-end conversion are sensible only for
-plain text files.  CVS only recognizes two file types anyway: plaintext
-and binary.  And CVS assumes files are plain text unless you tell it
-otherwise.
-
-Subversion recognizes the same two types.  The question is, how does it
-determine a file's type?  Experience with CVS suggests that assuming
-text unless told otherwise is a losing strategy -- people frequently
-forget to mark images and other opaque formats as binary, then later
-they wonder why CVS mangled their data.  So Subversion assumes a file is
-binary, unless it matches a standard text pattern (.c, .h, .pl, .html,
-.txt, README, and so on).  When necessary, the user can explicitly set
-the type for a file or file pattern.
-
-Text files undergo line-end conversion by default.  Users can turn
-line-end conversion on or off per file pattern, or per file.  Text files
-do @emph{not} undergo keyword substitution by default, on the theory
-that if someone wants substitution and isn't getting it, they'll look in
-the manual; but if they are getting it and didn't want it, they might
-just be confused and not know what to do.  Users can turn substitution
-on or off per project, or per file pattern, or per file.
-
-Both of these changes are done on the client side; the repository does
-not even know about them.
-
-Changes to file type are versioned -- the type is associated with a
-particular version of the file, and new versions inherit from previous
-versions except when told otherwise.
-
-@c -----------------------------------------------------------------------
-@node I18N/Multilingual support
-@section I18N/Multilingual support
-
-Subversion is internationalized -- commands, user messages, and errors
-can be customized to the appropriate human language at build-time (or
-run time, if that's not much harder).
-
-File names and contents may be multilingual; Subversion does not assume
-an ASCII-only universe.  For purposes of keyword expansion and line-end
-conversion, Subversion also understands the UTF-* encodings (but not
-necessarily all of them by the first release).
-
-@c -----------------------------------------------------------------------
-@node Branching and tagging
-@section Branching and tagging
-
-Subversion supports branching and tagging with one efficient operation:
-`clone'.  To clone a tree is to copy it, to create another tree exactly
-like it (except that the new tree knows its ancestry relationship to the
-old one).
-
-At the moment of creation, a clone requires only a small, constant
-amount of space in the repository -- most of its storage is shared with
-the original tree.  If you never commit anything on the clone, then it's
-just like a CVS tag.  If you start committing on it, then it's a branch.
-Voila!  This also implies CVS's "vendor branching" feature, since
-Subversion has real rename and directory support.
-
-Note that from the user's point of view, there are still separate branch
-and tag commands, with the latter initializing the clone as read-only
-(i.e., if a static snapshot is going to become an active line of
-development, one at least wants users to be aware of the change).
-
-@c -----------------------------------------------------------------------
-@node Miscellaneous new behaviors
-@section Miscellaneous new behaviors
-
-@menu
-* Log messages::                
-* Client side diff plug-ins::   
-* Better merging::              
-* Conflicts resolution::        
-@end menu
-
-@c -----------------------------------------------------------------------
-@node Log messages
-@subsection Log messages
-
-Subversion has a flexible log message policy (a small matter, but one
-dear to our hearts).
-
-Log messages should be a matter of project policy, not version control
-software policy.  If a user commits with no log message, then Subversion
-defaults to an empty message.  (CVS tries to require log messages, but
-fails: we've all seen empty log messages in CVS, where the user
-committed with deliberately empty quotes.  Let's stop the madness now.)
-
-@c -----------------------------------------------------------------------
-@node Client side diff plug-ins
-@subsection Client side diff plug-ins
-
-Subversion supports client-side plug-in diff programs.
-
-There is no need for Subversion to have every possible diff mechanism
-built in.  It can invoke a user-specified client-side diff program on
-the two versions of the file(s) locally.
-
-@c -----------------------------------------------------------------------
-@node Better merging
-@subsection Better merging
-
-Subversion remembers what has already been merged in and what hasn't,
-thereby avoiding the problem, familiar to CVS users, of spurious
-conflicts on repeated merges.
-
-For details, @xref{Merging and Ancestry}.
-
-@c -----------------------------------------------------------------------
-@node Conflicts resolution
-@subsection Conflicts resolution
-
-For text files, Subversion resolves conflicts similarly to CVS, by
-folding repository changes into the working files with conflict markers.
-But, for @emph{both} text and binary files, Subversion also always puts
-the pristine repository version in one temporary file, and the pristine
-working copy version in another temporary file.
-
-Thus, in a text conflict, the user has three files readily at hand,
-
-@enumerate
-@item the original working copy file
-@item the repository version from which the update was taken
-@item the combined file, with conflict markers
-@end enumerate
-
-and in a binary file conflict, the user at least has 1 and 2.
-
-When the conflict has been resolved and the working copy is committed,
-Subversion can automatically remove the temporary pristine files.
-
-A more general solution would allow plug-in merge resolution tools on
-the client side; but this is not scheduled for the first release
-(@pxref{Future}).  Note that users can use their own merge tools anyway,
-since all the original files are available.
diff --git a/doc/license.texi b/doc/license.texi
deleted file mode 100644
index 1201ed3..0000000
--- a/doc/license.texi
+++ /dev/null
@@ -1,44 +0,0 @@
-@node License
-@chapter License
-
-Copyright @copyright{} 2000 Collab.Net.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-1. Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-3. The end-user documentation included with the redistribution, if
-any, must include the following acknowlegement: "This product includes
-software developed by Collab.Net (http://www.Collab.Net/)."
-Alternately, this acknowlegement may appear in the software itself, if
-and wherever such third-party acknowlegements normally appear.
-
-4. The hosted project names must not be used to endorse or promote
-products derived from this software without prior written
-permission. For written permission, please contact info@@collab.net.
-
-5. Products derived from this software may not use the "Tigris" name
-nor may "Tigris" appear in their names without prior written
-permission of Collab.Net.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-This software consists of voluntary contributions made by many
-individuals on behalf of Collab.Net.
diff --git a/doc/model.texi b/doc/model.texi
deleted file mode 100644
index d79af24..0000000
--- a/doc/model.texi
+++ /dev/null
@@ -1,613 +0,0 @@
-@node Model
-@chapter Model
-
-This chapter explains the user's view of Subversion --- what ``objects''
-you interact with, how they behave, and how they relate to each other.
-
-@menu
-* Working Directories and Repositories::  
-* Transactions and Version Numbers::  
-* How Working Directories Track the Repository::  
-* Subversion Does Not Lock Files::  
-* Properties::                  
-* Merging and Ancestry::        
-@end menu
-
-@c -----------------------------------------------------------------------
-@node Working Directories and Repositories
-@section Working Directories and Repositories
-
-Suppose you are using Subversion to manage a software project.  There
-are two things you will interact with: your working directory, and the
-repository.
-
-Your @dfn{working directory} is an ordinary directory tree, on your
-local system, containing your project's sources.  You can edit these
-files and compile your program from them in the usual way.  Your working
-directory is your own private work area: Subversion never changes the
-files in your working directory, or publishes the changes you make
-there, until you explicitly tell it to do so.
-
-After you've made some changes to the files in your working directory,
-and verified that they work properly, Subversion provides commands to
-publish your changes to the other people working with you on your
-project.  If they publish their own changes, Subversion provides
-commands to incorporate those changes into your working directory.
-
-A working directory contains some extra files, created and maintained by
-Subversion, to help it carry out these commands.  In particular, these
-files help Subversion recognize which files contain unpublished changes,
-and which files are out-of-date with respect to others' work.
-
-While your working directory is for your use alone, the @dfn{repository}
-is the common public record you share with everyone else working on the
-project.  To publish your changes, you use Subversion to put them in the
-repository.  (What this means, exactly, we explain below.)  Once your
-changes are in the repository, others can tell Subversion to incorporate
-your changes into their working directories.  In a collaborative
-environment like this, each user will typically have their own working
-directory (or perhaps more than one), and all the working directories
-will be backed by a single repository, shared amongst all the users.
-
-A Subversion repository holds a single directory tree, and records the
-history of changes to that tree.  The repository retains enough
-information to recreate any prior state of the tree, compute the
-differences between any two prior trees, and report the relations
-between files in the tree --- which files are derived from which other
-files.
-
-A Subversion repository can hold the source code for several projects;
-usually, each project is a subdirectory in the tree.  In this
-arrangement, a working directory will usually correspond to a particular
-subtree of the repository.
-
-For example, suppose you have a repository laid out like this:
-@example
-/trunk/paint/Makefile
-             canvas.c
-             brush.c
-       write/Makefile
-             document.c
-             search.c
-@end example
-
-In other words, the repository's root directory has a single
-subdirectory named @file{trunk}, which itself contains two
-subdirectories: @file{paint} and @file{write}.
-
-To get a working directory, you must @dfn{check out} some subtree of the
-repository.  If you check out @file{/trunk/write}, you will get a working
-directory like this:
-@example
-write/Makefile
-      document.c
-      search.c
-      SVN/
-@end example
-This working directory is a copy of the repository's @file{/trunk/write}
-directory, with one additional entry --- @file{SVN} --- which holds the
-extra information needed by Subversion, as mentioned above.
-
-Suppose you make changes to @file{search.c}.  Since the @file{SVN}
-directory remembers the file's modification date and original contents,
-Subversion can tell that you've changed the file.  However, Subversion
-does not make your changes public until you explicitly tell it to.
-
-To publish your changes, you can use Subversion's @samp{commit} command:
-@example
-$ pwd
-/home/jimb/write
-$ ls
-Makefile   SVN/    document.c    search.c
-$ svn commit search.c
-$
-@end example
-
-Now your changes to @file{search.c} have been committed to the
-repository; if another user checks out a working copy of
-@file{/trunk/write}, they will see your text.
-
-Suppose you have a collaborator, Felix, who checked out a working
-directory of @file{/trunk/write} at the same time you did.  When you
-commit your change to @file{search.c}, Felix's working copy is left
-unchanged; Subversion only modifies working directories at the user's
-request.
-
-To bring his working directory up to date, Felix can use the Subversion
-@samp{update} command.  This will incorporate your changes into his
-working directory, as well as any others that have been committed since
-he checked it out.
-@example
-$ pwd
-/home/felix/write
-$ ls
-Makefile    SVN/   document.c    search.c
-$ svn update
-U search.c
-$
-@end example
-
-The output from the @samp{svn update} command indicates that Subversion
-updated the contents of @file{search.c}.  Note that Felix didn't need to
-specify which files to update; Subversion uses the information in the
-@file{SVN} directory, and further information in the repository, to
-decide which files need to be brought up to date.
-
-We explain below what happens when both you and Felix make changes to
-the same file.
-
-
-@c -----------------------------------------------------------------------
-@node Transactions and Version Numbers
-@section Transactions and Version Numbers
-
-A Subversion @samp{commit} operation can publish changes to any number
-of files and directories as a single atomic transaction.  In your
-working directory, you can change files' contents, create, delete,
-rename and copy files and directories, and then commit the completed set
-of changes as a unit.
-
-In the repository, each commit is treated as an atomic transaction:
-either all the commit's changes take place, or none of them take place.
-Subversion tries to retain this atomicity in the face of program
-crashes, system crashes, network problems, and other users' actions.  We
-may call a commit a @dfn{transaction} when we want to emphasize its
-indivisible nature.
-
-Each time the repository accepts a transaction, this creates a new state
-of the tree, called a @dfn{version}.  Each version is assigned a unique
-natural number, one greater than the number of the previous version.
-The initial version of a freshly created repository is numbered zero,
-and consists of an empty root directory.
-
-Since each transaction creates a new version, with its own number, we
-can also use these numbers to refer to transactions; transaction @var{n}
-is the transaction which created version @var{n}.  There is no
-transaction numbered zero.
-
-Unlike those of many other systems, Subversion's version numbers apply
-to an entire tree, not individual files.  Each version number selects an
-entire tree.
-
-It's important to note that working directories do not always correspond
-to any single version in the repository; they may contain files from
-several different versions.  For example, suppose you check out a
-working directory from a repository whose most recent version is 4:
-@example
-write/Makefile:4
-      document.c:4
-      search.c:4
-@end example
-
-At the moment, this working directory corresponds exactly to version 4
-in the repository.  However, suppose you make a change to
-@file{search.c}, and commit that change.  Assuming no other commits have
-taken place, your commit will create version 5 of the repository, and
-your working directory will look like this:
-@example
-write/Makefile:4
-      document.c:4
-      search.c:5
-@end example
-Suppose that, at this point, Felix commits a change to
-@file{document.c}, creating version 6.  If you use @samp{svn update} to
-bring your working directory up to date, then it will look like this:
-@example
-write/Makefile:6
-      document.c:6
-      search.c:6
-@end example
-Felix's changes to @file{document.c} will appear in your working copy of
-that file, and your change will still be present in @file{search.c}.  In
-this example, the text of @file{Makefile} is identical in versions 4, 5,
-and 6, but Subversion will mark your working copy with version 6 to
-indicate that it is still current.  So, after you do a clean update at
-the root of your working directory, your working directory will
-generally correspond exactly to some version in the repository.
-
-
-@c -----------------------------------------------------------------------
-@node How Working Directories Track the Repository
-@section How Working Directories Track the Repository
-
-For each file in a working directory, Subversion records two essential
-pieces of information:
-@itemize @bullet
-@item
-what version of what repository file your working copy is based on (this is called the file's @dfn{base version}), and
-@item
-a timestamp recording when the local copy was last updated.
-@end itemize
-
-Given this information, by talking to the repository, Subversion can
-tell which of the following four states a file is in:
-@itemize
-@item
-@b{Unchanged, and current.}  The file is unchanged in the working
-directory, and no changes to that file have been committed to the
-repository since its base version.
-@item
-@b{Locally changed, and current}.  The file has been changed in the
-working directory, and no changes to that file have been committed to
-the repository since its base version.  There are local changes that
-have not been committed to the repository.
-@item
-@b{Unchanged, and out-of-date}.  The file has not been changed in the
-working directory, but it has been changed in the repository.  The file
-should eventually be updated, to make it current with the public
-version.
-@item
-@b{Locally changed, and out-of-date}.  The file has been changed both
-in the working directory, and in the repository.  The file should be
-updated; Subversion will attempt to merge the public changes with the
-local changes.  If it can't complete the merge in a plausible way
-automatically, Subversion leaves it to the user to resolve the conflict.
-@end itemize
-
-
-@c -----------------------------------------------------------------------
-@node Subversion Does Not Lock Files
-@section Subversion Does Not Lock Files
-
-Subversion does not prevent two users from making changes to the same
-file at the same time.  For example, if both you and Felix have checked
-out working directories of @file{/trunk/write}, Subversion will allow
-both of you to change @file{write/search.c} in your working directories.
-Then, the following sequence of events will occur:
-@itemize @bullet
-@item
-Suppose Felix tries to commit his changes to @file{search.c} first.  His
-commit will succeed, and his text will appear in the latest version in
-the repository.
-@item
-When you attempt to commit your changes to @file{search.c}, Subversion
-will reject your commit, and tell you that you must update
-@file{search.c} before you can commit it.
-@item
-When you update @file{search.c}, Subversion will try to merge Felix's
-changes from the repository with your local changes.  By default,
-Subversion merges as if it were applying a patch: if your local changes
-do not overlap textually with Felix's, then all is well; otherwise,
-Subversion leaves it to you to resolve the overlapping
-changes.  In either case,
-Subversion carefully preserves a copy of the original pre-merge text.
-@item
-Once you have verified that Felix's changes and your changes have been
-merged correctly, you can commit the new version of @file{search.c},
-which now contains everyone's changes.
-@end itemize
-
-Some version control systems provide ``locks'', which prevent others
-from changing a file once one person has begun working on it.  In our
-experience, merging is preferable to locks, because:
-@itemize @bullet
-@item
-changes usually do not conflict, so Subversion's behavior does the right
-thing by default, while locking can interfere with legitimate work;
-@item
-locking can prevent conflicts within a file, but not conflicts between
-files (say, between a C header file and another file that includes it),
-so it doesn't really solve the problem; and finally,
-@item
-people often forget that they are holding locks, resulting in
-unnecessary delays and friction.
-@end itemize
-
-Of course, the merge process needs to be under the users' control.
-Patch is not appropriate for files with rigid formats, like images or
-executables.  Subversion allows users to customize its merging behavior
-on a per-file basis.  You can direct Subversion to refuse to merge
-changes to certain files, and simply present you with the two original
-texts to choose from.  Or, you can direct Subversion to merge using a
-tool which respects the semantics of the file format.
-
-
-@c -----------------------------------------------------------------------
-@node Properties
-@section Properties
-
-Files generally have interesting attributes beyond their contents:
-owners and groups, access permissions, creation and modification times,
-and so on.  Subversion attempts to preserve these attributes, or at
-least record them, when doing so would be meaningful.  However,
-different operating systems support very different sets of file
-attributes: Windows NT supports access control lists, while Linux
-provides only the simpler traditional Unix permission bits.
-
-In order to interoperate well with clients on many different operating
-systems, Subversion supports @dfn{property lists}, a simple,
-general-purpose mechanism which clients can use to store arbitrary
-out-of-band information about files.
-
-A property list is a set of name / value pairs.  A property name is an
-arbitrary text string, expressed as a Unicode UTF-8 string, canonically
-decomposed and ordered.  A property value is an arbitrary string of
-bytes.  Property values may be of any size, but Subversion may not
-handle very large property values efficiently.  No two properties in a
-given a property list may have the same name.  Although the word `list'
-usually denotes an ordered sequence, there is no fixed order to the
-properties in a property list; the term `property list' is historical.
-
-Each version number, file, directory, and directory entry in the
-Subversion repository, has its own property list.  Subversion puts these
-property lists to several uses:
-@itemize @bullet
-@item
-Clients use properties to store file attributes, as described above.
-For example, the Unix Subversion client records the files' permission
-bits as the value of a property called
-@samp{svn-posix-access-permission}.  Operating systems which allow files
-to have more than one name, like Windows 95, can use directory entry
-property lists to record files' alternative names.
-@item
-The Subversion server uses properties to hold attributes of its own, and
-allow clients to read and modify them.  For example, the @samp{svn-acl}
-property holds an access control list which the Subversion server uses
-to regulate access to repository files.
-@item
-Users can invent properties of their own, to store arbitrary information
-for use by scripts, build environments, and so on.  Names of user
-properties should be URI's, to avoid conflicts between organizations.
-@end itemize
-
-Property lists are versioned, just like file contents.  You can change
-properties in your working directory, but those changes are not visible
-in the repository until you commit your local changes.  If you do commit
-a change to a property value, other users will see your change when they
-update their working directories.
-
-
-@c -----------------------------------------------------------------------
-@node Merging and Ancestry
-@section Merging and Ancestry
-
-Subversion defines merges the same way CVS does: to merge means to take
-a set of previously committed changes and apply them, as a patch, to a
-working copy.  This change can then be committed, like any other change.
-(In Subversion's case, the patch may include changes to directory trees,
-not just file contents.)
-
-As defined thus far, merging is equivalent to hand-editing the working
-copy into the same state as would result from the patch application.  In
-fact, in CVS there @emph{is} no difference -- it is equivalent to just
-editing the files, and there is no record of which ancestors these
-particular changes came from.  Unfortunately, this leads to conflicts
-when users unintentionally merge the same changes again.  (Experienced
-CVS users avoid this problem by using branch- and merge-point tags, but
-that involves a lot of unwieldy bookkeeping.)
-
-In Subversion, merges are remembered by recording @dfn{ancestry sets}.
-A version's ancestry set is the set of all changes "accounted for" in
-that version.  By maintaining ancestry sets, and consulting them when
-doing merges, Subversion can detect when it would apply the same patch
-twice, and spare users much bookkeeping.  Ancestry sets are stored as
-properties.
-
-In the examples below, bear in mind that version numbers usually refer
-to changes, rather than the full contents of that version.  For example,
-"the change A:4" means "the delta that resulted in A:4", not "the full
-contents of A:4".
-
-The simplest ancestor sets are associated with linear histories.  For
-example, here's the history of a file A:
-
-@example
-@group
-
- _____        _____        _____        _____        _____
-|     |      |     |      |     |      |     |      |     |
-| A:1 |----->| A:2 |----->| A:3 |----->| A:4 |----->| A:5 |
-|_____|      |_____|      |_____|      |_____|      |_____|
-
-@end group
-@end example
-
-The ancestor set of A:5 is:
-
-@example
-@group
-
-  @{ A:1, A:2, A:3, A:4, A:5 @}
-
-@end group
-@end example
-
-That is, it includes the change that brought A from nothing to A:1, the
-change from A:1 to A:2, and so on to A:5.  From now on, ranges like this
-will be represented with a more compact notation:
-
-@example
-@group
-
-  @{ A:1-5 @}
-
-@end group
-@end example
-
-Now assume there's a branch B based, or "rooted", at A:2.  (This
-postulates an entirely different version history, of course, and the
-global version numbers in the diagrams will change to reflect it.)
-Here's what the project looks like with the branch:
-
-@example
-@group
-
- _____        _____        _____        _____        _____        _____
-|     |      |     |      |     |      |     |      |     |      |     |
-| A:1 |----->| A:2 |----->| A:4 |----->| A:6 |----->| A:8 |----->| A:9 |
-|_____|      |_____|      |_____|      |_____|      |_____|      |_____|
-                \
-                 \
-                  \  _____        _____        _____
-                   \|     |      |     |      |     |
-                    | B:3 |----->| B:5 |----->| B:7 |
-                    |_____|      |_____|      |_____|
-
-@end group
-@end example
-
-If we produce A:9 by merging the B branch back into the trunk
-
-@example
-@group
-
- _____        _____        _____        _____        _____        _____
-|     |      |     |      |     |      |     |      |     |      |     |
-| A:1 |----->| A:2 |----->| A:4 |----->| A:6 |----->| A:8 |---.->| A:9 |
-|_____|      |_____|      |_____|      |_____|      |_____|  /   |_____|
-                \                                            |
-                 \                                           |
-                  \  _____        _____        _____        /
-                   \|     |      |     |      |     |      /
-                    | B:3 |----->| B:5 |----->| B:7 |--->-'
-                    |_____|      |_____|      |_____|
-
-@end group
-@end example
-
-then what will A:9's ancestor set be?
-
-@example
-@group
-
-  @{ A:1, A:2, A:4, A:6, A:8, A:9, B:3, B:5, B:7@}
-
-@end group
-@end example
-
-or more compactly:
-
-@example
-@group
-
-  @{ A:1-9, B:3-7 @}
-
-@end group
-@end example
-
-(It's all right that each file's ranges seem to include non-changes;
-this is just a notational convenience, and you can think of the
-non-changes as either not being included, or being included but being
-null deltas as far as that file is concerned).
-
-All changes along the B line are accounted for (changes B:3-7), and so
-are all changes along the A line, including both the merge and any
-non-merge-related edits made before the commit.
-
-Although this merge happened to include all the branch changes, that
-needn't be the case.  For example, the next time we merge the B line
-
-@example
-@group
-
- _____     _____     _____     _____     _____      _____      _____
-|     |   |     |   |     |   |     |   |     |    |     |    |     |
-| A:1 |-->| A:2 |-->| A:4 |-->| A:6 |-->| A:8 |-.->| A:9 |-.->|A:11 |
-|_____|   |_____|   |_____|   |_____|   |_____| |  |_____| |  |_____|
-             \                                  /          |
-              \                                /           |
-               \  _____     _____     _____   / _____      |
-                \|     |   |     |   |     | / |     |    /
-                 | B:3 |-->| B:5 |-->| B:7 |-->|B:10 |->-'
-                 |_____|   |_____|   |_____|   |_____|
-
-@end group
-@end example
-
-Subversion will know that A's ancestry set already contains B:3-7, so
-only the difference between B:7 and B:10 will be applied.  A's new
-ancestry will be
-
-@example
-@group
-
-  @{ A:1-11, B:3-10 @}
-
-@end group
-@end example
-
-But why limit ourselves to contiguous ranges?  An ancestry set is truly
-a set -- it can be any subset of the changes available:
-
-@example
-@group
-
- _____        _____        _____        _____        _____        _____
-|     |      |     |      |     |      |     |      |     |      |     |
-| A:1 |----->| A:2 |----->| A:4 |----->| A:6 |----->| A:8 |--.-->|A:10 |
-|_____|      |_____|      |_____|      |_____|      |_____| /    |_____|
-                |                                          /
-                |                ______________________.__/
-                |               /                      |
-                |              /                       |
-                \           __/_                      _|__
-                 \         @{    @}                    @{    @}
-                  \  _____        _____        _____        _____
-                   \|     |      |     |      |     |      |     |
-                    | B:3 |----->| B:5 |----->| B:7 |----->| B:9 |----->
-                    |_____|      |_____|      |_____|      |_____|
-
-@end group
-@end example
-
-In this diagram, the change from B:3-5 and the change from B:7-9 are
-merged into a working copy whose ancestry set (so far) is @w{@{ A:1-8
-@}} plus any local changes.  After committing, A:10's ancestry set is
-
-@example
-@group
-
-  @{ A:1-10, B:5, B:9 @}
-
-@end group
-@end example
-
-Clearly, saying "Let's merge branch B into A" is a little ambiguous.  It
-usually means "Merge all the changes accounted for in B's tip into A",
-but it @emph{might} mean "Merge the single change that resulted in B's
-tip into A".
-
-Any merge, when viewed in detail, is an application of a particular set
-of changes -- not necessarily adjacent ones -- to a working copy.  The
-user-level interface may allow some of these changes to be specified
-implicitly.  For example, many merges involve a single, contiguous range
-of changes, with one or both ends of the range easily deducible from
-context (i.e., branch root to branch tip).  These inference rules are
-not specified here, but it should be clear in most contexts how they
-work.
-
-Because each node knows its ancestors, Subversion never merges the same
-change twice (unless you force it to).  For example, if after the above
-merge, you tell Subversion to merge all B changes into A, Subversion
-will notice that two of them have already been merged, and so merge only
-the other two changes, resulting in a final ancestry set of:
-
-@example
-@group
-
-  @{ A:1-10, B:3-9 @}
-
-@end group
-@end example
-
-@c Heh, what about this:
-@c
-@c    B:3 adds line 3, with the text "foo".
-@c    B:5 deletes line 3.
-@c    B:7 adds line 3, with the text "foo".
-@c    B:9 deletes line 3.
-@c
-@c The user first merges B:5 and B:9 into A.  If A had that line, it
-@c goes away now, nothing more.
-@c 
-@c Next, user merges B:3 and B:7 into A.  The second merge must
-@c conflict.
-@c
-@c I'm not sure we need to care about this, I just thought I'd note how
-@c even merges that seem like they ought to be easily composable can
-@c still suck. :-)
-
-This description of merging and ancestry applies to both intra- and
-inter-repository merges.  However, inter-repository merging will
-probably not be implemented until a future release of Subversion
-(@pxref{Future}).
diff --git a/doc/protocol.texi b/doc/protocol.texi
deleted file mode 100644
index cf14e56..0000000
--- a/doc/protocol.texi
+++ /dev/null
@@ -1,19 +0,0 @@
-@node Protocol
-@chapter Protocol
-
-The network layer of Subversion is not yet defined.
-
-@itemize @bullet
-@item
-  For the initial ``proof-of-concept'' release, there will be no network
-layer at all.  The Subversion client libraries will link directly
-against the Subversion server libraries.  This will allow identical APIs
-to match up one-to-one for testing.
-@item
-  For the first ``real'' release, we will use Apache as a kind of
-generic, all-purpose server.  The client API calls will be translated
-into custom HTTP methods (possibly WebDAV methods); a custom Apache
-module will interpret them and make calls into the Subversion server
-libraries.  For details, @xref{Network Layer}.
-@end itemize
-
diff --git a/doc/server.texi b/doc/server.texi
deleted file mode 100644
index 2574706..0000000
--- a/doc/server.texi
+++ /dev/null
@@ -1,1027 +0,0 @@
-@node Server
-@chapter Server
-
-The term ``server'' is ambiguous, because it has at least two different
-meanings: it can refer to a powerful computer which offers services to
-users on a network, or it can refer to a CPU process designed to receive
-network requests.
-
-In Subversion, however, the @dfn{server} is just a set of libraries that
-implements @dfn{repositories} and makes them available to other
-programs.  No networking is required.
-
-There are two main libraries: the @dfn{Subversion Filesystem} library,
-and the @dfn{Subversion Server} library.
-
-@menu
-* Filesystem::                  The Subversion Filesystem.
-* Server Library::              The Subversion Server interface.
-@end menu
-
-
-@c ----------------------------------------------------------------
-
-@node Filesystem
-@section Filesystem
-
-@menu
-* Filesystem Overview::         
-* API::                         
-* Repository Structure::        
-* Locking::                     
-* Implementation::              
-@end menu
-
-@node Filesystem Overview
-@subsection Filesystem Overview
-
-@itemize @bullet
-@item
-  @b{Requires:}
-  @itemize
-  @item
-    some writable disk space
-  @end itemize
-@item
-  @b{Provides:}
-  @itemize
-  @item
-    a repository for storing files
-  @item
-    support for multiple concurrent accesses (via a lock manager)
-  @item
-    enforcement of user & group permissions
-  @end itemize
-@end itemize
-
-This library implements a hierarchical filesystem which supports atomic
-changes to directory trees, and records a complete history of the
-changes.  In addition to recording changes to file and directory
-contents, the Subversion Filesystem records changes to file meta-data
-(see discussion of @dfn{properties} in @ref{Model}).
-
-@node API
-@subsection API
-
-This is almost the same API that the client calls, but now prefixed with
-@code{fs_}.  For a full explanation, see @xref{The repository access
-library}.
-
-The only differences are the lack of the @code{status()} and
-@code{update()} routines.  Instead of receiving and returning entire
-skeltas or deltas, the filesystem provides the ability to inquire about
-only one node at a time via @code{fs_cmp()} and @code{fs_get_delta()}.
-
-@table @code
-@item ver_t fs_latest (repos, user)
-@item prop_t fs_get_ver_prop (repos, user, ver, propname)
-@item proplist_t fs_get_ver_proplist (repos, user, ver)
-@item proplist_t fs_get_ver_propnames (repos, user, ver)
-@item node_t fs_read (repos, user, ver, path)
-@item str_t fs_get_node_prop (repos, user, ver, path, propname)
-@item str_t fs_get_dirent_prop (repos, user, ver, path, propname)
-@item proplist_t fs_get_node_proplist (repos, ver, path)
-@item proplist_t fs_get_dirent_proplist (repos, user, ver, path)
-@item proplist_t fs_get_node_propnames (repos, user, ver, path)
-@item proplist_t fs_get_dirent_propnames (repos, user, ver, path)
-@item diff_t fs_get_diff (repos, user, ver1, path1, ver2, path2)
-@item token_t fs_submit (repos, user, skelta)
-@item ver_t fs_write (repos, user, delta, token)
-@item bool_t fs_abandon (repos, user, token)
-
-@item bool_t fs_cmp (repos, user, ver1, path1, ver2, path2)
-  Compare two nodes in the repository, return whether they are identical.
-@item delta_t fs_get_delta (repos, user, ver1, path1, ver2, path2)
-  Compare two nodes in the repository, return the difference between them.
-
-@end table
-
-Note that in addition to checking against concurrent commits,
-@code{fs_submit()} also protects against committing changes from
-out-of-date base versions, that is, the situation where the node in the
-repository has changed since the base version mentioned in the skelta.
-
-@c ------------------------------------
-@node Repository Structure
-@subsection Repository Structure
-
-@menu
-* Schema::                      
-* Bubble-Up Method::            
-* Diffy Storage::               
-@end menu
-
-@node Schema
-@subsubsection Schema
-
-To begin, please be sure that you're already casually familiar with
-Subversion's ideas of files, directories, and version histories.  If
-not, @xref{Model}.  We can now offer precise, technical descriptions of
-the terms introduced there.
-
-@c This is taken from jimb's very first Subversion spec!
-
-@quotation
-
-A @dfn{text string} is a string of Unicode characters which is
-canonically decomposed and ordered, according to the rules described in
-the Unicode standard.
-
-A @dfn{string of bytes} is what you'd expect.
-
-A @dfn{property list} is an unordered list of properties.  A
-@dfn{property} is a pair @code{(@var{name}, @var{value})}, where
-@var{name} is a text string, and @var{value} is a string of bytes.
-No two properties in a property list have the same name.
-
-A @dfn{file} is a property list and a string of bytes.
-
-A @dfn{node} is either a file or a directory.  (We define a directory
-below.)  Nodes are distinguished unions --- you can always tell whether
-a node is a file or a directory.
-
-A @dfn{node table} is an array mapping some set of positive integers,
-called @dfn{node numbers}, onto @dfn{nodes}.  If a node table maps some
-number @var{i} to some node @var{n}, then @var{i} is a @dfn{valid node
-number} in that table, and @dfn{node @var{i}} is @var{n}.  Otherwise,
-@var{i} is an @dfn{invalid node number} in that table.
-
-A @dfn{directory entry} is a triple @code{(@var{name}, @var{props},
-@var{node})}, where @var{name} is a text string, @var{props} is a
-property list, and @var{node} is a node number.
-
-A @dfn{directory} is an unordered list of directory entries, and a
-property list.
-
-A @dfn{version} is a node number and a property list.
-
-A @dfn{history} is an array of versions, indexed by a contiguous range
-of non-negative integers containing 0.
-
-A @dfn{repository} consists of node table and a history.
-
-@end quotation
-
-@c Some definitions: we say that a node @var{n} is a @dfn{direct child}
-@c of a directory @var{d} iff @var{d} contains a directory entry whose
-@c node number is @var{n}. A node @var{n} is a @dfn{child} of a
-@c directory @var{d} iff @var{n} is a direct child of @var{d}, or if
-@c there exists some directory @var{e} which is a direct child of
-@c @var{d}, and @var{n} is a child of @var{e}. Given this definition of
-@c ``direct child'' and ``child,'' the obvious definitions of ``direct
-@c parent'' and ``parent'' hold.
-
-@c In these restrictions, let @var{r} be any repository.  When we refer,
-@c implicitly or explicitly, to a node table without further clarification,
-@c we mean @var{r}'s node table.  Thus, if we refer to ``a valid node
-@c number'' without specifying the node table in which it is valid, we mean
-@c ``a valid node number in @var{r}'s node table''.  Similarly for
-@c @var{r}'s history.
-
-Now that we've explained the form of the data, we make some restrictions
-on that form.
-
-@b{Every version has a root directory.}  Every version's node number is
-a valid node number, and the node it refers to is always a directory.
-We call this the version's @dfn{root directory}.
-
-@b{Version 0 always contains an empty root directory.}  This baseline
-makes it easy to check out whole projects from the repository.
-
-@b{Directories contain only valid links.}
-Every directory entry's @var{node} is a valid node number.
-
-@b{Directory entries can be identified by name.}
-For any directory @var{d}, every directory entry in @var{d} has a
-distinct name.
-
-@b{There are no cycles of directories.}  No node is its own child.
-
-@b{Directories can have more than one parent.}  The Unix file system
-does not allow more than one hard link to a directory, but Subversion
-does allow the analogous situation.  Thus, the directories in a
-Subversion repository form a directed acyclic graph (@dfn{DAG}), not a
-tree.  However, it would be distracting and unhelpful to replace the
-familiar term ``directory tree'' with the unfamiliar term ``directory
-DAG'', so we still call it a ``directory tree'' here.
-
-@b{There are no dead nodes.}  Every node is a child of some version's
-root directory.
-
-@c  </jimb>
-
-
-@node Bubble-Up Method
-@subsubsection Bubble-Up Method
-
-This section provides a conversational explanation of how the repository
-actually stores and versions file trees.  It's not critical knowledge
-for a programmer using the Subversion Filesystem API, but most people
-probably still want to know what's going on ``under the hood'' of the
-repository.
-
-Suppose we have a new project, at version 1, looking like this (using
-CVS syntax):
-
-@example
-   prompt$ svn checkout myproj
-   U myproj/
-   U myproj/B
-   U myproj/A
-   U myproj/A/fish
-   U myproj/A/fish/tuna
-   prompt$
-@end example
-
-Only the file @file{tuna} is a regular file, everything else in myproj is
-a directory.
-
-Let's see what this looks like as an abstract data structure in the
-repository, and how that structure works in various operations (such
-as update, commit, and branch).
-
-In the diagrams that follow, lines represent parent-to-child connections
-in a directory hierarchy.  Boxes are "nodes".  A node is either a file
-or a directory -- a letter in the upper left indicates which kind.  A
-file node has a byte-string for its content, whereas directory nodes
-have a list of dir_entries, each pointing to another node.
-
-Parent-child links go both ways (i.e., a child knows who all its parents
-are), but a node's name is stored only in its parent, because a node
-with multiple parents may have different names in different parents.
-
-At the top of the repository is an array of version numbers,
-stretching off to infinity.  Since the project is at version 1, only
-index 1 points to anything; it points to the root node of version 1 of
-the project:
-
-@example
-@group
-                    ( myproj's version array )
-       ______________________________________________________
-      |___1_______2________3________4________5_________6_____...
-          |
-          |
-       ___|_____
-      |D        |
-      |         |
-      |   A     |      /* Two dir_entries, `A' and `B'. */
-      |    \    |
-      |   B \   |
-      |__/___\__|
-        /     \
-       |       \
-       |        \
-    ___|___   ___\____
-   |D      | |D       |
-   |       | |        |
-   |       | | fish   |   /* One dir_entry, `fish'. */
-   |_______| |___\____|
-                  \
-                   \
-                 ___\____
-                |D       |
-                |        |
-                | tuna   |  /* One dir_entry, `tuna'. */
-                |___\____|
-                     \
-                      \
-                    ___\____
-                   |F       |
-                   |        |
-                   |        |   /* (Contents of tuna not shown.) */
-                   |________|
-
-@end group
-@end example
-
-What happens when we modify @file{tuna} and commit?  First, we make a
-new @file{tuna} node, containing the latest text.  The new node is not
-connected to anything yet, it's just hanging out there in space:
-
-@example
-@group
-                         ________
-                        |F       |
-                        |        |
-                        |        |
-                        |________|
-@end group
-@end example
-
-Next, we create a @emph{new} version of its parent directory:
-
-@example
-@group
-                 ________
-                |D       |
-                |        |
-                | tuna   |
-                |___\____|
-                     \
-                      \
-                    ___\____
-                   |F       |
-                   |        |
-                   |        |
-                   |________|
-@end group
-@end example
-
-We continue up the line, creating a new version of the next parent
-directory:
-
-@example
-@group
-              ________
-             |D       |
-             |        |
-             | fish   |
-             |___\____|
-                  \
-                   \
-                 ___\____
-                |D       |
-                |        |
-                | tuna   |
-                |___\____|
-                     \
-                      \
-                    ___\____
-                   |F       |
-                   |        |
-                   |        |
-                   |________|
-@end group
-@end example
-
-Now it gets more tricky: we need to create a new version of the root
-directory.  This new root directory needs an entry to point to the
-``new'' directory A, but directory B hasn't changed at all.  Therefore,
-our new root directory also has an entry that still points to the
-@emph{old} directory B node!
-
-@example
-@group
-       ______________________________________________________
-      |___1_______2________3________4________5_________6_____...
-          |
-          |
-       ___|_____             ________
-      |D        |           |D       |
-      |         |           |        |
-      |   A     |           |   A    |
-      |    \    |           |    \   |
-      |   B \   |           |   B \  |
-      |__/___\__|           |__/___\_|
-        /     \               /     \
-       |    ___\_____________/       \
-       |   /    \                     \
-    ___|__/   ___\____              ___\____
-   |D      | |D       |            |D       |
-   |       | |        |            |        |
-   |       | | fish   |            | fish   |
-   |_______| |___\____|            |___\____|
-                  \                     \
-                   \                     \
-                 ___\____              ___\____
-                |D       |            |D       |
-                |        |            |        |
-                | tuna   |            | tuna   |
-                |___\____|            |___\____|
-                     \                     \
-                      \                     \
-                    ___\____              ___\____
-                   |F       |            |F       |
-                   |        |            |        |
-                   |        |            |        |
-                   |________|            |________|
-
-@end group
-@end example
-
-Finally, after all our new nodes are written, we finish the ``bubble
-up'' process by linking this new tree to the next available version in
-the history array.  In this case, the new tree becomes version 2 in the
-repository.
-
-@example
-@group
-       ______________________________________________________
-      |___1_______2________3________4________5_________6_____...
-          |        \
-          |         \__________
-       ___|_____             __\_____
-      |D        |           |D       |
-      |         |           |        |
-      |   A     |           |   A    |
-      |    \    |           |    \   |
-      |   B \   |           |   B \  |
-      |__/___\__|           |__/___\_|
-        /     \               /     \
-       |    ___\_____________/       \
-       |   /    \                     \
-    ___|__/   ___\____              ___\____
-   |D      | |D       |            |D       |
-   |       | |        |            |        |
-   |       | | fish   |            | fish   |
-   |_______| |___\____|            |___\____|
-                  \                     \
-                   \                     \
-                 ___\____              ___\____
-                |D       |            |D       |
-                |        |            |        |
-                | tuna   |            | tuna   |
-                |___\____|            |___\____|
-                     \                     \
-                      \                     \
-                    ___\____              ___\____
-                   |F       |            |F       |
-                   |        |            |        |
-                   |        |            |        |
-                   |________|            |________|
-
-@end group
-@end example
-
-Generalizing on this example, you can now see that each ``version'' in
-the repository history represents a root node of a unique tree (and an
-atomic commit to the whole filesystem.)  There are many trees in the
-repository, and many of them share nodes.
-
-Many nice behaviors come from this model:
-
-@enumerate
-@item
-  @b{Easy reads.}  If a filesystem reader wants to locate version
-@var{X} of file @file{foo.c}, it need only traverse the repository's
-history, locate version @var{X}'s root node, then walk down the tree to
-@file{foo.c}.
-@item
-  @b{Writers don't interfere with readers.}  Writers can continue to
-create new nodes, bubbling their way up to the top, and concurrent
-readers cannot see the work in progress.  The new tree only becomes
-visible to readers after the writer makes its final ``link'' to the
-repository's history.
-@item
-  @b{File structure is versioned.}  Unlike CVS, the very structure of
-each tree is being saved from version to version.  File and directory
-renames, additions, and deletions are part of the repository's history.
-@end enumerate
-
-Let's demonstrate the last point by renaming the @file{tuna} to
-@file{book}.
-
-We start by creating a new parent ``fish'' directory, except that this
-parent directory has a different dir_entry, one which points the
-@emph{same} old file node, but has a different name:
-
-@example
-@group
-       ______________________________________________________
-      |___1_______2________3________4________5_________6_____...
-          |        \
-          |         \__________
-       ___|_____             __\_____
-      |D        |           |D       |
-      |         |           |        |
-      |   A     |           |   A    |
-      |    \    |           |    \   |
-      |   B \   |           |   B \  |
-      |__/___\__|           |__/___\_|
-        /     \               /     \
-       |    ___\_____________/       \
-       |   /    \                     \
-    ___|__/   ___\____              ___\____
-   |D      | |D       |            |D       |
-   |       | |        |            |        |
-   |       | | fish   |            | fish   |
-   |_______| |___\____|            |___\____|
-                  \                     \
-                   \                     \
-                 ___\____              ___\____      ________
-                |D       |            |D       |    |D       |
-                |        |            |        |    |        |
-                | tuna   |            | tuna   |    | book   |
-                |___\____|            |___\____|    |_/______|
-                     \                     \         /
-                      \                     \       /
-                    ___\____              ___\____ /
-                   |F       |            |F       |
-                   |        |            |        |
-                   |        |            |        |
-                   |________|            |________|
-@end group
-@end example
-
-From here, we finish with the bubble-up process.  We make new parent
-directories up to the top, culminating in a new root directory with two
-dir_entries (one points to the old ``B'' directory node we've had all
-along, the other to the new version of ``A''), and finally link the new
-tree to the history as version 3:
-
-@example
-@group
-       ______________________________________________________
-      |___1_______2________3________4________5_________6_____...
-          |        \        \_________________
-          |         \__________               \
-       ___|_____             __\_____        __\_____
-      |D        |           |D       |      |D       |
-      |         |           |        |      |        |
-      |   A     |           |   A    |      |   A    |
-      |    \    |           |    \   |      |    \   |
-      |   B \   |           |   B \  |      |   B \  |
-      |__/___\__|           |__/___\_|      |__/___\_|
-        /  ___________________/_____\_________/     \
-       |  / ___\_____________/       \               \
-       | / /    \                     \               \
-    ___|/_/   ___\____              ___\____      _____\__
-   |D      | |D       |            |D       |    |D       |
-   |       | |        |            |        |    |        |
-   |       | | fish   |            | fish   |    | fish   |
-   |_______| |___\____|            |___\____|    |___\____|
-                  \                     \             \
-                   \                     \             \
-                 ___\____              ___\____      ___\____
-                |D       |            |D       |    |D       |
-                |        |            |        |    |        |
-                | tuna   |            | tuna   |    | book   |
-                |___\____|            |___\____|    |_/______|
-                     \                     \         /
-                      \                     \       /
-                    ___\____              ___\____ /
-                   |F       |            |F       |
-                   |        |            |        |
-                   |        |            |        |
-                   |________|            |________|
-
-@end group
-@end example
-
-For our last example, we'll demonstrate the way ``tags'' and
-``branches'' are implemented in the repository.
-
-In a nutshell, they're one and the same thing.  Because nodes are so
-easily shared, we simply create a @emph{new} directory entry that points
-to an existing directory node.  It's an extremely cheap way of copying a
-tree; we call this new entry a @dfn{clone}.
-
-Let's go back to our original tree, assuming that we're at version 6 to
-begin with:
-
-@example
-@group
-       ______________________________________________________
-    ...___6_______7________8________9________10_________11_____...
-          |
-          |
-       ___|_____
-      |D        |
-      |         |
-      |   A     |
-      |    \    |
-      |   B \   |
-      |__/___\__|
-        /     \
-       |       \
-       |        \
-    ___|___   ___\____
-   |D      | |D       |
-   |       | |        |
-   |       | | fish   |
-   |_______| |___\____|
-                  \
-                   \
-                 ___\____
-                |D       |
-                |        |
-                | tuna   |
-                |___\____|
-                     \
-                      \
-                    ___\____
-                   |F       |
-                   |        |
-                   |        |
-                   |________|
-
-@end group
-@end example
-
-Let's ``tag'' directory A.  To make the clone, we create a new dir_entry
-@b{T} in our root, pointing to A's node:
-
-@example
-@group
-       ______________________________________________________
-      |___6_______7________8________9________10_________11_____...
-          |        \
-          |         \
-       ___|_____   __\______
-      |D        | |D        |
-      |         | |         |
-      |   A     | |    A    |
-      |    \    | |    |    |
-      |   B \   | |  B |  T |
-      |__/___\__| |_/__|__|_|
-        /     \    /   |  |
-       |    ___\__/   /  /
-       |   /    \    /  /
-    ___|__/   ___\__/_ /
-   |D      | |D       |
-   |       | |        |
-   |       | | fish   |
-   |_______| |___\____|
-                  \
-                   \
-                 ___\____
-                |D       |
-                |        |
-                | tuna   |
-                |___\____|
-                     \
-                      \
-                    ___\____
-                   |F       |
-                   |        |
-                   |        |
-                   |________|
-
-@end group
-@end example
-
-Now we're all set.  In the future, the contents of directories A and B
-may change quite a lot.  However, assuming we never make any changes to
-directory T, it will @emph{always} point to a particular pristine version
-of directory A.  (We can use permissions to prevent anyone from writing
-to directory T.)  Thus, T is a tag.
-
-However, if we @emph{do} decide to allow commits in directory T, and now
-our repository tree increments to version 8, then T becomes a branch.
-Specifically, it's a branch of directory A which ``broke off'' from the
-main line at version 8.
-
-@node Diffy Storage
-@subsubsection Diffy Storage
-
-You may have been thinking, ``Gee, this bubble up method seems nice, but
-it sure wastes a lot of space.  Every commit to the repository creates
-an entire line of new directory nodes!''
-
-Like many other version control systems, Subversion stores changes as
-differences.  It doesn't make complete copies of nodes; instead, it
-stores the @emph{latest} version as a full text, and previous versions
-as a succession of reverse diffs (the word "diff" is used loosely here
--- for files, it means vdeltas, for directories, it means a format that
-expresses changes to directories).
-
-@c -----------------
-@node Locking
-@subsection Locking
-
-The Subversion Filesystem uses a locking mechanism to handle concurrency
-issues.  In the Subversion locking scheme, readers never wait for
-writers, and writers only wait for other writers whose changes conflict
-with theirs.
-
-@menu
-* Reading::                     
-* The Lock Manager::            
-* Write Locking::               
-@end menu
-
-@node Reading
-@subsubsection Reading
-
-Reading is easy; if a server process wants to execute a @code{read()}
-call into the filesystem, it goes right through.  The design of the
-versioning filesystem allows a reader to simply skip down the version
-history, locate the correct "root" node, and then follow the particular
-tree downwards to the file or directory it wishes to read.  Any number
-of readers can follow this algorithm without interfering with one
-another; and because writers don't link to the version history until
-they're finished writing everything, there's no way for a reader to
-accidentally stumble upon an unfinished tree.
-
-@node The Lock Manager
-@subsubsection The Lock Manager
-
-Each Subversion filesystem has a process called a @dfn{lock manager}.
-When a server process wishes to write to the filesystem, it must first
-contact a lock manager, and @code{submit()} a skelta:
-
-
-@example
-@group
-
-                  S              /
-                   \            /
-                    \          /
-                     |        /
-                     v       /
-       +--------------------|--------------+
-       |                    v              |
-       |             Approved?             |
-       |                |                  |
-       |                |                  |
-       |                v                  |
-       |          Concurrency Pool         |
-       |       +--------------------+      |
-       |       |     S            S |      |
-       |       |  S        S   S    |      |
-       |       +--------------------+      |
-       +-----------------------------------+
-
-@end group
-@end example
-
-The lock manager contains a pool of "approved but uncompleted changes".
-After receiving a new skelta from @code{submit()}, the lock manager
-determines if it is safe to apply it at the same time as the other ones
-in the pool.@footnote{This rule is actually quite simple: a set of
-skeltas may be concurrently written @emph{if and only if} the order in
-which they are applied does not matter!}
-
-If the lock manager decides that the requested skelta conflicts, it
-returns a failure to the server (this usually means the client must do
-an update).  Else, the lock manager returns a transaction token to the
-server.  The server then uses this token to execute a @code{write()} on
-the filesystem.
-
-After the @code{write()} is completed, the skelta is removed from the
-lock manager's concurrency pool, and the server closes its connection.
-
-@node Write Locking
-@subsubsection Write Locking
-
-Although it is safe for multiple commits to write their new leaf nodes
-simultaneously, the next step -- bubbling up the directory hierarchy and
-linking to the next version number -- must be done one commit at a time.
-Otherwise, a tree representing a mixture of various commits might appear
-in the repository.
-
-Therefore, as soon as a commit finishes writing new leaf nodes, it locks
-the version array, creates the bubble-up hierarchy, links to the next
-available version number, and only then releases the lock.  Fortunately,
-the first, non-locking stage (writing data to new leaf nodes) is usually
-the more time-consuming part of a commit anyway.
-
-@c -----------------------
-@node Implementation
-@subsection Implementation
-
-For the initial release of Subversion,
-
-@itemize @bullet
-@item
-  The filesystem will be implemented as a library on Unix.
-@item
-  The lock manager will communicate with other processes via Unix domain
-  sockets.
-@item
-  The filesystem's data will probably be stored in a collection of .db
-  files, using the Berkeley Database library.@footnote{In the future, of
-  course, contributors are free modify the Subversion filesystem to
-  operate with more powerful SQL database.}  (For more information, see
-  @uref{http://www.sleepycat.com, Sleepycat Software}.)
-@end itemize
-
-
-@c ----------------------------------------------------------------
-
-@node Server Library
-@section Server Library
-
-
-@menu
-* Server Library Overview::     
-* Multiplexing::                
-* Policy Enforcement::          
-* Plug-Ins::                    
-* Security::                    
-@end menu
-
-@node Server Library Overview
-@subsection Server Library Overview
-
-@itemize @bullet
-@item
-  @b{Requires:}
-  @itemize
-  @item
-    the Subversion Filesystem interface
-  @end itemize
-@item
-  @b{Provides:}
-  @itemize
-  @item
-    the ability to interact with any repository on a system
-  @item
-    the ability to enforce server-side policies
-  @item
-    the ability to load server-side plug-ins
-  @end itemize
-@end itemize
-
-
-@node Multiplexing
-@subsection Multiplexing
-
-The Subversion Server Library (@dfn{svn_svr}), in its simplest sense,
-acts a basic multiplexer for the repository API calls coming from the
-Subversion client.  (@xref{The repository access library}.)  The
-Subversion Server Library provides the exact same API as the client
-repository library, prefixed now by @code{svr_}:
-
-@table @code
-@item ver_t svr_latest (repos, user)
-@item prop_t svr_get_ver_prop (repos, user, ver, propname)
-@item proplist_t svr_get_ver_proplist (repos, user, ver)
-@item proplist_t svr_get_ver_propnames (repos, user, ver)
-@item node_t svr_read (repos, user, ver, path)
-@item str_t svr_get_node_prop (repos, user, ver, path, propname)
-@item str_t svr_get_dirent_prop (repos, user, ver, path, propname)
-@item proplist_t svr_get_node_proplist (repos, ver, path)
-@item proplist_t svr_get_dirent_proplist (repos, user, ver, path)
-@item proplist_t svr_get_node_propnames (repos, user, ver, path)
-@item proplist_t svr_get_dirent_propnames (repos, user, ver, path)
-@item skelta_t svr_get_status (repos, user, skelta)
-@item delta_t svr_get_update (repos, user, skelta)
-@item delta_t svr_get_delta (repos, user, ver1, path1, ver2, path2)
-@item diff_t svr_get_diff (repos, user, ver1, path1, ver2, path2)
-@item token_t svr_submit (repos, user, skelta)
-@item ver_t svr_write (repos, user, delta, token)
-@item bool_t svr_abandon (repos, user, token)
-@end table
-
-These routines are ``wrappers'' that execute filesystem calls against a
-particular repository.
-
-Most of the wrappers map directly to filesystem calls, except for the
-@code{svr_get_status()} and @code{svr_get_update()} routines.
-@code{svr_get_status()} actually iterates over a skelta structure and
-makes repeated calls to @code{fs_cmp()}, while @code{svr_get_update()}
-makes repeated calls to @code{fs_get_delta()}, composing the returned
-deltas into a single final delta.
-
-@node Policy Enforcement
-@subsection Policy Enforcement
-
-When starting up, svn_svr will read a configuration file @file{svn.conf}
-(much like Apache's @file{httpd.conf}) which, among other things, will
-specify a list of server policies to implement.
-
-Because filesystem calls are ``wrappered'' by svn_svr, it has the
-opportunity to intercept and interpret them according to policy.
-
-For example, an administrator may wish to take a repository ``off-line''
-for backup purposes.  She can specify this in the @file{svn.conf} file,
-and any filesystem calls to that repository are then intercepted and
-(kindly) rejected by svn_svr.
-
-
-@node Plug-Ins
-@subsection Plug-Ins
-
-It's important that svn_svr be extensible;  by allowing users to write
-their own server-side libraries, the server's abilities can potentially
-grow forever.
-
-We define the term @dfn{plug-in} to refer to a library designed to be
-loaded into svn_svr's address space.  This term is used intentionally
-(instead of "module") so as not to be confused with either Apache
-modules or ``CVS-like'' modules.  Each plug-in potentially implements a
-new set of server "methods".
-
-The @file{svn.conf} file specifies a list of available plug-ins, the new
-methods they provide, and the real shared-object pathnames on disk.
-When a client requests a particular method, svn_svr then knows which
-plug-in to "auto-load".
-
-For ideas on future server-side plug-ins, @xref{Future}.
-
-
-
-
-@node Security
-@subsection Security
-
-Subversion has two levels of security, both abstracted.
-
-@menu
-* Username Authentication::     
-* Authorization::               
-@end menu
-
-@node Username Authentication
-@subsubsection Username Authentication
-
-First of all, the Subversion server does @emph{not} authenticate users
--- it never asks a client user to prove his/her identity.  Instead,
-authentication is soley the responsibility of the network layer.  Every
-Subversion user @emph{must} have an account in an external database that
-is understood by some network layer.  (@xref{Network Layer}.)
-
-For example, for a vanilla Apache network layer, each client user could
-authenticate against a standard Apache access control file.  More
-complex network layers could authenticate against @file{/etc/passwd} or
-a SQL database.
-
-Once the network layer has authenticated the user, it passes three
-arguments to the Subversion server:
-
-@itemize @bullet
-@item
-  @b{auth_username} -- the authenticated username
-@item
-  @b{auth_method} -- the method in which this user was authenticated
-@item
-  @b{auth_domain} -- the domain the user is coming from
-@end itemize
-
-This information is then used to ``authorize'' a client's actions.
-
-
-@node Authorization
-@subsubsection Authorization
-
-By @dfn{authorization}, we mean answering the question:
-
-@quotation
-
-``Is user X allowed to perform action Y on data Z?''
-
-@end quotation
-
-The Subversion server provides a single interface for answering this
-question.
-
-@table @code
-@item str_t svn_authorize (auth_user, auth_method, auth_domain, action, path);
-@end table
-
-@*
-
-This interface is implemented by a server-side plug-in library which is
-free to define any sort of security scheme it wishes.  The return value
-of this function is either NULL (meaning that authorization was denied),
-or @var{username}, where @var{username} is the specific username to use
-when performing the action against the Subversion filesystem.
-
-The first release of Subversion will ship with a plug-in that manages
-this information in a file called `svn_security'; each repository has
-its own copy this file.  It's worth mentioning how this file works.
-
-The `svn_security' file does three things:
-
-@enumerate
-
-@item
-   @b{Map authorized usernames to filesystem usernames.}  For example,
-suppose Jim Blandy is able to contact the Subversion server in many
-different ways, using different network layers.  It's important that the
-@emph{same} username be used when talking to the filesystem.  We call
-this username the @dfn{Subversion username} or @dfn{canonical} username.
-Here's an example of this mapping:
-
-@example
-jimb : Jim Blandy :   jim/unix/localhost,  \
-                      jimb/smtp/jimb@@red-bean.com, \
-                      jimb/kerberos/redhat.com, \
-                      jblandy/DAV/red-bean.com 
-@end example
-
-@item
-  @b{Define Roles} A @dfn{role} is a set of performable actions.  Here
-are some examples of roles:
-
-@example
-visitor : checkout update
-hacker : checkout update commit
-core-programmer : checkout update commit add rm mv
-nitpicker : checkout update annotate
-admin : checkout update commit add rm mv import
-god : all
-offlimits: none
-@end example
-
-@item
-  @b{Map roles to users.}  For each canonical username, specify specific
-  roles this person has for particular filesystem paths:
-
-@example
-joe : visitor /trunk/gnome : nitpicker /trunk/foo
-kfogel : admin /trunk/subversion : offlimits /trunk/subversion/foo.c
-zeke : hacker /trunk/comp-tools : visitor /trunk/comp-tools/gdb
-@end example
-
-@end enumerate
-
-
-Remember, this is only one example of a back-end implementation of
-@code{svn_authorize ()}.  Programmers are free to write new server-side
-plug-ins that implement different security schemas (for example,
-authorizing against a SQL database.)
-
-
diff --git a/doc/svn-design.texi b/doc/svn-design.texi
deleted file mode 100644
index 93e907e..0000000
--- a/doc/svn-design.texi
+++ /dev/null
@@ -1,119 +0,0 @@
-\input texinfo  @c -*-texinfo-*-
-
-@comment Subversion Design
-@comment Copyright (C) 1999, 2000 Collab.Net
-
-@c  ================================================================
-@c  Copyright (c) 2000 Collab.Net.  All rights reserved.
-@c  
-@c  Redistribution and use in source and binary forms, with or without
-@c  modification, are permitted provided that the following conditions are
-@c  met:
-@c  
-@c  1. Redistributions of source code must retain the above copyright
-@c  notice, this list of conditions and the following disclaimer.
-@c  
-@c  2. Redistributions in binary form must reproduce the above copyright
-@c  notice, this list of conditions and the following disclaimer in the
-@c  documentation and/or other materials provided with the distribution.
-@c  
-@c  3. The end-user documentation included with the redistribution, if
-@c  any, must include the following acknowlegement: "This product includes
-@c  software developed by Collab.Net (http://www.Collab.Net/)."
-@c  Alternately, this acknowlegement may appear in the software itself, if
-@c  and wherever such third-party acknowlegements normally appear.
-@c  
-@c  4. The hosted project names must not be used to endorse or promote
-@c  products derived from this software without prior written
-@c  permission. For written permission, please contact info@collab.net.
-@c  
-@c  5. Products derived from this software may not use the "Tigris" name
-@c  nor may "Tigris" appear in their names without prior written
-@c  permission of Collab.Net.
-@c  
-@c  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-@c  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-@c  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-@c  IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-@c  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-@c  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-@c  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-@c  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-@c  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-@c  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-@c  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-@c 
-@c  ====================================================================
-@c  
-@c  This software consists of voluntary contributions made by many
-@c  individuals on behalf of Collab.Net.
-
-
-@c %**start of header
-@setfilename svn-design.info
-@settitle Subversion Design
-@setchapternewpage odd
-@c %**end of header
-
-@paragraphindent 0
-
-@c @finalout
-
-@c Browser defaults lose.  Let's go for black text on white background.
-@ifhtml
-@html
-<body bgcolor="#FFFFFF" fgcolor="#000000">
-@end html
-@end ifhtml
-
-@c -----------------------------------------------------------------
-@titlepage
-@title @titlefont{Subversion}
-@subtitle{A New Version Control System}
-@author Jim Blandy <@email{jimb@@redhat.com}>
-@author Karl Fogel <@email{kfogel@@collab.net}>
-@author Ben Collins-Sussman <@email{sussman@@collab.net}>
-
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 2000 Collab.Net, Inc. @*
-See @xref{License} for details.
-
-@end titlepage
-@c -----------------------------------------------------------------
-
-@summarycontents
-@contents
-
-@node Top
-@top
-
-@ifinfo
-This manual describes the design of the Subversion version control
-system.
-
-@end ifinfo
-
-@menu
-* Goals::                        The goals of the Subversion project.
-* Model::                        The versioning model used by Subversion.
-* Architecture::                 How Subversion's components work together.
-* Client::                       How the client works.
-* Protocol::                     How the client and server communicate.
-* Server::                       How the server works.
-* Future::                       Future plans.
-* License::                      Copyright.
-@end menu
-
-@include goals.texi
-@include model.texi
-@include architecture.texi
-@include client.texi
-@include protocol.texi
-@include server.texi
-@include future.texi
-@include license.texi
-
-@c @include indices.texi
-
-@bye
diff --git a/doc/svn-doc.el b/doc/svn-doc.el
deleted file mode 100644
index d7e60d0..0000000
--- a/doc/svn-doc.el
+++ /dev/null
@@ -1,20 +0,0 @@
-;;;; Emacs Lisp help for writing the Subversion Documentation. ;;;;
-
-(defun svn-doc-visit-info-file ()
-  "Visit the local info file in progress.
-Right now there's only one place to go, so no prompting is done."
-  (interactive)
-  (Info-goto-node (concat "(" default-directory "svn-design.info)Top")))
-
-
-(defun svn-doc-texinfo-new-node (name)
-  "Insert a new node (defaults to `section' heading).
-Includes the commented separator line we like to use."
-  ;; todo: search backwards for menu and build a completion table?
-  (interactive "sNode name: ")
-  (insert "@c ")
-  (insert-char ?- 71)
-  (insert "\n")
-  (insert "@node " name "\n")
-  (insert "@section " name "\n\n"))
-
diff --git a/glib/AUTHORS b/glib/AUTHORS
deleted file mode 100644
index e898236..0000000
--- a/glib/AUTHORS
+++ /dev/null
@@ -1,25 +0,0 @@
-Original Authors
-----------------
-Peter Mattis       <petm@xcf.berkeley.edu>
-Spencer Kimball    <spencer@xcf.berkeley.edu>
-Josh MacDonald     <jmacd@xcf.berkeley.edu>
-
-Please do not mail the original authors asking questions about this 
-version of GLib.
-
-GLib Team
----------
-Shawn T. Amundson  <amundson@gimp.org>
-Jeff Garzik        <jgarzik@pobox.com>
-Raja R Harinath    <harinath@cs.umn.edu>
-Tim Janik          <timj@gtk.org>
-Elliot Lee         <sopwith@redhat.com>
-Tor Lillqvist      <tml@iki.fi>
-Paolo Molaro       <lupus@debian.org>
-Havoc Pennington   <hp@pobox.com>
-Manish Singh       <yosh@gimp.org>
-Owen Taylor        <otaylor@gtk.org>
-Sebastian Wilhelmi <wilhelmi@ira.uka.de>
-
-There are also many others who have contributed patches and fixes;
-we thank them, for helping us in advancing GLIB.
diff --git a/glib/COPYING b/glib/COPYING
deleted file mode 100644
index 223ede7..0000000
--- a/glib/COPYING
+++ /dev/null
@@ -1,504 +0,0 @@
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/glib/ChangeLog b/glib/ChangeLog
deleted file mode 100644
index de343b2..0000000
--- a/glib/ChangeLog
+++ /dev/null
@@ -1,3381 +0,0 @@
-Thu May 25 02:29:35 2000  Tim Janik  <timj@gtk.org>
-
-	* configure.in: glib version 1.2.8, interface age 8, binary age 8.
-
-Fri May 19 11:37:54 2000  Tim Janik  <timj@gtk.org>
-
-	* gutils.c (g_snprintf): 
-	(g_vsnprintf): added argument assertments.
-
-	* gstring.c (g_string_assign):
-	(g_string_truncate): added argument assertments.
-
-Fri May 19 09:00:44 2000  Tim Janik  <timj@gtk.org>
-
-        * gmem.c (g_free): fixed SIZEOF_LONG==4 assumption with
-        ENABLE_MEM_CHECK, from Art Haas <ahaas@neosoft.com>.
-
-	* gslist.c (g_slist_reverse): shut up compiler.
-
-	* gscanner.c (g_scanner_get_token_ll): removed inline assignment.
-
-	* garray.c: remove index>=0 checks for unsigned indices.
-
-	* gmain.c (g_idle_prepare): timeout assignment fix.
-
-	* gtree.c (g_tree_node_rotate_right): shut up compiler.
-
-2000-05-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Use strlen instead of exit in the test for
-	sys_siglist, as using strlen (function without side effects) makes
-	the compiler remove that for optimized compilation and the linker
-	wont see the symbol, thus a successfull link doesn't mean, that
-	the symbol exists. Hint from Robert Pouliot
-	<robert.pouliot@bell.ca>.
-
-	* configure.in: Also look for thread functions in
-	libthread. Makes it work on UnixWare 7.1.0. Hint also from Robert
-	Pouliot <robert.pouliot@bell.ca>.
-
-2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* garray.c (g_ptr_array_maybe_expand): Really initialize the whole
-	GPtrArray to 0 after resizing. Pionted out by David Menestrina
-	<dmenest@Princeton.EDU>. Fixes Bug #9270. This needn't be applied
-	to glib-1.3.
-
-Wed Apr 19 08:32:32 2000  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_new): make sure that
-	scanner->config->cset_skip_characters is "" instead of NULL, so we
-	don't segfault further on.
-
-2000-04-10 Elliot Lee <sopwith@redhat.com>
-
-	* gstrfuncs.c: A stringified double can be longer than 32 chars -
-	fix space calculation routine to 'double' the max amount of space
-	a double & long double can take.
-
-Fri Mar 24 03:34:02 2000  Tim Janik  <timj@gtk.org>
-
-	* glib.h: put a comment for the g_datalist_ and g_dataset_ API, that
-	these fucntions are scheduled for a rename in GLib 1.3.
-
-2000-03-22 Elliot Lee <sopwith@redhat.com>
-
-	* gmem.c (g_mem_chunk_area_compare): Fix 64-bitness bug in
-	comparing two pointers more than 4G apart.
-
-2000-03-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: The mutex in the check for pthread_mutex_trylock
-	should be a static var. Thanks to Wan-Teh Chang <wtc@netscape.com>
-	for pointing this out.
-
-2000-02-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Changed GCC version test to also accept major
-	versions > 2. Thanks to Ben Gertzfield <che@debian.org> for
-	pointing this out.
-
-Thu Feb 17 12:24:55 2000  Tim Janik  <timj@gtk.org>
-
-	* glib.h: reverted my last commit, g_thread_init() *does*
-	have an implementation.
-
-Thu Feb 17 04:25:02 2000  Tim Janik  <timj@gtk.org>
-
-	* glib.h: remove extraneous prototype for g_thread_init().
-
-Wed Feb 16 05:18:37 CST 2000  Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.7
-
-Mon Feb 14 22:32:49 2000  Tim Janik  <timj@gtk.org>
-
-	* gstring.c: changed g_str_hash() to a 31 bit version based on
-	a submission by Karl Nelson and hand optimized ad absurdum by
-	various people ;)
-
-Fri Feb  4 19:39:38 2000  Tim Janik  <timj@gtk.org>
-
-	* configure.in: up version number to 1.2.7, interface age 7 and
-	binary age 7.
-	
-	* NEWS: updates.
-
-Thu Feb  3 14:46:53 PST 2000 Manish Singh <yosh@gimp.org>
-
-	* acinclude.m4
-	* config.guess
-	* config.sub
-	* ltconfig
-	* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
-
-	* gmain.c: removed spurious non-commented #endif suffix
-
-Fri Jan 28 11:37:41 2000  Owen Taylor  <otaylor@redhat.com>
-
-        Bug #4156 - Changes vaguely modelled after Scott Gifford's patch
-	
-	* gtimer.c (g_timer_elapsed): Never report negative times - 
-	clip times to 0.
-
-	* gmain.c (g_timeout_prepare): Guard against unexpected
-	clock shifts by never setting a timeout of more than
-	data->interval msecs.
-
-Wed Jan 26 05:29:11 2000  Tim Janik  <timj@gtk.org>
-
-        * glib.h:
-        * gmain.c: s/current_time/dispatch_time/ for the dispatch() handlers.
-        refetch the current time after invocation of poll() to cover up for
-        the time spent in that function call.
-
-Sun Jan  9 13:28:36 2000  Tim Janik  <timj@gtk.org>
-
-        * gstrfuncs.c (g_strtod): correctly fetch the current locale,
-        fix from owen.
-
-1999-11-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Make the test for getpwuid_r work on newer AIX
-	versions, too. Still works on Solaris and Linux. Patch from Craig
-	Rodrigues <rodrigc@mediaone.net>.
-
-Tue Nov  2 17:21:29 1999  ape@spacetec.no  (Asbjorn Pettersen)
-
-	* glib.h (G_DIR_SEPARATOR): Add defines for EMX/OS2.
-
-Sun Oct 31 18:55:01 1999  ape@spacetec.no  (Asbjorn Pettersen)
-
-	* gcache.c (g_cache_remove): Test if node is NULL.
-	If not tested, GIMP's script-fu will crash. 
-
-Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
-
-	* gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
-	destroy() notification here as well.
-
-1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
-	is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
-
-Thu Oct  7 12:28:27 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.6
-
-Sun Oct  3 12:07:44 PDT 1999 Manish Singh <yosh@gimp.org>
-
-	* Makefile.am: list acglib.m4 in CONFIGURE_DEPENDENCIES so we hook
-	in to automake's default configure rule instead of making our own
-
-Thu Sep 23 19:47:10 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.5
-
-Fri Sep 17 10:24:45 1999  Tim Janik  <timj@gtk.org>
-
-        * gmem.c (g_mem_chunk_compute_size) (g_mem_chunk_new): applied patch
-        from Soeren Sandmann <sandmann@daimi.au.dk>, to force mem chunk's area
-        sizes to be a multitiple of atom_size, and to eliminate the MAX_MEM_AREA
-        restriction of 65536 bytes. we also catch cases where users pass an area
-        size < atom size with a return_if_fail statement now (which is ok,
-        because previously this lead to memory corruption anyways).
-
-Thu Sep 16 01:31:43 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in: version increment to GLib-1.2.5, interface age 5,
-	binary age 5.
-
-Thu Aug 26 15:09:36 1999  Tim Janik  <timj@gtk.org>
-
-        * Makefile.am:
-        * gmodule/Makefile.am:
-        * gthread/Makefile.am: added --export-dynamic so we can load dynmic
-        modules, (required, according to the libtool 1.3.3 docu).
-
-Mon Aug 23 14:42:58 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.4
-
-Mon Aug 23 18:29:45 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in: update version to 1.2.4, interface age 4, binary age 4.
-
-	* NEWS: updates.
-
-	* Makefile.am: require automake 1.4, build README from README.in and
-        INSTALL from INSTALL.in in dist-hook.
-        
-        * README.in:
-	* INSTALL.in: new files to autogenerate README and INSTALL from.
-	
-	* COPYING: update to the GNU LESSER GENERAL PUBLIC LICENSE.
-
-Thursday July 29, 1999 Elliot Lee <sopwith@redhat.com>
-
-	* Makefile.am, tests/Makefile.am: Distribution the .in versions
-	  of the various Windoze makefiles.
-
-Thursday July 29, 1999 Elliot Lee <sopwith@redhat.com>
-
-	* Makefile.am: Include various *.in files in EXTRA_DIST
-
-Fri Jul 16 22:18:36 PDT 1999 Manish Singh <yosh@gimp.org>
-
-	* ltconfig
-	* ltmain.sh: upgrade to libtool 1.3.3
-
-1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gdate.c, gstrfuncs.c, gstring.c: Fixed the use of the
-	is..... and to..... macros, which take unsigned chars, not chars!
-	Thanks to Morten Welinder <terra@diku.dk> for pointing this out.
-
-Thu Jun  3 16:30:31 PDT 1999 Manish Singh <yosh@gimp.org>
-
-	* gerror.c (g_on_error_query): check isatty() before querying so
-	we don't loop endlessly
-
-Sat May 29 11:16:29 PDT 1999 Manish Singh <yosh@gimp.org>
-
-	* acinclude.m4
-	* config.guess
-	* config.status
-	* ltconfig
-	* ltmain.sh: upgrade to libtool 1.3.2
-
-1999-05-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gmain.c: provide a poll prototype for SunOS, as they do not do
-	it self. Hint from Christian Parg <cparg@fs-design.de>.
-
-Tue May 25 12:23:07 1999  Owen Taylor  <otaylor@redhat.com>
-
-	* gstrfuncs.c (g_strchug): Use g_memmove() not memmove().
-	(Reported by Charles Levert <charles@comm.polymtl.ca>)
-
-Mon May 10 22:03:52 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.3
-
-1999-05-08  Tor Lillqvist  <tml@iki.fi>
-
-	* Makefile.am tests/Makefile.am: Correct rules for making the
-	win32-related files that are made from corresponding .in files.
-	Is there a cleaner way than explicitly writing rules that invoke
-	config.status?
-	
-Sat May  1 10:18:01 PDT 1999 Manish Singh <yosh@gimp.org>
-
-	* acinclude.m4
-	* config.guess
-	* config.status
-	* ltconfig
-	* ltmain.sh: upgrade to libtool 1.3
-
-1999-04-30  Tor Lillqvist  <tml@iki.fi>
-
-	* Makefile.am: Don't distribute glibconfig.h.win32.in, but
-	glibconfig.h.win32. Generate it when making a dist. Also generate
-	makefile.msc and config.h.win32 from corresponding .in files when
-	making dist.
-
-	* configure.in: Also substitute @GLIB_INTERFACE_AGE@ and
-	@GLIB_BINARY_AGE@ (needed in config.h.win32).
-	
-	* glibconfig.h.win32.in: Use static mutex structure and initial
-	value corresponding to the 1999-04-07 snapshot of pthreads-win32.
-
-	* tests/Makefile.am: Distribute makefile.msc. Generate it when
-	making dist.
-
-	* tests/makefile.msc.in: New file.
-
-	* tests/node-test.c: Include <stdlib.h> for exit().
-
-Thu Apr 29 02:16:36 1999  Tim Janik  <timj@gtk.org>
-
-	* gstrfuncs.c: minor code cleanups.
-
-Tue Apr 27 13:11:29 1999  Owen Taylor  <otaylor@redhat.com>
-
-	* gmain.c (g_main_poll): Mask out ERR HUP and NVAL from
-	the events field so we don't give IRIX fits.
-
-Tue Apr 20 08:42:22 1999  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_unexp_token): behave conservative with
-	G_TOKEN_IDENTIFIER_NULL and always assume scanner->value.v_string
-	to be "null" in that case.
-
-1999-04-20  Havoc Pennington  <hp@pobox.com>
-
-	* gutils.c (g_vsnprintf):  When using the vsnprintf()
-	implementation, '\0'-terminate the resulting string
-	and return its length rather than -1.
-
-Mon Apr 19 13:42:21 1999  Owen Taylor  <otaylor@redhat.com>
-
-	* gmain.c (g_main_iterate): Added missing
-	#ifdef G_THREADS_ENABLED. (I never liked G_THREADS_ENABLED in
-	the first place!)
-
-1999-04-18  Havoc Pennington  <hp@pobox.com>
-
-	* gutils.c (g_snprintf): When using the vsnprintf()
-	implementation, '\0'-terminate the resulting string
-	and return its length rather than -1.
-
-Fri Apr 16 06:52:07 1999  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid
-	expected token as well, so we get "- expected end of file" instead of
-	"- expected (unknown) token <0>".
-
-Tue Apr 13 16:16:14 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.2
-
-1999-04-12  Elliot Lee  <sopwith@mh69.mh.cuc.edu>
-
-	* g_strchug(): s/strcpy/memmove/
-
-1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Adjusted the test for an unimplemented
-	getpwuid_r. Info from Michael Pruett <mikep@ugcs.caltech.edu>.
-
-Sun Apr 11 15:07:34 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in: bumped versin number to GLib 1.2.2, interface 2,
-	binary 2.
-	
-	* NEWS: updates.
-
-Sun Apr 11 14:37:06 1999  Tim Janik  <timj@gtk.org>
-
-	* gstrfuncs.c (g_strcasecmp): always check for s1, s2 != NULL.
-
-Sat Apr 10 19:30:50 1999  Tim Janik  <timj@gtk.org>
-
-	* glib.h: removed braces around inline strings for the G_GNUC_FUNCTION
-	and G_GNUC_PRETTY_FUNCTION macros, so the macros can be used for compile
-	time string concatenation.
-
-Thu Apr  8 19:53:19 1999  Owen Taylor  <otaylor@redhat.com>
-
-	* gmain.c (g_main_iterate): Check for two threads
-	calling g_main_iterate at once.
-
-	* gmain.c: If the set of poll file descriptors changes
-	during a call to poll(), abort that call, and start
-	a new poll. My test program still segfaults
-	obscurely on glibc 2.0 (in read()!!!), but now it works on
-	glibc 2.1, so I'll blame something else for the other segfault.
-
-1999-03-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Fixed slight bug, that made configure hang on some
-	systems. Please do not merge this into 1.3 branch. It's taken care
-	of differently there. Info from J. Rhett Aultman
-	<cuplan@alley.gator.net>
-	
-Wed Mar 24 21:23:47 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.1
-
-	* README:
-	  INSTALL: 
-	  NEWS: 
-	  sanity_check: updated
-
-	* glibconfig.h.win32.in:
-	  Makefile.am:
- 	  docs/glib-config.1.in:
-	  docs/Makefile.am: Added files used to generate new files.
-
-	* glibconfig.h.win32:
-	  docs/glib-config.1: Removed, now generated.
-
-	* configure.in: Added to output now-generated files.
-	
-Tue Mar 23 13:43:39 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* giounix.c: add user_data param to check and prepare functions
-
-Mon Mar 22 03:54:43 1999  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gmain.c: add user_data to the GSource ->check and ->prepare functions,
-	so it can be used to e.g. pass a GPollFd.
-	(g_main_poll): only add poll records with an events mask != 0 to the
-	fd_array. don't even bother calling poll_func() if fds=timeout=0.
-	added debugging printouts around poll_func() invokation that can be
-	enabled with #define G_MAIN_POLL_DEBUG.
-
-Fri Mar 19 16:29:50 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* acinclude.m4
-	* config.guess
-	* config.sub
-	* ltconfig
-	* ltmain.sh: upgrade to libtool 1.2f
-
-	* autogen.sh: libtool is not required to autogen glib
-
-	* acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly
-	needed)
-
-1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gmem.c: Fixed another stupid fault of mine: Did
-	s/g_static_/g_private_/g
-
-Wed Mar 17 03:17:42 1999  Tim Janik  <timj@gtk.org>
-	
-	* configure.in bumped versin number to GLib 1.2.1, interface 1,
-	binary 1.
-	
-	* NEWS: updates.
-
-	* glib.h: added GLIB_CHECK_VERSION() macro similar to
-	GTK_CHECK_VERSION().
-
-Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>
-
-	* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
-	to g_return_if_fail().
-	(g_mem_profile): 
-	(g_mem_chunk_print): 
-	(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
-	messages.
-
-	* gtimer.c (g_timer_*):	changed a bunch of g_assert() statements
-	to g_return_if_fail().
-	* grel.c (g_*): changed a bunch of g_assert() statements to
-	g_return_if_fail() and added some extra ones to check relation != NULL.
-
-1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Also accept _Pctime_r instead of ctime_r, while
-	seraching for the right `_REENTRANT' flag. This is for Digital
-	UNIX 4.0d. Thanks to Sascha Brawer <sb@adasys.ch>.
-
-Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in: check for working realloc (NULL,).
-	* gmem.c (g_realloc): use malloc() for initial allocation on systems
-	where realloc(NULL,) will not work (this is the case on SunOS, reported
-	by Tom Geiger).
-
-Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>
-
-	* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
-	flag around the call to g_hook_free() to avoid spurious
-	warnings (happens during destruction phase).
-
-1999-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
-	from config.h.win32 to glibconfig.h.win32
-
-	* acconfig.h, configure.in, config.h.win32: Added test for DCE
-	versions of mutex_trylock and cond_timedwait. The win32 versions
-	are posix, aren't they?
-
-1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
-	Friedrich Dominicus <Friedrich.Dominicus@inka.de>
-
-1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-        * gutils.c (g_get_any_init): Fixed yet another bloody
-        implementation of getpwuid_r on AIX. Thanks to Olaf Dietsche
-        <olaf.dietsche+list.gtk@netcologne.de>. I would like a configure
-        test better than that, but have no idea, how to do that easily.
-
-Sun Feb 21 22:11:51 CST 1999  Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.2.0
-
-	* AUTHORS: updated
-
-Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* *.[ch]: inserted additional note to look for ChangeLog and
-	  AUTHORS file for a log of modifications.
-
-Sun Feb 21 14:01:00 1999  Dr Mike <drmike@redhat.com>
-
-	* Made specfile generated, tweaked slightly
-	
-Thu Feb 18 08:24:12 1999  Tim Janik  <timj@gtk.org>
-
-	* gmem.c (g_realloc): plugged a memory leak, reported by Koen D'Hondt
-	<ripley@xs4all.nl> on 15 Oct 1998. allocate inital block from realloc.
-
-1999-02-17  Elliot Lee  <sopwith@redhat.com>
-
-	* glib.spec: Do --enable-debug=no for the .rpm's.
-
-Wed Feb 17 17:04:06 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* config.h.win32: Must define HAVE_PTHREAD_GETSPECIFIC_POSIX.
-
-Tue Feb 16 14:08:59 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* NEWS
-	  README
-	  INSTALL
-	  config.h.win32
-	  configure.in
-	  glib.spec
-	  glibconfig.h.win32
-	  docs/glib-config.1: version=1.1.16 
-
-	* Released GLib 1.1.16
-
-1999-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* glib.h, glibconfig.h.win32, configure.in: Changed signature of
-	all g_static_mutex_* functions to take a pointer rather than the
-	struct itself. This is not an issue at the moment, because those
-	funcs are really macros, but is it un'G'ish and might fall on our
-	feet in the future.
-
-Mon Feb 15 07:45:54 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in (--enable-debug): default to yes for development trees.
-
-Mon Feb 15 06:18:58 1999  Tim Janik  <timj@gtk.org>
-
-	* glib.h: return guints instead of gints for g_hash_table_size
-	and g_hash_table_foreach_remove.
-
-Wed Feb 10 12:01:42 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in: don't reset G_MODULE_IMPL, so it can be overridden
-	from the command line.
-
-1999-02-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* glib.h: s/G_LOCK_DECLARE/G_LOCK_DEFINE/ throuhout glib. Added
-	G_LOCK_EXTERN macro to declare a lock externally.
-
-Wed Feb 10 06:20:30 1999  Tim Janik  <timj@gtk.org>
-
-	* gmutex.c (g_static_private_set): invoke destroy notifier when
-	overwriting values, initialize new array fields with NULL.
-	(g_static_private_free_data): do not skip destroy notification for
-	data == NULL.
-
-	* gutils.c (g_direct_equal): compare pointer values directly instead
-	of just their guint values which is a loosing conversion for
-	sizeof(gpointer)==8 systems.
-	(g_get_any_init): restructured code so we don't use endless loops like
-	while (1), which boil down to an ugly alias for goto.
-	strip ,.* from the real name.
-
-February 9, 1999 sopwith@redhat.com
-
-	. glist.c, gnode.c, gslist.c: allocate pools of 128 items instead
-	of 1024 items.
-
-1999-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in, acconfig.h: Changed the test for getpwuid_r to
-	exclude those systems (i.e. IRIX), that set ENOSYS after the call.
-	Test, if pthread_getspecific is posix like or something different,
-	as on PCThreads.	
-
-Sun Feb  7 21:56:00 1999  Owen Taylor  <otaylor@redhat.com>
-
-	* gmem.c (g_mem_profile): Copy all elements
-	of the allocations[] array, including the last.
-	(Pointed out by "Matthew W. Samsonoff" <mws7323@osfmail.isc.rit.edu>)
-	
-1999-02-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Make the error message in case of a broken thread
-	system a bit more informative.
-
-	* gutils.c (g_get_any_init): Changed the error logic again, now
-	only leaving the memory doubling loop, when success is reached or
-	when the user isn't found or when the buffer is 32k big,
-	additionally now getpwuid will be run, if getpwuid_r didn't work
-	out properly. A warning is issued however.
-
-Thu Feb 04 20:42:24 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* glibconfig.h.win32 config.h.win32: Update GLIB_MICRO_VERSION.
-
-1999-02-04  Christopher Blizzard  <blizzard@redhat.com>
-
-	* glib.spec (Packager): Change my email address
-
-Thu Feb  4 01:45:01 PST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* ChangeLog
-	  NEWS
-	  README
-	  configure.in
-	  glib.spec
-	  docs/glib-config.1: version=1.1.15
-
-	* Released GLib 1.1.15
-
-Tue Feb 02 00:08:54 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* gmessages.c (g_log_default_handler): (Win32:) Don't call
- 	ensure_stdout_valid (which would open an unneeded console window)
- 	if we're calling a logging function.  Define ensure_stdout_valid
- 	as an empty macro on Unix.
-
-	* gutils.c (g_get_any_init): (Win32:) Trust HOME first if defined,
-	then try HOMEDRIVE and HOMEPATH.
-
-Mon Feb  1 19:04:28 1999  Owen Taylor  <otaylor@redhat.com>
-
-	* gmain.c (g_main_iterate): Release the main_loop
-	 lock around calls to prepare() and check() so
-	 that we are not holding the main loop lock
-	 over user code.
-
-1999-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Moved the check for MT safe function variants
-	after the determination of the MT cflags and use them there.
-
-1999-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Fixed typo. Now HPUX 11 thread system detection
-	should work.
-
-	* gutils.c (g_get_any_init): Changed initial bufsize to 64. Should
-	solve some problems out there.
-
-Wed Jan 27 23:21:50 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* INSTALL
-	  NEWS
-	  README
-	  configure.in
-	  glib.spec
-	  docs/glib-config.1: version=1.1.14
-
-	* Released GLib 1.1.14
-
-1999-01-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Simplified configure.in test for posix threads,
-	systems, that provide /usr/include/pthread.h should also have the
-	posix thread library. This is to avoid writing down all the tests
-	twice. New test for thread system on HPUX 11. Info from Matt
-	Nottingham <matt@sar.dera.gov.uk>.
-
-Wed Jan 27 20:39:49 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* acinclude.m4: Xsed isn't valid here, don't use it
-
-	* ltmain.sh
-	* ltconfig: better file magic regexp for Linux libs
-
-	* gmodule/Makefile.am: arg, noinst_LTLIBRARIES doesn't make shared
-	libs, revert my previous change to this file
-
-	* docs/texinfo.tex: add it so automake doesn't whine
-
-Wed Jan 27 01:57:19 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in (G_MODULE_HAVE_DLERROR): applied patch from Andrej
-	Borsenkow <borsenkow.msk@sni.de> to also check for dlsym() in system
-	libraries and -ldl, to catch systems that provide dlopen() in libc
-	and dlsym() in libdl. this is at least the case for Reliant UNIX
-	5.44 (labeling itself as SINIX).
-
-Tue Jan 26 13:39:22 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* configure.in: don't use backquotes in warning text
-
-1999-01-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gdate.c (g_date_set_time): Removed the #warning about MT
-	unsafety without localtime_r.
-
-	* configure.in: Moved it here.
-
-Mon Jan 25 10:07:53 1999  Raph Levien  <raph@gimp.org>
-
-	* configure.in: (#define G_THREADS_IMPL...) Changed the #define,
-	adding the G_THREADS_IMPL_ prefix to $g_threads_impl_def because
-	it looked wrong to me and was breaking gimp compile.
-
-Mon Jan 25 15:34:43 1999  Timur Bakeyev <mc@bat.ru>
-
-	* configure.in, gstrfuncs.c: Inverted logic of NO_SYS_SYGLIST_DECL -
-	now it's normal (see 1999-01-19 Josh MacDonald). Also, remove from
-	#include <signal.h> wrapper NO_SYS_SYGLIST - *sys_syglist[] declara-
-	tion hides there.
-
-1999-01-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Do not use the thread libs, when searching for
-	some functions, as this might require glib to always be linked
-	with the thread libs on some platforms.
-
-	* gutils.c (g_get_any_init): Don't set errno to zero and use it
-	only as the error code, if the function returned a value less
-	0. It might happen, that the call succeeds, even though the errno
-	is set during the call (i.e. it first looks for a passwd file,
-	which is not found). Submitted by Michael Natterer
-	<mitschel@cs.tu-berlin.de>. BTW: Sorry for all the mess with that
-	`getpwuid_r' change, but it had to be done once.
-
-Sun Jan 24 10:33:30 1999  Tim Janik  <timj@gtk.org>
-
-	* gutils.c (g_get_any_init): reverted raja's changes, since they leaked
-	a struct passwd contents buffer and for the rest mostly substituted a
-	while loop with a bunch of gotos.
-	restored the getpwuid() code to what we had after my recent clean ups
-	("Sat Jan 23 02:14:28 1999 Tim Janik"), module yosh's recent changes.
-	to feature solaris behaviour of directly returning errno, we don't
-	modify error anymore if it's > 0 and simply reset errno.
-	don't reset g_home_dir for !NATIVE_WIN32 && !NATIVE_WIN32.
-
-1999-01-24  Raja R Harinath  <harinath@cs.umn.edu>
-
-	* gutils.c 
-	(g_get_any_init) [HAVE_GETPWUID_R && HAVE_GETPWUID_R_POSIX]: 
-	Hopefully got the error handling for `getpwuid_r' right.
-	(g_get_any_init) [HAVE_GETPWUID_R && !HAVE_GETPWUID_R_POSIX]:
-	Fix typo (change `pw == NULL' to `pw != NULL').
-	
-Sun Jan 24 00:36:22 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* ghash.c:
-	- Revert previous "fix" (which really just did things a
-	  different way).
-	- (g_hash_table_remove): Don't need to support multiple values
-	  for a single key.
-
-	* tests/hash-test.c:
-	Add test where hash function always returns a single value.
-	Add beginnings of tests for g_hash_table_foreach[_remove] and
-	g_hash_table_remove.
-
-Sat Jan 23 20:40:06 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* gutils.c: removed the #warning about MT without getpwuid_r
-
-	* configure.in: and moved it here
-
-Sat Jan 23 22:45:59 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* ghash.c (g_hash_table_lookup_node, g_hash_table_lookup,
-		   g_hash_table_insert, g_hash_table_remove,
-		   g_hash_table_lookup_extended):
-	  - Fixed bug that overwrote nodes in hash buckets instead of
-	    adding them to the hash bucket node list.
-	    Hash tables now work as advertised.
-
-	(g_hash_table_resize):
-	  - Use g_new0 instead of manual init.
-	  - Space out code a bit for readability.
-
-	(g_hash_nodes_destroy):
-	  - Replaced "if (!hash_node) return;" with
-	    "if (hash_node) {do stuff}".
-	    Testing takes up less code space than explicit call to
-	    'return' before end of function.  (look at gcc -S)
-
-	Updated module header copyright to 1999.
-	New module macro G_HASH_BUCKET for (table,key)->bucket lookups.
-
-	* tests/hash-test.c:
-	- Add two new tests, one with strings as the keys and values, and
-	  one with ints as the keys and values.  Tests indirect (strings)
-	  and direct (ints) hashing.
-	- Cleanup unused junk left over from testglib.c.
-	- Converted a g_print call to g_assert_not_reached.
-	- Updated copyright to 1999.
-
-	* testglib.c, tests/string-test.c:
-	- Init 'tmp_string' var to NULL, silencing uninit-var warning.
-
-1999-01-23  Raja R Harinath  <harinath@cs.umn.edu>
-
-	* gutils.c (g_get_any_init) [HAVE_GETPWUID_R]:
-	Rewrite not to look at `errno' if library call succeeds, since
-	`errno' is not reset to 0.
-	
-Sat Jan 23 16:17:04 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* glibconfig.h.win32: Update the magic values for
-	pthread_mutex_t size and initializer bytes to match the
-	latest version of pthreads for Win32.
-
-Sat Jan 23 02:14:28 1999  Tim Janik  <timj@gtk.org>
-
-	* gutils.c (g_get_any_init): cleaned up the errno mess for
-	GETPWUID. we especially don't want to g_error() out here!
-	the warning for G_THREADS_ENABLED and !HAVE_GETPWUID_R isn't
-	gcc related.
-	if !HAVE_PWD_H and !NATIVE_WIN32, g_free the home dir before
-	resetting it to NULL, why are we doing this anyways?
-	reordered code a bit so we always provide defaults (except
-	for g_home_dir).
-
-Thu Jan 21 12:40:11 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* tests/{Makefile.am, string-test.c, strfunc-test.c}:
-	Separate string and strfunc tests, working towards goal of
-	having separate test for each of the GLib modules.
-	Add a couple GString length tests.
-
-Thu Jan 21 09:36:05 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* configure.in:
-	Use AC_PREREQ not AC_REQUIRE for autoconf version test.
-
-1999-01-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gutils.c (g_get_any_init): Changed error handling again, as the
-	error is not always set in errno, it is the return value on some
-	systems. What an evil world.
-
-Thu Jan 21 05:35:20 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* gstrfuncs.c: Include signal.h only when the signal names will be
-	needed.
-
-Wed Jan 20 22:09:59 EST 1999 Mandrake <mandrake@mandrake.net>
-
-	* configure.in / Makefile.am : made some adjustments for automake 1.4
-	and autoconf 2.13 (per suggestions made by  Raja R Harinath
-	<harinath@cs.umn.edu>)
-
-Wed Jan 20 20:33:14 EST 1999 Mandrake <mandrake@mandrake.net>
-
-	* autogen.sh: automake 1.4 and libtool 1.2d notices.
-	(maybe I'll write an actual test for automake 1.4 later)
-
-Wed Jan 20 15:05:25 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* HACKING: new file
-
-	* Makefile.am: since we require automake 1.4 now, ditch the build
-	top-level first and just use SUBDIRS
-
-	* gmodule/Makefile.am: use noinst_LTLIBRARIES instead of overriding
-	the install rule
-
-Wed Jan 20 16:16:01 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* gutils.c (g_get_any_init):
-	Revert previous patch, move error value set line down to proper
-	place.  Caught by Elliot Lee <sopwith@redhat.com>.
-
-Wed Jan 20 20:48:58 GMT 1999  Adam D. Moss  <adam@gimp.org>
-
-	* gutils.c (g_get_any_init): All gtk apps were broken
-	here on my setup.  I changed the error to a warning to at
-	least get things limping.
-
-1999-01-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gutils.c (g_get_any_init): Use getpwuid_r with the right
-	signature, if available.
-
-	* configure.in, acconfig.h: Test for existance of getpwuid_r and
-	its signature.
-
-Tue Jan 19 20:52:43 1999  Tor Lillqvist  <tml@iki.fi>
-	
-	* Makefile.am (EXTRA_DIST): Add new Win32 files.
-
-	* README.win32: Describe the conditional compilation macros.
-
-	* makefile.lcc: Removed.
-
-1999-01-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Moved test for localtime_r and rand_r to a place
-	after the determination of the G_THREAD_LIBS and use them for
-	finding those functions, necessary on systems with a different C
-	library libc_r for threaded progs, like FreeBSD 2.2.x. Info from
-	Timur Bakeyev <mc@bat.ru>.
-
-Tue Jan 19 00:44:24 1999  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
-
-	* gstrfuncs.c (g_strsignal): The "extern char* sys_siglist"
-	declaration breaks systems with different declarations, like
-	mine (FreeBSD).  So, I added a configuration variable to decide
-	whether the declaration is neccesary.  Change also appears on
-	line 275 of configure.in.
-
-Sun Jan 17 17:13:54 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.13
-
-	* README:
-	  INSTALL:
-	  docs/glib-config: ver=1.1.13
-
-Mon Jan 18 00:02:46 1999  Tim Janik  <timj@gtk.org>
-
-	* NEWS: updates for 1.1.13.
-
-Sun Jan 17 17:15:59 1999  Tim Janik  <timj@gtk.org>
-
-	* gtree.c (g_tree_traverse): removed assertion about rtree->root being
-	NULL, so this function can be applied to unpopulated trees as well, fix
-	provided by Simon Kagedal <sika8225@csd.uu.se>.
-
-Sun Jan 17 11:17:19 1999 Christopher Blizzard  <blizzard@appliedtheory.com>
-
-	* glib.spec: add packager address
-
-Sun Jan 17 11:10:05 1999 Christopher Blizzard  <blizzard@appliedtheory.com>
-
-	* glib.spec: increment version number to 1.1.13
-
-Sun Jan 17 16:14:03 1999  Tim Janik  <timj@gtk.org>
-
-	* glib.h (g_error): if !defined (G_LOG_DOMAIN) define G_LOG_DOMAIN as
-	((gchar*) 0) instead of ((void*) 0) to silence egcs C++ mode, reported
-	by Seth Alves <alves@hungry.com>.
-
-Sun Jan 17 14:13:52 1999  Tim Janik  <timj@gtk.org>
-
-	* glib.h: added a define G_HOOK_DEFERRED_DESTROY, to substitute a noop
-	GHookList.hook_destroy function.
-
-	* ghook.c (g_hook_destroy_link): don't really call hook_destroy if it
-	is G_HOOK_DEFERRED_DESTROY. for the case where we invoke hook->destroy()
-	we now clean up the hook completely afterwards, i.e. data, func and
-	destroy are immediately set to NULL and hook_free can't play with that
-	values anymore.
-
-	* gmain.c (g_source_add): set hook_destroy to G_HOOK_DEFERRED_DESTROY,
-	instead of using an ugly _noop() hack, this is to avoid an uneccessary
-	function invokation. set hook_free to g_source_destroy_func, this way
-	we always invoke the destroy notifiers for user_data and source_data
-	after execution of dispatch(). thus, g_source_destroy_func() will always
-	be called within the main_loop lock (this wasn't really assured
-	before), and can release and reaquire the look around destroy notifier
-	invokation.
-
-Sun Jan 17 11:01:40 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* config.h.win32 glibconfig.h.win32: Increment version number here
- 	also.
-
-Sun Jan 17 05:12:17 1999  Tim Janik  <timj@gtk.org>
-
-	* configure.in: incremented version number to 1.1.13, bin age 0,
-	interface age 0.
-
-	* glib.h: added hook_destroy member to struct _GHookList.
-
-	* ghook.c (g_hook_destroy_link): if the hook_list defines a hook_destroy
-	function, use that to marshal hook destruction notifiers.
-
-	* gmain.c: removed g_source_free_func and added g_source_destroy_func,
-	which marshalls the user_data and source_data destructors of sources
-	outside of the main_loop lock.
-	removed GIdleData struct since its sole member callback can be passed
-	as source_data directly.
-	added a gboolean return value to all g_source_remove* functions,
-	indicating whether the source could be removed, because these functions
-	don't issue warnings upon unseccessful removals themselves. this way at
-	least the caller gets a chance to warn upon failing removals.
-	(g_main_iterate): set in_check_or_prepare around calls to check() or
-	prepare().
-	(g_main_pending): simply return FALSE if called from within check() or
-	prepare().
-	(g_main_iteration): issue a warning if called from within check() or
-	prepare() and bail out with FALSE.
-	(g_main_run): likewise.
-	(g_source_remove_by_funcs_user_data): new function to remove sources by
-	user data and function table.
-	(g_idle_remove_by_data): new function to really remove idles only, since
-	g_source_remove_by_user_data would remove timeouts or other sources as
-	well.
-
-1999-01-16  Tor Lillqvist  <tml@iki.fi>
-
-	* Merge in current Win32 version:
-
-	* README.win32: More text.
-
-	* config.h.win32 glibconfig.h.win32: Update to match the
-	corresponding generated files on Unix.
-
-	* makefile.msc: Update with new source files, and gthread
- 	library. Use the compiler flag -MD instead of using -D_DLL and
-	/nodefaultlib:libc msvcrt.lib in the link phase.
-
-	* glib.def: Update to include new functions, drop removed ones.
-
-	* glib.h: Add comments about main loop and polling on Win32. (In
-	general, it's only for the GIMP's use.) Add Win32 IO Channel
-	functions. Remove the obsoleted old IO Channel stuff (which was
-	in #if 0 already).
-
-	* giowin32.c: New file.
-
-	* gmain.c: Include config.h, conditionalize <sys/time.h>
- 	inclusion.  Add g_poll implementation for Win32 (only for the
- 	GIMP's needs for now, it's hard or even impossible to be as clean
- 	and generic as on Unix). Implement g_get_current_time on Win32. If
- 	threads aren't supported, don't try to wake up main thread's
- 	loop. On Win32, use a semaphore and not a pipe to wake up the main
- 	loop.
-
-	* gmessages.c: On Win32, allocate a console window if the standard
-	output handle is invalid before writing to stdout, and reopen stdout
-	to that console window.
-
-	* giochannel.c: Conditionalize unistd.h inclusion. Some indentation
-	cleanup.
-
-	* gstrfuncs.c: Include <signal.h>.
-
-	* gutils.c: On Win32, also check the HOMEDRIVE and HOMEPATH
-	environment variables.
-
-Sun Jan 17 01:06:38 1999 Timur Bakeyev <mc@bat.ru>
-
-	* configure.in: Add support for FreeBSD 2.2.x macro _THREAD_SAFE.
-
-Wed Jan 13 11:27:24 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* glib.h: don't use inline for !__GNUC__ case with g_warning,
-	g_error, and g_message wrappers since some compilers throw
-	away arguments in this case
-
-Tue Jan 12 21:59:14 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* acinclude.m4
-	* ltconfig
-	* ltmain.sh: upgrade to libtool 1.2d (with fixes for irix6 and osf)
-
-	* testglib.c: removed unused cruft
-
-Tue Jan 12 09:57:06 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* gdate.c: #warning isn't portable, check for gcc
-
-1999-01-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-        * gdate.c: Include config.h to get HAVE_LOCALTIME_R macro.
-
-        * configure.in: Moved function check back to the place, they've
-        been before.
-
-1999-01-11  Jeff Garzik  <jgarzik@pobox.com>
-
-	* gstrfuncs.c:
-	Do not use vasprintf.
-
-	* configure.in, glib.h, testglib.c, tests/.cvsignore,
-	  tests/Makefile.am, tests/alloca-test.c:
-	Do not use alloca.
-
-1999-01-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Test for localtime_r only after including the
-	right MT enabling CFLAGS (i.e. -D_REENTRANT on most systems).
-
-	* configure.in: Find right thread system on DG/UX. Thanks to Marc
-	J. Fraioli <fraioli@dg-rtp.dg.com> for hint. Finally removed the
-	stuff for -fstack-check, that didnt work anyway.
-
-	* gdate.c (g_date_set_time): Emit warning, if no localtime_r
-	function is available on thread enabled systems. Define ptm only,
-	if really needed, and assert on it.
-
-Sat Jan  9 15:08:44 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* testglib.c:
-	Make all aux functions static.
-
-	* tests/Makefile.am, tests/dirname-test.c, tests/type-test.c:
-	New tests dirname-test and type-test, from testglib.
-
-Sat Jan  9 13:53:00 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* configure.in:
-	Add checks for vasprintf, localtime_r.
-
-	* gdate.c (g_date_set_time):
-	Use localtime if localtime_r is not available.
-
-	* gstrfuncs.c (g_strdup_vprintf):
-	Use glibc vasprintf if possible; it's a bit faster than using
-	GLib routines, and makes output code a bit smaller.
-
-	* acconfig.h:
-	Remove HAVE_VSNPRINTF and HAVE_VPRINTF.  autoheader picks these
-	up automatically and puts them in config.h.in.
-
-Thu Jan  7 15:14:08 1999  Owen Taylor  <otaylor@redhat.com>
-
-	* gmain.c (g_source_free_func): Call the source-specific
-	free function when the hook is freed not when it
-	is destroyed; this fixes a bug where a timeout destroyed
-	from itself would access already freed data.
-
-1999-01-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gutils.c (g_get_any_init): Here we must replace getpwuid by
-	getpwuid_r, but as I do not know how for now, I just made a FIXME
-	note ;-)
-
-	* gdate.c (g_date_set_time): localtime --> localtime_r to make it
-	thread safe.
-
-	* configure.in: We do not need to check for broken solaris mutex
-	intitializer any longer. Provide a macro to show the used thread
-	implementation. Not nice, but this is needed until thread support
-	is completed here inside glib.
-
-Tue Jan  5 12:23:52 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* configure.in: ditch whitespace before GLIB_SYSDEFS #includes,
-	the # needs to be in column 1
-
-	* gthread/testgthread.c: cleanups
-
-	* tests/node-test.c: #include unistd.h for exit()
-
-1999-01-04  Andrew T. Veliath  <andrewtv@usa.net>
-
-	* glib.h (g_array_insert_val): fix macro to be shorthand of
-	g_array_insert_vals.
-
-Mon Jan  4 15:35:29 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* acglib.m4: some echos interpret \n's and some don't. Deal with
-	accordingly.
-
-Mon Jan  4 20:58:50 1999  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c: eliminated extraneous "register" qualifiers in variable
-	declarations.
-
-	* gmain.c: #undef events and revents which may have been defined in
- 	sys/poll.h for SVR3,4 compatibility on some AIX systems. fix been
-	provided by Philippe Defert <Philippe.Defert@cern.ch>.
-
-Mon Jan  4 14:38:11 1999  Tim Janik  <timj@gtk.org>
-
-	* glib.h: adjusted the g_strdup_a, g_strndup_a and g_strconcat3_a macros
-	so their arguments get only evaluated once. changed g_strconcat3_a to
-	have the same semantics as g_strconcat, i.e. if a certain argument is
- 	NULL, the rest of the parameter list is skipped.
-
-	* tests/alloca-test.c: removed #if/#endif G_HAVE_ALLOCA, we need to be
- 	able to compile on all systems. added test for g_strconcat() semantics.
-
-	* we need a alloca() replacement for !G_HAVE_ALLOCA rsn!
-
-Mon Jan  4 02:58:13 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-        * Released GLib 1.1.12
-
-        * INSTALL:
-          NEWS:
-          README:
-          configure.in:
-	  glib.spec:
-          docs/glib-config.1: version=1.1.12
-
-	* tests/Makefile.am: fixed so it works properly with
-	  builddir and srcdir.
-
-Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* tests/Makefile.am:
-	add array-test.c, tree-test.c
-
-	* tests/array-test.c, tests/tree-test.c:
-	New module, tests array family
-
-	* tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
-	  tests/string-test.c, tests/node-test.c:
-	Clean out cruft left over from testglib.
-
-Sat Jan  2 22:42:25 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* Makefile.am, configure.in, tests/*:
-	Added 'make check' tests, based on testglib code.
-
-Sat Jan  2 19:52:45 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* glib.h, testglib.c:
-	Added g_alloca, g_new_a, g_new0_a macros.
-
-Sat Jan  2 16:45:44 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* testglib.c: Added g_strdup_printf check.
-
-Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* glib.h:
-	(g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
-	s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
-
-	* testglib.c:
-	Added g_strdup, g_strconcat checks.
-	Added str==NULL checks for alloca string macros.
-	s/g_strconcat_a/g_strconcat3_a/
-
-Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
-
-	* testglib.c: made the alloca tests follow the testglib style
-
-	* Makefile.am: minor cleanups, mostly cosmetic
-
-Fri Jan  1 20:43:19 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* glib.h: added g_strndup_a macro
-
-	* testglib.c:
-	Added tests for new alloca-based string routines.
-	Reformatted a couple strings.
-
-Sat Jan  2 02:20:59 1999  Tim Janik  <timj@gtk.org>
-
-	* ghook.c:
-	(g_hook_list_invoke):
-	(g_hook_list_invoke_check):
-	(g_hook_list_marshal_check):
-	(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
-	explicit hook referencing became unneccessarry with my changes from
-	Mon Dec 21 21:48:29 1998).
-
-	* gmain.c (g_main_iterate): fixed reference counting leaks with
- 	premature loop aborts.
-
-Fri Jan  1 22:47:44 1999  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
-	as G_TOKEN_IDENTIFIER.
-
-Fri Jan  1 17:09:19 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-	* configure.in, glib.h:
-	Added two new alloca-based function macros, g_strdup_a and
-	g_strconcat_a.	These are stack-based and much faster than
-	their g_malloc-based counterparts.  Kudos to Ulrich Drepper
-	for help on this one.
-
-Wed Dec 30 18:24:57 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-        * Released GLib 1.1.11
-
-        * INSTALL:
-          NEWS:
-          README:
-          configure.in:
-          docs/glib-config.1: version=1.1.11
-
-1998-12-30  Raja R Harinath  <harinath@cs.umn.edu>
-
-	* glib.h (G[U]INT64_FROM_{LE,BE}):
-	Define to G[U]INT64_TO_{LE,BE}, not G[U]INT32_TO_{LE,BE}.
-
-Fri Dec 25 19:56:33 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* acglib.m4
-	* configure.in: provide defaults for POLL sysdefs, simple enums
-	don't work with bitwise logic. Reported by Daniel Skarda
-	<0rfelyus@atrey.karlin.mff.cuni.cz>
-
-Wed Dec 23 00:43:25 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* INSTALL:
-	  NEWS:
-	  README:
-	  configure.in:
-	  docs/glib-config.1: version=1.1.10
-
-Wed Dec 23 04:18:11 1998  George Lebl  <jirka@5z.com>
-
-	* gmain.c: (g_get_current_time) don't cast to timeval since
-	  timeval is for some reason not always a struct of longs, weird
-
-Tue Dec 22 10:32:11 1998  Tim Janik  <timj@gtk.org>
-
-	* ghook.c (g_hook_first_valid): fixed buglet that could cause bogus
-	warnings.
-
-Mon Dec 21 21:48:29 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gmain.c: there was a reference count race for hooks during invocation
-	loops. since all (known) hook loop implementations, do currently start
-	out with g_hook_first_valid() and iterate with g_hook_next_valid(),
-	g_hook_first_valid() will now return a referenced hook, and
-	g_hook_next_valid() will "eat" that, and eventually transfer it to
-	the next hook. <sigh> unfortunately this requires g_hook_next_valid()
- 	to take the hook_list as additional argument.
-
-	* gmain.c (g_main_iterate): adjusted callers of g_hook_next_valid().
-
-Mon Dec 21 03:48:04 1998  Tim Janik  <timj@gtk.org>
-
-	* gmain.c (g_main_iterate): default initialize source_timeout with -1
-	so we have a sane timeout value if (*prpare) doesn't set it.
-
-Sat Dec 19 16:56:02 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* glib.h gmain.c (G_PRIORITY_LOW): Add #defines defining
-	scale of priorities.
-
-Sat Dec 19 16:56:02 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* gmain.c (g_main_poll): Allocate space for pollfd's
-	_after_ adding poll wake-up-pipe record.
-
-	* gmain.c (g_main_add_poll): Changed name
-	of internal function g_main_add_poll_unlocked()
-	back from the non-sensical g_main_add_unlocking_poll().
-
-Sat Dec 19 06:25:55 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.m4: fixed a minor bug that would let configures bail out
-	if the MODULES argument contained newlines.
-
-	* acglib.m4: new file to be included by configure.in. it holds
-	special GLIB_ autoconfiguration macros, eventually some of the
-	easier ones should be moved into glib.m4, e.g. GLIB_IF_VAR_EQ,
-	GLIB_STR_CONTAINS or GLIB_ADD_TO_VAR.
-
-Sat Dec 19 04:27:17 1998  Tim Janik  <timj@gtk.org>
-
-	* fixed up sys/poll.h and sys/types.h inclusions.
-
-Sat Dec 19 03:10:50 1998  Tim Janik  <timj@gtk.org>
-
-	* fixed up gthread includes, cleaned up glibconfig.h a little bit.
-
-Fri Dec 18 12:51:39 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* gmain.c: Fix errors in computation of timeout
-	expiration times > 1sec.
-
-1998-12-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in (have_threads): Changed the last pthread_cond_init
-	to pthread_attr_init.
-
-Fri Dec 18 00:03:17 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gmain.c:
-	(g_main_is_running): new function to check whether a main loop has been
-	quitted.
-	(g_main_new): added a gboolean argument to determine whether the loop
-	should be considered initially running or not. however, g_main_run ()
- 	will still reset the main loops running state to TRUE upon initial
- 	entrance.
-
-	* gmain.c:
- 	(g_main_iterate): documented this function's purpose in 5 steps.
- 	for step 2), flag sources as G_SOURCE_READY even if !dispatch and
-	check G_SOURCE_READY prior to (*prepare), so we don't call (*prepare)
- 	on them multiple times.
-
-Thu Dec 17 23:43:47 1998  Tim Janik  <timj@gtk.org>
-
-	* gmain.c (g_main_add_poll): reordered arguments, so GPollFD* comes
-	first, <sigh> (sorry Snorfle, i should have let you know in the first
- 	place).
-	(g_main_dispatch): stack G_HOOK_FLAG_IN_CALL flags. call source's
-	destructor when destroying a source.
-
-1998-12-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* garray.c (g_ptr_array_remove_index): Fixed size in g_memmove,
-	reported by Alexander Larsson <alla@lysator.liu.se>.
-
-	* gmem.c: Fixed bug, that made compile fail for -DENABLE_MEM_PROFILE.
-
-Wed Dec 16 23:04:26 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.9
-
-	* INSTALL:
-	  NEWS:
-	  README:
-	  configure.in:
-	  glib.spec:
-	  docs/glib-config.1: version=1.1.9
-
-Wed Dec 16 22:32:13 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* glib.h:
-	  giounix.c: s/g_main_poll_add/g_main_remove_add/g
-                     s/g_main_poll_remove/g_main_remove_poll/g
-                     s/g_main_poll_add_unlocking/g_main_add_unlocking_poll/g
-          (from Tim Janik)
-
-Wed Dec 16 20:04:10 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* configure.in: check for pthread_attr_init in all cases, du4
-	needs this since most of the other functions are just #defines
-
-Thu Dec 17 04:10:49 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h (G_LOCK_DECLARE_*): if !G_THREADS_ENABLED, eat the
-	trailing semicolon with a bogus function declaration, instead
-	of with a bogus variable declarations, so we avoid unused
-	variable warnings.
-
-Wed Dec 16 07:49:16 PST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.8  (CVS tag is GLIB_1_1_8a)
-
-1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* giounix.c (g_io_channel_unix_get_fd): Fixed small bug.
-
-1998-12-16  Joel Becker  <jlbec@ocala.cs.miami.edu>
-
-	* glib.h, gscanner.c: changed func_data to user_data in
-        g_scanner_scope_symbol_foreach and associated friends, because
-	AIX headers #define func_data.
-
-1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Fixed stupid bug, that made
-	g_static_mutex_lock(*mutex) not work as expected.
-
-	* docs/glib-config.1: Updated to reflect the existence of gthread.
-
-	* gmain.c (g_main_poll_add_unlocking): Changed
-	g_main_poll_add_unlocked to g_main_poll_add_unlocking to match
-	semantic, (indeed, main_loop must be locked, when calling this
-	function). Removed the unlocking from the end of that function, as
-	that is not right. Made a 'HOLDS' comment above the function.
-
-Wed Dec 16 03:16:58 1998  Tim Janik  <timj@gtk.org>
-
-        * configure.in: version bump to 1.1.8, binary age 0, interface age 0.
-
-	* glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
-	g_trylock() to G_TRYLOCK(), since these are macros that expand to
-	nothing with --disable-threads.
-	changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
- 	G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
-	changed semantics of g_thread_supported to g_thread_supported() so it
-	can be used as a function like g_module_supported(). the actuall
-	definition is still a macro that expands into a variable for
- 	performance reasons though.
-	various indentation and coding style cleanups.
-
-	* configure.in: added --enable-threads that defaults to yes.
-
-	* gmutex.c: changed tests g_thread_supported to g_thread_supported (),
-	changed variable settings of g_thread_supported
- 	to g_threads_got_initialized.
-
-	garray.c:
-	gcache.c:
-	gdataset.c:
-	gdate.c:
-	ghash.c:
-	glist.c:
-	gmain.c:
-	gnode.c:
-	gslist.c:
-	gstring.c:
-	gtree.c:
-	gutils.c:
-	changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
- 	s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
-
-Tue Dec 15 23:16:05 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* INSTALL:
-	  NEWS:
-	  README
-	  configure.in:
-	  glib.spec:
-	  docs/glib-config.1: Incremented version
-
-Wed Dec 16 22:29:48 1998  Joel Becker  <jlbec@ocala.cs.miami.edu>
-
-	* configure.in: fixed the AIX thread checking.
-	Just an error on the wildcard.  BTW, -D_THREAD_SAFE
-	is correct for AIX.
-
-Wed Dec 16 02:02:48 1998  Tim Janik  <timj@gtk.org>
-
-	* glib-config.in (lib_glib): fixed library and flag ordering for
-	--libs
-
-Tue Dec 15 17:17:46 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* glib.h giounix.c giochannel.c: Use an "inheritance"
-	scheme for IO channel memory allocation.h
-
-1998-12-15  Havoc Pennington  <hp@pobox.com>
-
-	* gdate.c (g_date_prepare_to_parse): Solaris has a broken strftime
-	that produced garbage output for the test date I was using to
-	set up the parser. So use a different date that Solaris seems
-	to like.
-
-1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: Dont complain, if --without-threads or
-	--with-threads=none is supplied; Test for pthread_attr_init
-	instead of pthread_cond_init, if threads seems to be supported by
-	standard glib. (CFLAGS): Use G_THREAD_CFLAGS for compiling of glib
-	as well.
-
-	* glib.h, gmutex.c: Changed private to private_key to avoid
-	problems when compiling with under C++.
-
-1998-12-15  Jeff Garzik  <jgarzik@Pobox.com>
-
-	* configure.in:
-	bugfixes, correctly support --without-threads and friends
-
-	* gthread/testgthread.c: corrected 64-bitness problem
-
-Tue Dec 15 10:40:09 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* gnode.c glist.c gslist.c: Make sure all
-	calls to g_node_validate_allocator are within
-	current_allocator lock, so we have consistency
-	on that point. (Should not really matter,
-	but this way we match the comments)
-
-	* glist.c (g_list_free_1): Removed some lines
-	that should never have been committed. (For
-	debugging)
-
-1998-12-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gthread/gthread-nspr.c, configure.in: Added new default thread
-	implementation on top of the mozilla nspr library.
-
-	* gmem.c, gmessaged.c, gthread/gthread.c, gthread/gthread-*.c:
-	Changed GStaticMutex and GStaticPrivate in gmem.c and gmessages.c
-	into GMutex and GPrivate resp. to make error reporting and use of
-	gmem possible in most (not all, though) gthread functions. Also
-	initialized the modules via new init functions.
-
-	* configure.in: Fixed syntax bug in definition of type
-	GStaticMutex.
-
-	* gthread/testgthread.c: Updated to work with nspr, but see note
-	there for remaining problems.
-
-1998-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gmutex.c, glib.h: Now abort, if a mutex/cond/private is
-	allocated before the thread system is set up.
-
-	* gthread/gthread.c (g_thread_init): Removed g_thread_try_init(),
-	as it is not necessary. Changed the error message. Corrected logic
-	for g_thread_use_default_impl.
-
-	* gmutex.c (g_mutex_init): Keep the thread private data array
-	after calling g_thread_init().
-
-1998-12-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gthread/testgthread.c (new_thread): Now also working for posix
-	threads; (wait_thread): Now a better implementation, that does not
-	use 100% CPU.
-
-	* Made the thread related code follow GNU coding standard.
-
-	* Made a comment (HOLDS:) above each function, that expects the
-	given locks to be held.
-
-	* Changed try_lock to trylock throughout.
-
-	* glib.c: Eventually removed the #if 0'ed code for old GStaticMutex.
-
-	* glib.c: Corrected g_trylock macro for G_DEBUG_LOCKS.
-
-	* gmain.c (g_main_poll_add_unlocked): first take a new poll record
-	form the poll_free_list.
-
-	* gmem.c, gstrfuncs.c, gutils.c: Made it MT safe.
-
-	* gthraed/*.c: Added copyright headers.
-
-	* gthread/gthread-solaris.c: do not use g_log for errors, as g_log
-	uses these module and endless recursions might happen, just use a
-	plain fprintf(stderr,...).
-
-	* gthread/gthread.c (g_thread_try_init): Call g_mutex_init().
-
-	* gthread/testgthread.c: updated test program.
-
-Tue Dec  8 18:49:56 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* Start at adding thread-safety. (mostly work
-	of Sebastian Wilhelmi <wilhelmi@ira.uka.de>)
-
-	- configure.in now looks for a system thread implementation.
-	Currently support is included for POSIX threads
-	and Solaris threads. The default support is built
-	into a separate library -lgthread.
-
-	- The thread implementation can be modified by passing
-	a vector of functions g_thread_init().
-
-	- The default or supplied functions are used to
-	implement a small set of thread functions for
-	mutexes, condition variables, and thread-private
-	data.
-
-	- GLib now uses these functions to provide thread
-	safety. (In the sense that all global static
-	data is locked... individual structures must still
-	be locked by the caller.)
-
-Sat Dec 12 19:08:59 1998  Tim Janik  <timj@gtk.org>
-
-	* configure.in: always define G_HAVE_INLINE if __cplusplus is
- 	defined, reported by Wan-Teh Chang <wtc@netscape.com>.
-
-Thu Dec 10 21:49:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.7
-
-	* INSTALL:
-	  NEWS:
-	  README:
-	  configure.in:
-	  glib.spec:
-	  docs/glib-config.1: Increased version to 1.1.7
-
-Wed Dec  9 22:44:44 EST 1998 Joel Becker <jlbec@ocala.cs.miami.edu>
-
-	* Removed #define of G_COMPILED_WITH_DEBUGGING from glibconfig.h
-	It shouldn't be there, and it was causing a double #define.
-        (config.h defines it also)
-
-Tue Dec  8 12:18:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.6
-
-	* NEWS: updated
-
-Mon Dec  7 23:10:41 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* gmain.c: fixes to #undef HAVE_POLL case
-
-1998-12-02  Havoc Pennington  <hp@pobox.com>
-
-	* gdate.c (g_date_set_month): If Julian is valid, we have to
-	update the dmy representation before setting the components
-	of it.
-	(g_date_set_day): Same.
-	(g_date_set_year): Same.
-
-1998-12-02  Havoc Pennington  <hp@pobox.com>
-
-	* testgdate.c, testgdateparser.c: Two new files. This is kind of
-	ugly code, but I want to go ahead and make the tests available.
-	It isn't contaminating any other code. :-) Since one of these
-	is interactive and the other takes a while to run, I've kept
-	them separate from testglib for now.
-	* Makefile.am: Build gdate test programs.
-
-1998-12-02  Havoc Pennington  <hp@pobox.com>
-
-	* gdate.c (g_date_valid): Rely on GDate::dmy and GDate::Julian
-	flags, rather than re-checking the validity of the actual
-	values. This should be the correct behavior, the old way was
-	leftover cruft.
-
-	* glib.h, gdate.c: Changed MDY to DMY throughout.
-
-Sat Nov 28 12:53:47 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* Makefile.am configure.in acconfig.h giochannel.c
-	  glib.h glist.c gmain.c gutils.c:
-
-        - Revised GIOChannel to provide a generic virtual-function
-  	  based interface.
-	- Added unix fd-based GIOChannel's
-	- Added generic main-loop abstraction
-	- Added timeouts and idle functions using main-loop abstraction.
-
-1998-12-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* glib.h:
-	* gdate.c: changed `gpointer struct_tm_p' parameter of
-	g_date_to_struct_tm back to `struct tm *tm' and forward declared
-	`struct tm' in glib.h; yes, this is nice, we still need not
-	include time.h.
-
-Tue Dec  1 23:01:44 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* INSTALL:
-          NEWS:
-	  README:
-	  glib.spec:
-	  docs/glib-config.1: Incremented versions to 1.1.6.
-
-Wed Dec  2 02:10:59 1998  Tim Janik  <timj@gtk.org>
-
-	* gdate.c: s/time_t/GTime/ and s/g_print/g_message/
-	include time.h.
-
-	* glib.h: removed #include <time.h>, changed time_t paramter of
- 	g_date_set_time() to time_t, changed struct tm parameter of
-	g_date_to_struct_tm to `gpointer struct_tm_p'. yes, this is not
-	nice, but including time.h actually breaks a bunch of code.
-
-	* incremented GLib version to 1.1.6.
-
-1998-11-30  Havoc Pennington  <hp@pobox.com>
-
-	* gdate.c: New file, implements calendrical calculations.
-
-	* glib.h: Added declarations for GDate module.
-
-Mon Nov 30 07:12:10 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* ghook.c: added g_hook_list_marshal_check() to eventually destroy
-	hooks after they got marshalled.
-
-Sun Nov 29 17:31:43 EST 1998  Jeff Garzik  <jgarzik@pobox.com>
-
-	* configure.in, Makefile.am, gmodule/Makefile.am:
-	Put -DFOO stuff into Makefile.am INCLUDES.
-
-Sun Nov 29 14:17:09 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* configure.in: put debug -DFOO stuff into CPPFLAGS, not CFLAGS,
-	so CFLAGS can be overridden at make time properly
-
-Sat Nov 28 01:23:25 1998  Tim Janik  <timj@gtk.org>
-
-	* ghash.c: implemented incremental freezing facility.
-
-Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
-	since it's to specialized and needs to be resolved in a generic
-	fashion.
-
-Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* applied glib-tml-981120-0, change log appended below.
-
-	* glibconfig.h.win32: passthrough 64-bit constants unchanged, VC++
-	infers them
-
-Fri Nov 20 22:26:43 1998  Tor Lillqvist  <tml@iki.fi>
-
-        * glib.h: Moved MSC pragmas from glib.h to glibconfig.h.win32.
-        peer_offset field in WIN32 part of GIOChannel removed, need_wakeups
-        added. Added "extern" to __declspec(dllimport).
-
-        * gutils.c: Initialise need_wakeups.
-
-        * glibconfig.h.win32: Pragmas moved here. Define G_GINT64_CONSTANT.
-
-        * gmodule/gmodule.def: Added g_module_build_path.
-
-        * gscanner.c: (g_scanner_cur_value) Move initailisation of v
-        to before its use.
-
-        * glib.def: Added g_(s)list_sort.
-
-        * makefile.msc: A few more comments.
-
-Tue Nov 24 14:05:47 EST 1998	Michael K. Johnson <johnsonm@redhat.com>
-
-	* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
-	prototype.
-	* ghash.c: added g_hash_table_set_key_freefunc() implementation.
-	Modified the prototypes of the functions g_hash_node_destroy() and
-	g_hash_nodes_destroy(), and changed the functions that call them
-	to match the new definitions.
-	This changes no external interfaces, and should create no binary
-	or source incompatibilities.  It does add a member to the
-	GHashTable structure.
-
-Tue Nov 24 09:40:00 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: removed the GListAllocator type and its g_*_allocator_*()
- 	function variants (which weren't working anyways) in favour of a
- 	generic GAllocator type. new functions:
-	g_allocator_new, g_allocator_free, g_slist_push_allocator,
-	g_slist_pop_allocator, g_list_push_allocator, g_list_pop_allocator,
-	g_node_push_allocator and g_node_pop_allocator.
-
-	* gstring.c: removed bogus slist allocator code.
-	* gtree.c: maintain own list of free tree nodes and don't waste
-	GSLists for that, removed bogus slist allocator code.
-	* glist.c: use GAllocators for node allocation.
-	* gslist.c: use GAllocators for node allocation.
-	* gnode.c: use GAllocators for node allocation.
-
-	* gdataset.c: cleanups wrt automatic initialization.
-
-Mon Nov 23 10:03:58 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* glib.h garray.[ch]: added g_array_insert_vals() to
-	insert elements at an arbitrary index, and
-	g_array_insert_val() macro.
-
-Sun Nov 22 17:07:03 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gslist.c: new function g_slist_copy() to duplicate a list with all its
-	data pointers.
-	* glist.c: new function g_list_copy.
-
-Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* INSTALL:
-	  NEWS:
-	  README:
-	  configure.in:
-	  glib.spec: Updated to version 1.1.5
-
-	* Released GLib 1.1.5
-
-Wed Nov 18 1998 Elliot Lee <sopwith@redhat.com>
-
-	* gdataset.c: There was a code path into g_data_set_internal
-	  through a function (g_datalist_id_set_full). Neither function
-	  checked for g_dataset_init having been run, but
-	  g_data_set_internal used the memchunk. I added
-	  a check into g_data_set_internal so it will do the
-	  initialization if needed. (There's probably a better way.)
-
-Mon Nov 16 07:48:06 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h (g_bit_nth_msf): fixed off-by-one error, so we don't waste
-	a loop iteration if (-1) was passed, reported by Andreas Bombe
- 	<andreas.bombe@munich.netsurf.de>.
-
-Fri Nov 13 15:17:34 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* glist.c gslist.c glib.h: Added g_list_sort() and
-	g_slist_sort() to merge sort GLists and GSLists.
-	Submitted by Sven Over <sven.over@ob.kamp.net>
-	over a year ago!
-
-	* testglib.c: Test the new sort functions.
-
-Wed Nov 11 23:23:22 EST 1998 Jeff Garzik <jgarzik@pobox.com>
-
-	* Makefile.am : INCLUDES is the right way to add to CFLAGS, not
-	DEFS.  Also there are bugs with '+=' in makefiles.
-	Got rid of DEFS line by moving G_LOG_DOMAIN setting into INCLUDES.
-	Removed redundant -I from INCLUDES.
-
-Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
-
-	* docs/*.sgml : Batch of new documentation that should be easier
-	to maintain and extend. Plus generate whatever sort of doc file
-	you would like. I didn't change the Makefile stuff as I'm not sure
-	what default doc type people want. Oh and this is all DocBook format.
-	Enjoy!
-
-Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* configure.in: use __extension__ for long long on gcc >= 2.8 and
-	egcs, and provide a G_GINT64_CONSTANT wrapper so -ansi -pedantic
-	compiles clean.
-
-	* glib.h: make the endian x86 asm __const__ so the compiler can do
-	better optimizations. Also remove the cc clobber, these shouldn't
-	be changing condition codes. Ditch some redundant casts. Add an
-	optimization for 64-bit endian conversions in x86. Use constant
-	wrapper for the generic method.
-
-	* testglib.c: use constant wrappers for 64-bit constants
-
-1998-11-04  Phil Schwan  <pschwan@cmu.edu>
-
-	* configure.in: Added 'strncasecmp' to the list of functions to be
-	searched for.
-	* glib.h: Added a prototype for 'g_strncasecmp'
-	* gstrfuncs.c: (g_strncasecmp) new function modeled closely after
-	'g_strcasecmp'
-
-Wed Nov  4 15:06:44 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* config.h.win32 (new file)
-	* glibconfig.h.win32
-	* glib.def
-	* makefile.msc: applied glib-tml-981104, win32 sync
-
-1998-11-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* glib.h:
-	* garray.c:
-	(g_array_remove_index): new function for removing an entry from an
-	array while preserving the order
-	(g_array_remove_index_fast): new function for removing an entry
-	from an array. the order might be distorted
-	(g_ptr_array_remove_index_fast, g_ptr_array_remove_fast): new
-	functions; working similiar to the above. (they have the semantic
-	of the old g_ptr_array_remove[_index] functions)
-	(g_ptr_array_remove_index, g_ptr_array_remove): new semantic. now
-	the order of the elements in the array is not changed
-	(g_byte_array_remove_index, g_byte_array_remove_index_fast): new
-	functions; byte_array wrapper for g_array_remove_index[_fast]
-
-Sun Nov  1 23:00:18 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h
-	* configure.in: endian macros defined using the glibconfig.h
-	mechanism now
-
-	* ghook.c: casts for GHookFunc and GHookCheckFunc to avoid warnings
-
-Sat Oct 31 20:14:22 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog
-	entry appended below)
-
-	* testglib.c
-	* gstrfuncs.c
-	* glib.h: use G_HAVE_GINT64, since HAVE_GINT64 is gone
-
-	* gmessages.c
-	* gscanner.c: #include <config.h> in here too, for HAVE_UNISTD_H
-
-1998-11-01 Tor Lillqvist <tml@iki.fi>
-
-	* glib.def: Added the new functions.
-
-	* gutils.c:
-	(g_getenv): Better implementation on Win32. No loop necessary.
-	(g_get_any_init): Use P_tmpdir if defined as tmp directory. Don't
-	set home dir always to NULL on Win32.  Don't use tmp directory as
-	last resort home directory, but return NULL if no home
-	directory is known (application must check).
-
-	* makefile.msc: Better touch command, just COPYing a single file
-	sets the timestamp from that file, which isn't what touching should
-	do.
-
-1998-10-31  Raja R Harinath  <harinath@cs.umn.edu>
-
-	Land glib-rrh-19981025-0.patch.
-	* Makefile.am (glibconfig.h): New rule.
-	(stamp-gc-h): New rule.  Generate `glibconfig.h'.
-	* configure.in (AM_CONFIG_HEADER): It is now `config.h'.
-	(HAVE_BROKEN_WCTYPE): On Solaris, look for iswalnum in -lw before
-	concluding "broken wctype".
-	(glibconfig.h): Use AC_OUTPUT_COMMANDS to put generation code into
-	config.status.
-	* glib.h: Remove a lot of tests and defines.  All these have been
-	moved to `configure.in (glibconfig.h)'.
-	* gerror.c: Include <config.h>.
-	* gmem.c: Likewise.
-	* gstrfuncs.c: Likewise.
-	* gutils.c: Likewise.
-
-Sat Oct 31 05:08:26 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
-	added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
- 	G_STRUCT_MEMBER() for handling structure fields through their offsets.
-	(struct _GHookList): added a hook_free function member, that can be used
-	to free additional fields in derived hook structures.
-	g_hook_free(): if hook_list->hook_free != NULL, call this function prior
-	to freeing the hook. (this functionality should have been there in the
-	first place, it just got forgotten as an implementation detail).
-
-Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
-	<robert@physiol.med.tu-muenchen.de>
-
-Tue Oct 27 07:25:53 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gscanner.c:
-	(g_scanner_sync_file_offset): new function for file input.
-	rewind the filedescriptor to the current buffer position and blow
- 	the file read ahead buffer. usefull for third party uses of our
- 	filedescriptor, which hooks onto the current scanning position.
-	(this became neccessary with the implementation of buffered
-	reads).
-	(g_scanner_input_file):
-	(g_scanner_input_text): automatically blow the read ahead buffer.
-	(g_scanner_get_char): blow the read ahead buffer when the end of
-	input is reached, i.e. a '\000' char is read.
-
-Tue Oct 27 00:27:31 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h: get rid of duplicate #g_htonl and friends in the
-	NATIVE_WIN32 part
-
-Mon Oct 26 22:42:01 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* glibconfig.h.win32
-	* gutils.c
-	* makefile.msc: win32 patch from Tor Lillqvist (glib-tml-981027-0),
-	fixes some minor win32 buglets
-
-Mon Oct 26 22:12:03 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h: reimplemented the endian stuff, using inline asm
-	for x86. #define g_htonl and friends.
-
-	* testglib.c: new tests for the endian stuff
-
-	* configure.in: care for AIX in gmodule linker flags test (from
-	Joel Becker <jlbec@raleigh.ibm.com>). Check $host_os for linux
-	instead of existance of /usr/include/linux
-
-	* gutils.c: buh-bye evil warning. Thou hast been #ifdef'd out
-	of thine existance!
-
-Tue Oct 27 03:00:50 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: removed dummy structure definitions for struct _GCache,
- 	_GTree, _GTimer, _GMemChunk, _GListAllocator and _GStringChunk.
-
-	* gutils.c: implement glib's inline functions _after_ all include
- 	statements have been processed.
-	removed Tor's MAXPATHLEN check since there already was one supplied
-	further down in this file.
-	(LibMain): special cased the #ifdef __LCC__ case for NATIVE_WIN32,
- 	since lcc maybe used on other platforms as well. why in hell is this
-	stuff required?
-	(g_get_any_init): for windows, if the user name is supplied, use it as
-	realname also.
-	in general, if there is no homedir specified, use the tmpdir that
-	we already figured.
-
-	* gtimer.c (g_timer_elapsed): changed a g_assert() statement to
- 	g_return_if_fail().
-
-	* applied glib-tml-981020-0.patch for WIN32 portability, added some
-	comments and g_return_if_fail() statements, minor indentation fixes.
-	ChangeLog entry from Tor Lillqvist is appended.
-
-	* glib.h (struct dirent): use lower case structure members.
-
-	* glib.h:
-	* makefile.lcc:
-	* makefile.msc:
-	s/COMPILING_GLIB/GLIB_COMPILATION/
-
-1998-10-20: Tor Lillqvist <tml@iki.fi>
-
-	* README.win32 glib.def gmodule.def
-	* glibconfig.h.win32 gmodule/gmoduleconf.h.win32:
-	New files for the Windows port. The .def files list exported
-	symbols for the Microsoft linker and compatibles.
-
-	* configure.in:
-	Added checks for some platform-dependent headers: pwd.h sys/param.h
-	sys/select.h sys/time.h sys/times.h unistd.h, and the function lstat.
-
-	* gerror.c:
-	Conditionalized inclusion of system-dependent headers. Changes
-	for Windows: no gdb to do a stack trace. Just call abort().
-
-	* glib.h:
-	Changes for Windows:
-
-	Added macros G_DIR_SEPARATOR, G_DIR_SEPARATOR_S for
-	platform-dependent file name syntax elements. Added macros
-	G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S for
-	platform-dependent search path syntax conventions.
-
-	Added pragmas for Microsoft C to make it more pedantic.
-
-	Marked GLib's global variables for export from DLL.
-
-	Added the function g_strescape that escapes backslashes.
-
-	Added functions g_path_is_absolute and g_path_skip_root to
-	handle platform-dependent file name syntax.
-
-	Added the function g_getenv that expands environment variables
-	that contain references to other environment variables, as is
-	typical on Windows NT.
-
-	Added the GIOChannel structure which is used to encapsulate the
-	IPC mechanism used by the GIMP's plug-ins, and possibly other
-	things later. On Unix a GIOChannel encapsulates just a file
-	descriptor. On Windows it contains a file handle from _pipe() and a
-	few other things related to the implementation of gdk_input_add
-	and GIMP plug-in communication. Subject to change.
-
-	Removed duplicate declarations of the version variables.
-
-	For the Microsoft compiler, declare own implementation of
-	ftruncate and the <dirent.h> functions.
-
-	* gmem.c:
-	Define a symbolic name  for the profiling table size.
-
-	* gmessages.c:
-	Conditionalized inclusion of unistd.h. On Windows, output using
-	stdio to stdout.
-
-	* gscanner.c:
-	Conditionalized inclusion of unistd.h. Added changes for
-	Microsoft C. Added CR to the skipped character set. Added small
-	workaround for MSC compiler bug in g_scanner_cur_value.
-
-	* gstrfuncs.c:
-	Added the function g_strescape, which escapes the backslash
-	character. Needed especially when printing Windows filenames.
-
-	* gtimer.c:
-	Conditionalized inclusion of unistd.h and sys/time.h. Added
-	implementations for Windows.
-
-	* gutils.c:
-	Conditionalized inclusion of platform-dependent headers. Use
-	the platform-independent file name syntax macros.
-	Conditionalize code on platform-dependent features. Added the
-	functions g_path_is_absolute g_path_skip_root and g_getenv.
-	Added the GIOChannel-related functions. Added
-	compiler-dependent Unix compatibility functions for Windows.
-
-	* makefile.lcc makefile.msc:
-	New files. Compiler-specific makefiles for LCC-Win32 and
-	Microsoft C. Only Microsoft C is actually supported currently.
-
-	* testglib.c:
-	Added pathname check cases for Windows. Added workaround for
-	bug in the Microsoft runtime library. Improved some tests a bit.
-
-Sun Oct 25 01:24:01 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.4
-
-	* docs/Makefile.am:
-	* docs/.cvsignore
-	* docs/glib-config.1:
-	* docs/glib.texi: Moved docs from gtk and created glib-config.1
-	from gtk-config.1 in gtk
-
-	* configure.in:
-	* Makefile.am:
-	* sanity_check: added in docs directory, change rule 'release'
-	to 'snapshot' and created a new 'release' rule for doing the
-	distribution.  Added in a 'sanity' rule.
-
-	* NEWS:
-	* README:
-	* INSTALL: Updated for the release
-
-Sun Oct 25 07:30:10 1998  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c:
-	(g_scanner_peek_next_char):
- 	(g_scanner_get_char): no more characters are available if read() returns
- 	anything less than 1, not only on 0 return.
-
-	* glib.h:
-	* gstrfuncs.c: final API cleanup of string arrays to suit sopwith's
-	argument order requirements.
- 	(g_strsplit): renamed from g_str_array_split().
-	(g_strjoinv): renamed from g_str_array_joinv(), string array is
-	now passed as last parameter. removed `const' qualifier from string
-	array pointer (again).
-	(g_strjoin): new function from sopwith to concatenate strings with
-	an additional seperator.
-	(g_strfreev): renamed from g_str_array_free.
-
-Sat Oct 24 22:23:04 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* gnode.c: small fix to g_node_children_foreach to make it work right.
-	From Paco Moya <paco@cadnotebk17.eecs.berkeley.edu>
-
-Wed Oct 21 19:22:58 1998  Tim Janik  <timj@gtk.org>
-
-	* configure.in (G_MODULE_HAVE_DLERROR): reverted part of the changes
- 	from Sebastian Wilhelmi (1998-10-20). don't specify a specific loading
-	behaviour (i.e. RTLD_NOW) when we are not sure whether it is supplied.
-	changed the return value from (!f2 && f1) to (!f2 || f1) so we default
-	to not needing an underscore. reverted the extra plugin.c building,
-	because .lo files are not ELF libraries, this can't work. This needs
-	further investigation on Solaris...
-
-Wed Oct 21 17:03:05 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gstrfuncs.c: API cleanups of the new g_str* functions for consistency
- 	with the existing naming scheme for g_str* functions. grouped the g_str*
-	functions that will return a newly allocated string seperatedly. all of
-	the in_place arguments were skipped, the caller is supposed to pass a
-	g_strdup()ed string if he wants to retrive a new copy. indentation and
-	coding style fixups. added some g_return_if_fail() statements.
-	string array functions are prefixed with g_str_array_.
-	(g_strdelimit): return the modified string like all other g_str*
- 	functions, that operate in place.
-	(g_strchug): renamed from g_str_chug(), removed in_place argument.
-	(g_strchomp): renamed from g_str_chomp(), removed in_place argument.
-	(g_strstrip): renamed from g_str_strip(), removed in_place argument.
-	(g_str_array_join): renamed from g_strconcatv(), since it actually
- 	operates on a string array and has totaly different semantics from
-	g_strconcat(). check for separator != NULL, don't segfault if the first
- 	string is NULL. removed the `const' from the string array that's passed,
-	so users can operate on gchar** string arrays.
-	(g_str_array_split): renamed from g_str_split() because we actually
- 	produce a string array. reimplemented this function for efficiency.
-	removed macro aliases g_str_joinv and g_str_join.
-
-1998-10-20  Elliot Lee  <sopwith@redhat.com>
-
-	* glib.h, gstrfuncs.c: Move string join/split/free routines from
- 	libgnome/gnome-string, rename, and add g_str_chug.
-
-1998-10-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* configure.in: made the check for needed _ in module's func-names
-	work on solaris. (G_MODULE_NEED_USCORE must be set outside
-	AC_CACHE_VAL, dlopen(0,0) refused to work on solaris).
-
-Tue Oct 20 03:32:58 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* configure.in
-	* acconfig.h: added test for endianness
-
-	* glib.h: #define endian macros for system and some conversions
-	between byte order
-
-Thu Oct  8 06:47:27 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gdataset.c: removed functions g_dataset_id_set_destroy and
-	g_datalist_id_set_destroy and macros g_dataset_set_destroy and
-	g_datalist_set_destroy.
-	added new functions g_dataset_id_remove_no_notify and
-	g_datalist_id_remove_no_notify plus associated macros
-	g_dataset_remove_no_notify and g_datalist_remove_no_notify, which
- 	will remove a certain data portion without invokation of its destroy
- 	notifier, this should only be used in very controled circumstances.
-
-Wed Oct  7 05:31:24 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	removed the #pragma } statement after extern "C" {. use
- 	(c-set-offset 'inextern-lang 0) to fixup emacs cc-mode indentation.
-
-	* glib.h:
-	* ghook.c: API and code cleanups. changed the G_HOOK_ACTIVE and
- 	G_HOOK_IN_CALL enum vals to G_HOOK_FLAG_ACTIVE and G_HOOK_FLAG_IN_CALL.
-	changed the G_HOOK_IS_ACTIVE() and G_HOOK_IS_IN_CALL() macros to
-	G_HOOK_ACTIVE() and G_HOOK_IN_CALL().
-	fixed the g_hook_find* functions, so they iterate over non-active
-	hooks as well.
-	(g_hook_first_valid):
-	(g_hook_next_valid): added an extra argument gboolean may_be_in_call,
-	which indicates whether G_HOOK_IN_CALL() hooks are considered valid
-	or not. these two functions are meant as iterators for the hook list
-	invocation, so they need to a) provide functionality to implement
-	may_recurse bahaviour and b) only walk active hooks.
-
-Tue Oct  6 14:29:47 1998  Tim Janik  <timj@gtk.org>
-
-	* gmem.c (g_malloc0): fixed memory offsett when ENABLE_MEM_CHECK is
-	defined and ENABLE_MEM_PROFILE is not (patch from Martin Pool
- 	<mbp@wistful.humbug.org.au>).
-
-Sat Oct  3 01:18:10 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* ghook.c:
-	(g_hook_list_invoke):
-	(g_hook_list_invoke):
-	(g_hook_list_marshal): properly handle the first valid hook to call,
-	it maybe IN_CALL already.
-	(g_hook_list_marshal): minor name change.
-
-Fri Oct  2 23:21:21 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* ghook.c: renamed GHook.id to GHook.hook_id so we don't get troubles
-	with ObjC which reserves "id" as a keyword (Raja R Harinath
- 	<harinath@cs.umn.edu>).
-
-Wed Sep 30 10:53:03 1998  Tim Janik  <timj@gtk.org>
-
-	* Makefile.am: added ghook.c.
-
-	* glib.h:
- 	* ghook.c: generic callback maintenance functions.
-
-	* glib.h: define G_GNUC_UNUSED.
-
-Fri Sep 25 00:04:37 1998  Tim Janik  <timj@gtk.org>
-
-	* configure.in: version bump to 1.1.4, binary age 0, interface age 0.
-
-	* glib.h (struct _GScanner): dumped peeked_char and text_len in favour
- 	of *text_end and *buffer for buffered read()s.
-
-	* gscanner.c: changed peeking and retrival of next character so we
-	have buffered reads. fixed minor bug with number parsing error
-	reporting. made some static!!! variables local ones (why did we use
- 	static temporary variables in the lowlevel tokenization code anyways?).
-
-Mon Sep 21 23:23:10 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.3
-
-Mon Sep 21 07:43:13 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: added g_renew() which works as g_new() for g_realloc().
-
-Mon Sep 21 02:22:12 1998  Tim Janik  <timj@gtk.org>
-
-	* NEWS file update for upcoming release of GLib + GModule
-	version 1.1.3, binary age 0, interface age 0. (GModule uses
-	the same version numbers as GLib.)
-
-	* glib.h: swap the inclusion of of float.h and limits.h to work
-	around a egcs 1.1 oddity on Solaris 2.5.1 (fix provided by
-	Per Abrahamsen  <abraham@dina.kvl.dk>).
-
-	* glib.h:
-	* gscanner.c: renamed the GValue union to GTokenValue, this should
-	not affect source compatibility in most cases.
-
-	* ghash.c: added some g_return_if_fail() statements. make
- 	g_hash_table_lookup_node() an inline function so we save an extra
-	function invokation on lookups.
-
-Sun Sep 20 18:21:46 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* ltmain.sh: Patch to libtool-1.2b to make --disable-static
-	work.
-
-Sun Sep 20 02:09:44 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
-
-	* glib.h: New function g_hash_table_foreach_remove is similar to
- 	g_hash_table_foreach, but the callback's return value indicates
- 	whether to remove the element (if TRUE) or not (if FALSE).
-	Returns the number of elements deleted.
-
-Fri Sep 18 11:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h
-	* gstrfuncs.c: added g_memdup implementation
-
-Fri Sep 18 18:46:14 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gdataset.c: make the datalists a safe type (not using a generic
-	gpointer) by expecting a GData* argument in the g_datalist functions.
-	provide g_dataset_foreach() and g_datalist_foreach() functions that
- 	allow a GDataForeachFunc function to walk the data lists.
-	(g_dataset_destroy_internal): made this function truely reentrant (i.e.
-	can be called from within destroy notifiers as well).
-	the *_foreach functions are _not_ reentrant (unless all the other
-	dataset and datalist functions).
-
-Fri Sep 18 03:41:20 1998  Tim Janik  <timj@gtk.org>
-
-	* gtree.c (g_tree_new): check for key_compare_func != NULL (reported
-	by Michal Kara).
-
-Thu Sep 17 18:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* config.h.in: removed from repository
-
-	* install-sh
-	* missing
-	* mkinstalldirs: updated to latest automake version
-
-Thu Sep 17 06:36:25 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gdataset.c: implemented g_datalist_* along the lines of g_dataset,
-	but operates on an opaque gpointer *datalist; pointer, e.g. for the
-	implementation of GtkObject named data.
-	we cache a certain portion of the already freed data entries now, to
- 	gain a slight performance improve with data reallocation.
-
-Tue Sep 15 14:57:30 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* Makefile.am glib-config.in l*: Update to libtool-1.2b,
-	change library versioning scheme to drop LT_RELEASE
-	from the -l line, while keeping it in the soname.
-
-Fri Sep 11 02:11:46 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: explicitely include the prototypes for inline functions
-	to cure gcc warnings for -Wmissing-prototypes.
-
-Wed Sep  9 02:52:04 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* configure.in: added -posix check for NeXTStep
-
-Tue Sep  8 05:04:06 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: abandon the use of ATEXIT(), we keep the fallback
-	macros for backwards compatibility. people ought to use g_atexit().
-
-	* gutils.c (g_atexit): new function to take over the implementation
-	of ATEXIT. this function is guarranteed to succeed, similar to
-	g_malloc().
-
-Mon Sep  7 20:07:38 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* configure.in: comment the -std1 check and save LIBS properly
-
-Mon Sep  7 07:53:21 1998  Tim Janik  <timj@gtk.org>
-
-	* configure.in: check for all three inline keywords individually.
-
-	* glib.h: inlining hassle. for compilers that don't allow the `inline'
- 	keyword, mostly because of strict ANSI C compliance or dumbness, we try
- 	to fall back to either `__inline__' or `__inline'.
-	we define G_CAN_INLINE, if the compiler seems to be actually *capable*
- 	to do function inlining, in which case inline function bodys do make
- 	sense. we also define G_INLINE_FUNC to properly export the function
- 	prototypes if no inlinig can be performed. we special case most of the
- 	stuff, so inline functions can have a normal implementation by defining
- 	G_INLINE_FUNC to extern and G_CAN_INLINE to 1.
-
-	* ltconfig: (compiler PIC flag test): special case linux for non
-	aout systems to honour lcc's position independant code (cases
-	"linux*aout)" and "linux*)" got added). (this needs to go into
-	libtool which does an advanced test, checking for __LCC__).
-
-	* autogen.sh: take $CC=lcc into account by invoking automake with
-	--include-deps so lcc isn't scared by gcc's auto-dependancy
-	generation code. care about $ACLOCAL_FLAGS. optionally feature
-	autoheader.
-
-	* minor fixups in other places to cure some of lcc's warnings.
-
-Sun Sep  6 19:08:53 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* configure.in: added -std1 check for ANSI compliance (from gtk)
-
-Sun Sep  6 12:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h: provide proper ATEXIT behavior on NeXTStep by !atexit
-
-Sat Sep  5 18:03:36 1998  Tom Tromey  <tromey@cygnus.com>
-
-	* gutils.c (GLIB_INLINE): Define.
-	* glib.h (GLIB_INLINE): New define.
-	(g_bit_nth_msf): Use it.  Also, add prototype.
-	(g_bit_storage): Likewise.
-	(g_bit_storage): Likewise.
-
-Sat Sep  5 04:40:02 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	(g_chunk_new0): use g_mem_chunk_alloc0() to allocate the memchunk,
-	so the correct size of the memchunk is allocated with 0's and not
-	a memory portion of the size of the desired type.
-
-	* gmem.c: new function g_mem_chunk_alloc0() which will initialize
-	a memory area allocated with g_mem_chunk_alloc() with 0's.
-
-Wed Sep  2 19:13:28 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* garray.c glib.h (g_array_[ap/pre]pend_vals): make
-	data argument const.
-
-Wed Aug 26 06:32:40 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gstrfuncs.c: new function g_strnfill() to return a new string
-	of specified length, filled with a specific character.
-
-Tue Sep  1 23:46:31 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
-
-	* testglib.c (main): Update the array tests.  Reduce the number of
-	iterations for the prepend test from 10000 to 100 since it is
-	O(n^2) and was taking longer than I would like to wait.
-
-	* garray.c: I've worked on the GArray interface, mostly.  It was
- 	seriously broken before and I hate to do it, but this is going to
- 	break some code.  It is important to do this now, because more and
- 	more people are starting to use glib and the interface was both
- 	broken and inconsistent.  First, rename the _truncate functions of
- 	both the GArray and GPtrArray classes to _set_size, since this
- 	function can also be used to extend the arrays.  GArray now
- 	accepts two more initialization arguments: clear and element_size.
-  	Instead of providing the type to each access function, the array
- 	now stores the element size.  Clear, if set, causes the library to
- 	zero element's memory as the array expands.  The major broken-ness
- 	here was that array->len was in bytes, not elements.  Now, since
- 	the array knows its element size, array->len is correct and I have
- 	removed the g_array_length macro.  The only macro which now
- 	accepts the type as an argument is g_array_index, which casts the
- 	element to the right type--this interface does not change.  The
- 	append and prepend functions simply need the types removed.
-  	g_ptr_array_remove_index now returns the removed element.
-
-	* gprimes.c (g_spaced_primes_closest): Move this function out of
- 	ghash.c and rename it from g_hash_closest_prime.  Fix the primes
- 	so that they are actually prime (they weren't all -- isn't that
- 	nice?).
-
-Mon Aug 24 02:08:56 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
- 	* gstring.c:
-	* gstrfuncs.c:
- 	(g_vsprintf): removed this function which was not publically
-	exported in glib.h. to export it, it should have been named
- 	differently in the first place, since its semantics differ from
- 	vsprintf(). apart from that, it was a possible cause for
-	problems since it worked on a previously allocated memory area and
-	was used in a lot places of glib. exporting it would have been a
-	guararant for problems with threaded programs.
-	(g_printf_string_upper_bound): exported this function to return
-	a string size, guarranteed to be big enough to hold the fully
- 	expanded format+args string. added 'q', 'L' and 'll' flag handling.
- 	in fact, the newly allocated area is in most cases much bigger than
- 	required.
-	(g_strdup_vprintf()): new function returning a newly allocated string
- 	containing the contents of *format and associated args (size is
-	calculated with g_printf_string_upper_bound()).
-	(g_strdup_printf): new function which wraps g_strdup_vprintf().
-
-	* configure.in: check for va_copy() or __va_copy() alternatively.
-	check whether va_lists can be copyied by value.
-
-	* glib.h: provide a definition for G_VA_COPY.
-
-	* glib.h:
-	* gmessages.c:
- 	(g_logv):
-	(g_vsnprintf):
-	pass va_lists by value, not by reference, since this causes problems
-	on platforms that implement va_list as as arrays. internaly, use
-	G_VA_COPY (new_arg, org_arg); va_end (new_arg); to produce a second
-	va_list variable, if multiple passes are required. changed all
-	callers.
-
-	* glib.h:
-	* gerror.h:
-	renamed g_debug() to g_on_error_query(), cleaned up a bit.
-	renamed g_stack_trace() to g_on_error_stack_trace() since both
-	functions cluttered different namespaces.
-	there is an appropriate comment in glib.h now that explains the
-	unix and gdb specific dependencies of both functions.
-	removed g_attach_process().
-	g_on_error_stack_trace() should probably be handled with caution,
-	i've seem several different linux versions (2.0.x) become unstable
-	after invokation of this function.
-
-1998-08-18: Elliot Lee <sopwith@redhat.com>
-
-	* In gmem.c, add the ability to exclude memory chunks from the
- 	  memory profiling information.
-
-Tue Aug 18 18:23:09 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h
-	* gstrfuncs.c: added g_strndup
-
-Tue Aug 18 04:40:17 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gmessages.c: new function g_log_set_always_fatal() to set an
-	additional fatal_mask for log levels that are considered to be fatal
-	globally (required by gtk). since this mask is not domain-associated,
-	it is restricted to the log levels, introduced by glib itself.
-
-	* gmem.c:
-	* grel.c:
-	* gtree.c (g_tree_node_check):
-	don't use g_print() calls for informational/debugging output,
-	but log all this stuff through g_log() with G_LOG_LEVEL_INFO.
-	libraries shouldn't use printf(), g_print() or g_printerr() at all.
-
-Tue Aug 18 02:46:44 1998  Tim Janik  <timj@gtk.org>
-
-
-	* glib.h (__STRICT_ANSI__): if __STRICT_ANSI__ is defined, make
-	`inline' a noop, since strict ANSI rules don't permit `inline'.
-
-Mon Aug 17 15:21:42 1998  Tim Janik  <timj@gtk.org>
-
-	* grel.c: made private functions static.
-
-Sun Aug 16 23:23:46 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* gmodule/Makefile.am: added gmodule-dl.c and gmodule-dld.c to
-	  EXTRA_DIST
-	* glib.spec: version = 1.1.3
-
-Mon Aug 17 01:46:14 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.m4: feature an extra MODULES parameter, so glib-config can
-	be invoked with the "gmodule" argument.
-
-	* glib.h: changed the log level to G_LOG_LEVEL_CRITICAL for all
- 	g_return*_if_fail statements, and made them issue a message
-	like "assertion `%s' failed".
-
-	* gmessages.c (g_logv): ugh, don't pass log_domain as NULL to
- 	g_log_find_domain.
-
-Sun Aug 16 20:28:27 1998  Tim Janik  <timj@gtk.org>
-
-        * version bump to 1.1.3, binary age 0, interface age 0.
-
-	* glib.h: be nice to platforms that don't have gint64 and don't
-	issue #warning on every compilation. since glib doesn't require
-	gint64 itself, packages that need gint64 should test for this
- 	themselves.
-
-	* glib.h:
-	* gutils.c: added a new function g_vsnprintf().
-
-Sun Aug 16 Elliot Lee
-
-	glib.h: #error out if we don't recognize the SIZEOF_VOID_P
-	        #warning if no gint64
-
-Fri Aug 14 16:41:53 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: added static inline functions for bit mask tests:
-	g_bit_nth_lsf, g_bit_nth_msf and g_bit_storage.
-
-Fri Aug 13 14:23:37 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gmessages.c:
-	revised the message handling system, which is now based on a new
- 	mechanism g_log*. most of the assertment macros got adapted to
-	feature the new g_log() call with an additional specification of
-	the log level in a preprocessor macro G_LOG_DOMAIN. if G_LOG_DOMAIN
-	is undefined upon the includion of glib.h, it'll be defined with a
-	value of (NULL) and thus preserves the original bahaviour for
-	warning and error messages. the message handler setting functions
-	for g_warning, g_error and g_message are only provided for backwards
-	compatibility and might get removed somewhen.
-
-	* Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
-	to "GLib" upon compilation. we currently have to add this definition
-	to the DEFS variable.
-	* testglib.c: we need an ugly #undef G_LOG_DOMAIN at the start
-	of this file currently, since automake doesn't support per target
-	_CFLAGS yet.
-
-	* glib.h: changed some gints to gbooleans, made a few const corrections,
-	removed some superfluous G_STMT_START{}G_STMT_END wrappers, added some
-	in other required places.
-
-	* gnode.c:
- 	(g_node_prepend):
-	(g_node_insert_before):
-	(g_node_insert):
-	(g_node_append_data):
-	(g_node_prepend_data):
-	(g_node_insert_data_before):
-	(g_node_insert_data):
-	(g_node_append):
-	return (node), so these macros/functions can be usefully chained with
-	g_node_new().
-
-Mon Aug 10 17:56:11 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h: it's GTime now, and it's back!
-
-Mon Aug 10 02:17:19 1998  Tim Janik  <timj@gtk.org>
-
-	* Makefile.am: minor hack to cause SUBDIRS (gmodule) to be build
-	last. we do this by making all-recursive-am depend on all-am.
-
-Sun Aug  9 15:56:11 1998  Tim Janik  <timj@gtk.org>
-
-	* configure.in: added GModule checks. generate files in gmodule/.
-	* glib-config.in: support library specifications `glib' and `gmodule'.
-	* Makefile.am: feature the gmodule/ subdir.
-
-Wed Aug  5 10:04:29 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.2
-
-Wed Aug 05 01:15:36 1998  George Lebl  <jirka@5z.com>
-
-	* testglib.c: fix 64-bitness in g_prints, sizeof doesn't
-	  seem to return int so I cast it for printing, probably
-	  just cosmetic
-
-Tue Aug  4 19:54:06 PDT 1998 Shawn T. Amundson <amundson@gkt.org>
-
-	* Released GLib 1.1.1
-
-Tue Aug  4 15:17:54 1998  Tim Janik  <timj@gtk.org>
-
-	* configure.in: version bump to 1.1.1, binary age 1, interface age 0.
-	* NEWS: updates.
-	* README: updates.
-	* INSTALL: updates and fixes.
-	* COPYING: include the GNU LGPL, rather than shipping an empty file.
-	* AUTHORS: listed original authors here, and added people who made
-	significant improvements to glib.
-
-	* glib.h:
-	* gutils.c: implement g_get_current_dir() which returns a newly
-	allocated string, instead of a g_getcwd() variant that operates
-	on a static buffer.
-	export glib_interface_age and glib_binary_age.
-	as a convenience, macro definitions have been added for
- 	g_node_insert_data, g_node_insert_data_before, g_node_append_data and
-	g_node_prepend_data.
-
-	* testglib.c: minor cleanups, print current dir.
-
-Mon Aug  3 16:02:26 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gnode.c: change order of gpointer data; field in struct _GNode to
-	be partly binary compatible with GList and GSList.
-
-1998-08-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* garray.c (g_ptr_array_remove_index): bugfix: index check for
-	array has been wrong.
-
-Fri Jul 31 22:17:05 1998  Tim Janik  <timj@gtk.org>
-
-	* testglib.c (g_node_test): added a GNode test.
-
-Fri Jul 31 09:08:16 1998  Tim Janik  <timj@gtk.org>
-
-	* Makefile.am: compile gnode.c.
-
-	* glib.h:
-	* gnode.c: added implementation of n-way trees.
-
-	* gtree.c (g_tree_traverse): added a warning to the switch() statement
-	which says that G_LEVEL_ORDER is not implemented.
-
-Mon Jul 27 00:17:30 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* Released GLib 1.1.0
-
-Mon Jul 27 01:02:27 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: #if 0'ed out the GTime definition, until it is definitively
- 	needed. #if 0'ed out the g_getcwd() version, because it is the wrong
- 	implementation.
-
-Sat Jul 25 16:09:00 1998  Mark Crichton <crichton@expert.cc.purdue.edu>
-
-	* glib.h: gtime changed to g_time.  gtime is used in
-	/usr/include/time.h in NetBSD, causing multiple headaches.
-	If this isn't the right way of fixing it.... ;)
-
-Thu Jul 23 00:29:14 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gscanner.c: new functions to make a scanner scope sensitive wrt
- 	symbol lookups.
-	g_scanner_scope_foreach_symbol, g_scanner_scope_lookup_symbol,
-	g_scanner_scope_remove_symbol, g_scanner_scope_add_symbol and
-	g_scanner_set_scope.
-	g_scanner_add_symbol, g_scanner_remove_symbol and
- 	g_scanner_foreach_symbol are now aliases for scope 0.
-
-Mon Jul 20 23:05:34 1998  George Lebl  <jirka@5z.com>
-
-	* glib.h: typo fixed for alphas for gint64
-
-Tue Jul 14 09:05:18 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gutils.c: new fuction g_dirname() which returns a newlly
-	allocated string.
-
-Fri Jul 10 06:33:43 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h:
-	* gutils.h: added a bunch of utility/wrapper functions:
-	g_basename(), g_getcwd(), g_get_user_name(), g_get_real_name(),
-	g_get_home_dir(), g_get_tmp_dir(), g_get_prgname() and g_set_prgname().
-
-	* gutils.c: removed all g_str* functions.
-	* gstrfuncs.c: moved the bunch g_str* functions from gutils.c in this
-	place. this file shall never include <unistd.h> to avoid clashes for
-	some of the g_str* functions on some OSes.
-
-Fri Jul 10 00:29:03 EEST 1998 Lauri Alanko <nether@gimp.org>
-
-	* glib.h:
-	* ghash.c: Renamed g_hash_table_lookup_full to
-	g_hash_table_lookup_extended to conform with naming conventions.
-
-Tue Jul  7 03:18:58 EEST 1998 Lauri Alanko <nether@gimp.org>
-
-	* glib.h:
-	* ghash.c: Generic cleanup, added a function:
-	(g_hash_table_lookup_full): Return whether the lookup succeeded,
-	and also retrieve the key and value. This allows one to
-	distinguish between failed lookup and finding a NULL, and also
-	allows one to free a key in the hash.
-
-Mon Jul  6 10:12:05 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* ltconfig: fix for properly detecting shared lib support on
-	SunPro cc (taken from libtool 1.2.a)
-
-Sat Jul  4 13:38:52 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h: added g_array_length
-
-Tue Jun 30 11:58:25 1998  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_unexp_token): take symbol_2_token into
-	account. react on valid/invalid string pairs.
-
-Sat Jun 27 21:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.m4: ftp.glib.org -> ftp.gtk.org, since glib.org isn't
-	ours. ;)
-
-Fri Jun 19 03:11:02 1998  Tim Janik  <timj@gtk.org>
-
-	* gdataset.c: removed g_dataset_try_key, g_dataset_force_id and
- 	g_dataset_retrive_key in favour of GQuarks.
-	a GQuark is an numeric id wich is associated with a certain string.
-	(g_quark_try_string): try to get the quark associated with this string,
- 	if the lookup failed return 0.
-	(g_quark_from_string): get the associated quark for a string, if there
- 	isn't currently a GQuark associated with this string, then allocate a
- 	new quark and return that.
-	(g_quark_from_static_string): like the above function, but the string
- 	isn't strdup()ed to save memory.
-	(g_quark_to_string): get the string that is associated with a certain
-	GQuark.
-
-	* gdataset.c (g_dataset_id_set_data_full): invoke the destroy function
-	_after_ the new data has been setup.
-
-Thu Jun 18 02:35:21 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* glib.h: Changed messages for g_return_[val]_if_fail to
-	be somewhat more clear: assertion "blah" failed.
-
-1998-06-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
-
-	* testglib.c (main): Use GINT_TO_POINTER casts to remove compiler
-	warnings.
-
-	* grel.c: #include <string.h>
-
-Fri Jun 12 15:39:06 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h (GScanner): cleanups of the structure fields (binary
-	incompatible).
-
-Fri Jun 12 00:39:28 1998  Josh MacDonald  <jmacd@icw.EECS.Berkeley.EDU>
-
-	* glib.h: add new hash and equal functions g_int_*.  complement
-	g_direct_hash with g_direct_equal.
-
-	* grel.c: new file, GRelations implement tuples of N-N mappings.
-	A comment in glib.h briefly describes the interface.
-
-	* ghash.c: new function, g_hash_table_size
-
-	* glib.h: new typedefs, gsize, gssize, gtime.
-
-	* garray.c: new functions implementing a simplified GArray.  This
-	GPtrArray is an array of gpointers and has functions to add and
-	remove elements, much like java.lang.Vector.
-
-	* garray.c: new functions for the single-byte special case of
-	GArray.  The functions g_byte_array* operate on arrays of bytes.
-	Internally, a GArray is used.
-
-	* testglib.c: tests for g_ptr_array, g_byte_array, and g_relation...
-
-1998-06-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
-
-	* gdataset.c: #include <string.h>
-
-Thu Jun 11 04:15:31 1998  Tim Janik  <timj@gtk.org>
-
-        * glib.h:
-        * gdataset.c: new function g_dataset_retrive_key. adjusted prealloc
-        sizes, to take up less space on initial allocation.
-
-1998-06-10  Raja R Harinath  <harinath@cs.umn.edu>
-
-	* acinclude.m4: New file.  Contains `libtool.m4' from libtool-1.2,
-	the version from which glib's libtool forked.  Needed for people
-	who use post-1.2 alphas of libtool.
-	* configure.in (enable_mem_check, enable_mem_profile): Replace
-	`echo -n' with AC_MSG_CHECKING.
-	(fd_set): Explain test for `fd_set' better.
-
-Wed Jun 10 19:29:51 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* Makefile.am glib.m4 configure.in:
-
-	Moved out from GTK+; added AM_PATH_GLIB macro.
-
-Wed Jun 10 12:56:07 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* glib.h: renamed g_const_pointer => gconstpointer
-
-Tue Jun  9 17:47:33 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* glib.h: Remove #error - HP/UX.
-
-Sat May 23 19:00:01 1998  Owen Taylor  <otaylor@gtk.org>
-  [ Combination of:
-     gtk-rrh-980412-0.patch (Raja R Harinath <harinath@cs.umn.edu>)
-     gtk-jbuhler-980516-0 (Jeremy Buhler <jbuhler@cs.washington.edu>) ]
-
-	* glib.h ghash.c gstring.c gdataset.c gutils.c:
-	- Added new typedef g_const_pointer; expunged all incorrect
-	  uses of 'const gpointer'.
-	- Fixed up warnings that that created,
-	- Changed GHashFunc and GCompareFunc to take g_const_pointer
-	  arguments. (Necessary, but will cause warnings in existing
-	  code until fixed)
-	- Added other new const in harmless positions.
-
-Mon Jun  8 01:06:47 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: added enum-helper macros for code generation.
-	added G_BREAKPOINT().
-
-Sat Jun  6 14:09:22 PDT 1998 Manish Singh <yosh@gimp.org>
-
-	* gmem.c: commented out MEM_PROFILE and MEM_CHECK, causing weird
-	problems
-
-Wed Jun  3 06:19:42 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h (g_chunk_new0): convenience macro, for allocating small chunks
-	like g_chunk_new() with additional 0 initialization.
-
-Mon Jun  1 04:43:27 1998  Tim Janik  <timj@gtk.org>
-
-	* ghash.c (g_hash_table_insert): wrote a comment describing why
-	a hash node's key should not also get replaced when overriding
- 	previous entries.
-
-Tue May 26 18:30:06 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h (g_string_sized_new): new function to controll the preallocated
-	size of a GString.
-
-	* glib.h (g_strreversed): new function to reverse a string.
-
-Mon May 18 22:14:39 1998  Owen Taylor  <otaylor@gtk.org>
-(Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp> : gtk-joke-980517-0.patch)
-
-	* gutils.c: Restored a missing prototype for g_vsprintf.
-
-Wed May 20 05:02:26 1998  Tim Janik  <timj@gtk.org>
-
-        * glib.h: conditionally define NULL, FALSE and TRUE.
-        (g_mem_chunk_create): new convenience macro as a short hand for
-        g_mem_chunk_new().
-        (g_chunk_free): new convenience macro to be consistent with g_chunk_new.
-
-Tue, 19 May 1998 09:00:02 +0200  Paolo Molaro <lupus@debian.org>
-
-	* gcompletion.c: generic functions for com<TAB>pletion...
-
-Sun May 17 10:48:27 1998  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_unexp_token): provide usefull default
- 	specifications for identifier_spec and symbol_spec.
-
-	* glib.h: new functions g_slist_nth_data and g_list_nth_data to return
- 	the data of the nth element in the list.
-
-Fri May 15 22:31:49 1998  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_unexp_token): removed spurious va_end(args)
- 	that for some reason didn't produce a compiler warning on my machine
- 	(is va_end defined to nothing for i386?).
-
-Fri May 15 12:32:08 1998  rodo  <doulik@karlin.mff.cuni.cz>
-
-	* gscanner.c: replaced some snprintf with g_snprintf
-
-Fri May 15 00:56:59 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: further support for gcc function attributes: G_GNUC_FORMAT,
-	G_GNUC_NORETURN and G_GNUC_CONST.
-
-	* gscanner.c (g_scanner_stat_mode): changed stat() to lstat().
-	(g_scanner_msg_handler): "\n" at end of line!
-	(g_scanner_foreach_symbol): new function to iterate over the symbol
- 	table (GScanner does value-wrapping).
-
-Thu May 14 04:14:12 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h: typedef gint gboolean;
-	this is needed to provide portability with big-endian platforms (e.g.
-	try sizeof(bool) for c++ on big-endians - it's 4).
-	this is also needed to maintain some_union.d_gint==some_union.d_gboolean.
- 	plus, gint to gboolean casts and vice versa need to be possible without
- 	loss.
-
-Tue May 12 19:22:58 1998  Owen Taylor  <otaylor@gtk.org>
-
- 	* glib/glib.h: Added macros G[U]INT_TO_POINTER() and
-	GPOINTER_TO_[U]INT for storing small integers integers
-	inside pointers.
-
-	* glib/testglib.c: Print sizeof() results
-	as g_print("%ld", (glong)sizeof(foo)), to deal with
-	size_t being long on Alpha's.
-
-Tue May 12 16:54:15 1998  Owen Taylor  <otaylor@gtk.org>
-	(James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
-
-	* glib.h gstring.c gmessages.c: Added some missing
-	const to arguments.
-
-	* gutils.c (g_strsignal.c): Added missing return statements.
-
-Mon May 11 21:11:54 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* gutils.c gmessages.c: Moved g_error, g_warning, g_message and
-	g_print from gutils.c to new file gmessages.c, to avoid having to
-	include <unistd.h> in gutils.c which was causing problems for the
-	g_strsignal implementation on FreeBSD boxes.
-
-Mon May 11 09:53:43 1998  Tim Janik  <timj@gtk.org>
-
-	* configure.in: preserve automake CFLAGS.
-
-	* Makefile.am: fully rename the created library to libglib-1.1.la.
-	this means we need to change certain portions of the Makefile.am on
-	major/minor version bumps.
-
-	* ltmain.sh: the -release option is not required anymore.
-
-        * glib.h: provide G_GNUC_FUNCTION and G_GNUC_PRETTY_FUNCTION to
-	avoid conditionals. unconditionally define NULL, TRUE, FALSE, MAX,
-	MIN, ABS and CLAMP, these macros might be screwed from other headers.
-
-Mon May 11 01:44:10 1998  Tim Janik  <timj@gtk.org>
-
-	* gdataset.c: new file, gdatasets implement the object data
-	mechanism from GtkObject. a generic data pointer is associated with
-	a certain location and a key id.
-
-Sat May  9 20:08:12 1998  Owen Taylor  <otaylor@gtk.org>
-
-        * glib/gmem.c: Experimentally restore GMemChunk
-        to its primeval state - where mem areas are
-        freed incrementally instead of searching the tree
-        every time a mem area is completely empty. Also,
-        always keep one mem chunk around. (Reduced calls
-        to malloc() a lot, but doesn't really improve
-        performance significiantly)
-
-Thu May  7 08:17:28 1998  Tim Janik  <timj@gtk.org>
-
-	* glib.h (G_GNUC_PRINTF):
-	(G_GNUC_SCANF): macros to facilitate the printf/scanf format argument
-	checking of gcc.
-
-	* gstring.c: const corrections, string!=NULL checks at function entry.
-	(g_string_down): new function for tolower(3) conversion.
-	(g_string_up): new function for toupper(3) conversion.
-
-	* gutils.c: const corrections.
-	(g_strdown): g_string_down() counterpart.
-	(g_strup): g_string_up() counterpart.
-
-	* gscanner.c (g_scanner_unexp_token):
- 	(g_scanner_error):
-	(g_scanner_warn): new functions to let a scanner put out warnings
- 	or errors, especially to react on unexpected tokens.
-
-	* gslist.c:
- 	(g_slist_index): find out about about the position of a
-	certain data pointer.
- 	(g_slist_position): find out about about the position of a
-	certain node.
-
-	* glist.c:
- 	(g_list_index): find out about about the position of a
-	certain data pointer.
-
-Thu May  7 05:14:19 1998  Tim Janik  <timj@gtk.org>
-
-	* ltmain.sh: added a new commandline flag -postfix similar to -release,
-	but will immediately change the library name.
-
-	* Makefile.am: specify -postfix and -version-info
-
-	* configure.in: version bump to 1.1.0. added GLIB_INTERFACE_AGE and
-	GLIB_BINARY_AGE. calculate LT_* variables for libtool.
-
-Fri May  1 16:36:08 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* gutils.c: (g_strcasecmp). Check for isupper before
-	taking tolower, and account for macroized tolower.
-
-	* gutils.c (g_error): Check for recursion.
-
-1998-04-27  Elliot Lee  <sopwith@cuc.ml.org>
-
-	* glist.c (g_list_position): New function to find the position of
-	a link in a list - should be the inverse of g_list_nth(), but
-	haven't tested it so poof.
-
-Thu Apr 30 21:41:30 1998  Owen Taylor  <otaylor@gtk.org>
-
-	* gstring.c : Check arguments more carefully,
-	(gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
-
-Tue Apr  7 19:36:48 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* gutils.c (g_direct_compare): Removed, because that's what
-	a NULL comparison function means. And it wasn't 64 bit safe.
-
-Mon Apr  6 18:43:25 1998  Tim Janik  <timj@gtk.org>
-
-	* gscanner.c (g_scanner_get_token_ll): fixed a bug that caused floats
-	of the format ".xxx" to be parsed as "xxx".
-
-Fri Apr  3 20:36:35 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* gutils.c (g_parse_debug_string): Make debug string
-	parsine case-insensitive
-
-Fri Apr  3 17:03:18 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* gstring.c: corrected possible overrun when inserting into
-	GStrings (thanks Elrond)
-
-Fri Apr  3 18:05:45 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* testglib.c: Removed literal german from strings
-	to appease SGI compiler.
-
-Thu Mar 26 20:47:21 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* configure.in glib glibconfig.h.in: Add test for atexit/on_exit -
-	use on_exit if atexit not found in definition of ATEXIT.
-
-Wed Mar 25 15:23:37 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* Makefile.am: Switched glibconfig.h rule from HEADERS
-	to DATA, so that it is not added to DISTFILES
-
-Wed Mar 18 22:27:08 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* garray.c: g_rarray_truncate length done correctly
-
-Sun Mar 15 07:13:34 1998  Tim Janik  <timj@gimp.org>
-
-	* gutils.c: changed *_handler variables to be named glib_*_handler,
-	so you can easily access them from gdb.
-
-Sat Mar 14 17:47:43 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* Makefile.am: Don't refer to current directory as $(top_builddir)
-	to avoid confusing non-gmakes
-
-Sat Mar 14 01:37:35 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* Makefile.am (configincludedir): Moved glibconfig.h to
-          $(pkglibdir)/include
-
-Tue Mar 10 02:03:12 1998  Tim Janik  <timj@gimp.org>
-
-	* gscanner.c (g_scanner_destroy_symbol_table_entry): new function to
-	free symbol table entries upon destruction
- 	(gtk-gronlund-980309-0.patch.gz).
-
-Mon Mar  9 15:02:21 1998  Tim Janik  <timj@gimp.org>
-
-	* glib.h: changed *_length functions to return guint.
-	changed *_nth functions to take guint as argument.
-
-	* glist.c: adapted g_list_length and g_list_length.
-
-	* gslist.c: adapted g_slist_length and g_slist_length.
-
-Mon Mar  2 17:51:18 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* glib.h gutils.c : changed g_strcasecmp
-	  to take gchar* not guchar*
-
-	* testglib.c: Remove trailing ; after functions
-
-Sun Mar  1 19:04:40 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* glib.h gstring.c: Added g_string_insert[_c]()
-	  and g_string_erase().
-
-	  From: Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>
-
-Mon Feb 16 23:05:06 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* glist.c (g_list_insert_sorted): Changed function
-	  so elements are always inserted, even if they compare
-	  equal with another.
-
-Thu Feb 12 22:48:11 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* gstring.c glib.h: removed deprecated g_string_equal
-	  and g_string_hash.
-
-Tue Feb 10 13:04:36 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* configure.in: Add check to see if the C library's
-	  iswalnum can actually be used. (Not true for
-	  Linux libc-5.4.38)
-
-Sat Feb  7 11:48:09 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* gstring.c gutils.c: added some additional consts in
-	  appropriate places to remove a warning
-
-Sat Feb  7 11:15:54 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* gutils.c: include <ctype.h> for tolower()
-
-Fri Jan 30 23:57:17 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* added and autoconfigured in a new utility function
-	g_strcasecmp
-
-Wed Jan 28 23:53:27 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* glist.c
-	* gslist.c
-	* testglib.c: the sort functions compared backwards. Fixed
-	* glib.h: list iterator macros now check for NULL pointers
-
-Tue Jan 27 09:46:57 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* gstring.c: g_string_prepend and g_string_prepend_c had
-	interchanged src and dest parameters for g_memmove. Fixed.
-
-Tue Jan 27 01:38:52 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* gslist.c: fixed a really, really lame error. g_slist_insert
-	didn't hook the data in! Reworked the routine to reflect the
-	functionality of g_list
-
-Wed Jan 21 01:13:25 1998  Tim Janik  <timj@psynet.net>
-
-	* Applied patch from (Raja R Harinath <harinath@cs.umn.edu>)
-	  to add function g_snprintf.
-        * configure.in (AC_CHECK_FUNCS): Check for vsnprintf.
-        * glib.h: Add prototype for g_snprintf.
-        * glibconfig.h.in: Add HAVE_VSNPRINTF.
-        * gutils.c (g_snprintf): new function.
-
-Sat Jan 17 23:52:40 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* gstring.{c,h} gscanner.c:
-	   renamed g_string_equal => g_str_equal
-	   renamed g_string_hash => g_str_hash
-	  And const corrected. Old functions left in for now.
-
-Fri Jan  9 20:03:46 1998  Tim Janik  <timj@psynet.net>
-
-	* gutils.c (g_strerror): changed message for EAGAIN from
-	"no more processes" to "try again" since EAGAIN is used with
-	functions else than fork().
-
-	* gscanner.c (g_scanner_get_token_ll): use strtol() instead of
-	strtoul() to avoid conflicts with solaris.
-
-	* merged the glib portions from Jan 2 to Jan 7 out of gtk+/ChangeLog
- 	into this file.
-
-Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
-
-	* glib.h:
-	* glist.c:
-	* gslist.c:
-	* testglib.c: Added g_[s]list_insert_sorted function
-	and appropriate tests in testglib
-
-Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
-
-	* glib.h: Changed guint32 -> guint for bitfields.
-	(Bitfields must be int or unsigned int?)
-
-Fri Jan  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
-
-	* glib_pre1.h:
-	* glib_pre2.h:
-	* glib.h: reverted glibconfig.h and glib.h files back to the
-	way they were before my ugly hack.
-
-	* gscanner.c: removed inlines from clist and gscanner
-
-Tue Dec 23 02:49:51 1997  Tim Janik  <timj@psynet.net>
-
-	* gscanner.c: new file for GScanner: Flexible lexical scanner for
- 	general purpose.
-	* glib_pre2.h: added GScanner includes. added g_strconcat and g_strtod.
-	gutils.c (g_strconcat): new function for string concatenation of NULL
- 	terminated parameter list.
-	(g_strtod): new function to perform best string to double conversion
-	with or without consideration of the current locale.
-
-Mon Dec 15 19:33:58 1997  Tim Janik  <timj@psynet.net>
-
-	* glist.c: minor optimizations:
- 	(g_list_append): `if' optimized for common code path, commented out
- 	unneccessary `assert', saved one variable assignment.
-	(g_list_prepend): saved two (conditioned) variable assignment.
-	(g_list_insert): saved one  (conditioned) variable assignment,
-	saved one variable assignment.
-	(g_list_remove): `if' optimized for common code path, saved two
-	variable assignments by using `g_list_free_1' (which is even
- 	faster) instead of `g_list_free'.
-	(g_list_reverse): saved allocation of one variable, saved one
-	variable assignment.
-
-Wed Dec 10 23:27:20 1997  Tim Janik  <timj@psynet.net>
-
-	* glib_pre1.h:
-	* glib_pre2.h:
-	* glib.h: this file now gets concatenated by makeglib_h from
-	glib_pre1.h and glib_pre2.h to merge in glibconfig.h wich got
-	created by configure (done by Jay Painter).
-
-	* glib_pre2.h: the g_assert*() and g_return_*_fail() macros
-	are wrapped by G_STMT_START and G_STMT_END now, to avoid conflicts
-	when used within if (...) g_macro(); else ... conditionals.
-
-Tue Dec 17 13:14:07 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
-
-	* glib.h: Changed 'g_return_if_fail' and 'g_return_val_if_fail' to
-	not call 'g_string' but to simply stringify the
-	expression. Calling 'g_string' causes the expression to be
-	expanded which is undesired.
-
-Sun Dec  1 01:30:48 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
-
-	* Started ChangeLog
diff --git a/glib/INSTALL b/glib/INSTALL
deleted file mode 100644
index 873ede5..0000000
--- a/glib/INSTALL
+++ /dev/null
@@ -1,67 +0,0 @@
-Simple install procedure
-========================
-
-  % gzip -cd glib-1.2.8.tar.gz | tar xvf -  # unpack the sources
-  % cd glib-1.2.8                           # change to the toplevel directory
-  % ./configure                             # run the `configure' script
-  % make                                    # build GLIB
-  [ Become root if necessary ]
-  % make install                            # install GLIB
-
-The Nitty-Gritty
-================
-
-The 'configure' script can be given a number of options to enable
-and disable various features. For a complete list, type:
-
-  ./configure --help
-
-A few of the more important ones:
-
-*  --prefix=PREFIX         install architecture-independent files in PREFIX
-                           [ Defaults to /usr/local ]
-
-*  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                           [ Defaults to the value given to --prefix ]
-
-Options can be given to the compiler and linker by setting
-environment variables before running configure. A few of the more
-important ones:
-
- CC       : The C compiler to use
- CPPFLAGS : Flags for the C preprocesser such as -I and -D
- CFLAGS   : C compiler flags
-
-The most important use of this is to set the
-optimization/debugging flags. For instance, to compile with no
-debugging information at all, run configure as:
-
- CFLAGS=-O2 ./configure           # Bourne compatible shells (sh/bash/zsh)
-
-or,
-
- setenv CFLAGS -O2 ; ./configure  # csh and variants
-
-
-Installation directories
-========================
-
-The location of the installed files is determined by the --prefix
-and --exec-prefix options given to configure. There are also more
-detailed flags to control individual directories. However, the
-use of these flags is not tested.
-
-One particular detail to note, is that the architecture-dependent
-include file glibconfig.h is installed in:
-
-  $exec_pref/lib/glib/include/
-
-if you have a version in $prefix/include, this is out of date
-and should be deleted.
-
-A shell script glib-config is created during the configure
-process, and installed in the bin/ directory
-($exec_prefix/bin). This is used to determine the location of glib
-when building applications.  If you move glib after installation,
-it will be necessary to edit this file.
-
diff --git a/glib/Makefile.am b/glib/Makefile.am
deleted file mode 100644
index 082a781..0000000
--- a/glib/Makefile.am
+++ /dev/null
@@ -1,122 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-# require automake 1.4
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = . gmodule gthread docs tests
-
-configincludedir = $(pkglibdir)/include
-
-bin_SCRIPTS=glib-config
-BUILT_SOURCES=glib-config
-glib-config: glib-config.in
-
-INCLUDES = -DG_LOG_DOMAIN=g_log_domain_glib @GLIB_DEBUG_FLAGS@
-
-EXTRA_DIST = \
-	glib.m4			\
-	glib.spec.in		\
-	acglib.m4		\
-	sanity_check		\
-	README.win32		\
-	glib.def		\
-	makefile.msc.in		\
-	makefile.msc		\
-	giowin32.c		\
-	glibconfig.h.win32	\
-	glibconfig.h.win32.in	\
-	config.h.win32		\
-	config.h.win32.in
-
-lib_LTLIBRARIES = libglib.la
-
-libglib_la_SOURCES = \
-	garray.c	\
-	gcache.c	\
-	gcompletion.c	\
-	gdataset.c	\
-	gdate.c         \
-	gerror.c	\
-	ghash.c		\
-	ghook.c		\
-	giochannel.c    \
-	giounix.c       \
-	glist.c		\
-	gmain.c         \
-	gmem.c		\
-	gmessages.c	\
-	gmutex.c	\
-	gnode.c		\
-	gprimes.c	\
-	grel.c		\
-	gscanner.c	\
-	gslist.c	\
-	gstrfuncs.c	\
-	gstring.c	\
-	gtimer.c	\
-	gtree.c		\
-	gutils.c
-
-include_HEADERS = \
-	glib.h
-
-configinclude_DATA = \
-	glibconfig.h
-
-CONFIGURE_DEPENDENCIES = acglib.m4		
-
-BUILT_SOURCES = stamp-gc-h #note: not glibconfig.h
-glibconfig.h: stamp-gc-h
-	@:
-stamp-gc-h: config.status
-	CONFIG_FILES= CONFIG_HEADERS= CONFIG_OTHER=glibconfig.h ./config.status
-	echo timestamp > stamp-gc-h
-
-libglib_la_LDFLAGS = \
-	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-	-release $(LT_RELEASE) \
-	-export-dynamic
-
-noinst_PROGRAMS = testglib testgdate testgdateparser
-testglib_LDADD = libglib.la
-testgdate_LDADD = libglib.la
-testgdateparser_LDADD = libglib.la
-
-m4datadir = $(datadir)/aclocal
-m4data_DATA = glib.m4
-
-glibconfig.h.win32: $(top_builddir)/config.status $(top_srcdir)/glibconfig.h.win32.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-config.h.win32: $(top_builddir)/config.status $(top_srcdir)/config.h.win32.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-makefile.msc: $(top_builddir)/config.status $(top_srcdir)/makefile.msc.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-.PHONY: files release sanity snapshot
-
-files:
-	@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
-	  echo $$p; \
-	done
-
-release:
-	rm -rf .deps */.deps
-	cd docs && make glib.html
-	$(MAKE) distcheck
-
-sanity:
-	./sanity_check $(VERSION)
-
-snapshot:
-	$(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`
-
-dist-hook: glib.spec
-	if test -e $(srcdir)/INSTALL.in && test -e $(srcdir)/README.in ; then \
-	     CONFIG_FILES="INSTALL:$(srcdir)/INSTALL.in README:$(srcdir)/README.in" \
-	     CONFIG_HEADERS= \
-	     $(SHELL) config.status \
-	     && cp INSTALL README $(distdir) ; \
-	fi \
-	&& cp glib.spec $(distdir)
diff --git a/glib/Makefile.in b/glib/Makefile.in
deleted file mode 100644
index f3a8819..0000000
--- a/glib/Makefile.in
+++ /dev/null
@@ -1,696 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# require automake 1.4
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@
-ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@
-GLIB_BINARY_AGE = @GLIB_BINARY_AGE@
-GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@
-GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@
-GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@
-GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@
-GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@
-GLIB_VERSION = @GLIB_VERSION@
-G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@
-G_MODULE_IMPL = @G_MODULE_IMPL@
-G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@
-G_MODULE_LIBS = @G_MODULE_LIBS@
-G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@
-G_THREAD_CFLAGS = @G_THREAD_CFLAGS@
-G_THREAD_LIBS = @G_THREAD_LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_RELEASE = @LT_RELEASE@
-LT_REVISION = @LT_REVISION@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = . gmodule gthread docs tests
-
-configincludedir = $(pkglibdir)/include
-
-bin_SCRIPTS = glib-config
-
-BUILT_SOURCES = stamp-gc-h #note: not glibconfig.h
-
-INCLUDES = -DG_LOG_DOMAIN=g_log_domain_glib @GLIB_DEBUG_FLAGS@
-
-EXTRA_DIST =  	glib.m4				glib.spec.in			acglib.m4			sanity_check			README.win32			glib.def			makefile.msc.in			makefile.msc			giowin32.c			glibconfig.h.win32		glibconfig.h.win32.in		config.h.win32			config.h.win32.in
-
-
-lib_LTLIBRARIES = libglib.la
-
-libglib_la_SOURCES =  	garray.c		gcache.c		gcompletion.c		gdataset.c		gdate.c         	gerror.c		ghash.c			ghook.c			giochannel.c    	giounix.c       	glist.c			gmain.c         	gmem.c			gmessages.c		gmutex.c		gnode.c			gprimes.c		grel.c			gscanner.c		gslist.c		gstrfuncs.c		gstring.c		gtimer.c		gtree.c			gutils.c
-
-
-include_HEADERS =  	glib.h
-
-
-configinclude_DATA =  	glibconfig.h
-
-
-CONFIGURE_DEPENDENCIES = acglib.m4		
-
-libglib_la_LDFLAGS =  	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) 	-release $(LT_RELEASE) 	-export-dynamic
-
-
-noinst_PROGRAMS = testglib testgdate testgdateparser
-testglib_LDADD = libglib.la
-testgdate_LDADD = libglib.la
-testgdateparser_LDADD = libglib.la
-
-m4datadir = $(datadir)/aclocal
-m4data_DATA = glib.m4
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =  glib.spec glib-config
-LTLIBRARIES =  $(lib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I.
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libglib_la_LIBADD = 
-libglib_la_OBJECTS =  garray.lo gcache.lo gcompletion.lo gdataset.lo \
-gdate.lo gerror.lo ghash.lo ghook.lo giochannel.lo giounix.lo glist.lo \
-gmain.lo gmem.lo gmessages.lo gmutex.lo gnode.lo gprimes.lo grel.lo \
-gscanner.lo gslist.lo gstrfuncs.lo gstring.lo gtimer.lo gtree.lo \
-gutils.lo
-PROGRAMS =  $(noinst_PROGRAMS)
-
-testglib_SOURCES = testglib.c
-testglib_OBJECTS =  testglib.o
-testglib_DEPENDENCIES =  libglib.la
-testglib_LDFLAGS = 
-testgdate_SOURCES = testgdate.c
-testgdate_OBJECTS =  testgdate.o
-testgdate_DEPENDENCIES =  libglib.la
-testgdate_LDFLAGS = 
-testgdateparser_SOURCES = testgdateparser.c
-testgdateparser_OBJECTS =  testgdateparser.o
-testgdateparser_DEPENDENCIES =  libglib.la
-testgdateparser_LDFLAGS = 
-SCRIPTS =  $(bin_SCRIPTS)
-
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(configinclude_DATA) $(m4data_DATA)
-
-HEADERS =  $(include_HEADERS)
-
-DIST_COMMON =  README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \
-Makefile.am Makefile.in NEWS acconfig.h acinclude.m4 aclocal.m4 \
-config.guess config.h.in config.sub configure configure.in \
-glib-config.in glib.spec.in install-sh ltconfig ltmain.sh missing \
-mkinstalldirs
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libglib_la_SOURCES) testglib.c testgdate.c testgdateparser.c
-OBJECTS = $(libglib_la_OBJECTS) testglib.o testgdate.o testgdateparser.o
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in  acinclude.m4
-	cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	$(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
-	cd $(srcdir) && $(AUTOCONF)
-
-config.h: stamp-h
-	@if test ! -f $@; then \
-		rm -f stamp-h; \
-		$(MAKE) stamp-h; \
-	else :; fi
-stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES= CONFIG_HEADERS=config.h \
-	     $(SHELL) ./config.status
-	@echo timestamp > stamp-h 2> /dev/null
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in
-	@if test ! -f $@; then \
-		rm -f $(srcdir)/stamp-h.in; \
-		$(MAKE) $(srcdir)/stamp-h.in; \
-	else :; fi
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
-	cd $(top_srcdir) && $(AUTOHEADER)
-	@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
-	-rm -f config.h
-
-maintainer-clean-hdr:
-glib.spec: $(top_builddir)/config.status glib.spec.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-glib-config: $(top_builddir)/config.status glib-config.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-mostlyclean-libLTLIBRARIES:
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-
-distclean-libLTLIBRARIES:
-
-maintainer-clean-libLTLIBRARIES:
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(libdir)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "$(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
-	    $(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
-	  else :; fi; \
-	done
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
-	done
-
-.c.o:
-	$(COMPILE) -c $<
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libglib.la: $(libglib_la_OBJECTS) $(libglib_la_DEPENDENCIES)
-	$(LINK) -rpath $(libdir) $(libglib_la_LDFLAGS) $(libglib_la_OBJECTS) $(libglib_la_LIBADD) $(LIBS)
-
-mostlyclean-noinstPROGRAMS:
-
-clean-noinstPROGRAMS:
-	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-
-testglib: $(testglib_OBJECTS) $(testglib_DEPENDENCIES)
-	@rm -f testglib
-	$(LINK) $(testglib_LDFLAGS) $(testglib_OBJECTS) $(testglib_LDADD) $(LIBS)
-
-testgdate: $(testgdate_OBJECTS) $(testgdate_DEPENDENCIES)
-	@rm -f testgdate
-	$(LINK) $(testgdate_LDFLAGS) $(testgdate_OBJECTS) $(testgdate_LDADD) $(LIBS)
-
-testgdateparser: $(testgdateparser_OBJECTS) $(testgdateparser_DEPENDENCIES)
-	@rm -f testgdateparser
-	$(LINK) $(testgdateparser_LDFLAGS) $(testgdateparser_OBJECTS) $(testgdateparser_LDADD) $(LIBS)
-
-install-binSCRIPTS: $(bin_SCRIPTS)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(bindir)
-	@list='$(bin_SCRIPTS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
-	    $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
-	  else if test -f $(srcdir)/$$p; then \
-	    echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
-	    $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
-	  else :; fi; fi; \
-	done
-
-uninstall-binSCRIPTS:
-	@$(NORMAL_UNINSTALL)
-	list='$(bin_SCRIPTS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
-	done
-
-install-configincludeDATA: $(configinclude_DATA)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(configincludedir)
-	@list='$(configinclude_DATA)'; for p in $$list; do \
-	  if test -f $(srcdir)/$$p; then \
-	    echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(configincludedir)/$$p"; \
-	    $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(configincludedir)/$$p; \
-	  else if test -f $$p; then \
-	    echo " $(INSTALL_DATA) $$p $(DESTDIR)$(configincludedir)/$$p"; \
-	    $(INSTALL_DATA) $$p $(DESTDIR)$(configincludedir)/$$p; \
-	  fi; fi; \
-	done
-
-uninstall-configincludeDATA:
-	@$(NORMAL_UNINSTALL)
-	list='$(configinclude_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(configincludedir)/$$p; \
-	done
-
-install-m4dataDATA: $(m4data_DATA)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(m4datadir)
-	@list='$(m4data_DATA)'; for p in $$list; do \
-	  if test -f $(srcdir)/$$p; then \
-	    echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p"; \
-	    $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p; \
-	  else if test -f $$p; then \
-	    echo " $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p"; \
-	    $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p; \
-	  fi; fi; \
-	done
-
-uninstall-m4dataDATA:
-	@$(NORMAL_UNINSTALL)
-	list='$(m4data_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(m4datadir)/$$p; \
-	done
-
-install-includeHEADERS: $(include_HEADERS)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(includedir)
-	@list='$(include_HEADERS)'; for p in $$list; do \
-	  if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-	  echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
-	  $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
-	done
-
-uninstall-includeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	list='$(include_HEADERS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(includedir)/$$p; \
-	done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive  \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
-	@set fnord $(MAKEFLAGS); amf=$$2; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-	@set fnord $(MAKEFLAGS); amf=$$2; \
-	dot_seen=no; \
-	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-	  rev="$$subdir $$rev"; \
-	  test "$$subdir" = "." && dot_seen=yes; \
-	done; \
-	test "$$dot_seen" = "no" && rev=". $$rev"; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-   if test "$$subdir" = .; then :; else \
-	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
-   fi; \
-	done; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-	-rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	-rm -rf $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-	mkdir $(distdir)/=build
-	mkdir $(distdir)/=inst
-	dc_install_base=`cd $(distdir)/=inst && pwd`; \
-	cd $(distdir)/=build \
-	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist
-	-rm -rf $(distdir)
-	@banner="$(distdir).tar.gz is ready for distribution"; \
-	dashes=`echo "$$banner" | sed s/./=/g`; \
-	echo "$$dashes"; \
-	echo "$$banner"; \
-	echo "$$dashes"
-dist: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-	-rm -rf $(distdir)
-dist-all: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-	-rm -rf $(distdir)
-distdir: $(DISTFILES)
-	-rm -rf $(distdir)
-	mkdir $(distdir)
-	-chmod 777 $(distdir)
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
-	  fi; \
-	done
-	for subdir in $(SUBDIRS); do \
-	  if test "$$subdir" = .; then :; else \
-	    test -d $(distdir)/$$subdir \
-	    || mkdir $(distdir)/$$subdir \
-	    || exit 1; \
-	    chmod 777 $(distdir)/$$subdir; \
-	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-	$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
-
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
-check-am: all-am
-check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-all-recursive-am: config.h
-	$(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-install-exec-am: install-libLTLIBRARIES install-binSCRIPTS
-install-exec: install-exec-recursive
-
-install-data-am: install-configincludeDATA install-m4dataDATA \
-		install-includeHEADERS
-install-data: install-data-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-libLTLIBRARIES uninstall-binSCRIPTS \
-		uninstall-configincludeDATA uninstall-m4dataDATA \
-		uninstall-includeHEADERS
-uninstall: uninstall-recursive
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
-		$(HEADERS) config.h
-all-redirect: all-recursive-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
-	$(mkinstalldirs)  $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \
-		$(DESTDIR)$(configincludedir) $(DESTDIR)$(m4datadir) \
-		$(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean-am:  mostlyclean-hdr mostlyclean-libLTLIBRARIES \
-		mostlyclean-compile mostlyclean-libtool \
-		mostlyclean-noinstPROGRAMS mostlyclean-tags \
-		mostlyclean-generic
-
-mostlyclean: mostlyclean-recursive
-
-clean-am:  clean-hdr clean-libLTLIBRARIES clean-compile clean-libtool \
-		clean-noinstPROGRAMS clean-tags clean-generic \
-		mostlyclean-am
-
-clean: clean-recursive
-
-distclean-am:  distclean-hdr distclean-libLTLIBRARIES distclean-compile \
-		distclean-libtool distclean-noinstPROGRAMS \
-		distclean-tags distclean-generic clean-am
-	-rm -f libtool
-
-distclean: distclean-recursive
-	-rm -f config.status
-
-maintainer-clean-am:  maintainer-clean-hdr \
-		maintainer-clean-libLTLIBRARIES \
-		maintainer-clean-compile maintainer-clean-libtool \
-		maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f config.status
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
-uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
-distclean-compile clean-compile maintainer-clean-compile \
-mostlyclean-libtool distclean-libtool clean-libtool \
-maintainer-clean-libtool mostlyclean-noinstPROGRAMS \
-distclean-noinstPROGRAMS clean-noinstPROGRAMS \
-maintainer-clean-noinstPROGRAMS uninstall-binSCRIPTS install-binSCRIPTS \
-uninstall-configincludeDATA install-configincludeDATA \
-uninstall-m4dataDATA install-m4dataDATA uninstall-includeHEADERS \
-install-includeHEADERS install-data-recursive uninstall-data-recursive \
-install-exec-recursive uninstall-exec-recursive installdirs-recursive \
-uninstalldirs-recursive all-recursive check-recursive \
-installcheck-recursive info-recursive dvi-recursive \
-mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
-install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs-am \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-glib-config: glib-config.in
-glibconfig.h: stamp-gc-h
-	@:
-stamp-gc-h: config.status
-	CONFIG_FILES= CONFIG_HEADERS= CONFIG_OTHER=glibconfig.h ./config.status
-	echo timestamp > stamp-gc-h
-
-glibconfig.h.win32: $(top_builddir)/config.status $(top_srcdir)/glibconfig.h.win32.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-config.h.win32: $(top_builddir)/config.status $(top_srcdir)/config.h.win32.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-makefile.msc: $(top_builddir)/config.status $(top_srcdir)/makefile.msc.in
-	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-.PHONY: files release sanity snapshot
-
-files:
-	@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
-	  echo $$p; \
-	done
-
-release:
-	rm -rf .deps */.deps
-	cd docs && make glib.html
-	$(MAKE) distcheck
-
-sanity:
-	./sanity_check $(VERSION)
-
-snapshot:
-	$(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`
-
-dist-hook: glib.spec
-	if test -e $(srcdir)/INSTALL.in && test -e $(srcdir)/README.in ; then \
-	     CONFIG_FILES="INSTALL:$(srcdir)/INSTALL.in README:$(srcdir)/README.in" \
-	     CONFIG_HEADERS= \
-	     $(SHELL) config.status \
-	     && cp INSTALL README $(distdir) ; \
-	fi \
-	&& cp glib.spec $(distdir)
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/glib/NEWS b/glib/NEWS
deleted file mode 100644
index e4f5e93..0000000
--- a/glib/NEWS
+++ /dev/null
@@ -1,250 +0,0 @@
-Overview of Changes in GLib 1.2.8:
-
-* GArray zero initialization bug fixed
-* Fix for upper bound calculation of formatted strings
-* Improved GCC detection
-* AIX dynamic modules fix to retrive symbols from shared libraries
-  for the main program.
-* Miscellaneous other minor bug fixes
-
-Overview of Changes in GLib 1.2.7:
-
-* Threadsafety fixes to quarked data lists.
-* Better getpwuid_r() checks for newer AIXens.
-* Locale fix to g_strtod().
-* Timer fixups to the main loop and the timer functions.
-* Upgrade to libtool 1.3.4.
-
-Overview of Changes in GLib 1.2.6:
-
-* One very small automake fix.
-
-Overview of Changes in GLib 1.2.5:
-
-* Fixes to g_mem_chunk_*  (also no more 65536 bytes restriction)
-* Better libtool 1.3.3 usage
-
-Overview of Changes in GLib 1.2.4:
-
-* Upgrade to libtool 1.3.3.
-* Minor portability fixes.
-
-Overview of Changes in GLib 1.2.3:
-
-* Minor fixes.
-
-Overview of Changes in GLib 1.2.2:
-
-* Minor fixes.
-
-Overview of Changes in GLib 1.2.1:
-
-* g_realloc() fix for SunOS (please report further problems).
-* Continued the never ending fix vendetta regarding getpwuid(),
-  this time AIX has been the culprit.
-* Upgrade to libtool 1.2f
-* Miscellaneous other buglets fixed.
-
-What's new in GLib 1.2.0 (since GLib 1.0.x):
-
-* GLib is distributed seperatedly from Gtk+
-* Win32 Portability
-* Threading support
-* GModule mechanism (implemented in an extra library) which wraps dynamic
-  object code loading facilities in a portable manner
-* GIOChannel structure to encapsulate the IPC mechanism
-* GQuarks and datasets
-* GRelations for n-way mapping of certain data
-* An n-way tree implementation
-* GDate functionality for calendar date manipulations
-* GAllocator type and associated functions
-* Added generic callback maintenance functions (ghook)
-* Generic functions for TAB completions
-* Endian defines (G_*_ENDIAN)
-* g_log() mechanism for logging of messages at different log levels
-* Generic main-loop mechanism
-* New glib-config helper script
-* Many more API extensions
-
-Overview of Changes in GLib 1.1.16:
-
-* Allocate smaller pools of memory for glists, gslists, gnodes
-* Bug Fixes
-
-Overview of Changes in GLib 1.1.15:
-
-* HPUX 11 thread system detection should now work
-* Release the main loop lock around calls to prepare() and
-  check() so it is not held over user code
-* A few Win32 fixups
-
-Overview of Changes in GLib 1.1.14:
-
-* Check for dlsym() in system libraries and -dl
-* FreeBSD portability fixes
-* Random bug fixes and autoconf/automake changes
-
-Overview of Changes in GLib 1.1.13:
-
-* Removed alloca() based function and macro variants again.
-* Improved thread related configure tests.
-* GSource destruction fixups.
-* Fixed up idle function removal based on user_data pointer.
-* Advanced Win32 portability.
-* Enforced GSource's check(), prepare() and dispatch() constrains,
-  loop recursions may only happen from dispatch(), and check() as well
-  as prepare() are called while the main_loop lock is being held.
-* GLib development now requires GNU autoconf 2.13, GNU automake 1.4
-  and GNU libtool 1.2d.
-* Lots of random portability and bug fixes.
-
-Overview of Changes in GLib 1.1.12:
-
-* Added alloca functions/macros: g_strdup_a, g_strconcat3_a, g_alloca,
-  g_new_a, g_new0_a
-* New tests structure.  Type 'make check' on your system to run them.
-* Avoid unnecessary extra hook referencing in g_hook_list_marshal
-
-Overview of Changes in GLib 1.1.11:
-
-* provide defaults for POLL sysdefs
-* g_main_is_running: new function to check whether a main loop has been quitted
-* a few other enhancement/fixes
-
-Overview of Changes in GLib 1.1.9:
-
-* Check for pthread_attr_init in all cases, Digital Unix 4 requires this
-* For G_LOCK_DECLARE_*, if !G_THREADS_ENABLED, eat trailing semicolon better
-* Changed g_main_poll_(add|remove) to g_main_(add|remove)_poll
-
-Overview of Changes in GLib 1.1.8:
-
-* Added threading support
-  - The ability to specify a set of functions to be used for
-    locking at runtime.
-  - Default implementations of locking functions for pthreads,
-    Solaris threads, and (experimentally) NSPR.
-  - All static variables should now properly locked.
-  - Enhancements to the generic main-loop mechanism to be thread-safe.
-    (It is used for the main-loop in GTK+ as of GTK+-1.1.8)
-* Portability fixes.
-
-Overview of Changes in GLib 1.1.7:
-
-* Removed multiple define from glibconfig.h
-
-Overview of Changes in GLib 1.1.6:
-
-* New GDate functionality for calendar date manipulations (g_date_*)
-* New GAllocator type and assocated functions
-* New functions g_slist_copy and g_list_copy to duplicate a list with all
-  its data pointers.
-* New function g_array_insert_vals and new macro g_array_insert_val to
-  insert elements at an arbitrary index
-* GAllocators used for glist, gslist, gnode node allocations
-* Incremental freezing in ghash
-* New function g_hook_list_marshal_check to eventually destroy hooks after
-  they got marshalled
-* Revised GIOChannel to provide generic virtual-function based interface
-* Added generic main-loop abstraction
-* Removed GListAllocator type and its g_*_allocator_*() function variants
-* Bug fixes
-
-Overview of Changes in GLib 1.1.5:
-
-* Win32 portability
-* GIOChannel structure to encapsulate the IPC mechanism 
-* Reimplemented endian stuff, using inline asm for x86
-* New functions:
-  - g_strescape: escapes backslashes
-  - g_path_is_absolute and g_path_skip_root
-  - g_getenv: expands environment variables that contain references 
-    to other environment variables
-  - g_scanner_sync_file_offset: rewind the filedescriptor to the current
-    buffer position and blow the file read ahead buffer
-  - g_array_remove_index: remove an entry, preserving the order
-  - g_array_remove_index_fast: remove an entry, order might be distorted
-  - g_ptr_array_remove: remove an entry, preserving the order 
-  - g_ptr_array_remove_fast: remove an entry, order might be distorted
-  - g_byte_array_remove_index: wrapper for g_array_remove_index
-  - g_byte_array_remove_index_fast: wrapper for g_array_remove_index_fast
-  - g_strncasecmp: modeled closely after g_strcasecmp
-  - g_list_sort, g_slist_sort: to merge sort GLists and GSLists
-* New macros:
-  - G_DIR_SEPARATOR, G_DIR_SEPARATOR_S: platform-dependant file name
-    syntax elements
-  - G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S: platform-dependant
-    search path syntax conventions
-  - G_STRUCT_OFFSET, G_STRUCT_MEMBER_P, G_STRUCT_MEMBER: for handling
-    structure fields through their offsets
-* Removed G_ENUM, G_FLAGS, G_NV, and G_SV macros
-* Bug fixes
-
-Overview of Changes in GLib 1.1.4:
-
-* Added generic callback maintenance functions (ghook)
-* New endian defines (G_*_ENDIAN)
-* New string join/split/free routines 
-* Fixes
-
-Overview of Changes in GLib 1.1.3:
-
-* New GModule mechanism (implemented in an extra library) which wraps dynamic
-  object code loading facilities in a portable manner.
-* glib-config features extra "glib" (old behaviour remains) and "gmodule"
-  (add libgmodule.so to the --libs output) arguments now. this can also
-  be specified as fourth argument to the AM_PATH_GLIB() macro.
-* Overhaul of the `inline' autoconfiguration stuff, so inlining should be
-  sufficiently supported on all systems that allow inlining now.
-* New g_log() mechanism for logging of messages at different log levels,
-  associated with certain log domains (define -DG_LOG_DOMAIN for your library).
-* New inline functions for bit masks tests.
-* GNode macros (and functions) now return the newly allocated node.
-* New macro G_VA_COPY() to work around va_list copying oddities on some
-  platforms. the non-static g_vsprintf() function vanished in favour of
-  a publically exported g_strdup_vprintf().
-  People that used the former g_vsprintf() would definitely want to read the
-  associated ChangeLog entries (grep for printf).
-* New utility functions:
-  g_strndup(), g_on_error_query(), g_on_error_stack_trace(), g_strdup_printf(),
-  g_strdup_vprintf(), g_printf_string_upper_bound(), g_spaced_primes_closest(),
-  g_strnfill(), g_memdup(). 
-* Overhaul of the array implementations, this contains some source incompatible
-  changes. Again, the ChangeLog is much more informative (grep for garray.c).
-* The internals of the g_dataset mechanism are now exported through the
-  new g_datalist_* API (this is also the underlying implementation for the
-  keyed data of GtkObjects).
-* New function g_atexit(), use of the ATEXIT() macro is discouraged.
-* Better configure checks for ansi compliance.
-* Libtool update to version 1.2b.
-* Lotsa bug fixes and cleanups as always ;)
-
-Overview of Changes in GLib 1.1.2:
-
-* Fixed packaging mistake which occured in 1.1.1
-* fix 64-bitness in g_prints in glibtest
-
-What is new in GLib 1.1.1:
-
-* An n-way tree implementation is provided now, based on the GNode structure.
-* Bugfix for pointer arrays.
-
-What is new in GLib 1.1.0:
-
-* GLib is distributed seperatedly from Gtk+ now and uses a sophisticated
-  shared library versioning scheme to deal with interface and binary
-  incompatibilities.
-* There is a glib-config helper script installed now.
-* Fixups all over the place.
-* gboolean is now a gint, not a gchar anymore.
-* API extensions for GList and GSList.
-* New g_str*() functions for simple string handling.
-* GScanner extensions for scope, warning and error handling.
-* Minor performance improvements for GMemChunks.
-* Implementations of GQuarks and datasets (similar to GtkObjects data
-  mechansim, but works for generic memory locations).
-* More convenience macros for GNU C function arguments.
-* Const correction all over the place, including a new pointer type
-  gconstpointer.
-* Generic functions for TAB completions.
-* GRelations for n-way mapping of certain data.
diff --git a/glib/README b/glib/README
deleted file mode 100644
index f011dcb..0000000
--- a/glib/README
+++ /dev/null
@@ -1,66 +0,0 @@
-General Information
-===================
-
-This is GLib version 1.2.8. GLib is a library which includes support
-routines for C such as lists, trees, hashes, memory allocation, and
-many other things.
-
-The official ftp site is:
-  ftp://ftp.gtk.org/pub/gtk
-
-The official web site is:
-  http://www.gtk.org/
-
-A mailing list is located at:
-  gtk-list@redhat.com
-
-To subscribe: mail -s subscribe gtk-list-request@redhat.com < /dev/null
-(Send mail to gtk-list-request@redhat.com with the subject "subscribe")
-
-Installation
-============
-
-See the file 'INSTALL'
-
-How to report bugs
-==================
-
-To report a bug, send mail either to gtk-list, as mentioned
-above, or to gtk-bugs@gtk.org. If you send mail to gtk-list, you
-must be subscribed yourself.
-
-In the mail include:
-
-* The version of GLib
-
-* Information about your system. For instance:
-
-   - What operating system and version
-   - What version of X
-   - For Linux, what version of the C library
-
-  And anything else you think is relevant.
-
-* How to reproduce the bug. 
-
-  If you can reproduce it with the testglib program that is built 
-  in the glib/ directory, that will be most convenient.  Otherwise, 
-  please include a short test program that exhibits the behavior. 
-  As a last resort, you can also provide a pointer to a larger piece 
-  of software that can be downloaded.
-
-* If the bug was a crash, the exact text that was printed out
-  when the crash occured.
-
-* Further information such as stack traces may be useful, but
-  is not necessary.
-
-Patches
-=======
-
-Patches can be uploaded to the incoming/ directory on
-ftp.gtk.org.  Please follow the instructions there, and include
-your name and email address in the README file.
-
-If the patch fixes a bug, it is usually a good idea to include
-all the information described in "How to Report Bugs".
diff --git a/glib/README.svn b/glib/README.svn
deleted file mode 100644
index 66e2554..0000000
--- a/glib/README.svn
+++ /dev/null
@@ -1,19 +0,0 @@
-This is the Subversion project's vendor branch of GLIB.
-It was imported with
-
-  CVSROOT=:pserver:kfogel@cvs.tigris.org:/cvs \
-  cvs import -ko -I ! -m "import of glib-1.2.8" subversion/glib glib Rel_1_2_8
-
-To upgrade, get the latest glib from
-
-  ftp://ftp.gtk.org/pub/gtk/v1.2/
-
-unpack, cd into its top-level, and do the same import (replacing the
-version number, in both the commit message and the final tag, with the
-new number, of course).
-
-If you get any conflicts, then do
-
-   cvs checkout -j PREVIOUS_RELEASE_TAG -j NEW_RELEASE_TAG subversion/glib
-
-resolve the conflict, and commit.
diff --git a/glib/README.win32 b/glib/README.win32
deleted file mode 100644
index 3db8d84..0000000
--- a/glib/README.win32
+++ /dev/null
@@ -1,54 +0,0 @@
-For more information about the port or GLib, GTk+ and the GIMP to
-native Windows, and pre-built binary packages, see
-http://www.iki.fi/tml/gimp/win32/ . "Native" means that we use the
-Win32 API only, and not any POSIX emulation layer except that provided
-by the Microsoft runtime C library. Additionally the pthreads
-emulation library is used.
-
-As for now, to build GLib on Win32, you need the Microsoft compiler
-and tools. Both the compiler from MSVC 5.0 and MSVC 6.0 have been used
-successfully.
-
-Before building you must get the pthreads library for Windows from
-http://sourceware.cygnus.com/pthreads-win32/. We want the 1999-04-07
-release. Edit the location of the pthreads library and include files
-in makefile.msc. Also edit the BIN definition in makefile.msc.
-
-Build with `nmake -f makefile.msc`. Install with `nmake -f
-makefile.msc install`.
-
-Support for building using the cygwin tools (without depending on the
-cygwin runtime, i.e. "mingw32"), and maybe LCC-Win32 might be added
-later. When using the cygwin tools *with* the cygwin runtime the
-normal Unix configuration method should work as if on Unix (knock on
-wood).
-
-With a little work, it might be possible to use the ./configure
-mechanism also with a "mingw32" configuration. I.e. building GLib for
-Win32 would use the cygwin tools (and runtime), but the produced
-libraries would not depend on the cygwin runtime being present.
-
-The following preprocessor macros are used for conditional compilation 
-related to Win32:
-
-- WIN32 is defined when compiling for the Win32 platform, regardless
-  if using the X11 or Win32 windowing API (in the case of GLib, this
-  dimension isn't significant), regardless whether using a more or
-  less complete POSIX emulation runtime layer (like Cygwin) or not.
-
-- NATIVE_WIN32 is defined when compiling for Win32, *and* without
-  any POSIX emulation, other that to the extent provided by the
-  (Microsoft) C library, or the pthreads-win32 library. For instance,
-  pathnames use the native Windows syntax.
-
-- _MSC_VER is defined when using the Microsoft compiler.
-
-Currently the Win32 port uses the combination with all three of those
-on, but eventually the cygwin compiler and tools will be supported
-also, and in that case _MSC_VER wouldn't be defined.
-
-Some of the usage of these macros is probably a bit mixed up, and will
-have to be straightened out when actually trying other combinations.
-
-The pthreads for Win32 package that the thread support uses isn't
-released yet, and thus threads really should not be relied upon.
diff --git a/glib/acconfig.h b/glib/acconfig.h
deleted file mode 100644
index 14d3033..0000000
--- a/glib/acconfig.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-/* acconfig.h
-   This file is in the public domain.
-
-   Descriptive text for the C preprocessor macros that
-   the distributed Autoconf macros can define.
-   No software package will use all of them; autoheader copies the ones
-   your configure.in uses into your configuration header file templates.
-
-   The entries are in sort -df order: alphabetical, case insensitive,
-   ignoring punctuation (such as underscores).  Although this order
-   can split up related entries, it makes it easier to check whether
-   a given entry is in the file.
-
-   Leave the following blank line there!!  Autoheader needs it.  */
-
-
-/* Other stuff */
-
-#undef ENABLE_MEM_CHECK
-#undef ENABLE_MEM_PROFILE
-
-#undef REALLOC_0_WORKS
-
-#undef G_COMPILED_WITH_DEBUGGING
-#undef G_THREADS_ENABLED
-
-#undef GLIB_SIZEOF_GMUTEX
-#undef GLIB_BYTE_CONTENTS_GMUTEX
-
-#undef HAVE_BROKEN_WCTYPE
-#undef HAVE_DOPRNT
-#undef HAVE_FLOAT_H
-#undef HAVE_GETPWUID_R
-#undef HAVE_GETPWUID_R_POSIX
-#undef HAVE_LIMITS_H
-#undef HAVE_LONG_DOUBLE
-#undef HAVE_POLL
-#undef HAVE_PTHREAD_COND_TIMEDWAIT_POSIX
-#undef HAVE_PTHREAD_GETSPECIFIC_POSIX
-#undef HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX
-#undef HAVE_PWD_H
-#undef HAVE_SYS_PARAM_H
-#undef HAVE_SYS_POLL_H
-#undef HAVE_SYS_SELECT_H
-#undef HAVE_SYS_TIME_H
-#undef HAVE_SYS_TIMES_H
-#undef HAVE_STRERROR
-#undef HAVE_STRSIGNAL
-#undef HAVE_UNISTD_H
-#undef HAVE_VALUES_H
-#undef HAVE_WCHAR_H
-#undef HAVE_WCTYPE_H
-
-#undef NO_FD_SET
-#undef NO_SYS_ERRLIST
-#undef NO_SYS_SIGLIST
-#undef NO_SYS_SIGLIST_DECL
-
-#undef SIZEOF_CHAR
-#undef SIZEOF_SHORT
-#undef SIZEOF_LONG
-#undef SIZEOF_INT
-#undef SIZEOF_VOID_P
-
-#undef G_VA_COPY
-#undef G_VA_COPY_AS_ARRAY
-#undef G_HAVE___INLINE
-#undef G_HAVE___INLINE__
-#undef G_HAVE_INLINE
-
-#undef GLIB_MAJOR_VERSION
-#undef GLIB_MINOR_VERSION
-#undef GLIB_MICRO_VERSION
-#undef GLIB_INTERFACE_AGE
-#undef GLIB_BINARY_AGE
-
-#undef WIN32
-#undef NATIVE_WIN32
-
-#undef G_THREAD_SOURCE
-
-/* #undef PACKAGE */
-/* #undef VERSION */
-
-
-
-
-/* Leave that blank line there!!  Autoheader needs it.
-   If you're adding to this file, keep in mind:
-   The entries are in sort -df order: alphabetical, case insensitive,
-   ignoring punctuation (such as underscores).  */
diff --git a/glib/acglib.m4 b/glib/acglib.m4
deleted file mode 100644
index 5d3cd93..0000000
--- a/glib/acglib.m4
+++ /dev/null
@@ -1,127 +0,0 @@
-dnl GLIB_IF_VAR_EQ (ENV_VAR, VALUE [, EQUALS_ACTION] [, ELSE_ACTION])
-AC_DEFUN(GLIB_IF_VAR_EQ,[
-        case "$[$1]" in
-        "[$2]"[)]
-                [$3]
-                ;;
-        *[)]
-                [$4]
-                ;;
-        esac
-])
-dnl GLIB_STR_CONTAINS (SRC_STRING, SUB_STRING [, CONTAINS_ACTION] [, ELSE_ACTION])
-AC_DEFUN(GLIB_STR_CONTAINS,[
-        case "[$1]" in
-        *"[$2]"*[)]
-                [$3]
-                ;;
-        *[)]
-                [$4]
-                ;;
-        esac
-])
-dnl GLIB_ADD_TO_VAR (ENV_VARIABLE, CHECK_STRING, ADD_STRING)
-AC_DEFUN(GLIB_ADD_TO_VAR,[
-        GLIB_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]")
-])
-
-dnl GLIB_SIZEOF (INCLUDES, TYPE, ALIAS [, CROSS-SIZE])
-AC_DEFUN(GLIB_SIZEOF,
-[changequote(<<, >>)dnl
-dnl The name to #define.
-define(<<AC_TYPE_NAME>>, translit(glib_sizeof_$3, [a-z *], [A-Z_P]))dnl
-dnl The cache variable name.
-define(<<AC_CV_NAME>>, translit(glib_cv_sizeof_$3, [ *], [_p]))dnl
-changequote([, ])dnl
-AC_MSG_CHECKING(size of $2)
-AC_CACHE_VAL(AC_CV_NAME,
-[AC_TRY_RUN([#include <stdio.h>
-$1
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof($2));
-  exit(0);
-}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$4], , , AC_CV_NAME=$4))])dnl
-AC_MSG_RESULT($AC_CV_NAME)
-AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
-undefine([AC_TYPE_NAME])dnl
-undefine([AC_CV_NAME])dnl
-])
-
-dnl GLIB_BYTE_CONTENTS (INCLUDES, TYPE, ALIAS, N_BYTES, INITIALIZER)
-AC_DEFUN(GLIB_BYTE_CONTENTS,
-[changequote(<<, >>)dnl
-dnl The name to #define.
-define(<<AC_TYPE_NAME>>, translit(glib_byte_contents_$3, [a-z *], [A-Z_P]))dnl
-dnl The cache variable name.
-define(<<AC_CV_NAME>>, translit(glib_cv_byte_contents_$3, [ *], [_p]))dnl
-changequote([, ])dnl
-AC_MSG_CHECKING(byte contents of $2)
-AC_CACHE_VAL(AC_CV_NAME,
-[AC_TRY_RUN([#include <stdio.h>
-$1
-main()
-{
-  static $2 tv = $5;
-  char *p = (char*) &tv;
-  int i;
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  for (i = 0; i < $4; i++)
-    fprintf(f, "%s%d", i?",":"", *(p++));
-  fprintf(f, "\n");
-  exit(0);
-}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, AC_CV_NAME=0)])dnl
-AC_MSG_RESULT($AC_CV_NAME)
-AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
-undefine([AC_TYPE_NAME])dnl
-undefine([AC_CV_NAME])dnl
-])
-
-dnl GLIB_SYSDEFS (INCLUDES, DEFS_LIST, OFILE [, PREFIX])
-AC_DEFUN(GLIB_SYSDEFS,
-[glib_sysdefso="translit($3, [-_a-zA-Z0-9 *], [-_a-zA-Z0-9])"
-glib_sysdef_msg=`echo $2 | sed 's/:[[^ 	]]*//g'`
-if test "x`(echo '\n') 2>/dev/null`" != 'x\n'; then
-  glib_nl='\\n'
-else
-  glib_nl='\n'
-fi
-AC_MSG_CHECKING(system definitions for $glib_sysdef_msg)
-cat >confrun.c <<_______EOF
-#include <stdio.h>
-$1
-int main (int c, char **v) {
-  FILE *f = fopen ("$glib_sysdefso", "a");
-  if (!f) return 1;
-_______EOF
-for glib_sysdef_input in $2 ; do
-	glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([[^:]]*\):.*$/\1/'`
-	glib_default=`echo $glib_sysdef_input | sed 's/^[[^:]]*:\(.*\)$/\1/'`
-	echo "#ifdef $glib_sysdef" >>confrun.c
-	echo "  fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"$4\", $glib_sysdef);" >>confrun.c
-	echo "#else" >>confrun.c
-	if test $glib_sysdef != $glib_default; then
-		echo "  fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"$4\", $glib_default);" >>confrun.c
-	else
-		echo "  fprintf (f, \"#define GLIB_SYSDEF_%s${glib_nl}\", \"$glib_sysdef\");" >>confrun.c
-	fi
-	echo "#endif" >>confrun.c
-done
-echo "return 0; }" >>confrun.c
-AC_TRY_RUN(`cat confrun.c`, AC_MSG_RESULT(done),
-[	for glib_sysdef_input in $2 ; do
-		glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([[^:]]*\):.*$/\1/'`
-		glib_default=`echo $glib_sysdef_input | sed 's/^[[^:]]*:\(.*\)$/\1/'`
-		if test $glib_sysdef != $glib_default; then
-			glib_default=" $4$glib_default"
-		else
-			glib_default=
-		fi
-		echo "#define GLIB_SYSDEF_$glib_sysdef$glib_default" >>$glib_sysdefso
-	done
-	AC_MSG_RESULT(failed)])
-rm -f confrun.c
-])
diff --git a/glib/acinclude.m4 b/glib/acinclude.m4
deleted file mode 100644
index 47abe43..0000000
--- a/glib/acinclude.m4
+++ /dev/null
@@ -1,430 +0,0 @@
-## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
-## Copyright (C) 1996-1999 Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
-
-# serial 40 AC_PROG_LIBTOOL
-AC_DEFUN(AC_PROG_LIBTOOL,
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-
-# Save cache, so that ltconfig can load it
-AC_CACHE_SAVE
-
-# Actually configure libtool.  ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
-|| AC_MSG_ERROR([libtool configure failed])
-
-# Reload cache, that may have been modified by ltconfig
-AC_CACHE_LOAD
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-AC_DEFUN(AC_LIBTOOL_SETUP,
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_RANLIB])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-dnl
-
-case "$target" in
-NONE) lt_target="$host" ;;
-*) lt_target="$target" ;;
-esac
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
-[libtool_flags="$libtool_flags --enable-dlopen"])
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[libtool_flags="$libtool_flags --enable-win32-dll"])
-AC_ARG_ENABLE(libtool-lock,
-  [  --disable-libtool-lock  avoid locking (might break parallel builds)])
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$lt_target" in
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-])
-esac
-])
-
-# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
-
-# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
-
-# AC_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AC_ENABLE_SHARED[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN(AC_ENABLE_SHARED, [dnl
-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(shared,
-changequote(<<, >>)dnl
-<<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
-  enable_shared=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_shared=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
-])
-
-# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)])
-
-# AC_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AC_ENABLE_STATIC[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN(AC_ENABLE_STATIC, [dnl
-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(static,
-changequote(<<, >>)dnl
-<<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
-  enable_static=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_static=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
-])
-
-# AC_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)])
-
-
-# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
-# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(fast-install,
-changequote(<<, >>)dnl
-<<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
-  enable_fast_install=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_fast_install=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
-])
-
-# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)])
-
-# AC_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN(AC_PROG_LD,
-[AC_ARG_WITH(gnu-ld,
-[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by GCC])
-  ac_prog=`($CC -print-prog-name=ld) 2>&5`
-  case "$ac_prog" in
-    # Accept absolute paths.
-changequote(,)dnl
-    [\\/]* | [A-Za-z]:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-changequote([,])dnl
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(ac_cv_path_LD,
-[if test -z "$LD"; then
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      ac_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-	test "$with_gnu_ld" != no && break
-      else
-	test "$with_gnu_ld" != yes && break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-else
-  ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])
-
-AC_DEFUN(AC_PROG_LD_GNU,
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  ac_cv_prog_gnu_ld=yes
-else
-  ac_cv_prog_gnu_ld=no
-fi])
-])
-
-# AC_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN(AC_PROG_NM,
-[AC_MSG_CHECKING([for BSD-compatible nm])
-AC_CACHE_VAL(ac_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  ac_cv_path_NM="$NM"
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	ac_cv_path_NM="$ac_dir/nm -B"
-	break
-      elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	ac_cv_path_NM="$ac_dir/nm -p"
-	break
-      else
-	ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
-	continue # so that we can try to find one that supports BSD flags
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi])
-NM="$ac_cv_path_NM"
-AC_MSG_RESULT([$NM])
-])
-
-# AC_CHECK_LIBM - check for math library
-AC_DEFUN(AC_CHECK_LIBM,
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case "$lt_target" in
-*-*-beos* | *-*-cygwin*)
-  # These system don't have libm
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, main, LIBM="-lm")
-  ;;
-esac
-])
-
-# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl convenience library, adds --enable-ltdl-convenience to
-# the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
-# is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
-# to be `${top_builddir}/libltdl'.  Make sure you start DIR with
-# '${top_builddir}/' (note the single quotes!) if your package is not
-# flat, and, if you're not using automake, define top_builddir as
-# appropriate in the Makefiles.
-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case "$enable_ltdl_convenience" in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
-  INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
-])
-
-# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl installable library, and adds --enable-ltdl-install to
-# the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
-# is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
-# to be `${top_builddir}/libltdl'.  Make sure you start DIR with
-# '${top_builddir}/' (note the single quotes!) if your package is not
-# flat, and, if you're not using automake, define top_builddir as
-# appropriate in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, main,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
-    INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    INCLTDL=
-  fi
-])
-
-dnl old names
-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
-
-dnl This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])dnl
diff --git a/glib/aclocal.m4 b/glib/aclocal.m4
deleted file mode 100644
index 4acce91..0000000
--- a/glib/aclocal.m4
+++ /dev/null
@@ -1,657 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-
-# serial 40 AC_PROG_LIBTOOL
-AC_DEFUN(AC_PROG_LIBTOOL,
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-
-# Save cache, so that ltconfig can load it
-AC_CACHE_SAVE
-
-# Actually configure libtool.  ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
-|| AC_MSG_ERROR([libtool configure failed])
-
-# Reload cache, that may have been modified by ltconfig
-AC_CACHE_LOAD
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-AC_DEFUN(AC_LIBTOOL_SETUP,
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_RANLIB])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-dnl
-
-case "$target" in
-NONE) lt_target="$host" ;;
-*) lt_target="$target" ;;
-esac
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
-[libtool_flags="$libtool_flags --enable-dlopen"])
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[libtool_flags="$libtool_flags --enable-win32-dll"])
-AC_ARG_ENABLE(libtool-lock,
-  [  --disable-libtool-lock  avoid locking (might break parallel builds)])
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$lt_target" in
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-])
-esac
-])
-
-# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
-
-# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
-
-# AC_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AC_ENABLE_SHARED[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN(AC_ENABLE_SHARED, [dnl
-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(shared,
-changequote(<<, >>)dnl
-<<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
-  enable_shared=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_shared=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
-])
-
-# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)])
-
-# AC_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AC_ENABLE_STATIC[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN(AC_ENABLE_STATIC, [dnl
-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(static,
-changequote(<<, >>)dnl
-<<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
-  enable_static=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_static=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
-])
-
-# AC_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)])
-
-
-# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
-# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(fast-install,
-changequote(<<, >>)dnl
-<<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
-  enable_fast_install=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_fast_install=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
-])
-
-# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)])
-
-# AC_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN(AC_PROG_LD,
-[AC_ARG_WITH(gnu-ld,
-[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by GCC])
-  ac_prog=`($CC -print-prog-name=ld) 2>&5`
-  case "$ac_prog" in
-    # Accept absolute paths.
-changequote(,)dnl
-    [\\/]* | [A-Za-z]:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-changequote([,])dnl
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(ac_cv_path_LD,
-[if test -z "$LD"; then
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      ac_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-	test "$with_gnu_ld" != no && break
-      else
-	test "$with_gnu_ld" != yes && break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-else
-  ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])
-
-AC_DEFUN(AC_PROG_LD_GNU,
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  ac_cv_prog_gnu_ld=yes
-else
-  ac_cv_prog_gnu_ld=no
-fi])
-])
-
-# AC_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN(AC_PROG_NM,
-[AC_MSG_CHECKING([for BSD-compatible nm])
-AC_CACHE_VAL(ac_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  ac_cv_path_NM="$NM"
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	ac_cv_path_NM="$ac_dir/nm -B"
-	break
-      elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	ac_cv_path_NM="$ac_dir/nm -p"
-	break
-      else
-	ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
-	continue # so that we can try to find one that supports BSD flags
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi])
-NM="$ac_cv_path_NM"
-AC_MSG_RESULT([$NM])
-])
-
-# AC_CHECK_LIBM - check for math library
-AC_DEFUN(AC_CHECK_LIBM,
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case "$lt_target" in
-*-*-beos* | *-*-cygwin*)
-  # These system don't have libm
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, main, LIBM="-lm")
-  ;;
-esac
-])
-
-# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl convenience library, adds --enable-ltdl-convenience to
-# the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
-# is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
-# to be `${top_builddir}/libltdl'.  Make sure you start DIR with
-# '${top_builddir}/' (note the single quotes!) if your package is not
-# flat, and, if you're not using automake, define top_builddir as
-# appropriate in the Makefiles.
-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case "$enable_ltdl_convenience" in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
-  INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
-])
-
-# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl installable library, and adds --enable-ltdl-install to
-# the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
-# is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
-# to be `${top_builddir}/libltdl'.  Make sure you start DIR with
-# '${top_builddir}/' (note the single quotes!) if your package is not
-# flat, and, if you're not using automake, define top_builddir as
-# appropriate in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, main,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
-    INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    INCLTDL=
-  fi
-])
-
-dnl old names
-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
-
-dnl This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])dnl
-
-# Do all the work for Automake.  This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
-   fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
-   test "[$]2" = conftestfile
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
-else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
-
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated.  We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
-  case " <<$>>CONFIG_HEADERS " in
-  *" <<$>>am_file "*<<)>>
-    echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
-    ;;
-  esac
-  am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
-
-# Add --enable-maintainer-mode option to configure.
-# From Jim Meyering
-
-# serial 1
-
-AC_DEFUN(AM_MAINTAINER_MODE,
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
-  dnl maintainer-mode is disabled by default
-  AC_ARG_ENABLE(maintainer-mode,
-[  --enable-maintainer-mode enable make rules and dependencies not useful
-                          (and sometimes confusing) to the casual installer],
-      USE_MAINTAINER_MODE=$enableval,
-      USE_MAINTAINER_MODE=no)
-  AC_MSG_RESULT($USE_MAINTAINER_MODE)
-  AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
-  MAINT=$MAINTAINER_MODE_TRUE
-  AC_SUBST(MAINT)dnl
-]
-)
-
-# Define a conditional.
-
-AC_DEFUN(AM_CONDITIONAL,
-[AC_SUBST($1_TRUE)
-AC_SUBST($1_FALSE)
-if $2; then
-  $1_TRUE=
-  $1_FALSE='#'
-else
-  $1_TRUE='#'
-  $1_FALSE=
-fi])
-
-
-# serial 1
-
-# @defmac AC_PROG_CC_STDC
-# @maindex PROG_CC_STDC
-# @ovindex CC
-# If the C compiler in not in ANSI C mode by default, try to add an option
-# to output variable @code{CC} to make it so.  This macro tries various
-# options that select ANSI C on some system or another.  It considers the
-# compiler to be in ANSI C mode if it handles function prototypes correctly.
-#
-# If you use this macro, you should check after calling it whether the C
-# compiler has been set to accept ANSI C; if not, the shell variable
-# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
-# code in ANSI C, you can make an un-ANSIfied copy of it by using the
-# program @code{ansi2knr}, which comes with Ghostscript.
-# @end defmac
-
-AC_DEFUN(AM_PROG_CC_STDC,
-[AC_REQUIRE([AC_PROG_CC])
-AC_BEFORE([$0], [AC_C_INLINE])
-AC_BEFORE([$0], [AC_C_CONST])
-dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
-dnl a magic option to avoid problems with ANSI preprocessor commands
-dnl like #elif.
-dnl FIXME: can't do this because then AC_AIX won't work due to a
-dnl circular dependency.
-dnl AC_BEFORE([$0], [AC_PROG_CPP])
-AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
-AC_CACHE_VAL(am_cv_prog_cc_stdc,
-[am_cv_prog_cc_stdc=no
-ac_save_CC="$CC"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX			-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  AC_TRY_COMPILE(
-[#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-], [
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-],
-[am_cv_prog_cc_stdc="$ac_arg"; break])
-done
-CC="$ac_save_CC"
-])
-if test -z "$am_cv_prog_cc_stdc"; then
-  AC_MSG_RESULT([none needed])
-else
-  AC_MSG_RESULT($am_cv_prog_cc_stdc)
-fi
-case "x$am_cv_prog_cc_stdc" in
-  x|xno) ;;
-  *) CC="$CC $am_cv_prog_cc_stdc" ;;
-esac
-])
-
diff --git a/glib/config.guess b/glib/config.guess
deleted file mode 100755
index e1b5871..0000000
--- a/glib/config.guess
+++ /dev/null
@@ -1,1121 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
-#   Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# The master version of this file is at the FSF in /home/gd/gnu/lib.
-# Please send patches to <autoconf-patches@gnu.org>.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
-
-# Use $HOST_CC if defined. $CC may point to a cross-compiler
-if test x"$CC_FOR_BUILD" = x; then
-  if test x"$HOST_CC" != x; then
-    CC_FOR_BUILD="$HOST_CC"
-  else
-    if test x"$CC" != x; then
-      CC_FOR_BUILD="$CC"
-    else
-      CC_FOR_BUILD=cc
-    fi
-  fi
-fi
-
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    alpha:OSF1:*:*)
-	if test $UNAME_RELEASE = "V4.0"; then
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-	fi
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	cat <<EOF >$dummy.s
-	.globl main
-	.ent main
-main:
-	.frame \$30,0,\$26,0
-	.prologue 0
-	.long 0x47e03d80 # implver $0
-	lda \$2,259
-	.long 0x47e20c21 # amask $2,$1
-	srl \$1,8,\$2
-	sll \$2,2,\$2
-	sll \$0,3,\$0
-	addl \$1,\$0,\$0
-	addl \$2,\$0,\$0
-	ret \$31,(\$26),1
-	.end main
-EOF
-	$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
-	if test "$?" = 0 ; then
-		./$dummy
-		case "$?" in
-			7)
-				UNAME_MACHINE="alpha"
-				;;
-			15)
-				UNAME_MACHINE="alphaev5"
-				;;
-			14)
-				UNAME_MACHINE="alphaev56"
-				;;
-			10)
-				UNAME_MACHINE="alphapca56"
-				;;
-			16)
-				UNAME_MACHINE="alphaev6"
-				;;
-		esac
-	fi
-	rm -f $dummy.s $dummy
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit 0 ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-cbm-sysv4
-	exit 0;;
-    amiga:NetBSD:*:*)
-      echo m68k-cbm-netbsd${UNAME_RELEASE}
-      exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
-    arc64:OpenBSD:*:*)
-	echo mips64el-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hkmips:OpenBSD:*:*)
-	echo mips-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mips-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
-    arm32:NetBSD:*:*)
-	echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-	exit 0 ;;
-    SR2?01:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit 0 ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit 0 ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:6*:*)
-	# According to config.sub, this is the proper way to canonicalize
-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:*:*)
-	case "`/usr/bin/arch -k`" in
-	    Series*|S4*)
-		UNAME_RELEASE=`uname -v`
-		;;
-	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit 0 ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-	case "`/bin/arch`" in
-	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
-		;;
-	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
-		;;
-	esac
-	exit 0 ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    atari*:NetBSD:*:*)
-	echo m68k-atari-netbsd${UNAME_RELEASE}
-	exit 0 ;;
-    atari*:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor 
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    sun3*:NetBSD:*:*)
-	echo m68k-sun-netbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3*:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:NetBSD:*:*)
-	echo m68k-apple-netbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:NetBSD:*:*)
-        echo powerpc-apple-netbsd${UNAME_RELEASE}
-        exit 0 ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-	sed 's/^	//' << EOF >$dummy.c
-#ifdef __cplusplus
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-	#if defined (host_mips) && defined (MIPSEB)
-	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-	#endif
-	#endif
-	  exit (-1);
-	}
-EOF
-	$CC_FOR_BUILD $dummy.c -o $dummy \
-	  && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && rm $dummy.c $dummy && exit 0
-	rm -f $dummy.c $dummy
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit 0 ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit 0 ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit 0 ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110]
-	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
-	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-	    fi
-	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
-	fi
- 	exit 0 ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit 0 ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit 0 ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i?86:AIX:*:*)
-	echo i386-ibm-aix
-	exit 0 ;;
-    *:AIX:2:3)
-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		sed 's/^		//' << EOF >$dummy.c
-		#include <sys/systemcfg.h>
-
-		main()
-			{
-			if (!__power_pc())
-				exit(1);
-			puts("powerpc-ibm-aix3.2.5");
-			exit(0);
-			}
-EOF
-		$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
-		rm -f $dummy.c $dummy
-		echo rs6000-ibm-aix3.2.5
-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
-	else
-		echo rs6000-ibm-aix3.2
-	fi
-	exit 0 ;;
-    *:AIX:*:4)
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
-		IBM_ARCH=rs6000
-	else
-		IBM_ARCH=powerpc
-	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=4.${UNAME_RELEASE}
-	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit 0 ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit 0 ;;
-    9000/[34678]??:HP-UX:*:*)
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
-	    9000/[678][0-9][0-9])
-              sed 's/^              //' << EOF >$dummy.c
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-              	{
-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-              	case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-              	    switch (bits)
-              		{
-              		case 64: puts ("hppa2.0w"); break;
-              		case 32: puts ("hppa2.0n"); break;
-              		default: puts ("hppa2.0"); break;
-              		} break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-              	    puts ("hppa2.0"); break;
-              #endif
-              	default: puts ("hppa1.0"); break;
-              	}
-                  exit (0);
-              }
-EOF
-	(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
-	rm -f $dummy.c $dummy
-	esac
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    3050*:HI-UX:*:*)
-	sed 's/^	//' << EOF >$dummy.c
-	#include <unistd.h>
-	int
-	main ()
-	{
-	  long cpu = sysconf (_SC_CPU_VERSION);
-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-	     results, however.  */
-	  if (CPU_IS_PA_RISC (cpu))
-	    {
-	      switch (cpu)
-		{
-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-		}
-	    }
-	  else if (CPU_IS_HP_MC68K (cpu))
-	    puts ("m68k-hitachi-hiuxwe2");
-	  else puts ("unknown-hitachi-hiuxwe2");
-	  exit (0);
-	}
-EOF
-	$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
-	rm -f $dummy.c $dummy
-	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit 0 ;;
-    *9??*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit 0 ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit 0 ;;
-    i?86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit 0 ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit 0 ;;
-    hppa*:OpenBSD:*:*)
-	echo hppa-unknown-openbsd
-	exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*X-MP:*:*:*)
-	echo xmp-cray-unicos
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE}
-	exit 0 ;;
-    CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
-	exit 0 ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE}
-	exit 0 ;;
-    CRAY*T3E:*:*:*)
-	echo alpha-cray-unicosmk${UNAME_RELEASE}
-	exit 0 ;;
-    CRAY-2:*:*:*)
-	echo cray2-cray-unicos
-        exit 0 ;;
-    F300:UNIX_System_V:*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
-    F301:UNIX_System_V:*:*)
-       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
-       exit 0 ;;
-    hp3[0-9][05]:NetBSD:*:*)
-	echo m68k-hp-netbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*)
-	if test -x /usr/bin/objformat; then
-	    if test "elf" = "`/usr/bin/objformat`"; then
-		echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
-		exit 0
-	    fi
-	fi
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
-    *:NetBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-	exit 0 ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i386-pc-interix
-	exit 0 ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit 0 ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    *:GNU:*:*)
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
-    *:Linux:*:*)
-
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	ld_help_string=`cd /; ld --help 2>&1`
-	ld_supported_emulations=`echo $ld_help_string \
-			 | sed -ne '/supported emulations:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported emulations: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_emulations" in
-	  *ia64)
-		echo "${UNAME_MACHINE}-unknown-linux"
-		exit 0
-		;;
-	  i?86linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0
-		;;
-	  i?86coff)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0
-		;;
-	  sparclinux)
-		echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
-		exit 0
-		;;
-	  armlinux)
-		echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
-		exit 0
-		;;
-	  elf32arm*)
-		echo "${UNAME_MACHINE}-unknown-linux-gnu"
-		exit 0
-		;;
-	  armelf_linux*)
-		echo "${UNAME_MACHINE}-unknown-linux-gnu"
-		exit 0
-		;;
-	  m68klinux)
-		echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
-		exit 0
-		;;
-	  elf32ppc)
-		# Determine Lib Version
-		cat >$dummy.c <<EOF
-#include <features.h>
-#if defined(__GLIBC__)
-extern char __libc_version[];
-extern char __libc_release[];
-#endif
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
-#if defined(__GLIBC__)
-  printf("%s %s\n", __libc_version, __libc_release);
-#else
-  printf("unkown\n");
-#endif
-  return 0;
-}
-EOF
-		LIBC=""
-		$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
-		if test "$?" = 0 ; then
-			./$dummy | grep 1\.99 > /dev/null
-			if test "$?" = 0 ; then
-				LIBC="libc1"
-			fi
-		fi	
-		rm -f $dummy.c $dummy
-		echo powerpc-unknown-linux-gnu${LIBC}
-		exit 0
-		;;
-	esac
-
-	if test "${UNAME_MACHINE}" = "alpha" ; then
-		sed 's/^	//'  <<EOF >$dummy.s
-		.globl main
-		.ent main
-	main:
-		.frame \$30,0,\$26,0
-		.prologue 0
-		.long 0x47e03d80 # implver $0
-		lda \$2,259
-		.long 0x47e20c21 # amask $2,$1
-		srl \$1,8,\$2
-		sll \$2,2,\$2
-		sll \$0,3,\$0
-		addl \$1,\$0,\$0
-		addl \$2,\$0,\$0
-		ret \$31,(\$26),1
-		.end main
-EOF
-		LIBC=""
-		$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
-		if test "$?" = 0 ; then
-			./$dummy
-			case "$?" in
-			7)
-				UNAME_MACHINE="alpha"
-				;;
-			15)
-				UNAME_MACHINE="alphaev5"
-				;;
-			14)
-				UNAME_MACHINE="alphaev56"
-				;;
-			10)
-				UNAME_MACHINE="alphapca56"
-				;;
-			16)
-				UNAME_MACHINE="alphaev6"
-				;;
-			esac
-
-			objdump --private-headers $dummy | \
-			  grep ld.so.1 > /dev/null
-			if test "$?" = 0 ; then
-				LIBC="libc1"
-			fi
-		fi
-		rm -f $dummy.s $dummy
-		echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
-	elif test "${UNAME_MACHINE}" = "mips" ; then
-	  cat >$dummy.c <<EOF
-#ifdef __cplusplus
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __MIPSEB__
-  printf ("%s-unknown-linux-gnu\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
-  printf ("%sel-unknown-linux-gnu\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-	  $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-	  rm -f $dummy.c $dummy
-	else
-	  # Either a pre-BFD a.out linker (linux-gnuoldld)
-	  # or one that does not give us useful --help.
-	  # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
-	  # If ld does not provide *any* "supported emulations:"
-	  # that means it is gnuoldld.
-	  echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
-	  test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
-
-	  case "${UNAME_MACHINE}" in
-	  i?86)
-	    VENDOR=pc;
-	    ;;
-	  *)
-	    VENDOR=unknown;
-	    ;;
-	  esac
-	  # Determine whether the default compiler is a.out or elf
-	  cat >$dummy.c <<EOF
-#include <features.h>
-#ifdef __cplusplus
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __ELF__
-# ifdef __GLIBC__
-#  if __GLIBC__ >= 2
-    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
-#  else
-    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-#  endif
-# else
-   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-#else
-  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-	  $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-	  rm -f $dummy.c $dummy
-	fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
-# are messed up and put the nodename in both sysname and nodename.
-    i?86:DYNIX/ptx:4*:*)
-	echo i386-sequent-sysv4
-	exit 0 ;;
-    i?86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit 0 ;;
-    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-	fi
-	exit 0 ;;
-    i?86:*:5:7*)
-        # Fixed at (any) Pentium or better
-        UNAME_MACHINE=i586
-        if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
-	    echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
-	else
-	    echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
-	fi
-	exit 0 ;;
-    i?86:*:3.2:*)
-	if test -f /usr/options/cb.name; then
-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
-			&& UNAME_MACHINE=i586
-		(/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-	else
-		echo ${UNAME_MACHINE}-pc-sysv32
-	fi
-	exit 0 ;;
-    pc:*:*:*)
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit 0 ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit 0 ;;
-    i860:*:4.*:*) # i860-SVR4
-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-	fi
-	exit 0 ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit 0 ;;
-    M68*:*:R3V[567]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
-	OS_REL=''
-	test -r /etc/.relid \
-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit 0 ;;
-    i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    *:SINIX-*:*:*)
-	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
-	else
-		echo ns32k-sni-sysv
-	fi
-	exit 0 ;;
-    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                           # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes@openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
-    *:*:*:FTX*)
-	# From seanf@swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit 0 ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
-    news*:NEWS-OS:*:6*)
-	echo mips-sony-newsos6
-	exit 0 ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-	if [ -d /usr/nec ]; then
-	        echo mips-nec-sysv${UNAME_RELEASE}
-	else
-	        echo mips-unknown-sysv${UNAME_RELEASE}
-	fi
-        exit 0 ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit 0 ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit 0 ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:QNX:*:4*)
-	echo i386-qnx-qnx${UNAME_VERSION}
-	exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-	  ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
-  printf ("vax-dec-bsd\n"); exit (0);
-#else
-  printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit 0 ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit 0 ;;
-    c34*)
-	echo c34-convex-bsd
-	exit 0 ;;
-    c38*)
-	echo c38-convex-bsd
-	exit 0 ;;
-    c4*)
-	echo c4-convex-bsd
-	exit 0 ;;
-    esac
-fi
-
-#echo '(Unable to guess system type)' 1>&2
-
-exit 1
diff --git a/glib/config.h.in b/glib/config.h.in
deleted file mode 100644
index bbcbcb6..0000000
--- a/glib/config.h.in
+++ /dev/null
@@ -1,161 +0,0 @@
-/* config.h.in.  Generated automatically from configure.in by autoheader.  */
-
-/* Define to empty if the keyword does not work.  */
-#undef const
-
-/* Define if you don't have vprintf but do have _doprnt.  */
-#undef HAVE_DOPRNT
-
-/* Define if you have <unistd.h>.  */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the vprintf function.  */
-#undef HAVE_VPRINTF
-
-/* Define if you have the ANSI C header files.  */
-#undef STDC_HEADERS
-
-/* Define if your processor stores words with the most significant
-   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
-#undef WORDS_BIGENDIAN
-
-#undef ENABLE_MEM_CHECK
-#undef ENABLE_MEM_PROFILE
-
-#undef REALLOC_0_WORKS
-
-#undef G_COMPILED_WITH_DEBUGGING
-#undef G_THREADS_ENABLED
-
-#undef GLIB_SIZEOF_GMUTEX
-#undef GLIB_BYTE_CONTENTS_GMUTEX
-
-#undef HAVE_BROKEN_WCTYPE
-#undef HAVE_DOPRNT
-#undef HAVE_FLOAT_H
-#undef HAVE_GETPWUID_R
-#undef HAVE_GETPWUID_R_POSIX
-#undef HAVE_LIMITS_H
-#undef HAVE_LONG_DOUBLE
-#undef HAVE_POLL
-#undef HAVE_PTHREAD_COND_TIMEDWAIT_POSIX
-#undef HAVE_PTHREAD_GETSPECIFIC_POSIX
-#undef HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX
-#undef HAVE_PWD_H
-#undef HAVE_SYS_PARAM_H
-#undef HAVE_SYS_POLL_H
-#undef HAVE_SYS_SELECT_H
-#undef HAVE_SYS_TIME_H
-#undef HAVE_SYS_TIMES_H
-#undef HAVE_STRERROR
-#undef HAVE_STRSIGNAL
-#undef HAVE_UNISTD_H
-#undef HAVE_VALUES_H
-#undef HAVE_WCHAR_H
-#undef HAVE_WCTYPE_H
-
-#undef NO_FD_SET
-#undef NO_SYS_ERRLIST
-#undef NO_SYS_SIGLIST
-#undef NO_SYS_SIGLIST_DECL
-
-#undef G_VA_COPY
-#undef G_VA_COPY_AS_ARRAY
-#undef G_HAVE___INLINE
-#undef G_HAVE___INLINE__
-#undef G_HAVE_INLINE
-
-#undef GLIB_MAJOR_VERSION
-#undef GLIB_MINOR_VERSION
-#undef GLIB_MICRO_VERSION
-#undef GLIB_INTERFACE_AGE
-#undef GLIB_BINARY_AGE
-
-#undef G_THREAD_SOURCE
-
-/* The number of bytes in a char.  */
-#undef SIZEOF_CHAR
-
-/* The number of bytes in a int.  */
-#undef SIZEOF_INT
-
-/* The number of bytes in a long.  */
-#undef SIZEOF_LONG
-
-/* The number of bytes in a long long.  */
-#undef SIZEOF_LONG_LONG
-
-/* The number of bytes in a short.  */
-#undef SIZEOF_SHORT
-
-/* The number of bytes in a void *.  */
-#undef SIZEOF_VOID_P
-
-/* Define if you have the atexit function.  */
-#undef HAVE_ATEXIT
-
-/* Define if you have the localtime_r function.  */
-#undef HAVE_LOCALTIME_R
-
-/* Define if you have the lstat function.  */
-#undef HAVE_LSTAT
-
-/* Define if you have the memmove function.  */
-#undef HAVE_MEMMOVE
-
-/* Define if you have the on_exit function.  */
-#undef HAVE_ON_EXIT
-
-/* Define if you have the poll function.  */
-#undef HAVE_POLL
-
-/* Define if you have the rand_r function.  */
-#undef HAVE_RAND_R
-
-/* Define if you have the strcasecmp function.  */
-#undef HAVE_STRCASECMP
-
-/* Define if you have the strerror function.  */
-#undef HAVE_STRERROR
-
-/* Define if you have the strncasecmp function.  */
-#undef HAVE_STRNCASECMP
-
-/* Define if you have the strsignal function.  */
-#undef HAVE_STRSIGNAL
-
-/* Define if you have the vsnprintf function.  */
-#undef HAVE_VSNPRINTF
-
-/* Define if you have the <float.h> header file.  */
-#undef HAVE_FLOAT_H
-
-/* Define if you have the <limits.h> header file.  */
-#undef HAVE_LIMITS_H
-
-/* Define if you have the <pwd.h> header file.  */
-#undef HAVE_PWD_H
-
-/* Define if you have the <sys/param.h> header file.  */
-#undef HAVE_SYS_PARAM_H
-
-/* Define if you have the <sys/poll.h> header file.  */
-#undef HAVE_SYS_POLL_H
-
-/* Define if you have the <sys/select.h> header file.  */
-#undef HAVE_SYS_SELECT_H
-
-/* Define if you have the <sys/time.h> header file.  */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <sys/times.h> header file.  */
-#undef HAVE_SYS_TIMES_H
-
-/* Define if you have the <unistd.h> header file.  */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the <values.h> header file.  */
-#undef HAVE_VALUES_H
-
-/* Define if you have the w library (-lw).  */
-#undef HAVE_LIBW
diff --git a/glib/config.h.win32 b/glib/config.h.win32
deleted file mode 100644
index 5695206..0000000
--- a/glib/config.h.win32
+++ /dev/null
@@ -1,139 +0,0 @@
-/* config.h.win32. Handcrafted for Microsoft C */
-
-/* Define to empty if the keyword does not work.  */
-/* #undef const */
-
-/* Define if you don't have vprintf but do have _doprnt.  */
-/* #undef HAVE_DOPRNT */
-
-/* Define if you have <unistd.h>.  */
-/* #undef HAVE_UNISTD_H */
-
-/* Define if you have the vprintf function.  */
-#define HAVE_VPRINTF 1
-
-/* Define if you have the ANSI C header files.  */
-#define STDC_HEADERS 1
-
-/* Define if your processor stores words with the most significant
-   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
-/* #undef WORDS_BIGENDIAN */
-
-/* #undef ENABLE_MEM_CHECK */
-/* #undef ENABLE_MEM_PROFILE */
-
-#define G_COMPILED_WITH_DEBUGGING "minimum"
-
-/* #undef HAVE_BROKEN_WCTYPE */
-/* #undef HAVE_DOPRNT */
-#define HAVE_FLOAT_H 1
-#define HAVE_LIMITS_H 1
-/* #undef HAVE_LOCALTIME_R */
-/* #undef HAVE_LONG_DOUBLE */
-/* #undef HAVE_POLL */
-/* #undef HAVE_PWD_H */
-/* #undef HAVE_SYS_PARAM_H */
-/* #undef HAVE_SYS_POLL_H */
-/* #undef HAVE_SYS_SELECT_H */
-/* #undef HAVE_SYS_TIME_H */
-/* #undef HAVE_SYS_TIMES_H */
-#define HAVE_STRERROR 1
-/* #undef HAVE_STRSIGNAL */
-/* #undef HAVE_UNISTD_H */
-/* #undef HAVE_VSNPRINTF */
-/* #undef HAVE_VALUES_H */
-#define HAVE_VPRINTF 1
-#define HAVE_WCHAR_H 1
-#define HAVE_WCTYPE_H 1
-
-/* #undef NO_FD_SET */
-/* #undef NO_SYS_ERRLIST */
-#define NO_SYS_SIGLIST 1
-
-/* #undef G_VA_COPY */
-/* #undef G_VA_COPY_AS_ARRAY */
-#define G_HAVE___INLINE 1
-
-#define GLIB_MAJOR_VERSION 1
-#define GLIB_MINOR_VERSION 2
-#define GLIB_MICRO_VERSION 8
-#define GLIB_INTERFACE_AGE 8
-#define GLIB_BINARY_AGE 8
-
-#define G_THREAD_SOURCE "gthread-posix.c"
-#define HAVE_PTHREAD_COND_TIMEDWAIT_POSIX 1
-#define HAVE_PTHREAD_GETSPECIFIC_POSIX 1
-#define HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX 1
-
-/* The number of bytes in a char.  */
-#define SIZEOF_CHAR 1
-
-/* The number of bytes in a int.  */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long.  */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long long.  */
-#define SIZEOF_LONG_LONG 8
-
-/* The number of bytes in a short.  */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a void *.  */
-#define SIZEOF_VOID_P 4
-
-/* Define if you have the atexit function.  */
-#define HAVE_ATEXIT 1
-
-/* Define if you have the lstat function.  */
-/* #undef HAVE_LSTAT */
-
-/* Define if you have the memmove function.  */
-#define HAVE_MEMMOVE 1
-
-/* Define if you have the on_exit function.  */
-/* #undef HAVE_ON_EXIT */
-
-/* Define if you have the strcasecmp function.  */
-/* #undef HAVE_STRCASECMP ^*/
-
-/* Define if you have the strerror function.  */
-#define HAVE_STRERROR 1
-
-/* Define if you have the strsignal function.  */
-/* #undef HAVE_STRSIGNAL */
-
-/* Define if you have the vsnprintf function.  */
-/* #undef HAVE_VSNPRINTF */
-
-/* Define if you have the <float.h> header file.  */
-#define HAVE_FLOAT_H 1
-
-/* Define if you have the <limits.h> header file.  */
-#define HAVE_LIMITS_H 1
-
-/* Define if you have the <pwd.h> header file.  */
-/* #undef HAVE_PWD_H */
-
-/* Define if you have the <sys/param.h> header file.  */
-/* #undef HAVE_SYS_PARAM_H */
-
-/* Define if you have the <sys/select.h> header file.  */
-/* #undef HAVE_SYS_SELECT_H */
-
-/* Define if you have the <sys/time.h> header file.  */
-/* #undef HAVE_SYS_TIME_H */
-
-/* Define if you have the <sys/times.h> header file.  */
-/* #undef HAVE_SYS_TIMES_H */
-
-/* Define if you have the <unistd.h> header file.  */
-/* #undef HAVE_UNISTD_H */
-
-/* Define if you have the <values.h> header file.  */
-/* #undef HAVE_VALUES_H */
-
-/* Define if you have the w library (-lw).  */
-/* #undef HAVE_LIBW */
-
diff --git a/glib/config.h.win32.in b/glib/config.h.win32.in
deleted file mode 100644
index 1e2105b..0000000
--- a/glib/config.h.win32.in
+++ /dev/null
@@ -1,139 +0,0 @@
-/* config.h.win32. Handcrafted for Microsoft C */
-
-/* Define to empty if the keyword does not work.  */
-/* #undef const */
-
-/* Define if you don't have vprintf but do have _doprnt.  */
-/* #undef HAVE_DOPRNT */
-
-/* Define if you have <unistd.h>.  */
-/* #undef HAVE_UNISTD_H */
-
-/* Define if you have the vprintf function.  */
-#define HAVE_VPRINTF 1
-
-/* Define if you have the ANSI C header files.  */
-#define STDC_HEADERS 1
-
-/* Define if your processor stores words with the most significant
-   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
-/* #undef WORDS_BIGENDIAN */
-
-/* #undef ENABLE_MEM_CHECK */
-/* #undef ENABLE_MEM_PROFILE */
-
-#define G_COMPILED_WITH_DEBUGGING "minimum"
-
-/* #undef HAVE_BROKEN_WCTYPE */
-/* #undef HAVE_DOPRNT */
-#define HAVE_FLOAT_H 1
-#define HAVE_LIMITS_H 1
-/* #undef HAVE_LOCALTIME_R */
-/* #undef HAVE_LONG_DOUBLE */
-/* #undef HAVE_POLL */
-/* #undef HAVE_PWD_H */
-/* #undef HAVE_SYS_PARAM_H */
-/* #undef HAVE_SYS_POLL_H */
-/* #undef HAVE_SYS_SELECT_H */
-/* #undef HAVE_SYS_TIME_H */
-/* #undef HAVE_SYS_TIMES_H */
-#define HAVE_STRERROR 1
-/* #undef HAVE_STRSIGNAL */
-/* #undef HAVE_UNISTD_H */
-/* #undef HAVE_VSNPRINTF */
-/* #undef HAVE_VALUES_H */
-#define HAVE_VPRINTF 1
-#define HAVE_WCHAR_H 1
-#define HAVE_WCTYPE_H 1
-
-/* #undef NO_FD_SET */
-/* #undef NO_SYS_ERRLIST */
-#define NO_SYS_SIGLIST 1
-
-/* #undef G_VA_COPY */
-/* #undef G_VA_COPY_AS_ARRAY */
-#define G_HAVE___INLINE 1
-
-#define GLIB_MAJOR_VERSION @GLIB_MAJOR_VERSION@
-#define GLIB_MINOR_VERSION @GLIB_MINOR_VERSION@
-#define GLIB_MICRO_VERSION @GLIB_MICRO_VERSION@
-#define GLIB_INTERFACE_AGE @GLIB_INTERFACE_AGE@
-#define GLIB_BINARY_AGE @GLIB_BINARY_AGE@
-
-#define G_THREAD_SOURCE "gthread-posix.c"
-#define HAVE_PTHREAD_COND_TIMEDWAIT_POSIX 1
-#define HAVE_PTHREAD_GETSPECIFIC_POSIX 1
-#define HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX 1
-
-/* The number of bytes in a char.  */
-#define SIZEOF_CHAR 1
-
-/* The number of bytes in a int.  */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long.  */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long long.  */
-#define SIZEOF_LONG_LONG 8
-
-/* The number of bytes in a short.  */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a void *.  */
-#define SIZEOF_VOID_P 4
-
-/* Define if you have the atexit function.  */
-#define HAVE_ATEXIT 1
-
-/* Define if you have the lstat function.  */
-/* #undef HAVE_LSTAT */
-
-/* Define if you have the memmove function.  */
-#define HAVE_MEMMOVE 1
-
-/* Define if you have the on_exit function.  */
-/* #undef HAVE_ON_EXIT */
-
-/* Define if you have the strcasecmp function.  */
-/* #undef HAVE_STRCASECMP ^*/
-
-/* Define if you have the strerror function.  */
-#define HAVE_STRERROR 1
-
-/* Define if you have the strsignal function.  */
-/* #undef HAVE_STRSIGNAL */
-
-/* Define if you have the vsnprintf function.  */
-/* #undef HAVE_VSNPRINTF */
-
-/* Define if you have the <float.h> header file.  */
-#define HAVE_FLOAT_H 1
-
-/* Define if you have the <limits.h> header file.  */
-#define HAVE_LIMITS_H 1
-
-/* Define if you have the <pwd.h> header file.  */
-/* #undef HAVE_PWD_H */
-
-/* Define if you have the <sys/param.h> header file.  */
-/* #undef HAVE_SYS_PARAM_H */
-
-/* Define if you have the <sys/select.h> header file.  */
-/* #undef HAVE_SYS_SELECT_H */
-
-/* Define if you have the <sys/time.h> header file.  */
-/* #undef HAVE_SYS_TIME_H */
-
-/* Define if you have the <sys/times.h> header file.  */
-/* #undef HAVE_SYS_TIMES_H */
-
-/* Define if you have the <unistd.h> header file.  */
-/* #undef HAVE_UNISTD_H */
-
-/* Define if you have the <values.h> header file.  */
-/* #undef HAVE_VALUES_H */
-
-/* Define if you have the w library (-lw).  */
-/* #undef HAVE_LIBW */
-
diff --git a/glib/config.sub b/glib/config.sub
deleted file mode 100755
index 28426bb..0000000
--- a/glib/config.sub
+++ /dev/null
@@ -1,1232 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-#   Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-if [ x$1 = x ]
-then
-	echo Configuration name missing. 1>&2
-	echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
-	echo "or     $0 ALIAS" 1>&2
-	echo where ALIAS is a recognized configuration type. 1>&2
-	exit 1
-fi
-
-# First pass through any local machine types.
-case $1 in
-	*local*)
-		echo $1
-		exit 0
-		;;
-	*)
-	;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  linux-gnu*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
-		| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
-		| 580 | i960 | h8300 \
-		| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
-		| alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
-		| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
-		| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
-		| mips64orion | mips64orionel | mipstx39 | mipstx39el \
-		| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
-		| mips64vr5000 | miprs64vr5000el | mcore \
-		| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
-		| thumb | d10v | fr30)
-		basic_machine=$basic_machine-unknown
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
-		;;
-
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i[34567]86)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	# FIXME: clean up the formatting here.
-	vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
-	      | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
-	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
-	      | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
-	      | xmp-* | ymp-* \
-	      | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
-	      | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
-	      | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
-	      | clipper-* | orion-* \
-	      | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
-	      | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
-	      | mips64el-* | mips64orion-* | mips64orionel-* \
-	      | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
-	      | mipstx39-* | mipstx39el-* | mcore-* \
-	      | f301-* | armv*-* | t3e-* \
-	      | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
-	      | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-cbm
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-cbm
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-cbm
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	cray2)
-		basic_machine=cray2-cray
-		os=-unicos
-		;;
-	[ctj]90-cray)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-	i[34567]86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i[34567]86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i[34567]86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i[34567]86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	i386-go32 | go32)
-		basic_machine=i386-unknown
-		os=-go32
-		;;
-	i386-mingw32 | mingw32)
-		basic_machine=i386-unknown
-		os=-mingw32
-		;;
-	i386-qnx | qnx)
-		basic_machine=i386-qnx
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mipsel*-linux*)
-		basic_machine=mipsel-unknown
-		os=-linux-gnu
-		;;
-	mips*-linux*)
-		basic_machine=mips-unknown
-		os=-linux-gnu
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	msdos)
-		basic_machine=i386-unknown
-		os=-msdos
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-        pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexen)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2)
-		basic_machine=i786-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexen-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=rs6000-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-	        ;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-	        ;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sparclite-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=t3e-cray
-		os=-unicos
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
-               ;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	xmp)
-		basic_machine=xmp-cray
-		os=-unicos
-		;;
-        xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	mips)
-		if [ x$os = x-linux-gnu ]; then
-			basic_machine=mips-unknown
-		else
-			basic_machine=mips-mips
-		fi
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sparc | sparcv9)
-		basic_machine=sparc-sun
-		;;
-        cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	c4x*)
-		basic_machine=c4x-none
-		os=-coff
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
-	# Remember, each alternative MUST END IN *, to match a version number.
-		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
-	      | -macos* | -mpw* | -magic* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-		;;
-	-opened*)
-		os=-openedition
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-386bsd)
-		os=-bsd
-		;;
-	-ctix* | -uts*)
-		os=-sysv
-		;;
-	-ns2 )
-	        os=-nextstep2
-		;;
-	# Preserve the version number of sinix5.
-	-sinix5.*)
-		os=`echo $os | sed -e 's|sinix|sysv|'`
-		;;
-	-sinix*)
-		os=-sysv4
-		;;
-	-triton*)
-		os=-sysv3
-		;;
-	-oss*)
-		os=-sysv3
-		;;
-        -qnx)
-		os=-qnx4
-		;;
-	-svr4)
-		os=-sysv4
-		;;
-	-svr3)
-		os=-sysv3
-		;;
-	-sysvr4)
-		os=-sysv4
-		;;
-	# This must come after -sysvr4.
-	-sysv*)
-		;;
-	-ose*)
-		os=-ose
-		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
-        -*mint | -*MiNT)
-	        os=-mint
-		;;
-	-none)
-		;;
-	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-		exit 1
-		;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-        pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	mips*-cisco)
-		os=-elf
-		;;
-	mips*-*)
-		os=-elf
-		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
-		;;
-	sparc-* | *-sun)
-		os=-sunos4.1.1
-		;;
-	*-be)
-		os=-beos
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-        *-gould)
-		os=-sysv
-		;;
-        *-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-        *-sgi)
-		os=-irix
-		;;
-        *-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f301-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-vxsim* | -vxworks*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -*MiNT)
-				vendor=atari
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
diff --git a/glib/configure b/glib/configure
deleted file mode 100755
index 31b04fd..0000000
--- a/glib/configure
+++ /dev/null
@@ -1,6384 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-#
-# The following version number definitions apply to GLib, GModule and GThread
-# as a whole, so if changes occoured in any of them, they are all
-# treated with the same interface and binary age.
-#
-# Making releases:
-#   GLIB_MICRO_VERSION += 1;
-#   GLIB_INTERFACE_AGE += 1;
-#   GLIB_BINARY_AGE += 1;
-# if any functions have been added, set GLIB_INTERFACE_AGE to 0.
-# if backwards compatibility has been broken,
-# set GLIB_BINARY_AGE _and_ GLIB_INTERFACE_AGE to 0.
-#
-GLIB_MAJOR_VERSION=1
-GLIB_MINOR_VERSION=2
-GLIB_MICRO_VERSION=8
-GLIB_INTERFACE_AGE=8
-GLIB_BINARY_AGE=8
-GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
-ac_help="$ac_help
-  --enable-shared[=PKGS]  build shared libraries [default=yes]"
-ac_help="$ac_help
-  --enable-static[=PKGS]  build static libraries [default=yes]"
-ac_help="$ac_help
-  --enable-fast-install[=PKGS]  optimize for fast installation [default=yes]"
-ac_help="$ac_help
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]"
-ac_help="$ac_help
-  --disable-libtool-lock  avoid locking (might break parallel builds)"
-ac_help="$ac_help
-  --enable-maintainer-mode enable make rules and dependencies not useful
-                          (and sometimes confusing) to the casual installer"
-if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then
-	debug_default=yes
-else
-	debug_default=minimum
-fi
-ac_help="$ac_help
-  --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]"
-ac_help="$ac_help
-  --enable-mem-check      turn on malloc/free sanity checking [default=no]"
-ac_help="$ac_help
-  --enable-mem-profile    turn on malloc profiling atexit [default=no]"
-ac_help="$ac_help
-  --enable-ansi           turn on strict ansi [default=no]"
-ac_help="$ac_help
-  --enable-threads        turn on basic thread support [default=yes]
-                          ([=no] will override --with-threads)"
-ac_help="$ac_help
-  --with-threads=[none/posix/solaris/nspr] specify a thread implementation to use"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  case "$ac_option" in
-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) ac_optarg= ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case "$ac_option" in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir="$ac_optarg" ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build="$ac_optarg" ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file="$ac_optarg" ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir="$ac_optarg" ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    eval "enable_${ac_feature}=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_${ac_feature}='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix="$ac_optarg" ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he)
-    # Omit some internal or obsolete options to make the list less imposing.
-    # This message is too long to be a string in the A/UX 3.1 sh.
-    cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
-  --cache-file=FILE       cache test results in FILE
-  --help                  print this message
-  --no-create             do not create output files
-  --quiet, --silent       do not print \`checking...' messages
-  --version               print the version of autoconf that created configure
-Directory and file names:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [same as prefix]
-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-  --datadir=DIR           read-only architecture-independent data in DIR
-                          [PREFIX/share]
-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-                          [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-  --includedir=DIR        C header files in DIR [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-  --infodir=DIR           info documentation in DIR [PREFIX/info]
-  --mandir=DIR            man documentation in DIR [PREFIX/man]
-  --srcdir=DIR            find the sources in DIR [configure dir or ..]
-  --program-prefix=PREFIX prepend PREFIX to installed program names
-  --program-suffix=SUFFIX append SUFFIX to installed program names
-  --program-transform-name=PROGRAM
-                          run sed PROGRAM on installed program names
-EOF
-    cat << EOF
-Host type:
-  --build=BUILD           configure for building on BUILD [BUILD=HOST]
-  --host=HOST             configure for HOST [guessed]
-  --target=TARGET         configure for TARGET [TARGET=HOST]
-Features and packages:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --x-includes=DIR        X include files are in DIR
-  --x-libraries=DIR       X library files are in DIR
-EOF
-    if test -n "$ac_help"; then
-      echo "--enable and --with options recognized:$ac_help"
-    fi
-    exit 0 ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host="$ac_optarg" ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir="$ac_optarg" ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir="$ac_optarg" ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir="$ac_optarg" ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir="$ac_optarg" ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir="$ac_optarg" ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir="$ac_optarg" ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir="$ac_optarg" ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix="$ac_optarg" ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix="$ac_optarg" ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix="$ac_optarg" ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name="$ac_optarg" ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir="$ac_optarg" ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir="$ac_optarg" ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site="$ac_optarg" ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir="$ac_optarg" ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir="$ac_optarg" ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target="$ac_optarg" ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.13"
-    exit 0 ;;
-
-  -with-* | --with-*)
-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_${ac_package}='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    eval "with_${ac_package}=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes="$ac_optarg" ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries="$ac_optarg" ;;
-
-  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
-    ;;
-
-  *)
-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-      echo "configure: warning: $ac_option: invalid host type" 1>&2
-    fi
-    if test "x$nonopt" != xNONE; then
-      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-    fi
-    nonopt="$ac_option"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
-  exec 6>/dev/null
-else
-  exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
-  case "$ac_arg" in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c) ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
-  esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=glist.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_prog=$0
-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
-  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
-  else
-    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
-  fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    echo "loading site script $ac_site_file"
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  echo "loading cache $cache_file"
-  . $cache_file
-else
-  echo "creating cache $cache_file"
-  > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    ac_n= ac_c='
-' ac_t='	'
-  else
-    ac_n=-n ac_c= ac_t=
-  fi
-else
-  ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-# Save this value here, since automake will set cflags later
-cflags_set=${CFLAGS+set}
-
-# we rewrite this file
-rm -f glibconfig-sysdefs.h
-
-
-
-
-
-
-
-
-
-# libtool versioning
-LT_RELEASE=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION
-LT_CURRENT=`expr $GLIB_MICRO_VERSION - $GLIB_INTERFACE_AGE`
-LT_REVISION=$GLIB_INTERFACE_AGE
-LT_AGE=`expr $GLIB_BINARY_AGE - $GLIB_INTERFACE_AGE`
-
-
-
-
-
-VERSION=$GLIB_VERSION
-PACKAGE=glib
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:634: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
-  for ac_dir in $PATH; do
-    # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-    *)
-      # OSF1 and SCO ODT 3.0 have their own names for install.
-      # Don't use installbsd from OSF since it installs stuff as root
-      # by default.
-      for ac_prog in ginstall scoinst install; do
-        if test -f $ac_dir/$ac_prog; then
-	  if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  else
-	    ac_cv_path_install="$ac_dir/$ac_prog -c"
-	    break 2
-	  fi
-	fi
-      done
-      ;;
-    esac
-  done
-  IFS="$ac_save_IFS"
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
-  fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:687: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
-   fi
-   if test "$*" != "X $srcdir/configure conftestfile" \
-      && test "$*" != "X conftestfile $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
-   fi
-
-   test "$2" = conftestfile
-   )
-then
-   # Ok.
-   :
-else
-   { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
-  program_transform_name=
-else
-  # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
-  rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:744: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftestmake <<\EOF
-all:
-	@echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
-else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  SET_MAKE=
-else
-  echo "$ac_t""no" 1>&6
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-PACKAGE=$PACKAGE
-
-VERSION=$VERSION
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:783: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
-   ACLOCAL=aclocal
-   echo "$ac_t""found" 1>&6
-else
-   ACLOCAL="$missing_dir/missing aclocal"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:796: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
-   AUTOCONF=autoconf
-   echo "$ac_t""found" 1>&6
-else
-   AUTOCONF="$missing_dir/missing autoconf"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:809: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
-   AUTOMAKE=automake
-   echo "$ac_t""found" 1>&6
-else
-   AUTOMAKE="$missing_dir/missing automake"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:822: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
-   AUTOHEADER=autoheader
-   echo "$ac_t""found" 1>&6
-else
-   AUTOHEADER="$missing_dir/missing autoheader"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:835: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
-   MAKEINFO=makeinfo
-   echo "$ac_t""found" 1>&6
-else
-   MAKEINFO="$missing_dir/missing makeinfo"
-   echo "$ac_t""missing" 1>&6
-fi
-
-
-
-# Specify a configuration file
-
-
-
-
-cat >> confdefs.h <<EOF
-#define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
-EOF
-
-cat >> confdefs.h <<EOF
-#define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
-EOF
-
-cat >> confdefs.h <<EOF
-#define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
-EOF
-
-cat >> confdefs.h <<EOF
-#define GLIB_INTERFACE_AGE $GLIB_INTERFACE_AGE
-EOF
-
-cat >> confdefs.h <<EOF
-#define GLIB_BINARY_AGE $GLIB_BINARY_AGE
-EOF
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval="$enable_shared"
-  p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
-  enable_shared=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_shared=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-else
-  enable_shared=yes
-fi
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
-  enableval="$enable_static"
-  p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
-  enable_static=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_static=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-else
-  enable_static=yes
-fi
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
-  enableval="$enable_fast_install"
-  p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
-  enable_fast_install=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_fast_install=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-else
-  enable_fast_install=yes
-fi
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:951: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
-  case $nonopt in
-  NONE)
-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-    fi ;;
-  *) host_alias=$nonopt ;;
-  esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:972: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
-  case $nonopt in
-  NONE) build_alias=$host_alias ;;
-  *) build_alias=$nonopt ;;
-  esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:992: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1022: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="gcc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1052: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_prog_rejected=no
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-        ac_prog_rejected=yes
-	continue
-      fi
-      ac_cv_prog_CC="cc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# -gt 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    set dummy "$ac_dir/$ac_word" "$@"
-    shift
-    ac_cv_prog_CC="$@"
-  fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-  if test -z "$CC"; then
-    case "`uname -s`" in
-    *win32* | *WIN32*)
-      # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1103: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="cl"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
- ;;
-    esac
-  fi
-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1135: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1146 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:1151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cc_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cc_cross=no
-  else
-    ac_cv_prog_cc_cross=yes
-  fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1177: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1182: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.c <<EOF
-#ifdef __GNUC__
-  yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-  ac_cv_prog_gcc=yes
-else
-  ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1210: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
-  ac_cv_prog_cc_g=yes
-else
-  ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval="$with_gnu_ld"
-  test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1253: checking for ld used by GCC" >&5
-  ac_prog=`($CC -print-prog-name=ld) 2>&5`
-  case "$ac_prog" in
-    # Accept absolute paths.
-    [\\/]* | [A-Za-z]:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1277: checking for GNU ld" >&5
-else
-  echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1280: checking for non-GNU ld" >&5
-fi
-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -z "$LD"; then
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      ac_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-	test "$with_gnu_ld" != no && break
-      else
-	test "$with_gnu_ld" != yes && break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-else
-  ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
-  echo "$ac_t""$LD" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1315: checking if the linker ($LD) is GNU ld" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  ac_cv_prog_gnu_ld=yes
-else
-  ac_cv_prog_gnu_ld=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
-
-
-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1331: checking for BSD-compatible nm" >&5
-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  ac_cv_path_NM="$NM"
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	ac_cv_path_NM="$ac_dir/nm -B"
-	break
-      elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	ac_cv_path_NM="$ac_dir/nm -p"
-	break
-      else
-	ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
-	continue # so that we can try to find one that supports BSD flags
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi
-fi
-
-NM="$ac_cv_path_NM"
-echo "$ac_t""$NM" 1>&6
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1367: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
-  rm -f conftestdata
-  ac_cv_prog_LN_S="ln -s"
-else
-  ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
-  echo "$ac_t""yes" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-case "$target" in
-NONE) lt_target="$host" ;;
-*) lt_target="$target" ;;
-esac
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval="$enable_libtool_lock"
-  :
-fi
-
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$lt_target" in
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line 1416 "configure"' > conftest.$ac_ext
-  if { (eval echo configure:1417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:1438: checking whether the C compiler needs -belf" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1443 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  lt_cv_cc_needs_belf=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  lt_cv_cc_needs_belf=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-
-esac
-
-
-# Save cache, so that ltconfig can load it
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
-  if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-
-# Actually configure libtool.  ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
-
-# Reload cache, that may have been modified by ltconfig
-if test -r "$cache_file"; then
-  echo "loading cache $cache_file"
-  . $cache_file
-else
-  echo "creating cache $cache_file"
-  > $cache_file
-fi
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1553: checking whether to enable maintainer-specific portions of Makefiles" >&5
-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
-  enableval="$enable_maintainer_mode"
-  USE_MAINTAINER_MODE=$enableval
-else
-  USE_MAINTAINER_MODE=no
-fi
-
-  echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
-  
-
-if test $USE_MAINTAINER_MODE = yes; then
-  MAINTAINER_MODE_TRUE=
-  MAINTAINER_MODE_FALSE='#'
-else
-  MAINTAINER_MODE_TRUE='#'
-  MAINTAINER_MODE_FALSE=
-fi
-  MAINT=$MAINTAINER_MODE_TRUE
-  
-
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1583: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
-  case $nonopt in
-  NONE)
-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-    fi ;;
-  *) host_alias=$nonopt ;;
-  esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-
-
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
-  enableval="$enable_debug"
-  :
-else
-  enable_debug=$debug_default
-fi
-
-# Check whether --enable-mem_check or --disable-mem_check was given.
-if test "${enable_mem_check+set}" = set; then
-  enableval="$enable_mem_check"
-  :
-else
-  enable_mem_check=no
-fi
-
-# Check whether --enable-mem_profile or --disable-mem_profile was given.
-if test "${enable_mem_profile+set}" = set; then
-  enableval="$enable_mem_profile"
-  :
-else
-  enable_mem_profile=no
-fi
-
-# Check whether --enable-ansi or --disable-ansi was given.
-if test "${enable_ansi+set}" = set; then
-  enableval="$enable_ansi"
-  :
-else
-  enable_ansi=no
-fi
-
-# Check whether --enable-threads or --disable-threads was given.
-if test "${enable_threads+set}" = set; then
-  enableval="$enable_threads"
-  :
-else
-  enable_threads=yes
-fi
-
-
-if test "x$enable_threads" != "xyes"; then
-  enable_threads=no
-fi
-
-echo $ac_n "checking whether to enable memory checking""... $ac_c" 1>&6
-echo "configure:1651: checking whether to enable memory checking" >&5
-if test "x$enable_mem_check" = "xyes"; then
-  cat >> confdefs.h <<\EOF
-#define ENABLE_MEM_CHECK 1
-EOF
-
-  
-  echo "$ac_t""yes" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking whether to enable memory profiling""... $ac_c" 1>&6
-echo "configure:1664: checking whether to enable memory profiling" >&5
-if test "x$enable_mem_profile" = "xyes"; then
-  cat >> confdefs.h <<\EOF
-#define ENABLE_MEM_PROFILE 1
-EOF
-
-  
-  echo "$ac_t""yes" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test "x$enable_debug" = "xyes"; then
-  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
-  GLIB_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
-else
-  if test "x$enable_debug" = "xno"; then
-    GLIB_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
-  fi
-fi
-
-cat >> confdefs.h <<EOF
-#define G_COMPILED_WITH_DEBUGGING "${enable_debug}"
-EOF
-
-
-# Checks for programs.
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1694: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="gcc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1724: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_prog_rejected=no
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-        ac_prog_rejected=yes
-	continue
-      fi
-      ac_cv_prog_CC="cc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# -gt 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    set dummy "$ac_dir/$ac_word" "$@"
-    shift
-    ac_cv_prog_CC="$@"
-  fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-  if test -z "$CC"; then
-    case "`uname -s`" in
-    *win32* | *WIN32*)
-      # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1775: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="cl"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
- ;;
-    esac
-  fi
-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1807: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1818 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:1823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cc_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cc_cross=no
-  else
-    ac_cv_prog_cc_cross=yes
-  fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1849: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1854: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.c <<EOF
-#ifdef __GNUC__
-  yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-  ac_cv_prog_gcc=yes
-else
-  ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1882: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
-  ac_cv_prog_cc_g=yes
-else
-  ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-
-
-
-
-echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1917: checking for ${CC-cc} option to accept ANSI C" >&5
-if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  am_cv_prog_cc_stdc=no
-ac_save_CC="$CC"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX			-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  cat > conftest.$ac_ext <<EOF
-#line 1933 "configure"
-#include "confdefs.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-
-int main() {
-
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-
-; return 0; }
-EOF
-if { (eval echo configure:1970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  am_cv_prog_cc_stdc="$ac_arg"; break
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-CC="$ac_save_CC"
-
-fi
-
-if test -z "$am_cv_prog_cc_stdc"; then
-  echo "$ac_t""none needed" 1>&6
-else
-  echo "$ac_t""$am_cv_prog_cc_stdc" 1>&6
-fi
-case "x$am_cv_prog_cc_stdc" in
-  x|xno) ;;
-  *) CC="$CC $am_cv_prog_cc_stdc" ;;
-esac
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:2005: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
-  for ac_dir in $PATH; do
-    # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-    *)
-      # OSF1 and SCO ODT 3.0 have their own names for install.
-      # Don't use installbsd from OSF since it installs stuff as root
-      # by default.
-      for ac_prog in ginstall scoinst install; do
-        if test -f $ac_dir/$ac_prog; then
-	  if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  else
-	    ac_cv_path_install="$ac_dir/$ac_prog -c"
-	    break 2
-	  fi
-	fi
-      done
-      ;;
-    esac
-  done
-  IFS="$ac_save_IFS"
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
-  fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-if test "x$GCC" = "xyes"; then
-  case " $CFLAGS " in
-  *[\ \	]-Wall[\ \	]*) ;;
-  *) CFLAGS="$CFLAGS -Wall" ;;
-  esac
-
-  if test "x$enable_ansi" = "xyes"; then
-    case " $CFLAGS " in
-    *[\ \	]-ansi[\ \	]*) ;;
-    *) CFLAGS="$CFLAGS -ansi" ;;
-    esac
-
-    case " $CFLAGS " in
-    *[\ \	]-pedantic[\ \	]*) ;;
-    *) CFLAGS="$CFLAGS -pedantic" ;;
-    esac
-  fi
-fi
-
-echo $ac_n "checking for extra flags to get ANSI library prototypes""... $ac_c" 1>&6
-echo "configure:2078: checking for extra flags to get ANSI library prototypes" >&5
-glib_save_LIBS=$LIBS
-LIBS="$LIBS -lm"
-if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2085 "configure"
-#include "confdefs.h"
-#include <math.h>
-             int main (void) { return (log(1) != log(1.)); }
-EOF
-if { (eval echo configure:2090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  echo "$ac_t""none needed" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_save_CFLAGS=$CFLAGS
-     CFLAGS="$CFLAGS -std1"
-     if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2103 "configure"
-#include "confdefs.h"
-#include <math.h>
-                 int main (void) { return (log(1) != log(1.)); }
-EOF
-if { (eval echo configure:2108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  echo "$ac_t""-std1" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  echo "$ac_t""" 1>&6
-         CFLAGS=$glib_save_CFLAGS
-         echo "configure: warning: No ANSI prototypes found in library. (-std1 didn't work.)" 1>&2
-     
-fi
-rm -fr conftest*
-fi
-
-
-fi
-rm -fr conftest*
-fi
-
-LIBS=$glib_save_LIBS
-
-echo $ac_n "checking for extra flags for POSIX compliance""... $ac_c" 1>&6
-echo "configure:2131: checking for extra flags for POSIX compliance" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2133 "configure"
-#include "confdefs.h"
-#include <dirent.h>
-int main() {
-DIR *dir;
-; return 0; }
-EOF
-if { (eval echo configure:2140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""none needed" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  glib_save_CFLAGS=$CFLAGS
-  CFLAGS="$CFLAGS -posix"
-  cat > conftest.$ac_ext <<EOF
-#line 2150 "configure"
-#include "confdefs.h"
-#include <dirent.h>
-int main() {
-DIR *dir;
-; return 0; }
-EOF
-if { (eval echo configure:2157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""-posix" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""" 1>&6
-    CFLAGS=$glib_save_CFLAGS
-    echo "configure: warning: Could not determine POSIX flag. (-posix didn't work.)" 1>&2
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-
-# Checks for header files.
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2174: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    # This must be in double quotes, not single quotes, because CPP may get
-  # substituted into the Makefile and "${CC-cc}" will confuse make.
-  CPP="${CC-cc} -E"
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp.
-  cat > conftest.$ac_ext <<EOF
-#line 2189 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2195: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 2206 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -nologo -E"
-  cat > conftest.$ac_ext <<EOF
-#line 2223 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-  ac_cv_prog_CPP="$CPP"
-fi
-  CPP="$ac_cv_prog_CPP"
-else
-  ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2254: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2259 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  ac_cv_header_stdc=yes
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2284 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "memchr" >/dev/null 2>&1; then
-  :
-else
-  rm -rf conftest*
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2302 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "free" >/dev/null 2>&1; then
-  :
-else
-  rm -rf conftest*
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
-  :
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2323 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:2334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  :
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
-  cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-
-# Checks for library functions.
-echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2360: checking for vprintf" >&5
-if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2365 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char vprintf(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char vprintf();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_vprintf) || defined (__stub___vprintf)
-choke me
-#else
-vprintf();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_vprintf=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_vprintf=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_VPRINTF 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test "$ac_cv_func_vprintf" != yes; then
-echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2412: checking for _doprnt" >&5
-if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2417 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char _doprnt(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char _doprnt();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub__doprnt) || defined (__stub____doprnt)
-choke me
-#else
-_doprnt();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func__doprnt=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func__doprnt=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_DOPRNT 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-
-for ac_func in atexit on_exit
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2468: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2473 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-
-echo $ac_n "checking size of char""... $ac_c" 1>&6
-echo "configure:2522: checking size of char" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_char'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2530 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(char));
-  exit(0);
-}
-EOF
-if { (eval echo configure:2541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_char=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_char=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_char" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_CHAR $ac_cv_sizeof_char
-EOF
-
-
-echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:2561: checking size of short" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2569 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(short));
-  exit(0);
-}
-EOF
-if { (eval echo configure:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_short=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_short=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_short" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-EOF
-
-
-echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:2600: checking size of long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2608 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(long));
-  exit(0);
-}
-EOF
-if { (eval echo configure:2619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_long=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-EOF
-
-
-echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:2639: checking size of int" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2647 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(int));
-  exit(0);
-}
-EOF
-if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_int=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_int=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_int" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-EOF
-
-
-echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:2678: checking size of void *" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2686 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(void *));
-  exit(0);
-}
-EOF
-if { (eval echo configure:2697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_void_p=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_void_p=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_void_p" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
-EOF
-
-
-echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:2717: checking size of long long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2725 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(long long));
-  exit(0);
-}
-EOF
-if { (eval echo configure:2736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_long_long=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_long_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
-EOF
-
-
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2757: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2762 "configure"
-#include "confdefs.h"
-
-int main() {
-
-/* Ultrix mips cc rejects this.  */
-typedef int charset[2]; const charset x = {0,0};
-/* SunOS 4.1.1 cc rejects this.  */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this.  */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
-   It does not let you subtract one const X* pointer from another in an arm
-   of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this.  */
-  char *t;
-  char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-  *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-  int x[] = {25, 17};
-  const int *foo = &x[0];
-  ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-  typedef const int *iptr;
-  iptr p = 0;
-  ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
-     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-  struct s { int j; const int *ap[3]; };
-  struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-  const int foo = 10;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:2811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_c_const=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_const=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
-  cat >> confdefs.h <<\EOF
-#define const 
-EOF
-
-fi
-
-
-echo $ac_n "checking for __inline""... $ac_c" 1>&6
-echo "configure:2833: checking for __inline" >&5
-if eval "test \"`echo '$''{'glib_cv_has__inline'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-        if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2842 "configure"
-#include "confdefs.h"
-
-	__inline int foo () { return 0; }
-	int main () { return foo (); }
-       	
-EOF
-if { (eval echo configure:2849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_has__inline=yes
-        
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_has__inline=no
-        
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$glib_cv_has__inline" 1>&6
-case x$glib_cv_has__inline in
-xyes) cat >> confdefs.h <<\EOF
-#define G_HAVE___INLINE 1
-EOF
-
-esac
-echo $ac_n "checking for __inline__""... $ac_c" 1>&6
-echo "configure:2874: checking for __inline__" >&5
-if eval "test \"`echo '$''{'glib_cv_has__inline__'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-        if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2883 "configure"
-#include "confdefs.h"
-
-	__inline__ int foo () { return 0; }
-	int main () { return foo (); }
-       	
-EOF
-if { (eval echo configure:2890: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_has__inline__=yes
-        
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_has__inline__=no
-        
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$glib_cv_has__inline__" 1>&6
-case x$glib_cv_has__inline__ in
-xyes) cat >> confdefs.h <<\EOF
-#define G_HAVE___INLINE__ 1
-EOF
-
-esac
-echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2915: checking for inline" >&5
-if eval "test \"`echo '$''{'glib_cv_hasinline'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-        if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2924 "configure"
-#include "confdefs.h"
-
-	inline int foo () { return 0; }
-	int main () { return foo (); }
-       	
-EOF
-if { (eval echo configure:2931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_hasinline=yes
-        
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_hasinline=no
-        
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$glib_cv_hasinline" 1>&6
-case x$glib_cv_hasinline in
-xyes) cat >> confdefs.h <<\EOF
-#define G_HAVE_INLINE 1
-EOF
-
-esac
-
-echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2957: checking whether byte ordering is bigendian" >&5
-if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-cat > conftest.$ac_ext <<EOF
-#line 2964 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-cat > conftest.$ac_ext <<EOF
-#line 2979 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2990: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_c_bigendian=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_bigendian=no
-fi
-rm -f conftest*
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-if test $ac_cv_c_bigendian = unknown; then
-if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3010 "configure"
-#include "confdefs.h"
-main () {
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long l;
-    char c[sizeof (long)];
-  } u;
-  u.l = 1;
-  exit (u.c[sizeof (long) - 1] == 1);
-}
-EOF
-if { (eval echo configure:3023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_c_bigendian=no
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_c_bigendian=yes
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_c_bigendian" 1>&6
-if test $ac_cv_c_bigendian = yes; then
-  cat >> confdefs.h <<\EOF
-#define WORDS_BIGENDIAN 1
-EOF
-
-fi
-
-
-for ac_hdr in float.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3051: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3056 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3061: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_FLOAT_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in limits.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3094: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3099 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_LIMITS_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in pwd.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3137: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3142 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3147: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_PWD_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/param.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3180: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3185 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_PARAM_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/poll.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3223: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3228 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_POLL_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/select.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3266: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3271 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_SELECT_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/time.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3309: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3314 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_TIME_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/times.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3352: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3357 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3362: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_TIMES_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in unistd.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3395: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3400 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_UNISTD_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in values.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3438: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3443 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3448: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_VALUES_H 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-
-# Check for some functions
-for ac_func in lstat strerror strsignal memmove vsnprintf strcasecmp strncasecmp poll
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3482: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3487 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-
-# Check for sys_errlist
-echo $ac_n "checking for sys_errlist""... $ac_c" 1>&6
-echo "configure:3537: checking for sys_errlist" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3539 "configure"
-#include "confdefs.h"
-
-int main() {
-
-extern char *sys_errlist[];
-extern int sys_nerr;
-sys_errlist[sys_nerr-1][0] = 0;
-
-; return 0; }
-EOF
-if { (eval echo configure:3550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  glib_ok=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  glib_ok=no
-fi
-rm -f conftest*
-echo "$ac_t""$glib_ok" 1>&6
-if test $glib_ok = no; then
-    cat >> confdefs.h <<\EOF
-#define NO_SYS_ERRLIST 1
-EOF
-
-fi
-
-# Check for sys_siglist
-echo $ac_n "checking for sys_siglist""... $ac_c" 1>&6
-echo "configure:3570: checking for sys_siglist" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3572 "configure"
-#include "confdefs.h"
-
-int main() {
-
-extern char *sys_siglist[];
-exit (sys_siglist[0]);
-
-; return 0; }
-EOF
-if { (eval echo configure:3582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  glib_ok=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  glib_ok=no
-fi
-rm -f conftest*
-echo "$ac_t""$glib_ok" 1>&6
-if test $glib_ok = no; then
-    cat >> confdefs.h <<\EOF
-#define NO_SYS_SIGLIST 1
-EOF
-
-fi
-
-# Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog)
-echo $ac_n "checking for sys_siglist declaration""... $ac_c" 1>&6
-echo "configure:3602: checking for sys_siglist declaration" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3604 "configure"
-#include "confdefs.h"
-#include <signal.h>
-int main() {
-
-strlen (sys_siglist[0]);
-
-; return 0; }
-EOF
-if { (eval echo configure:3613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  glib_ok=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  glib_ok=no
-fi
-rm -f conftest*
-echo "$ac_t""$glib_ok" 1>&6
-if test $glib_ok = no; then
-    cat >> confdefs.h <<\EOF
-#define NO_SYS_SIGLIST_DECL 1
-EOF
-
-fi
-
-# Check if <sys/select.h> needs to be included for fd_set
-echo $ac_n "checking for fd_set""... $ac_c" 1>&6
-echo "configure:3633: checking for fd_set" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3635 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-fd_set readMask, writeMask;
-; return 0; }
-EOF
-if { (eval echo configure:3642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  gtk_ok=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  gtk_ok=no
-fi
-rm -f conftest*
-if test $gtk_ok = yes; then
-    echo "$ac_t""yes, found in sys/types.h" 1>&6
-else
-    cat > conftest.$ac_ext <<EOF
-#line 3656 "configure"
-#include "confdefs.h"
-#include <sys/select.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "fd_mask" >/dev/null 2>&1; then
-  rm -rf conftest*
-  gtk_ok=yes
-fi
-rm -f conftest*
-
-    if test $gtk_ok = yes; then
-        cat >> confdefs.h <<\EOF
-#define HAVE_SYS_SELECT_H 1
-EOF
-
-        echo "$ac_t""yes, found in sys/select.h" 1>&6
-    else
-	cat >> confdefs.h <<\EOF
-#define NO_FD_SET 1
-EOF
-
-	echo "$ac_t""no" 1>&6
-    fi
-fi
-
-# These are used only in GDK (gdki18n.h)
-# This stuff is here only so that we can define these
-# things in glibconfig.h. If gtk+ started using an installed
-# gdkconfig.h file, then the definitions would belong there.
-
-# Check for wchar.h
-
-echo $ac_n "checking for wchar.h""... $ac_c" 1>&6
-echo "configure:3690: checking for wchar.h" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3692 "configure"
-#include "confdefs.h"
-#include <wchar.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  glib_wchar_h=yes
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  glib_wchar_h=no
-fi
-rm -f conftest*
-if test $glib_wchar_h = yes; then
-   cat >> confdefs.h <<\EOF
-#define HAVE_WCHAR_H 1
-EOF
-
-fi
-echo "$ac_t""$glib_wchar_h" 1>&6
-
-# Check for wctype.h (for iswalnum)
-
-echo $ac_n "checking for wctype.h""... $ac_c" 1>&6
-echo "configure:3721: checking for wctype.h" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3723 "configure"
-#include "confdefs.h"
-#include <wctype.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  glib_wctype_h=yes
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  glib_wctype_h=no
-fi
-rm -f conftest*
-if test $glib_wctype_h = yes; then
-   cat >> confdefs.h <<\EOF
-#define HAVE_WCTYPE_H 1
-EOF
-
-fi
-echo "$ac_t""$glib_wctype_h" 1>&6
-
-oLIBS="$LIBS"
-# in Solaris 2.5, `iswalnum' is in -lw
-echo $ac_n "checking for iswalnum""... $ac_c" 1>&6
-echo "configure:3752: checking for iswalnum" >&5
-if eval "test \"`echo '$''{'ac_cv_func_iswalnum'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3757 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char iswalnum(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char iswalnum();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_iswalnum) || defined (__stub___iswalnum)
-choke me
-#else
-iswalnum();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_iswalnum=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_iswalnum=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'iswalnum`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  :
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for iswalnum in -lw""... $ac_c" 1>&6
-echo "configure:3798: checking for iswalnum in -lw" >&5
-ac_lib_var=`echo w'_'iswalnum | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lw  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3806 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char iswalnum();
-
-int main() {
-iswalnum()
-; return 0; }
-EOF
-if { (eval echo configure:3817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo w | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
-  LIBS="-lw $LIBS"
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-
-# The following is necessary for Linux libc-5.4.38
-echo $ac_n "checking if iswalnum() and friends are properly defined""... $ac_c" 1>&6
-echo "configure:3849: checking if iswalnum() and friends are properly defined" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3851 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-int main() {
-
-#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
-#  ifdef HAVE_WCTYPE_H
-#    include <wctype.h>
-#  else
-#    ifdef HAVE_WCHAR_H
-#      include <wchar.h>
-#    endif
-#  endif
-#else
-#  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
-#endif
-iswalnum((wchar_t) 0);
-
-; return 0; }
-EOF
-if { (eval echo configure:3871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  glib_working_wctype=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  glib_working_wctype=no
-fi
-rm -f conftest*
-LIBS="$oLIBS"
-
-if test $glib_working_wctype = no; then
-   cat >> confdefs.h <<\EOF
-#define HAVE_BROKEN_WCTYPE 1
-EOF
-
-fi
-echo "$ac_t""$glib_working_wctype" 1>&6
-
-echo $ac_n "checking whether realloc (NULL,) will work""... $ac_c" 1>&6
-echo "configure:3892: checking whether realloc (NULL,) will work" >&5
-if eval "test \"`echo '$''{'glib_cv_sane_realloc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-	if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3901 "configure"
-#include "confdefs.h"
-
-	#include <stdlib.h>
-	int main() {
-	  return realloc (0, sizeof (int)) == 0;
-	}
-EOF
-if { (eval echo configure:3909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_sane_realloc=yes
-	cat >> confdefs.h <<\EOF
-#define REALLOC_0_WORKS 1
-EOF
-
-	
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_sane_realloc=no
-	
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$glib_cv_sane_realloc" 1>&6
-
-
-echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6
-echo "configure:3934: checking for an implementation of va_copy()" >&5
-if eval "test \"`echo '$''{'glib_cv_va_copy'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-	if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3943 "configure"
-#include "confdefs.h"
-
-	#include <stdarg.h>
-	void f (int i, ...) {
-	va_list args1, args2;
-	va_start (args1, i);
-	va_copy (args2, args1);
-	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-	  exit (1);
-	va_end (args1); va_end (args2);
-	}
-	int main() {
-	  f (0, 42);
-	  return 0;
-	}
-EOF
-if { (eval echo configure:3960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_va_copy=yes
-	
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_va_copy=no
-	
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$glib_cv_va_copy" 1>&6
-echo $ac_n "checking for an implementation of __va_copy()""... $ac_c" 1>&6
-echo "configure:3979: checking for an implementation of __va_copy()" >&5
-if eval "test \"`echo '$''{'glib_cv___va_copy'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-	if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 3988 "configure"
-#include "confdefs.h"
-
-	#include <stdarg.h>
-	void f (int i, ...) {
-	va_list args1, args2;
-	va_start (args1, i);
-	__va_copy (args2, args1);
-	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-	  exit (1);
-	va_end (args1); va_end (args2);
-	}
-	int main() {
-	  f (0, 42);
-	  return 0;
-	}
-EOF
-if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv___va_copy=yes
-	
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv___va_copy=no
-	
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$glib_cv___va_copy" 1>&6
-echo $ac_n "checking whether va_lists can be copied by value""... $ac_c" 1>&6
-echo "configure:4024: checking whether va_lists can be copied by value" >&5
-if eval "test \"`echo '$''{'glib_cv_va_val_copy'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-	if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4033 "configure"
-#include "confdefs.h"
-
-	#include <stdarg.h>
-	void f (int i, ...) {
-	va_list args1, args2;
-	va_start (args1, i);
-	args2 = args1;
-	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-	  exit (1);
-	va_end (args1); va_end (args2);
-	}
-	int main() {
-	  f (0, 42);
-	  return 0;
-	}
-EOF
-if { (eval echo configure:4050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_va_val_copy=yes
-	
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_va_val_copy=no
-	
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-if test "x$glib_cv_va_copy" = "xyes"; then
-  cat >> confdefs.h <<\EOF
-#define G_VA_COPY va_copy
-EOF
-
-else if test "x$glib_cv___va_copy" = "xyes"; then
-  cat >> confdefs.h <<\EOF
-#define G_VA_COPY __va_copy
-EOF
-
-fi
-fi
-if test "x$glib_cv_va_val_copy" = "xno"; then
-  cat >> confdefs.h <<\EOF
-#define G_VA_COPY_AS_ARRAY 1
-EOF
-
-fi
-echo "$ac_t""$glib_cv_va_val_copy" 1>&6
-
-
-G_MODULE_LIBS=
-G_MODULE_LDFLAGS=
-G_MODULE_NEED_USCORE=0
-G_MODULE_HAVE_DLERROR=0
-if test -z "$G_MODULE_IMPL"; then
-	echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:4094: checking for dlopen" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4099 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlopen();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-dlopen();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_dlopen=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_dlopen=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  echo $ac_n "checking for dlsym""... $ac_c" 1>&6
-echo "configure:4137: checking for dlsym" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlsym'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4142 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlsym(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlsym();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlsym) || defined (__stub___dlsym)
-choke me
-#else
-dlsym();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_dlsym=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_dlsym=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'dlsym`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_MODULE_IMPL=G_MODULE_IMPL_DL
-		
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-	
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
-if test -z "$G_MODULE_IMPL"; then
-	echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:4193: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldl  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4201 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo configure:4212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  echo $ac_n "checking for dlsym in -ldl""... $ac_c" 1>&6
-echo "configure:4228: checking for dlsym in -ldl" >&5
-ac_lib_var=`echo dl'_'dlsym | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldl  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4236 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlsym();
-
-int main() {
-dlsym()
-; return 0; }
-EOF
-if { (eval echo configure:4247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_MODULE_LIBS=-ldl
-			G_MODULE_IMPL=G_MODULE_IMPL_DL
-		
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-	
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
-if test -z "$G_MODULE_IMPL"; then
-        echo $ac_n "checking how to export all symbols""... $ac_c" 1>&6
-echo "configure:4277: checking how to export all symbols" >&5
-        SAVED_LDFLAGS=$LDFLAGS
-        LDFLAGS="$LDFLAGS -Wl,-E"
-        cat > conftest.$ac_ext <<EOF
-#line 4281 "configure"
-#include "confdefs.h"
-
-int main() {
- return 0; 
-; return 0; }
-EOF
-if { (eval echo configure:4288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-   G_MODULE_LDFLAGS="-Wl,-E" 
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-                LDFLAGS="$SAVED_LDFLAGS -bexpall"
-                cat > conftest.$ac_ext <<EOF
-#line 4298 "configure"
-#include "confdefs.h"
-
-int main() {
- return 0; 
-; return 0; }
-EOF
-if { (eval echo configure:4305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  G_MODULE_LDFLAGS="-bexpall"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  G_MODULE_LDFLAGS="none"
-                
-fi
-rm -f conftest*
-        
-fi
-rm -f conftest*
-        LDFLAGS=$SAVED_LDFLAGS
-        echo "$ac_t""$G_MODULE_LDFLAGS" 1>&6
-        if test "x$G_MODULE_LDFLAGS" = "xnone"; then
-                G_MODULE_LDFLAGS=
-        fi
-	echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:4325: checking for shl_load in -ldld" >&5
-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldld  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4333 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char shl_load();
-
-int main() {
-shl_load()
-; return 0; }
-EOF
-if { (eval echo configure:4344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_MODULE_LIBS=-ldld
-		G_MODULE_IMPL=G_MODULE_IMPL_DLD
-	
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
-if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then
-	case "$host_os" in
-	  linux*)
-	    G_MODULE_LDFLAGS='-rdynamic'
-	    ;;
-	esac
-	LIBS_orig="$LIBS"
-	LDFLAGS_orig="$LDFLAGS"
-	LIBS="$LIBS $G_MODULE_LIBS"
-	LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
-	echo $ac_n "checking for preceeding underscore in symbols""... $ac_c" 1>&6
-echo "configure:4378: checking for preceeding underscore in symbols" >&5
-	if eval "test \"`echo '$''{'glib_cv_uscore'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-		if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4387 "configure"
-#include "confdefs.h"
-
-		#include <dlfcn.h>
-                int glib_underscore_test (void) { return 42; }
-		int main() {
-		  void *f1 = (void*)0, *f2 = (void*)0, *handle;
-		  handle = dlopen ((void*)0, 0);
-		  if (handle) {
-		    f1 = dlsym (handle, "glib_underscore_test");
-		    f2 = dlsym (handle, "_glib_underscore_test");
-		  } return (!f2 || f1);
-		}
-EOF
-if { (eval echo configure:4401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_uscore=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_uscore=no
-fi
-rm -fr conftest*
-fi
-
-		rm -f plugin.c plugin.o plugin.lo
-	
-fi
-
-	echo "$ac_t""$glib_cv_uscore" 1>&6
-	if test "x$glib_cv_uscore" = "xyes"; then
-  		G_MODULE_NEED_USCORE=1
-	else
-  		G_MODULE_NEED_USCORE=0
-	fi
-
-	LDFLAGS="$LDFLAGS_orig"
-	echo $ac_n "checking for dlerror""... $ac_c" 1>&6
-echo "configure:4426: checking for dlerror" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlerror'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4431 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlerror(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlerror();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlerror) || defined (__stub___dlerror)
-choke me
-#else
-dlerror();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_dlerror=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_dlerror=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'dlerror`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_MODULE_HAVE_DLERROR=1
-else
-  echo "$ac_t""no" 1>&6
-G_MODULE_HAVE_DLERROR=0
-fi
-
-	LIBS="$LIBS_orig"
-fi
-if test -z "$G_MODULE_IMPL"; then
-	G_MODULE_IMPL=0
-fi
-
-
-
-
-
-
-
-
-
-# Check whether --with-threads or --without-threads was given.
-if test "${with_threads+set}" = set; then
-  withval="$with_threads"
-  if test "x$with_threads" = x; then
-		want_threads=yes
-	else
-		want_threads=$with_threads
-	fi
-else
-  want_threads=yes
-fi
-
-if test "x$enable_threads" = "xno"; then
-        want_threads=no
-fi
-if test "x$want_threads" = "xnone"; then
-	want_threads=no
-fi
-
-
-THREAD_NO_IMPLEMENTATION="You do not have any known thread system on your
-                computer. glib will not be thread safe on your computer."
-
-FLAG_DOES_NOT_WORK="I can't find the MACRO, that enables thread safety on your
-                platform (normaly it's "_REENTRANT"). I'll not use any flag on
-                compilation now, but then your programs might not work.
-                Please provide information on how it is done on your system."
-
-LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation
-		"
-
-LIBS_NOT_FOUND_2=". Please choose another thread implementation or
-		provide information on your thread implementation.
-		You can also run 'configure --disable-threads' 
-		to compile without thread support."
-
-FUNC_NO_GETPWUID_R="the 'g_get_(user_name|real_name|home_dir|tmp_dir)'
-		functions will not be MT-safe during their first call because
-		there is no working 'getpwuid_r' on your system."
-
-FUNC_NO_LOCALTIME_R="the 'g_date_set_time' function will not be MT-safe
-		because there is no 'localtime_r' on your system."
-
-
-have_threads=none
-if test "x$want_threads" = xyes || test "x$want_threads" = xsolaris; then
-       	case $host in
-               	*-*-solaris*)
-              	echo $ac_n "checking for cond_init in -lthread""... $ac_c" 1>&6
-echo "configure:4537: checking for cond_init in -lthread" >&5
-ac_lib_var=`echo thread'_'cond_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lthread  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4545 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char cond_init();
-
-int main() {
-cond_init()
-; return 0; }
-EOF
-if { (eval echo configure:4556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  have_threads=solaris
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-		;;
-	esac
-fi
-if test "x$want_threads" = xyes || test "x$want_threads" = xposix; then
-        if test "x$have_threads" = xnone; then
-                ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for pthread.h""... $ac_c" 1>&6
-echo "configure:4583: checking for pthread.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4588 "configure"
-#include "confdefs.h"
-#include <pthread.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4593: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  have_threads=posix
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-        fi
-fi
-if test "x$want_threads" = xyes || test "x$want_threads" = xnspr; then
-        if test "x$have_threads" = xnone; then
-		echo $ac_n "checking for PRP_NewNakedCondVar in -lnspr21""... $ac_c" 1>&6
-echo "configure:4619: checking for PRP_NewNakedCondVar in -lnspr21" >&5
-ac_lib_var=`echo nspr21'_'PRP_NewNakedCondVar | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lnspr21  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4627 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char PRP_NewNakedCondVar();
-
-int main() {
-PRP_NewNakedCondVar()
-; return 0; }
-EOF
-if { (eval echo configure:4638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  have_threads=nspr
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-	fi
-fi
-
-echo $ac_n "checking for thread implementation""... $ac_c" 1>&6
-echo "configure:4662: checking for thread implementation" >&5
-
-if test "x$have_threads" = xnone && test "x$want_threads" != xno; then
-	echo "$ac_t""none available" 1>&6
-        echo "configure: warning: $THREAD_NO_IMPLEMENTATION" 1>&2
-else
-	echo "$ac_t""$have_threads" 1>&6
-fi
-
-
-
-G_THREAD_LIBS=
-G_THREAD_CFLAGS=
-
-mutex_has_default=no
-case $have_threads in
-        posix)
-		G_THREAD_LIBS=error
-		echo $ac_n "checking for pthread_attr_init in -lpthread""... $ac_c" 1>&6
-echo "configure:4681: checking for pthread_attr_init in -lpthread" >&5
-ac_lib_var=`echo pthread'_'pthread_attr_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lpthread  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4689 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pthread_attr_init();
-
-int main() {
-pthread_attr_init()
-; return 0; }
-EOF
-if { (eval echo configure:4700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lpthread"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-		if test "x$G_THREAD_LIBS" = xerror; then
-                	echo $ac_n "checking for pthread_attr_init in -lpthreads""... $ac_c" 1>&6
-echo "configure:4722: checking for pthread_attr_init in -lpthreads" >&5
-ac_lib_var=`echo pthreads'_'pthread_attr_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lpthreads  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4730 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pthread_attr_init();
-
-int main() {
-pthread_attr_init()
-; return 0; }
-EOF
-if { (eval echo configure:4741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lpthreads"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-		fi
-		if test "x$G_THREAD_LIBS" = xerror; then
-                	echo $ac_n "checking for pthread_attr_init in -lthread""... $ac_c" 1>&6
-echo "configure:4764: checking for pthread_attr_init in -lthread" >&5
-ac_lib_var=`echo thread'_'pthread_attr_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lthread  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4772 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pthread_attr_init();
-
-int main() {
-pthread_attr_init()
-; return 0; }
-EOF
-if { (eval echo configure:4783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lthread"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-		fi
-		if test "x$G_THREAD_LIBS" = xerror; then
-                	echo $ac_n "checking for pthread_attr_init in -lc_r""... $ac_c" 1>&6
-echo "configure:4806: checking for pthread_attr_init in -lc_r" >&5
-ac_lib_var=`echo c_r'_'pthread_attr_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lc_r  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4814 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pthread_attr_init();
-
-int main() {
-pthread_attr_init()
-; return 0; }
-EOF
-if { (eval echo configure:4825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lc_r"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-		fi
-		if test "x$G_THREAD_LIBS" = xerror; then
-			echo $ac_n "checking for pthread_attr_init""... $ac_c" 1>&6
-echo "configure:4848: checking for pthread_attr_init" >&5
-if eval "test \"`echo '$''{'ac_cv_func_pthread_attr_init'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4853 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char pthread_attr_init(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pthread_attr_init();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_pthread_attr_init) || defined (__stub___pthread_attr_init)
-choke me
-#else
-pthread_attr_init();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_pthread_attr_init=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_pthread_attr_init=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'pthread_attr_init`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS=""
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-		fi
-		        	if test "x$G_THREAD_LIBS" = xerror; then
-                	echo $ac_n "checking for __d10_pthread_attr_init in -lthread""... $ac_c" 1>&6
-echo "configure:4898: checking for __d10_pthread_attr_init in -lthread" >&5
-ac_lib_var=`echo thread'_'__d10_pthread_attr_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lthread  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4906 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char __d10_pthread_attr_init();
-
-int main() {
-__d10_pthread_attr_init()
-; return 0; }
-EOF
-if { (eval echo configure:4917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lthread"
-				G_THREAD_CFLAGS="-D_POSIX4A_DRAFT10_SOURCE"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-        	fi
-		        	if test "x$G_THREAD_LIBS" = xerror; then
-                	echo $ac_n "checking for __pthread_attr_init_system in -lpthread""... $ac_c" 1>&6
-echo "configure:4941: checking for __pthread_attr_init_system in -lpthread" >&5
-ac_lib_var=`echo pthread'_'__pthread_attr_init_system | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lpthread  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4949 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char __pthread_attr_init_system();
-
-int main() {
-__pthread_attr_init_system()
-; return 0; }
-EOF
-if { (eval echo configure:4960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lpthread"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-        	fi
-                mutex_has_default=yes
-                mutex_default_type='pthread_mutex_t'
-                mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
-                mutex_header_file='pthread.h'
-		g_threads_impl="POSIX"
-                ;;
-        solaris)
-		G_THREAD_LIBS=error
-                echo $ac_n "checking for cond_init in -lthread""... $ac_c" 1>&6
-echo "configure:4990: checking for cond_init in -lthread" >&5
-ac_lib_var=`echo thread'_'cond_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lthread  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4998 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char cond_init();
-
-int main() {
-cond_init()
-; return 0; }
-EOF
-if { (eval echo configure:5009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lthread"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-                mutex_has_default=yes
-                mutex_default_type='mutex_t'
-		mutex_default_init="DEFAULTMUTEX"
-                mutex_header_file='thread.h'
-		g_threads_impl="SOLARIS"
-                ;;
-	nspr)
-		echo $ac_n "checking for PRP_NewNakedCondVar in -lnspr21""... $ac_c" 1>&6
-echo "configure:5037: checking for PRP_NewNakedCondVar in -lnspr21" >&5
-ac_lib_var=`echo nspr21'_'PRP_NewNakedCondVar | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lnspr21  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5045 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char PRP_NewNakedCondVar();
-
-int main() {
-PRP_NewNakedCondVar()
-; return 0; }
-EOF
-if { (eval echo configure:5056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  G_THREAD_LIBS="-lnspr21"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-		g_threads_impl="NSPR"
-		;;
-        none)
-		g_threads_impl="NONE"
-                ;;
-        *)
-		g_threads_impl="NONE"
-		G_THREAD_LIBS=error
-                ;;
-esac
-
-if test "x$G_THREAD_LIBS" = xerror; then
-        { echo "configure: error: $LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking necessary linker options""... $ac_c" 1>&6
-echo "configure:5092: checking necessary linker options" >&5
-echo "$ac_t""$G_THREAD_LIBS" 1>&6
-
-
-if test x"$have_threads" != xnone; then
-G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_REENTRANT" # good default guess
-
-    case $host in
-	*-aix*)
-		G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
-		if test x"$GCC" = xyes; then
-            	        G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
-		fi
-		;;
-	*-freebsd2.2*)
-		G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
-
-		# FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
-		# -mthreads flag.
-		;;
-    esac
-
-    # if we are not finding the ctime_r function, then we probably are
-    # not using the proper multithread flag
-    # Note: Digital UNIX 4.0d #defines ctime_r to _Pctime_r for gcc.
-    old_CPPFLAGS=$CPPFLAGS
-    CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
-    cat > conftest.$ac_ext <<EOF
-#line 5120 "configure"
-#include "confdefs.h"
-#include <time.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "[^a-zA-Z_](_P)?ctime_r[^a-zA-Z_]" >/dev/null 2>&1; then
-  :
-else
-  rm -rf conftest*
-  G_THREAD_CFLAGS=
-    echo "configure: warning: $FLAG_DOES_NOT_WORK" 1>&2
-fi
-rm -f conftest*
-
-    CPPFLAGS=$old_CPPFLAGS
-
-    echo $ac_n "checking necessary compiler options""... $ac_c" 1>&6
-echo "configure:5137: checking necessary compiler options" >&5
-
-    echo "$ac_t""$G_THREAD_CFLAGS" 1>&6
-else
-    G_THREAD_CFLAGS=
-fi
-
-
-if test x"$have_threads" != xnone; then
-	glib_save_LIBS="$LIBS"
-	glib_save_CFLAGS="$CFLAGS"
-	# we are not doing the following for now, as this might require glib 
-	# to always be linked with the thread libs on some platforms. 
-	# LIBS="$LIBS $G_THREAD_LIBS"
-	CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
-	for ac_func in localtime_r rand_r
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5155: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5160 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-	if test "$ac_cv_header_pwd_h" = "yes"; then
-		echo $ac_n "checking for getpwuid_r""... $ac_c" 1>&6
-echo "configure:5209: checking for getpwuid_r" >&5
-	 	if eval "test \"`echo '$''{'ac_cv_func_getpwuid_r'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5217 "configure"
-#include "confdefs.h"
-#include <errno.h>
-				int main () { char buffer[10000], *pointer; 
-				char getpwuid_r (long, void*, void*,
-					int, void*);
-				int error;
-				errno = 0;
-				error = getpwuid_r (0, &buffer, &buffer, 
-					sizeof (buffer), &pointer);
-				return errno == ENOSYS || error == ENOSYS;}
-EOF
-if { (eval echo configure:5229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_func_getpwuid_r=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_func_getpwuid_r=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-		if test "$ac_cv_func_getpwuid_r" = yes; then
-			echo "$ac_t""yes" 1>&6
-			cat >> confdefs.h <<\EOF
-#define HAVE_GETPWUID_R 1
-EOF
-
-		else
-			echo "$ac_t""no" 1>&6
-		fi
-		if test "$ac_cv_func_getpwuid_r" = "yes"; then
-			echo $ac_n "checking whether getpwuid_r is posix like""... $ac_c" 1>&6
-echo "configure:5254: checking whether getpwuid_r is posix like" >&5
-			# The signature for the POSIX version is:
-			# int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **)
-			cat > conftest.$ac_ext <<EOF
-#line 5258 "configure"
-#include "confdefs.h"
-#include <pwd.h>
-                                        #include <sys/types.h>
-                                        #include <stdlib.h>
-int main() {
-getpwuid_r((uid_t)0, NULL, NULL, (size_t)0, NULL);
-; return 0; }
-EOF
-if { (eval echo configure:5267: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cat >> confdefs.h <<\EOF
-#define HAVE_GETPWUID_R_POSIX 1
-EOF
-
-				echo "$ac_t""yes" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-		fi
-	fi
-	if test x"$have_threads" = xposix; then
-		LIBS="$LIBS $G_THREAD_LIBS"
-		echo $ac_n "checking whether pthread_getspecific is posix like""... $ac_c" 1>&6
-echo "configure:5286: checking whether pthread_getspecific is posix like" >&5
-		# PCThreads has pthread_getspecific(pthread_key_t, void **);
-		cat > conftest.$ac_ext <<EOF
-#line 5289 "configure"
-#include "confdefs.h"
-#include <pthread.h>
-int main() {
-pthread_getspecific(0,NULL);
-; return 0; }
-EOF
-if { (eval echo configure:5296: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-			cat >> confdefs.h <<\EOF
-#define HAVE_PTHREAD_GETSPECIFIC_POSIX 1
-EOF
-
-fi
-rm -f conftest*
-		echo $ac_n "checking whether pthread_mutex_trylock is posix like""... $ac_c" 1>&6
-echo "configure:5311: checking whether pthread_mutex_trylock is posix like" >&5
-		# DCE Threads return 1 as success, posix 0. what a mess.
-		if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5317 "configure"
-#include "confdefs.h"
-#include <pthread.h>
-			pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-			int main () { 
-			return !pthread_mutex_trylock (&mutex); }
-EOF
-if { (eval echo configure:5324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  echo "$ac_t""no" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  echo "$ac_t""yes" 1>&6
-			cat >> confdefs.h <<\EOF
-#define HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX 1
-EOF
-
-fi
-rm -fr conftest*
-fi
-
-		echo $ac_n "checking whether pthread_cond_timedwait is posix like""... $ac_c" 1>&6
-echo "configure:5341: checking whether pthread_cond_timedwait is posix like" >&5
-		# DCE Threads return -1 as failure, posix ETIMEDOUT.
-		if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5347 "configure"
-#include "confdefs.h"
-#include <pthread.h>
-			int main () { 
-			pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-			pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-			struct timeval tval;
-			struct timespec tspec;
-			gettimeofday (&tval, NULL);
-			tspec.tv_sec = tval.tv_sec;
-			tspec.tv_nsec = 0;
-			return pthread_cond_timedwait (&cond,&mutex,&tspec) 
-				!= -1;}
-EOF
-if { (eval echo configure:5361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  echo "$ac_t""no" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  echo "$ac_t""yes" 1>&6
-			cat >> confdefs.h <<\EOF
-#define HAVE_PTHREAD_COND_TIMEDWAIT_POSIX 1
-EOF
-
-fi
-rm -fr conftest*
-fi
-
-	fi
-	LIBS="$glib_save_LIBS"
-	CFLAGS="$glib_save_CFLAGS"
-fi
-
-if test "x$enable_threads" = "xyes"; then
-	if test "$ac_cv_func_getpwuid_r" != "yes"; then
-		echo "configure: warning: $FUNC_NO_GETPWUID_R" 1>&2
-	fi
-	if test "$ac_cv_func_localtime_r" != "yes"; then
-		echo "configure: warning: $FUNC_NO_LOCALTIME_R" 1>&2
-	fi
-fi
-
-cat >> confdefs.h <<EOF
-#define G_THREAD_SOURCE "gthread-$have_threads.c"
-EOF
-
-
-
-
-CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
-
-
-        case "$mutex_has_default" in
-        "yes")
-                echo $ac_n "checking size of $mutex_default_type""... $ac_c" 1>&6
-echo "configure:5404: checking size of $mutex_default_type" >&5
-if eval "test \"`echo '$''{'glib_cv_sizeof_gmutex'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5412 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <$mutex_header_file>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof($mutex_default_type));
-  exit(0);
-}
-EOF
-if { (eval echo configure:5424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_sizeof_gmutex=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_sizeof_gmutex=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$glib_cv_sizeof_gmutex" 1>&6
-cat >> confdefs.h <<EOF
-#define GLIB_SIZEOF_GMUTEX $glib_cv_sizeof_gmutex
-EOF
-
-
-	echo $ac_n "checking byte contents of $mutex_default_type""... $ac_c" 1>&6
-echo "configure:5444: checking byte contents of $mutex_default_type" >&5
-if eval "test \"`echo '$''{'glib_cv_byte_contents_gmutex'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-  glib_cv_byte_contents_gmutex=0
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5452 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <$mutex_header_file>
-main()
-{
-  static $mutex_default_type tv = $mutex_default_init;
-  char *p = (char*) &tv;
-  int i;
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  for (i = 0; i < $glib_cv_sizeof_gmutex; i++)
-    fprintf(f, "%s%d", i?",":"", *(p++));
-  fprintf(f, "\n");
-  exit(0);
-}
-EOF
-if { (eval echo configure:5469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  glib_cv_byte_contents_gmutex=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  glib_cv_byte_contents_gmutex=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$glib_cv_byte_contents_gmutex" 1>&6
-cat >> confdefs.h <<EOF
-#define GLIB_BYTE_CONTENTS_GMUTEX $glib_cv_byte_contents_gmutex
-EOF
-
-
-	
-                ;;
-        *)
-                
-                ;;
-        esac
-
-
-
-glib_sysdefso="glibconfig-sysdefs.h"
-glib_sysdef_msg=`echo POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32 | sed 's/:[^ 	]*//g'`
-if test "x`(echo '\n') 2>/dev/null`" != 'x\n'; then
-  glib_nl='\\n'
-else
-  glib_nl='\n'
-fi
-echo $ac_n "checking system definitions for $glib_sysdef_msg""... $ac_c" 1>&6
-echo "configure:5505: checking system definitions for $glib_sysdef_msg" >&5
-cat >confrun.c <<_______EOF
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/poll.h>
-int main (int c, char **v) {
-  FILE *f = fopen ("$glib_sysdefso", "a");
-  if (!f) return 1;
-_______EOF
-for glib_sysdef_input in POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32 ; do
-	glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([^:]*\):.*$/\1/'`
-	glib_default=`echo $glib_sysdef_input | sed 's/^[^:]*:\(.*\)$/\1/'`
-	echo "#ifdef $glib_sysdef" >>confrun.c
-	echo "  fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"=\", $glib_sysdef);" >>confrun.c
-	echo "#else" >>confrun.c
-	if test $glib_sysdef != $glib_default; then
-		echo "  fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"=\", $glib_default);" >>confrun.c
-	else
-		echo "  fprintf (f, \"#define GLIB_SYSDEF_%s${glib_nl}\", \"$glib_sysdef\");" >>confrun.c
-	fi
-	echo "#endif" >>confrun.c
-done
-echo "return 0; }" >>confrun.c
-if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5532 "configure"
-#include "confdefs.h"
-`cat confrun.c`
-EOF
-if { (eval echo configure:5536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  echo "$ac_t""done" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  	for glib_sysdef_input in POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32 ; do
-		glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([^:]*\):.*$/\1/'`
-		glib_default=`echo $glib_sysdef_input | sed 's/^[^:]*:\(.*\)$/\1/'`
-		if test $glib_sysdef != $glib_default; then
-			glib_default=" =$glib_default"
-		else
-			glib_default=
-		fi
-		echo "#define GLIB_SYSDEF_$glib_sysdef$glib_default" >>$glib_sysdefso
-	done
-	echo "$ac_t""failed" 1>&6
-fi
-rm -fr conftest*
-fi
-
-rm -f confrun.c
-
-
-
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
-  if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
-  case "\$ac_option" in
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.13"
-    exit 0 ;;
-  -help | --help | --hel | --he | --h)
-    echo "\$ac_cs_usage"; exit 0 ;;
-  *) echo "\$ac_cs_usage"; exit 1 ;;
-  esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "
-glib.spec
-Makefile
-glib-config
-gmodule/gmoduleconf.h
-gmodule/Makefile
-gthread/Makefile
-docs/Makefile
-docs/glib-config.1
-tests/Makefile
- config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@GLIB_MAJOR_VERSION@%$GLIB_MAJOR_VERSION%g
-s%@GLIB_MINOR_VERSION@%$GLIB_MINOR_VERSION%g
-s%@GLIB_MICRO_VERSION@%$GLIB_MICRO_VERSION%g
-s%@GLIB_VERSION@%$GLIB_VERSION%g
-s%@GLIB_INTERFACE_AGE@%$GLIB_INTERFACE_AGE%g
-s%@GLIB_BINARY_AGE@%$GLIB_BINARY_AGE%g
-s%@LT_RELEASE@%$LT_RELEASE%g
-s%@LT_CURRENT@%$LT_CURRENT%g
-s%@LT_REVISION@%$LT_REVISION%g
-s%@LT_AGE@%$LT_AGE%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@RANLIB@%$RANLIB%g
-s%@CC@%$CC%g
-s%@LN_S@%$LN_S%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
-s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
-s%@MAINT@%$MAINT%g
-s%@ENABLE_MEM_CHECK@%$ENABLE_MEM_CHECK%g
-s%@ENABLE_MEM_PROFILE@%$ENABLE_MEM_PROFILE%g
-s%@CPP@%$CPP%g
-s%@G_MODULE_IMPL@%$G_MODULE_IMPL%g
-s%@G_MODULE_LIBS@%$G_MODULE_LIBS%g
-s%@G_MODULE_LDFLAGS@%$G_MODULE_LDFLAGS%g
-s%@G_MODULE_HAVE_DLERROR@%$G_MODULE_HAVE_DLERROR%g
-s%@G_MODULE_NEED_USCORE@%$G_MODULE_NEED_USCORE%g
-s%@GLIB_DEBUG_FLAGS@%$GLIB_DEBUG_FLAGS%g
-s%@G_THREAD_CFLAGS@%$G_THREAD_CFLAGS%g
-s%@G_THREAD_LIBS@%$G_THREAD_LIBS%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
-  if test $ac_beg -gt 1; then
-    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-  else
-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-  fi
-  if test ! -s conftest.s$ac_file; then
-    ac_more_lines=false
-    rm -f conftest.s$ac_file
-  else
-    if test -z "$ac_sed_cmds"; then
-      ac_sed_cmds="sed -f conftest.s$ac_file"
-    else
-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-    fi
-    ac_file=`expr $ac_file + 1`
-    ac_beg=$ac_end
-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
-  fi
-done
-if test -z "$ac_sed_cmds"; then
-  ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"glib.spec
-Makefile
-glib-config
-gmodule/gmoduleconf.h
-gmodule/Makefile
-gthread/Makefile
-docs/Makefile
-docs/glib-config.1
-tests/Makefile
-"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
-  esac
-
-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
-  # Remove last slash and all that follows it.  Not all systems have dirname.
-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    # The file is in a subdirectory.
-    test ! -d "$ac_dir" && mkdir "$ac_dir"
-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
-    # A "../" for each directory in $ac_dir_suffix.
-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
-  else
-    ac_dir_suffix= ac_dots=
-  fi
-
-  case "$ac_given_srcdir" in
-  .)  srcdir=.
-      if test -z "$ac_dots"; then top_srcdir=.
-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-  *) # Relative path.
-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
-  esac
-
-  case "$ac_given_INSTALL" in
-  [/$]*) INSTALL="$ac_given_INSTALL" ;;
-  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
-  esac
-
-  echo creating "$ac_file"
-  rm -f "$ac_file"
-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-  case "$ac_file" in
-  *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
-  *) ac_comsub= ;;
-  esac
-
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
-ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
-ac_uB='\([ 	]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
-  CONFIG_HEADERS="config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
-  esac
-
-  echo creating $ac_file
-
-  rm -f conftest.frag conftest.in conftest.out
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h.  And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
-  ac_lines=`grep -c . conftest.vals`
-  # grep -c gives empty output for an empty file on some AIX systems.
-  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
-  # Write a limited-size here document to conftest.frag.
-  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
-  echo 'CEOF
-  sed -f conftest.frag conftest.in > conftest.out
-  rm -f conftest.in
-  mv conftest.out conftest.in
-' >> $CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
-  rm -f conftest.vals
-  mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
-  rm -f conftest.frag conftest.h
-  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
-  cat conftest.in >> conftest.h
-  rm -f conftest.in
-  if cmp -s $ac_file conftest.h 2>/dev/null; then
-    echo "$ac_file is unchanged"
-    rm -f conftest.h
-  else
-    # Remove last slash and all that follows it.  Not all systems have dirname.
-      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-      # The file is in a subdirectory.
-      test ! -d "$ac_dir" && mkdir "$ac_dir"
-    fi
-    rm -f $ac_file
-    mv conftest.h $ac_file
-  fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-
-
-# Note that if two cases are the same, case goes with the first one.
-# Note also that this is inside an AC_OUTPUT_COMMAND.  We do not depend
-# on variable expansion in case labels.  Look at the generated config.status
-# for a hint.
-
-case xyes in
-x$ac_cv_header_float_h)
-  glib_float_h=yes
-  glib_mf=FLT_MIN glib_Mf=FLT_MAX
-  glib_md=DBL_MIN glib_Md=DBL_MAX
-  ;;
-x$ac_cv_header_values_h)
-  glib_values_h=yes
-  glib_mf=MINFLOAT  glib_Mf=MAXFLOAT
-  glib_md=MINDOUBLE glib_Md=MAXDOUBLE
-  ;;
-esac
-
-case xyes in
-x$ac_cv_header_limits_h)
-  glib_limits_h=yes
-  glib_ms=SHRT_MIN glib_Ms=SHRT_MAX
-  glib_mi=INT_MIN  glib_Mi=INT_MAX
-  glib_ml=LONG_MIN glib_Ml=LONG_MAX
-  ;;
-x$ac_cv_header_values_h)
-  glib_values_h=yes
-  glib_ms=MINSHORT glib_Ms=MAXSHORT
-  glib_mi=MININT   glib_Mi=MAXINT
-  glib_ml=MINLONG  glib_Ml=MAXLONG
-  ;;
-esac
-
-if test x$ac_cv_header_sys_poll_h = xyes ; then
-  glib_sys_poll_h=yes
-fi
-
-case 2 in
-$ac_cv_sizeof_short)		gint16=short;;
-$ac_cv_sizeof_int)		gint16=int;;
-esac
-case 4 in
-$ac_cv_sizeof_short)		gint32=short;;
-$ac_cv_sizeof_int)		gint32=int;;
-$ac_cv_sizeof_long)		gint32=long;;
-esac
-case 8 in
-$ac_cv_sizeof_int)
-  gint64=int
-  glib_extension=
-  glib_warning_guard=
-  gint64_constant='(val)'
-  ;;
-$ac_cv_sizeof_long)
-  gint64=long
-  glib_extension=
-  glib_warning_guard=
-  gint64_constant='(val##L)'
-  ;;
-$ac_cv_sizeof_long_long)
-  gint64='long long'
-  glib_extension='G_GNUC_EXTENSION '
-  glib_warning_guard="
-#if defined (__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
-#  define G_GNUC_EXTENSION __extension__
-#else
-#  define G_GNUC_EXTENSION
-#endif
-
-"
-  gint64_constant='(G_GNUC_EXTENSION (val##LL))'
-  ;;
-esac
-
-gintbits=`expr $ac_cv_sizeof_int \* 8`
-glongbits=`expr $ac_cv_sizeof_long \* 8`
-
-
-case $ac_cv_sizeof_void_p in
-$ac_cv_sizeof_int)  	glib_gpi_cast=''        glib_gpui_cast=''         ;;
-$ac_cv_sizeof_long) 	glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
-*) 			glib_unknown_void_p=yes ;;
-esac
-
-
-case xyes in
-x$ac_cv_func_atexit)
-  glib_atexit="
-#ifdef NeXT /* @#%@! NeXTStep */
-# define g_ATEXIT(proc)	(!atexit (proc))
-#else
-# define g_ATEXIT(proc)	(atexit (proc))
-#endif"
-  ;;
-x$ac_cv_func_on_exit)
-  glib_atexit="
-#define g_ATEXIT(proc)	(on_exit ((void (*)(int, void*))(proc), NULL))"
-  ;;
-esac
-
-case xyes in
-x$ac_cv_func_memmove)
-  glib_memmove='
-#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END'
-  ;;
-*)
-  glib_memmove="
-/* We make the assumption that if memmove isn't available, then
- * bcopy will do the job. This isn't safe everywhere. (bcopy can't
- * necessarily handle overlapping copies) */
-#define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
-  ;;
-esac
-
-glib_defines="
-#define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
-#define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
-#define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
-"
-
-case xyes in
-x$glib_cv_va_copy)	glib_vacopy='#define G_VA_COPY	va_copy' ;;
-x$glib_cv___va_copy)	glib_vacopy='#define G_VA_COPY	__va_copy' ;;
-*)			glib_vacopy=''
-esac
-
-if test x$glib_cv_va_val_copy = xno; then
-  glib_vacopy="\$glib_vacopy
-#define G_VA_COPY_AS_ARRAY 1"
-fi
-
-if test x$glib_cv_hasinline = xyes; then
-    glib_inline='#define G_HAVE_INLINE 1'
-fi
-if test x$glib_cv_has__inline = xyes; then
-    glib_inline="\$glib_inline
-#define G_HAVE___INLINE 1"
-fi
-if test x$glib_cv_has__inline__ = xyes; then
-    glib_inline="\$glib_inline
-#define G_HAVE___INLINE__ 1"
-fi
-
-case xyes in
-x$ac_cv_c_bigendian)
-  g_byte_order=G_BIG_ENDIAN
-  g_bs_native=BE
-  g_bs_alien=LE
-  ;;
-*)
-  g_byte_order=G_LITTLE_ENDIAN
-  g_bs_native=LE
-  g_bs_alien=BE
-  ;;
-esac
-
-if test x$glib_wchar_h = xyes; then
-  glib_wc='
-#define G_HAVE_WCHAR_H 1'
-fi
-if test x$glib_wctype_h = xyes; then
-  glib_wc="\$glib_wc
-#define G_HAVE_WCTYPE_H 1"
-fi
-if test x$glib_working_wctype = xno; then
-  glib_wc="\$glib_wc
-#define G_HAVE_BROKEN_WCTYPE 1"
-fi
-
-case x$enable_threads in
-xyes)	g_enable_threads_def="#define";;
-*)	g_enable_threads_def="#undef ";;
-esac
-
-g_threads_impl_def=$g_threads_impl
-
-g_mutex_has_default="$mutex_has_default"
-g_mutex_sizeof="$glib_cv_sizeof_gmutex"
-g_mutex_contents="$glib_cv_byte_contents_gmutex"
-
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-
-
-## Generate `glibconfig.h' in two cases
-## 1. `config.status' is run either explicitly, or via configure.
-##     Esp. not when it is run in `Makefile' to generate makefiles and
-##     config.h
-## 2. CONFIG_OTHER is set explicitly
-##
-## Case 1 is difficult.  We know that `automake' sets one of
-## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
-## only when AM_CONFIG_HEADER is set, however.
-
-if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
-  # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
-  CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h}
-fi
-case "$CONFIG_OTHER" in
-*glibconfig.h*)
-	echo creating glibconfig.h
-	outfile=glibconfig.h-tmp
-	cat > $outfile <<\_______EOF
-/* glibconfig.h
- *
- * This is a generated file.  Please modify `configure.in'
- */
-
-#ifndef GLIBCONFIG_H
-#define GLIBCONFIG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-_______EOF
-
-	if test x$glib_limits_h = xyes; then
-	  echo '#include <limits.h>' >> $outfile
-	fi
-	if test x$glib_float_h = xyes; then
-	  echo '#include <float.h>' >> $outfile
-	fi
-	if test x$glib_values_h = xyes; then
-	  echo '#include <values.h>' >> $outfile
-	fi
-	if test x$g_mutex_header_file != x; then
-	  echo '#include <'"$g_mutex_header_file"'>' >> $outfile
-	fi
-	if test x$glib_sys_poll_h = xyes; then
-	  echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
-	fi
-
-	cat >> $outfile <<_______EOF
-
-#define G_MINFLOAT	$glib_mf
-#define G_MAXFLOAT	$glib_Mf
-#define G_MINDOUBLE	$glib_md
-#define G_MAXDOUBLE	$glib_Md
-#define G_MINSHORT	$glib_ms
-#define G_MAXSHORT	$glib_Ms
-#define G_MININT	$glib_mi
-#define G_MAXINT	$glib_Mi
-#define G_MINLONG	$glib_ml
-#define G_MAXLONG	$glib_Ml
-
-_______EOF
-
-
-	### this should always be true in a modern C/C++ compiler
-	cat >>$outfile <<_______EOF
-typedef signed char gint8;
-typedef unsigned char guint8;
-_______EOF
-
-
-	if test -n "$gint16"; then
-	  cat >>$outfile <<_______EOF
-typedef signed $gint16 gint16;
-typedef unsigned $gint16 guint16;
-_______EOF
-	fi
-
-
-	if test -n "$gint32"; then
-	  cat >>$outfile <<_______EOF
-typedef signed $gint32 gint32;
-typedef unsigned $gint32 guint32;
-_______EOF
-	fi
-
-
-	if test -n "$gint64"; then
-	  cat >>$outfile <<_______EOF
-${glib_warning_guard}#define G_HAVE_GINT64 1
-
-${glib_extension}typedef signed $gint64 gint64;
-${glib_extension}typedef unsigned $gint64 guint64;
-
-#define G_GINT64_CONSTANT(val)	$gint64_constant
-_______EOF
-	fi
-
-
-	if test -z "$glib_unknown_void_p"; then
-	  cat >>$outfile <<_______EOF
-
-#define GPOINTER_TO_INT(p)	((gint)  ${glib_gpi_cast} (p))
-#define GPOINTER_TO_UINT(p)	((guint) ${glib_gpui_cast} (p))
-
-#define GINT_TO_POINTER(i)	((gpointer) ${glib_gpi_cast} (i))
-#define GUINT_TO_POINTER(u)	((gpointer) ${glib_gpui_cast} (u))
-_______EOF
-	else
-	  echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
-	fi
-
-
-
-	cat >>$outfile <<_______EOF
-$glib_atexit
-$glib_memmove
-$glib_defines
-
-$glib_vacopy
-
-#ifdef	__cplusplus
-#define	G_HAVE_INLINE	1
-#else	/* !__cplusplus */
-$glib_inline
-#endif	/* !__cplusplus */
-_______EOF
-
-	echo >>$outfile
-	if test x$g_mutex_has_default = xyes; then
-		cat >>$outfile <<_______EOF
-$g_enable_threads_def G_THREADS_ENABLED
-#define G_THREADS_IMPL_$g_threads_impl_def
-typedef struct _GStaticMutex GStaticMutex;
-struct _GStaticMutex
-{
-  struct _GMutex *runtime_mutex;
-  union {
-    char   pad[$g_mutex_sizeof];
-    double dummy_double;
-    void  *dummy_pointer;
-    long   dummy_long;
-  } aligned_pad_u;
-};
-#define	G_STATIC_MUTEX_INIT	{ NULL, { { $g_mutex_contents} } }
-#define	g_static_mutex_get_mutex(mutex) \
-  (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
-   g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
-_______EOF
-	else
-		cat >>$outfile <<_______EOF
-$g_enable_threads_def G_THREADS_ENABLED
-#define G_THREADS_IMPL_$g_threads_impl_def
-typedef struct _GMutex* GStaticMutex;
-#define G_STATIC_MUTEX_INIT NULL
-#define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
-_______EOF
-	fi
-
-	echo >>$outfile
-	g_bit_sizes="16 32"
-	if test -n "$gint64"; then
-	  g_bit_sizes="$g_bit_sizes 64"
-	fi
-	for bits in $g_bit_sizes; do
-	  cat >>$outfile <<_______EOF
-#define GINT${bits}_TO_${g_bs_native}(val)	((gint${bits}) (val))
-#define GUINT${bits}_TO_${g_bs_native}(val)	((guint${bits}) (val))
-#define GINT${bits}_TO_${g_bs_alien}(val)	((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
-#define GUINT${bits}_TO_${g_bs_alien}(val)	(GUINT${bits}_SWAP_LE_BE (val))
-_______EOF
-	done
-
-	cat >>$outfile <<_______EOF
-#define GLONG_TO_LE(val)	((glong) GINT${glongbits}_TO_LE (val))
-#define GULONG_TO_LE(val)	((gulong) GUINT${glongbits}_TO_LE (val))
-#define GLONG_TO_BE(val)	((glong) GINT${glongbits}_TO_BE (val))
-#define GULONG_TO_BE(val)	((gulong) GUINT${glongbits}_TO_BE (val))
-#define GINT_TO_LE(val)		((gint) GINT${gintbits}_TO_LE (val))
-#define GUINT_TO_LE(val)	((guint) GUINT${gintbits}_TO_LE (val))
-#define GINT_TO_BE(val)		((gint) GINT${gintbits}_TO_BE (val))
-#define GUINT_TO_BE(val)	((guint) GUINT${gintbits}_TO_BE (val))
-#define G_BYTE_ORDER $g_byte_order
-
-_______EOF
-
-	if test -r glibconfig-sysdefs.h; then
-	  cat glibconfig-sysdefs.h >>$outfile
-	fi
-
-
-	cat >>$outfile <<_______EOF
-
-$glib_wc
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GLIBCONFIG_H */
-_______EOF
-
-
-	if cmp -s $outfile glibconfig.h; then
-	  echo glibconfig.h is unchanged
-	  rm -f $outfile
-	else
-	  mv $outfile glibconfig.h
-	fi ;;
-esac
-
-case "$CONFIG_FILES" in
-*glib-config*)chmod +x glib-config;;
-esac
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/glib/configure.in b/glib/configure.in
deleted file mode 100644
index 08d05b8..0000000
--- a/glib/configure.in
+++ /dev/null
@@ -1,1311 +0,0 @@
-dnl ***********************************
-dnl *** include special GLib macros ***
-dnl ***********************************
-builtin(include, acglib.m4)dnl
-
-# require autoconf 2.13
-AC_PREREQ(2.13)
-
-# init autoconf (and check for presence of glist.c)
-AC_INIT(glist.c)
-
-# Save this value here, since automake will set cflags later
-cflags_set=${CFLAGS+set}
-
-# we rewrite this file
-rm -f glibconfig-sysdefs.h
-
-dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
-dnl are available for $ac_help expansion (don't we all *love* autoconf?)
-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
-#
-# The following version number definitions apply to GLib, GModule and GThread
-# as a whole, so if changes occoured in any of them, they are all
-# treated with the same interface and binary age.
-#
-# Making releases:
-#   GLIB_MICRO_VERSION += 1;
-#   GLIB_INTERFACE_AGE += 1;
-#   GLIB_BINARY_AGE += 1;
-# if any functions have been added, set GLIB_INTERFACE_AGE to 0.
-# if backwards compatibility has been broken,
-# set GLIB_BINARY_AGE _and_ GLIB_INTERFACE_AGE to 0.
-#
-GLIB_MAJOR_VERSION=1
-GLIB_MINOR_VERSION=2
-GLIB_MICRO_VERSION=8
-GLIB_INTERFACE_AGE=8
-GLIB_BINARY_AGE=8
-GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
-dnl
-AC_DIVERT_POP()dnl
-
-AC_SUBST(GLIB_MAJOR_VERSION)
-AC_SUBST(GLIB_MINOR_VERSION)
-AC_SUBST(GLIB_MICRO_VERSION)
-AC_SUBST(GLIB_VERSION)
-AC_SUBST(GLIB_INTERFACE_AGE)
-AC_SUBST(GLIB_BINARY_AGE)
-
-# libtool versioning
-LT_RELEASE=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION
-LT_CURRENT=`expr $GLIB_MICRO_VERSION - $GLIB_INTERFACE_AGE`
-LT_REVISION=$GLIB_INTERFACE_AGE
-LT_AGE=`expr $GLIB_BINARY_AGE - $GLIB_INTERFACE_AGE`
-AC_SUBST(LT_RELEASE)
-AC_SUBST(LT_CURRENT)
-AC_SUBST(LT_REVISION)
-AC_SUBST(LT_AGE)
-
-VERSION=$GLIB_VERSION
-PACKAGE=glib
-
-AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
-
-# Specify a configuration file
-AM_CONFIG_HEADER(config.h)
-
-AC_DEFINE_UNQUOTED(GLIB_MAJOR_VERSION, $GLIB_MAJOR_VERSION)
-AC_DEFINE_UNQUOTED(GLIB_MINOR_VERSION, $GLIB_MINOR_VERSION)
-AC_DEFINE_UNQUOTED(GLIB_MICRO_VERSION, $GLIB_MICRO_VERSION)
-AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $GLIB_INTERFACE_AGE)
-AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE)
-
-dnl Initialize libtool
-AM_PROG_LIBTOOL
-
-dnl Initialize maintainer mode
-AM_MAINTAINER_MODE
-
-AC_CANONICAL_HOST
-
-dnl figure debugging default, prior to $ac_help setup
-dnl
-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
-if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then
-	debug_default=yes
-else
-	debug_default=minimum
-fi
-AC_DIVERT_POP()dnl
-
-dnl declare --enable-* args and collect ac_help strings
-AC_ARG_ENABLE(debug, [  --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
-AC_ARG_ENABLE(mem_check, [  --enable-mem-check      turn on malloc/free sanity checking [default=no]],,enable_mem_check=no)
-AC_ARG_ENABLE(mem_profile, [  --enable-mem-profile    turn on malloc profiling atexit [default=no]],,enable_mem_profile=no)
-AC_ARG_ENABLE(ansi, [  --enable-ansi           turn on strict ansi [default=no]],
-		    , enable_ansi=no)
-AC_ARG_ENABLE(threads, [  --enable-threads        turn on basic thread support [default=yes]
-                          ([=no] will override --with-threads)],,enable_threads=yes)
-
-if test "x$enable_threads" != "xyes"; then
-  enable_threads=no
-fi
-
-AC_MSG_CHECKING(whether to enable memory checking)
-if test "x$enable_mem_check" = "xyes"; then
-  AC_DEFINE(ENABLE_MEM_CHECK, 1)
-  AC_SUBST(ENABLE_MEM_CHECK)
-  AC_MSG_RESULT(yes)
-else
-  AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING(whether to enable memory profiling)
-if test "x$enable_mem_profile" = "xyes"; then
-  AC_DEFINE(ENABLE_MEM_PROFILE, 1)
-  AC_SUBST(ENABLE_MEM_PROFILE)
-  AC_MSG_RESULT(yes)
-else
-  AC_MSG_RESULT(no)
-fi
-
-if test "x$enable_debug" = "xyes"; then
-  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
-  GLIB_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
-else
-  if test "x$enable_debug" = "xno"; then
-    GLIB_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
-  fi
-fi
-
-AC_DEFINE_UNQUOTED(G_COMPILED_WITH_DEBUGGING, "${enable_debug}")
-
-# Checks for programs.
-AC_PROG_CC
-AM_PROG_CC_STDC
-AC_PROG_INSTALL
-
-changequote(,)dnl
-if test "x$GCC" = "xyes"; then
-  case " $CFLAGS " in
-  *[\ \	]-Wall[\ \	]*) ;;
-  *) CFLAGS="$CFLAGS -Wall" ;;
-  esac
-
-  if test "x$enable_ansi" = "xyes"; then
-    case " $CFLAGS " in
-    *[\ \	]-ansi[\ \	]*) ;;
-    *) CFLAGS="$CFLAGS -ansi" ;;
-    esac
-
-    case " $CFLAGS " in
-    *[\ \	]-pedantic[\ \	]*) ;;
-    *) CFLAGS="$CFLAGS -pedantic" ;;
-    esac
-  fi
-fi
-changequote([,])dnl
-
-dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
-AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
-glib_save_LIBS=$LIBS
-LIBS="$LIBS -lm"
-AC_TRY_RUN([#include <math.h>
-             int main (void) { return (log(1) != log(1.)); }],
-     AC_MSG_RESULT(none needed),
-     glib_save_CFLAGS=$CFLAGS
-     CFLAGS="$CFLAGS -std1"
-     AC_TRY_RUN([#include <math.h>
-                 int main (void) { return (log(1) != log(1.)); }],
-         AC_MSG_RESULT(-std1),
-         AC_MSG_RESULT()
-         CFLAGS=$glib_save_CFLAGS
-         AC_MSG_WARN(
-                [No ANSI prototypes found in library. (-std1 didn't work.)])
-     )
-)
-LIBS=$glib_save_LIBS
-
-dnl NeXTStep cc seems to need this
-AC_MSG_CHECKING([for extra flags for POSIX compliance])
-AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
-  AC_MSG_RESULT(none needed),
-  glib_save_CFLAGS=$CFLAGS
-  CFLAGS="$CFLAGS -posix"
-  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
-    AC_MSG_RESULT(-posix),
-    AC_MSG_RESULT()
-    CFLAGS=$glib_save_CFLAGS
-    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
-
-# Checks for header files.
-AC_HEADER_STDC
-
-# Checks for library functions.
-AC_FUNC_VPRINTF
-
-AC_CHECK_FUNCS(atexit on_exit)
-
-AC_CHECK_SIZEOF(char)
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(long)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(void *)
-AC_CHECK_SIZEOF(long long)
-
-dnl long doubles were not used, and a portability problem
-dnl AC_C_LONG_DOUBLE
-AC_C_CONST
-
-dnl AC_C_INLINE is useless to us since it bails out too early, we need to
-dnl truely know which ones of `inline', `__inline' and `__inline__' are
-dnl actually supported.
-AC_MSG_CHECKING(for __inline)
-AC_CACHE_VAL(glib_cv_has__inline,[
-        AC_TRY_RUN([
-	__inline int foo () { return 0; }
-	int main () { return foo (); }
-       	],
-	glib_cv_has__inline=yes
-        ,
-	glib_cv_has__inline=no
-        ,)
-])
-AC_MSG_RESULT($glib_cv_has__inline)
-case x$glib_cv_has__inline in
-xyes) AC_DEFINE(G_HAVE___INLINE)
-esac
-AC_MSG_CHECKING(for __inline__)
-AC_CACHE_VAL(glib_cv_has__inline__,[
-        AC_TRY_RUN([
-	__inline__ int foo () { return 0; }
-	int main () { return foo (); }
-       	],
-	glib_cv_has__inline__=yes
-        ,
-	glib_cv_has__inline__=no
-        ,)
-])
-AC_MSG_RESULT($glib_cv_has__inline__)
-case x$glib_cv_has__inline__ in
-xyes) AC_DEFINE(G_HAVE___INLINE__)
-esac
-AC_MSG_CHECKING(for inline)
-AC_CACHE_VAL(glib_cv_hasinline,[
-        AC_TRY_RUN([
-	inline int foo () { return 0; }
-	int main () { return foo (); }
-       	],
-	glib_cv_hasinline=yes
-        ,
-	glib_cv_hasinline=no
-        ,)
-])
-AC_MSG_RESULT($glib_cv_hasinline)
-case x$glib_cv_hasinline in
-xyes) AC_DEFINE(G_HAVE_INLINE)
-esac
-
-dnl for bytesex stuff
-AC_C_BIGENDIAN
-
-dnl header file checks
-AC_CHECK_HEADERS(float.h, AC_DEFINE(HAVE_FLOAT_H))
-AC_CHECK_HEADERS(limits.h, AC_DEFINE(HAVE_LIMITS_H))
-AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
-AC_CHECK_HEADERS(sys/param.h, AC_DEFINE(HAVE_SYS_PARAM_H))
-AC_CHECK_HEADERS(sys/poll.h, AC_DEFINE(HAVE_SYS_POLL_H))
-AC_CHECK_HEADERS(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H))
-AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
-AC_CHECK_HEADERS(sys/times.h, AC_DEFINE(HAVE_SYS_TIMES_H))
-AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
-AC_CHECK_HEADERS(values.h, AC_DEFINE(HAVE_VALUES_H))
-
-# Check for some functions
-AC_CHECK_FUNCS(lstat strerror strsignal memmove vsnprintf strcasecmp strncasecmp poll)
-
-# Check for sys_errlist
-AC_MSG_CHECKING(for sys_errlist)
-AC_TRY_LINK(, [
-extern char *sys_errlist[];
-extern int sys_nerr;
-sys_errlist[sys_nerr-1][0] = 0;
-], glib_ok=yes, glib_ok=no)
-AC_MSG_RESULT($glib_ok)
-if test $glib_ok = no; then
-    AC_DEFINE(NO_SYS_ERRLIST)
-fi
-
-# Check for sys_siglist
-AC_MSG_CHECKING(for sys_siglist)
-AC_TRY_LINK(, [
-extern char *sys_siglist[];
-exit (sys_siglist[0]);
-], glib_ok=yes, glib_ok=no)
-AC_MSG_RESULT($glib_ok)
-if test $glib_ok = no; then
-    AC_DEFINE(NO_SYS_SIGLIST)
-fi
-
-# Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog)
-AC_MSG_CHECKING(for sys_siglist declaration)
-AC_TRY_COMPILE([#include <signal.h>], [
-strlen (sys_siglist[0]);
-], glib_ok=yes, glib_ok=no)
-AC_MSG_RESULT($glib_ok)
-if test $glib_ok = no; then
-    AC_DEFINE(NO_SYS_SIGLIST_DECL)
-fi
-
-# Check if <sys/select.h> needs to be included for fd_set
-AC_MSG_CHECKING([for fd_set])
-AC_TRY_COMPILE([#include <sys/types.h>],
-        [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
-if test $gtk_ok = yes; then
-    AC_MSG_RESULT([yes, found in sys/types.h])
-else
-    AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
-    if test $gtk_ok = yes; then
-        AC_DEFINE(HAVE_SYS_SELECT_H)
-        AC_MSG_RESULT([yes, found in sys/select.h])
-    else
-	AC_DEFINE(NO_FD_SET)
-	AC_MSG_RESULT(no)
-    fi
-fi
-
-# These are used only in GDK (gdki18n.h)
-# This stuff is here only so that we can define these
-# things in glibconfig.h. If gtk+ started using an installed
-# gdkconfig.h file, then the definitions would belong there.
-
-# Check for wchar.h
-
-AC_MSG_CHECKING(for wchar.h)
-AC_TRY_CPP([#include <wchar.h>], glib_wchar_h=yes, glib_wchar_h=no)
-if test $glib_wchar_h = yes; then
-   AC_DEFINE(HAVE_WCHAR_H)
-fi
-AC_MSG_RESULT($glib_wchar_h)
-
-# Check for wctype.h (for iswalnum)
-
-AC_MSG_CHECKING(for wctype.h)
-AC_TRY_CPP([#include <wctype.h>], glib_wctype_h=yes, glib_wctype_h=no)
-if test $glib_wctype_h = yes; then
-   AC_DEFINE(HAVE_WCTYPE_H)
-fi
-AC_MSG_RESULT($glib_wctype_h)
-
-oLIBS="$LIBS"
-# in Solaris 2.5, `iswalnum' is in -lw
-AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum)])
-
-# The following is necessary for Linux libc-5.4.38
-AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
-AC_TRY_LINK([#include <stdlib.h>],[
-#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
-#  ifdef HAVE_WCTYPE_H
-#    include <wctype.h>
-#  else
-#    ifdef HAVE_WCHAR_H
-#      include <wchar.h>
-#    endif
-#  endif
-#else
-#  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
-#endif
-iswalnum((wchar_t) 0);
-], glib_working_wctype=yes, glib_working_wctype=no)
-LIBS="$oLIBS"
-
-if test $glib_working_wctype = no; then
-   AC_DEFINE(HAVE_BROKEN_WCTYPE)
-fi
-AC_MSG_RESULT($glib_working_wctype)
-
-dnl *** check for sane realloc() ***
-AC_MSG_CHECKING(whether realloc (NULL,) will work)
-AC_CACHE_VAL(glib_cv_sane_realloc,[
-	AC_TRY_RUN([
-	#include <stdlib.h>
-	int main() {
-	  return realloc (0, sizeof (int)) == 0;
-	}],
-	glib_cv_sane_realloc=yes
-	AC_DEFINE(REALLOC_0_WORKS)
-	,
-	glib_cv_sane_realloc=no
-	,)
-])
-AC_MSG_RESULT($glib_cv_sane_realloc)
-
-
-dnl **********************
-dnl *** va_copy checks ***
-dnl **********************
-dnl we currently check for all three va_copy possibilities, so we get
-dnl all results in config.log for bug reports.
-AC_MSG_CHECKING(for an implementation of va_copy())
-AC_CACHE_VAL(glib_cv_va_copy,[
-	AC_TRY_RUN([
-	#include <stdarg.h>
-	void f (int i, ...) {
-	va_list args1, args2;
-	va_start (args1, i);
-	va_copy (args2, args1);
-	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-	  exit (1);
-	va_end (args1); va_end (args2);
-	}
-	int main() {
-	  f (0, 42);
-	  return 0;
-	}],
-	glib_cv_va_copy=yes
-	,
-	glib_cv_va_copy=no
-	,)
-])
-AC_MSG_RESULT($glib_cv_va_copy)
-AC_MSG_CHECKING(for an implementation of __va_copy())
-AC_CACHE_VAL(glib_cv___va_copy,[
-	AC_TRY_RUN([
-	#include <stdarg.h>
-	void f (int i, ...) {
-	va_list args1, args2;
-	va_start (args1, i);
-	__va_copy (args2, args1);
-	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-	  exit (1);
-	va_end (args1); va_end (args2);
-	}
-	int main() {
-	  f (0, 42);
-	  return 0;
-	}],
-	glib_cv___va_copy=yes
-	,
-	glib_cv___va_copy=no
-	,)
-])
-AC_MSG_RESULT($glib_cv___va_copy)
-AC_MSG_CHECKING(whether va_lists can be copied by value)
-AC_CACHE_VAL(glib_cv_va_val_copy,[
-	AC_TRY_RUN([
-	#include <stdarg.h>
-	void f (int i, ...) {
-	va_list args1, args2;
-	va_start (args1, i);
-	args2 = args1;
-	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-	  exit (1);
-	va_end (args1); va_end (args2);
-	}
-	int main() {
-	  f (0, 42);
-	  return 0;
-	}],
-	glib_cv_va_val_copy=yes
-	,
-	glib_cv_va_val_copy=no
-	,)
-])
-if test "x$glib_cv_va_copy" = "xyes"; then
-  AC_DEFINE(G_VA_COPY, va_copy)
-else if test "x$glib_cv___va_copy" = "xyes"; then
-  AC_DEFINE(G_VA_COPY, __va_copy)
-fi
-fi
-if test "x$glib_cv_va_val_copy" = "xno"; then
-  AC_DEFINE(G_VA_COPY_AS_ARRAY)
-fi
-AC_MSG_RESULT($glib_cv_va_val_copy)
-
-
-dnl ***********************
-dnl *** g_module checks ***
-dnl ***********************
-G_MODULE_LIBS=
-G_MODULE_LDFLAGS=
-dnl G_MODULE_IMPL= don't reset, so cmd-line can override
-G_MODULE_NEED_USCORE=0
-G_MODULE_HAVE_DLERROR=0
-dnl *** dlopen() and dlsym() in system libraries
-if test -z "$G_MODULE_IMPL"; then
-	AC_CHECK_FUNC(dlopen,
-		AC_CHECK_FUNC(dlsym,
-			G_MODULE_IMPL=G_MODULE_IMPL_DL
-		,)
-	,)
-fi
-dnl *** dlopen() and dlsym() in libdl
-if test -z "$G_MODULE_IMPL"; then
-	AC_CHECK_LIB(dl, dlopen,
-		AC_CHECK_LIB(dl, dlsym,
-			G_MODULE_LIBS=-ldl
-			G_MODULE_IMPL=G_MODULE_IMPL_DL
-		,)
-	,)
-fi
-dnl *** shl_load() in libdld (HP-UX)
-if test -z "$G_MODULE_IMPL"; then
-        AC_MSG_CHECKING(how to export all symbols)
-        SAVED_LDFLAGS=$LDFLAGS
-        LDFLAGS="$LDFLAGS -Wl,-E"
-        AC_TRY_LINK(,[ return 0; ],
-                [ G_MODULE_LDFLAGS="-Wl,-E" ],[
-                LDFLAGS="$SAVED_LDFLAGS -bexpall"
-                AC_TRY_LINK(,[ return 0; ],
-                        G_MODULE_LDFLAGS="-bexpall",
-                        G_MODULE_LDFLAGS="none"
-                )
-        ])
-        LDFLAGS=$SAVED_LDFLAGS
-        AC_MSG_RESULT($G_MODULE_LDFLAGS)
-        if test "x$G_MODULE_LDFLAGS" = "xnone"; then
-                G_MODULE_LDFLAGS=
-        fi
-	AC_CHECK_LIB(dld, shl_load,
-		G_MODULE_LIBS=-ldld
-		G_MODULE_IMPL=G_MODULE_IMPL_DLD
-	,)
-fi
-dnl *** additional checks for G_MODULE_IMPL_DL
-if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then
-	case "$host_os" in
-	  linux*)
-	    G_MODULE_LDFLAGS='-rdynamic'
-	    ;;
-	esac
-	LIBS_orig="$LIBS"
-	LDFLAGS_orig="$LDFLAGS"
-	LIBS="$LIBS $G_MODULE_LIBS"
-	LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
-dnl *** check whether we need preceeding underscores
-	AC_MSG_CHECKING(for preceeding underscore in symbols)
-	AC_CACHE_VAL(glib_cv_uscore,[
-		AC_TRY_RUN([
-		#include <dlfcn.h>
-                int glib_underscore_test (void) { return 42; }
-		int main() {
-		  void *f1 = (void*)0, *f2 = (void*)0, *handle;
-		  handle = dlopen ((void*)0, 0);
-		  if (handle) {
-		    f1 = dlsym (handle, "glib_underscore_test");
-		    f2 = dlsym (handle, "_glib_underscore_test");
-		  } return (!f2 || f1);
-		}],
-			glib_cv_uscore=yes,
-			glib_cv_uscore=no,
-		)
-		rm -f plugin.c plugin.o plugin.lo
-	])
-	AC_MSG_RESULT($glib_cv_uscore)
-	if test "x$glib_cv_uscore" = "xyes"; then
-  		G_MODULE_NEED_USCORE=1
-	else
-  		G_MODULE_NEED_USCORE=0
-	fi
-
-	LDFLAGS="$LDFLAGS_orig"
-dnl *** check for having dlerror()
-	AC_CHECK_FUNC(dlerror,
-		G_MODULE_HAVE_DLERROR=1,
-		G_MODULE_HAVE_DLERROR=0)
-	LIBS="$LIBS_orig"
-fi
-dnl *** done, have e got an implementation?
-if test -z "$G_MODULE_IMPL"; then
-	G_MODULE_IMPL=0
-fi
-AC_SUBST(G_MODULE_IMPL)
-AC_SUBST(G_MODULE_LIBS)
-AC_SUBST(G_MODULE_LDFLAGS)
-AC_SUBST(G_MODULE_HAVE_DLERROR)
-AC_SUBST(G_MODULE_NEED_USCORE)
-AC_SUBST(GLIB_DEBUG_FLAGS)
-
-
-dnl ***********************
-dnl *** g_thread checks ***
-dnl ***********************
-
-AC_ARG_WITH(threads, [  --with-threads=[none/posix/solaris/nspr] specify a thread implementation to use],
-	if test "x$with_threads" = x; then
-		want_threads=yes
-	else
-		want_threads=$with_threads
-	fi,
-	want_threads=yes)
-if test "x$enable_threads" = "xno"; then
-        want_threads=no
-fi
-if test "x$want_threads" = "xnone"; then
-	want_threads=no
-fi
-
-dnl error and warning message
-dnl *************************
-
-THREAD_NO_IMPLEMENTATION="You do not have any known thread system on your
-                computer. glib will not be thread safe on your computer."
-
-FLAG_DOES_NOT_WORK="I can't find the MACRO, that enables thread safety on your
-                platform (normaly it's "_REENTRANT"). I'll not use any flag on
-                compilation now, but then your programs might not work.
-                Please provide information on how it is done on your system."
-
-LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation
-		"
-
-LIBS_NOT_FOUND_2=". Please choose another thread implementation or
-		provide information on your thread implementation.
-		You can also run 'configure --disable-threads' 
-		to compile without thread support."
-
-FUNC_NO_GETPWUID_R="the 'g_get_(user_name|real_name|home_dir|tmp_dir)'
-		functions will not be MT-safe during their first call because
-		there is no working 'getpwuid_r' on your system."
-
-FUNC_NO_LOCALTIME_R="the 'g_date_set_time' function will not be MT-safe
-		because there is no 'localtime_r' on your system."
-
-dnl determination of thread implementation
-dnl ***************************************
-
-have_threads=none
-if test "x$want_threads" = xyes || test "x$want_threads" = xsolaris; then
-       	case $host in
-               	*-*-solaris*)
-              	AC_CHECK_LIB(thread, cond_init, have_threads=solaris)
-		;;
-	esac
-fi
-if test "x$want_threads" = xyes || test "x$want_threads" = xposix; then
-        if test "x$have_threads" = xnone; then
-                AC_CHECK_HEADER(pthread.h, have_threads=posix)
-        fi
-fi
-if test "x$want_threads" = xyes || test "x$want_threads" = xnspr; then
-        if test "x$have_threads" = xnone; then
-		AC_CHECK_LIB(nspr21, PRP_NewNakedCondVar, have_threads=nspr)
-	fi
-fi
-
-AC_MSG_CHECKING(for thread implementation)
-
-if test "x$have_threads" = xnone && test "x$want_threads" != xno; then
-	AC_MSG_RESULT(none available)
-        AC_MSG_WARN($THREAD_NO_IMPLEMENTATION)
-else
-	AC_MSG_RESULT($have_threads)
-fi
-
-
-dnl determination of G_THREAD_LIBS
-dnl ******************************
-
-G_THREAD_LIBS=
-G_THREAD_CFLAGS=
-
-mutex_has_default=no
-case $have_threads in
-        posix)
-		G_THREAD_LIBS=error
-		AC_CHECK_LIB(pthread, pthread_attr_init,
-			     G_THREAD_LIBS="-lpthread")
-		if test "x$G_THREAD_LIBS" = xerror; then
-                	AC_CHECK_LIB(pthreads, pthread_attr_init,
-			     	G_THREAD_LIBS="-lpthreads")
-		fi
-		if test "x$G_THREAD_LIBS" = xerror; then
-                	AC_CHECK_LIB(thread, pthread_attr_init,
-			     	G_THREAD_LIBS="-lthread")
-		fi
-		if test "x$G_THREAD_LIBS" = xerror; then
-                	AC_CHECK_LIB(c_r, pthread_attr_init,
-			     	G_THREAD_LIBS="-lc_r")
-		fi
-		if test "x$G_THREAD_LIBS" = xerror; then
-			AC_CHECK_FUNC(pthread_attr_init, G_THREAD_LIBS="")
-		fi
-		dnl ********** DG/UX ************
-        	if test "x$G_THREAD_LIBS" = xerror; then
-                	AC_CHECK_LIB(thread, __d10_pthread_attr_init,
-				G_THREAD_LIBS="-lthread"
-				G_THREAD_CFLAGS="-D_POSIX4A_DRAFT10_SOURCE")
-        	fi
-		dnl ********* HPUX 11 ***********
-        	if test "x$G_THREAD_LIBS" = xerror; then
-                	AC_CHECK_LIB(pthread, __pthread_attr_init_system,
-				G_THREAD_LIBS="-lpthread")
-        	fi
-                mutex_has_default=yes
-                mutex_default_type='pthread_mutex_t'
-                mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
-                mutex_header_file='pthread.h'
-		g_threads_impl="POSIX"
-                ;;
-        solaris)
-		G_THREAD_LIBS=error
-                AC_CHECK_LIB(thread, cond_init, G_THREAD_LIBS="-lthread")
-                mutex_has_default=yes
-                mutex_default_type='mutex_t'
-		mutex_default_init="DEFAULTMUTEX"
-                mutex_header_file='thread.h'
-		g_threads_impl="SOLARIS"
-                ;;
-	nspr)
-		AC_CHECK_LIB(nspr21, PRP_NewNakedCondVar,
-			     G_THREAD_LIBS="-lnspr21")
-		g_threads_impl="NSPR"
-		;;
-        none)
-		g_threads_impl="NONE"
-                ;;
-        *)
-		g_threads_impl="NONE"
-		G_THREAD_LIBS=error
-                ;;
-esac
-
-if test "x$G_THREAD_LIBS" = xerror; then
-        AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
-fi
-
-AC_MSG_CHECKING(necessary linker options)
-AC_MSG_RESULT($G_THREAD_LIBS)
-
-dnl determination of G_THREAD_CFLAGS
-dnl ********************************
-
-if test x"$have_threads" != xnone; then
-G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_REENTRANT" # good default guess
-
-    case $host in
-	*-aix*)
-		G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
-		if test x"$GCC" = xyes; then
-            	        G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
-		fi
-		;;
-	*-freebsd2.2*)
-		G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
-
-		# FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
-		# -mthreads flag.
-		;;
-    esac
-
-    # if we are not finding the ctime_r function, then we probably are
-    # not using the proper multithread flag
-    # Note: Digital UNIX 4.0d #defines ctime_r to _Pctime_r for gcc.
-    old_CPPFLAGS=$CPPFLAGS
-    CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
-    AC_EGREP_HEADER([[^a-zA-Z_](_P)?ctime_r[^a-zA-Z_]], time.h, ,
-    G_THREAD_CFLAGS=
-    AC_MSG_WARN($FLAG_DOES_NOT_WORK))
-    CPPFLAGS=$old_CPPFLAGS
-
-    AC_MSG_CHECKING(necessary compiler options)
-
-    AC_MSG_RESULT($G_THREAD_CFLAGS)
-else
-    G_THREAD_CFLAGS=
-fi
-
-dnl check for mt safe function variants
-dnl ***********************************
-
-if test x"$have_threads" != xnone; then
-	glib_save_LIBS="$LIBS"
-	glib_save_CFLAGS="$CFLAGS"
-	# we are not doing the following for now, as this might require glib 
-	# to always be linked with the thread libs on some platforms. 
-	# LIBS="$LIBS $G_THREAD_LIBS"
-	CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
-	AC_CHECK_FUNCS(localtime_r rand_r)
-	if test "$ac_cv_header_pwd_h" = "yes"; then
-		AC_MSG_CHECKING([for getpwuid_r])
-	 	AC_CACHE_VAL(ac_cv_func_getpwuid_r,
-			[AC_TRY_RUN([#include <errno.h>
-				int main () { char buffer[10000], *pointer; 
-				char getpwuid_r (long, void*, void*,
-					int, void*);
-				int error;
-				errno = 0;
-				error = getpwuid_r (0, &buffer, &buffer, 
-					sizeof (buffer), &pointer);
-				return errno == ENOSYS || error == ENOSYS;}],
-				[ac_cv_func_getpwuid_r=yes],
-				[ac_cv_func_getpwuid_r=no])])
-		if test "$ac_cv_func_getpwuid_r" = yes; then
-			AC_MSG_RESULT(yes)
-			AC_DEFINE(HAVE_GETPWUID_R)
-		else
-			AC_MSG_RESULT(no)
-		fi
-		if test "$ac_cv_func_getpwuid_r" = "yes"; then
-			AC_MSG_CHECKING(whether getpwuid_r is posix like)
-			# The signature for the POSIX version is:
-			# int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **)
-			AC_TRY_COMPILE([#include <pwd.h>
-                                        #include <sys/types.h>
-                                        #include <stdlib.h>],
-				[getpwuid_r((uid_t)0, NULL, NULL, (size_t)0, NULL);],
-				[AC_DEFINE(HAVE_GETPWUID_R_POSIX)
-				AC_MSG_RESULT(yes)],
-				[AC_MSG_RESULT(no)])
-		fi
-	fi
-	if test x"$have_threads" = xposix; then
-		LIBS="$LIBS $G_THREAD_LIBS"
-		AC_MSG_CHECKING(whether pthread_getspecific is posix like)
-		# PCThreads has pthread_getspecific(pthread_key_t, void **);
-		AC_TRY_COMPILE([#include <pthread.h>],
-			[pthread_getspecific(0,NULL);],
-			[AC_MSG_RESULT(no)],
-			[AC_MSG_RESULT(yes)
-			AC_DEFINE(HAVE_PTHREAD_GETSPECIFIC_POSIX)])
-		AC_MSG_CHECKING(whether pthread_mutex_trylock is posix like)
-		# DCE Threads return 1 as success, posix 0. what a mess.
-		AC_TRY_RUN([#include <pthread.h>
-			pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-			int main () { 
-			return !pthread_mutex_trylock (&mutex); }],
-			[AC_MSG_RESULT(no)],
-			[AC_MSG_RESULT(yes)
-			AC_DEFINE(HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX)])
-		AC_MSG_CHECKING(whether pthread_cond_timedwait is posix like)
-		# DCE Threads return -1 as failure, posix ETIMEDOUT.
-		AC_TRY_RUN([#include <pthread.h>
-			int main () { 
-			pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-			pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-			struct timeval tval;
-			struct timespec tspec;
-			gettimeofday (&tval, NULL);
-			tspec.tv_sec = tval.tv_sec;
-			tspec.tv_nsec = 0;
-			return pthread_cond_timedwait (&cond,&mutex,&tspec) 
-				!= -1;}],
-			[AC_MSG_RESULT(no)],
-			[AC_MSG_RESULT(yes)
-			AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_POSIX)])
-	fi
-	LIBS="$glib_save_LIBS"
-	CFLAGS="$glib_save_CFLAGS"
-fi
-
-if test "x$enable_threads" = "xyes"; then
-	if test "$ac_cv_func_getpwuid_r" != "yes"; then
-		AC_MSG_WARN($FUNC_NO_GETPWUID_R)
-	fi
-	if test "$ac_cv_func_localtime_r" != "yes"; then
-		AC_MSG_WARN($FUNC_NO_LOCALTIME_R)
-	fi
-fi
-
-AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c")
-AC_SUBST(G_THREAD_CFLAGS)
-AC_SUBST(G_THREAD_LIBS)
-
-CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
-
-dnl **********************************************
-dnl *** GDefaultMutex setup and initialization ***
-dnl **********************************************
-dnl
-dnl if mutex_has_default = yes, we also got
-dnl mutex_default_type, mutex_default_init and mutex_header_file
-GLIB_IF_VAR_EQ(mutex_has_default, yes,
-	GLIB_SIZEOF([#include <$mutex_header_file>],
-                    $mutex_default_type,
-                    gmutex,
-                    )
-	GLIB_BYTE_CONTENTS([#include <$mutex_header_file>],
-			   $mutex_default_type,
-			   gmutex,
-			   $glib_cv_sizeof_gmutex,
-			   $mutex_default_init)
-	,
-)
-
-
-dnl ****************************************
-dnl *** GLib POLL* compatibility defines ***
-dnl ****************************************
-GLIB_SYSDEFS(
-[#include <sys/types.h>
-#include <sys/poll.h>],
-	POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32,
-	glibconfig-sysdefs.h,
-	=)
-
-
-dnl ******************************
-dnl *** output the whole stuff ***
-dnl ******************************
-
-AC_OUTPUT_COMMANDS([
-
-## Generate `glibconfig.h' in two cases
-## 1. `config.status' is run either explicitly, or via configure.
-##     Esp. not when it is run in `Makefile' to generate makefiles and
-##     config.h
-## 2. CONFIG_OTHER is set explicitly
-##
-## Case 1 is difficult.  We know that `automake' sets one of
-## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
-## only when AM_CONFIG_HEADER is set, however.
-
-if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
-  # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
-  CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h}
-fi
-case "$CONFIG_OTHER" in
-*glibconfig.h*)
-	echo creating glibconfig.h
-	outfile=glibconfig.h-tmp
-	cat > $outfile <<\_______EOF
-/* glibconfig.h
- *
- * This is a generated file.  Please modify `configure.in'
- */
-
-#ifndef GLIBCONFIG_H
-#define GLIBCONFIG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-_______EOF
-
-	if test x$glib_limits_h = xyes; then
-	  echo '#include <limits.h>' >> $outfile
-	fi
-	if test x$glib_float_h = xyes; then
-	  echo '#include <float.h>' >> $outfile
-	fi
-	if test x$glib_values_h = xyes; then
-	  echo '#include <values.h>' >> $outfile
-	fi
-	if test x$g_mutex_header_file != x; then
-	  echo '#include <'"$g_mutex_header_file"'>' >> $outfile
-	fi
-	if test x$glib_sys_poll_h = xyes; then
-	  echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
-	fi
-
-	cat >> $outfile <<_______EOF
-
-#define G_MINFLOAT	$glib_mf
-#define G_MAXFLOAT	$glib_Mf
-#define G_MINDOUBLE	$glib_md
-#define G_MAXDOUBLE	$glib_Md
-#define G_MINSHORT	$glib_ms
-#define G_MAXSHORT	$glib_Ms
-#define G_MININT	$glib_mi
-#define G_MAXINT	$glib_Mi
-#define G_MINLONG	$glib_ml
-#define G_MAXLONG	$glib_Ml
-
-_______EOF
-
-
-	### this should always be true in a modern C/C++ compiler
-	cat >>$outfile <<_______EOF
-typedef signed char gint8;
-typedef unsigned char guint8;
-_______EOF
-
-
-	if test -n "$gint16"; then
-	  cat >>$outfile <<_______EOF
-typedef signed $gint16 gint16;
-typedef unsigned $gint16 guint16;
-_______EOF
-	fi
-
-
-	if test -n "$gint32"; then
-	  cat >>$outfile <<_______EOF
-typedef signed $gint32 gint32;
-typedef unsigned $gint32 guint32;
-_______EOF
-	fi
-
-
-	if test -n "$gint64"; then
-	  cat >>$outfile <<_______EOF
-${glib_warning_guard}#define G_HAVE_GINT64 1
-
-${glib_extension}typedef signed $gint64 gint64;
-${glib_extension}typedef unsigned $gint64 guint64;
-
-#define G_GINT64_CONSTANT(val)	$gint64_constant
-_______EOF
-	fi
-
-
-	if test -z "$glib_unknown_void_p"; then
-	  cat >>$outfile <<_______EOF
-
-#define GPOINTER_TO_INT(p)	((gint)  ${glib_gpi_cast} (p))
-#define GPOINTER_TO_UINT(p)	((guint) ${glib_gpui_cast} (p))
-
-#define GINT_TO_POINTER(i)	((gpointer) ${glib_gpi_cast} (i))
-#define GUINT_TO_POINTER(u)	((gpointer) ${glib_gpui_cast} (u))
-_______EOF
-	else
-	  echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
-	fi
-
-
-
-	cat >>$outfile <<_______EOF
-$glib_atexit
-$glib_memmove
-$glib_defines
-
-$glib_vacopy
-
-#ifdef	__cplusplus
-#define	G_HAVE_INLINE	1
-#else	/* !__cplusplus */
-$glib_inline
-#endif	/* !__cplusplus */
-_______EOF
-
-	echo >>$outfile
-	if test x$g_mutex_has_default = xyes; then
-		cat >>$outfile <<_______EOF
-$g_enable_threads_def G_THREADS_ENABLED
-#define G_THREADS_IMPL_$g_threads_impl_def
-typedef struct _GStaticMutex GStaticMutex;
-struct _GStaticMutex
-{
-  struct _GMutex *runtime_mutex;
-  union {
-    char   pad[$g_mutex_sizeof];
-    double dummy_double;
-    void  *dummy_pointer;
-    long   dummy_long;
-  } aligned_pad_u;
-};
-#define	G_STATIC_MUTEX_INIT	{ NULL, { { $g_mutex_contents} } }
-#define	g_static_mutex_get_mutex(mutex) \
-  (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
-   g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
-_______EOF
-	else
-		cat >>$outfile <<_______EOF
-$g_enable_threads_def G_THREADS_ENABLED
-#define G_THREADS_IMPL_$g_threads_impl_def
-typedef struct _GMutex* GStaticMutex;
-#define G_STATIC_MUTEX_INIT NULL
-#define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
-_______EOF
-	fi
-
-	echo >>$outfile
-	g_bit_sizes="16 32"
-	if test -n "$gint64"; then
-	  g_bit_sizes="$g_bit_sizes 64"
-	fi
-	for bits in $g_bit_sizes; do
-	  cat >>$outfile <<_______EOF
-#define GINT${bits}_TO_${g_bs_native}(val)	((gint${bits}) (val))
-#define GUINT${bits}_TO_${g_bs_native}(val)	((guint${bits}) (val))
-#define GINT${bits}_TO_${g_bs_alien}(val)	((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
-#define GUINT${bits}_TO_${g_bs_alien}(val)	(GUINT${bits}_SWAP_LE_BE (val))
-_______EOF
-	done
-
-	cat >>$outfile <<_______EOF
-#define GLONG_TO_LE(val)	((glong) GINT${glongbits}_TO_LE (val))
-#define GULONG_TO_LE(val)	((gulong) GUINT${glongbits}_TO_LE (val))
-#define GLONG_TO_BE(val)	((glong) GINT${glongbits}_TO_BE (val))
-#define GULONG_TO_BE(val)	((gulong) GUINT${glongbits}_TO_BE (val))
-#define GINT_TO_LE(val)		((gint) GINT${gintbits}_TO_LE (val))
-#define GUINT_TO_LE(val)	((guint) GUINT${gintbits}_TO_LE (val))
-#define GINT_TO_BE(val)		((gint) GINT${gintbits}_TO_BE (val))
-#define GUINT_TO_BE(val)	((guint) GUINT${gintbits}_TO_BE (val))
-#define G_BYTE_ORDER $g_byte_order
-
-_______EOF
-
-	if test -r glibconfig-sysdefs.h; then
-	  cat glibconfig-sysdefs.h >>$outfile
-	fi
-
-
-	cat >>$outfile <<_______EOF
-
-$glib_wc
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GLIBCONFIG_H */
-_______EOF
-
-
-	if cmp -s $outfile glibconfig.h; then
-	  echo glibconfig.h is unchanged
-	  rm -f $outfile
-	else
-	  mv $outfile glibconfig.h
-	fi ;;
-esac
-],[
-
-# Note that if two cases are the same, case goes with the first one.
-# Note also that this is inside an AC_OUTPUT_COMMAND.  We do not depend
-# on variable expansion in case labels.  Look at the generated config.status
-# for a hint.
-
-case xyes in
-x$ac_cv_header_float_h)
-  glib_float_h=yes
-  glib_mf=FLT_MIN glib_Mf=FLT_MAX
-  glib_md=DBL_MIN glib_Md=DBL_MAX
-  ;;
-x$ac_cv_header_values_h)
-  glib_values_h=yes
-  glib_mf=MINFLOAT  glib_Mf=MAXFLOAT
-  glib_md=MINDOUBLE glib_Md=MAXDOUBLE
-  ;;
-esac
-
-case xyes in
-x$ac_cv_header_limits_h)
-  glib_limits_h=yes
-  glib_ms=SHRT_MIN glib_Ms=SHRT_MAX
-  glib_mi=INT_MIN  glib_Mi=INT_MAX
-  glib_ml=LONG_MIN glib_Ml=LONG_MAX
-  ;;
-x$ac_cv_header_values_h)
-  glib_values_h=yes
-  glib_ms=MINSHORT glib_Ms=MAXSHORT
-  glib_mi=MININT   glib_Mi=MAXINT
-  glib_ml=MINLONG  glib_Ml=MAXLONG
-  ;;
-esac
-
-if test x$ac_cv_header_sys_poll_h = xyes ; then
-  glib_sys_poll_h=yes
-fi
-
-case 2 in
-$ac_cv_sizeof_short)		gint16=short;;
-$ac_cv_sizeof_int)		gint16=int;;
-esac
-case 4 in
-$ac_cv_sizeof_short)		gint32=short;;
-$ac_cv_sizeof_int)		gint32=int;;
-$ac_cv_sizeof_long)		gint32=long;;
-esac
-case 8 in
-$ac_cv_sizeof_int)
-  gint64=int
-  glib_extension=
-  glib_warning_guard=
-  gint64_constant='(val)'
-  ;;
-$ac_cv_sizeof_long)
-  gint64=long
-  glib_extension=
-  glib_warning_guard=
-  gint64_constant='(val##L)'
-  ;;
-$ac_cv_sizeof_long_long)
-  gint64='long long'
-  glib_extension='G_GNUC_EXTENSION '
-  glib_warning_guard="
-#if defined (__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
-#  define G_GNUC_EXTENSION __extension__
-#else
-#  define G_GNUC_EXTENSION
-#endif
-
-"
-  gint64_constant='(G_GNUC_EXTENSION (val##LL))'
-  ;;
-esac
-
-gintbits=`expr $ac_cv_sizeof_int \* 8`
-glongbits=`expr $ac_cv_sizeof_long \* 8`
-
-
-case $ac_cv_sizeof_void_p in
-$ac_cv_sizeof_int)  	glib_gpi_cast=''        glib_gpui_cast=''         ;;
-$ac_cv_sizeof_long) 	glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
-*) 			glib_unknown_void_p=yes ;;
-esac
-
-
-case xyes in
-x$ac_cv_func_atexit)
-  glib_atexit="
-#ifdef NeXT /* @#%@! NeXTStep */
-# define g_ATEXIT(proc)	(!atexit (proc))
-#else
-# define g_ATEXIT(proc)	(atexit (proc))
-#endif"
-  ;;
-x$ac_cv_func_on_exit)
-  glib_atexit="
-#define g_ATEXIT(proc)	(on_exit ((void (*)(int, void*))(proc), NULL))"
-  ;;
-esac
-
-case xyes in
-x$ac_cv_func_memmove)
-  glib_memmove='
-#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END'
-  ;;
-*)
-  glib_memmove="
-/* We make the assumption that if memmove isn't available, then
- * bcopy will do the job. This isn't safe everywhere. (bcopy can't
- * necessarily handle overlapping copies) */
-#define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
-  ;;
-esac
-
-glib_defines="
-#define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
-#define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
-#define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
-"
-
-case xyes in
-x$glib_cv_va_copy)	glib_vacopy='#define G_VA_COPY	va_copy' ;;
-x$glib_cv___va_copy)	glib_vacopy='#define G_VA_COPY	__va_copy' ;;
-*)			glib_vacopy=''
-esac
-
-if test x$glib_cv_va_val_copy = xno; then
-  glib_vacopy="\$glib_vacopy
-#define G_VA_COPY_AS_ARRAY 1"
-fi
-
-if test x$glib_cv_hasinline = xyes; then
-    glib_inline='#define G_HAVE_INLINE 1'
-fi
-if test x$glib_cv_has__inline = xyes; then
-    glib_inline="\$glib_inline
-#define G_HAVE___INLINE 1"
-fi
-if test x$glib_cv_has__inline__ = xyes; then
-    glib_inline="\$glib_inline
-#define G_HAVE___INLINE__ 1"
-fi
-
-case xyes in
-x$ac_cv_c_bigendian)
-  g_byte_order=G_BIG_ENDIAN
-  g_bs_native=BE
-  g_bs_alien=LE
-  ;;
-*)
-  g_byte_order=G_LITTLE_ENDIAN
-  g_bs_native=LE
-  g_bs_alien=BE
-  ;;
-esac
-
-if test x$glib_wchar_h = xyes; then
-  glib_wc='
-#define G_HAVE_WCHAR_H 1'
-fi
-if test x$glib_wctype_h = xyes; then
-  glib_wc="\$glib_wc
-#define G_HAVE_WCTYPE_H 1"
-fi
-if test x$glib_working_wctype = xno; then
-  glib_wc="\$glib_wc
-#define G_HAVE_BROKEN_WCTYPE 1"
-fi
-
-case x$enable_threads in
-xyes)	g_enable_threads_def="#define";;
-*)	g_enable_threads_def="#undef ";;
-esac
-
-g_threads_impl_def=$g_threads_impl
-
-g_mutex_has_default="$mutex_has_default"
-g_mutex_sizeof="$glib_cv_sizeof_gmutex"
-g_mutex_contents="$glib_cv_byte_contents_gmutex"
-])
-
-AC_OUTPUT([
-glib.spec
-Makefile
-glib-config
-gmodule/gmoduleconf.h
-gmodule/Makefile
-gthread/Makefile
-docs/Makefile
-docs/glib-config.1
-tests/Makefile
-],[case "$CONFIG_FILES" in
-*glib-config*)chmod +x glib-config;;
-esac])
diff --git a/glib/docs/Makefile.am b/glib/docs/Makefile.am
deleted file mode 100644
index da6a13d..0000000
--- a/glib/docs/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-info_TEXINFOS = glib.texi
-
-man_MANS = glib-config.1
-
-EXTRA_DIST = glib-config.1.in	\
-	     glib.html 		\
-	     glib_toc.html
-
-glib.html glib_toc.html:
-	(cd $(srcdir); texi2html glib.texi)
-
-files:
-	@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
-	  echo $$p; \
-	done
diff --git a/glib/docs/Makefile.in b/glib/docs/Makefile.in
deleted file mode 100644
index 4dc5bc8..0000000
--- a/glib/docs/Makefile.in
+++ /dev/null
@@ -1,381 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@
-ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@
-GLIB_BINARY_AGE = @GLIB_BINARY_AGE@
-GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@
-GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@
-GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@
-GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@
-GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@
-GLIB_VERSION = @GLIB_VERSION@
-G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@
-G_MODULE_IMPL = @G_MODULE_IMPL@
-G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@
-G_MODULE_LIBS = @G_MODULE_LIBS@
-G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@
-G_THREAD_CFLAGS = @G_THREAD_CFLAGS@
-G_THREAD_LIBS = @G_THREAD_LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_RELEASE = @LT_RELEASE@
-LT_REVISION = @LT_REVISION@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-
-info_TEXINFOS = glib.texi
-
-man_MANS = glib-config.1
-
-EXTRA_DIST = glib-config.1.in		     glib.html 			     glib_toc.html
-
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES =  glib-config.1
-TEXI2DVI = texi2dvi
-INFO_DEPS = glib.info
-DVIS = glib.dvi
-TEXINFOS = glib.texi
-man1dir = $(mandir)/man1
-MANS = $(man_MANS)
-
-NROFF = nroff
-DIST_COMMON =  Makefile.am Makefile.in glib-config.1.in texinfo.tex
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps docs/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-glib-config.1: $(top_builddir)/config.status glib-config.1.in
-	cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-glib.info: glib.texi
-glib.dvi: glib.texi
-
-
-DVIPS = dvips
-
-.texi.info:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texi.dvi:
-	TEXINPUTS=.:$$TEXINPUTS \
-	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.texi:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.info:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.dvi:
-	TEXINPUTS=.:$$TEXINPUTS \
-	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.txi.dvi:
-	TEXINPUTS=.:$$TEXINPUTS \
-	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-.dvi.ps:
-	$(DVIPS) $< -o $@
-
-install-info-am: $(INFO_DEPS)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(infodir)
-	@list='$(INFO_DEPS)'; \
-	for file in $$list; do \
-	  d=$(srcdir); \
-	  for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
-	    if test -f $$d/$$ifile; then \
-	      echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
-	      $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
-	    else : ; fi; \
-	  done; \
-	done
-	@$(POST_INSTALL)
-	@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
-	  list='$(INFO_DEPS)'; \
-	  for file in $$list; do \
-	    echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
-	    install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
-	  done; \
-	else : ; fi
-
-uninstall-info:
-	$(PRE_UNINSTALL)
-	@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
-	  ii=yes; \
-	else ii=; fi; \
-	list='$(INFO_DEPS)'; \
-	for file in $$list; do \
-	  test -z "$ii" \
-	    || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
-	done
-	@$(NORMAL_UNINSTALL)
-	list='$(INFO_DEPS)'; \
-	for file in $$list; do \
-	  (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
-	done
-
-dist-info: $(INFO_DEPS)
-	list='$(INFO_DEPS)'; \
-	for base in $$list; do \
-	  d=$(srcdir); \
-	  for file in `cd $$d && eval echo $$base*`; do \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file; \
-	  done; \
-	done
-
-mostlyclean-aminfo:
-	-rm -f glib.aux glib.cp glib.cps glib.dvi glib.fn glib.fns glib.ky \
-	  glib.kys glib.ps glib.log glib.pg glib.toc glib.tp glib.tps \
-	  glib.vr glib.vrs glib.op glib.tr glib.cv glib.cn
-
-clean-aminfo:
-
-distclean-aminfo:
-
-maintainer-clean-aminfo:
-	cd $(srcdir) && for i in $(INFO_DEPS); do \
-	  rm -f $$i; \
-	  if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
-	    rm -f $$i-[0-9]*; \
-	  fi; \
-	done
-
-install-man1:
-	$(mkinstalldirs) $(DESTDIR)$(man1dir)
-	@list='$(man1_MANS)'; \
-	l2='$(man_MANS)'; for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
-	  $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
-	done
-
-uninstall-man1:
-	@list='$(man1_MANS)'; \
-	l2='$(man_MANS)'; for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
-	  rm -f $(DESTDIR)$(man1dir)/$$inst; \
-	done
-install-man: $(MANS)
-	@$(NORMAL_INSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) install-man1
-uninstall-man:
-	@$(NORMAL_UNINSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) uninstall-man1
-tags: TAGS
-TAGS:
-
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = docs
-
-distdir: $(DISTFILES)
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
-	  fi; \
-	done
-	$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
-info-am: $(INFO_DEPS)
-info: info-am
-dvi-am: $(DVIS)
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am: install-info-am install-man
-install-data: install-data-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-info uninstall-man
-uninstall: uninstall-am
-all-am: Makefile $(INFO_DEPS) $(MANS)
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-aminfo mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-aminfo clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-aminfo distclean-generic clean-am
-	-rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am:  maintainer-clean-aminfo maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
-distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \
-uninstall-man1 install-man uninstall-man tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-glib.html glib_toc.html:
-	(cd $(srcdir); texi2html glib.texi)
-
-files:
-	@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
-	  echo $$p; \
-	done
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/glib/docs/glib-config.1.in b/glib/docs/glib-config.1.in
deleted file mode 100644
index 2abf9fa..0000000
--- a/glib/docs/glib-config.1.in
+++ /dev/null
@@ -1,53 +0,0 @@
-.TH GLIB 1 "16 December 1998" Version @VERSION@
-.SH NAME
-glib-config - script to get information about the installed version of GLib
-.SH SYNOPSIS
-.B  glib-config [\-\-prefix\fI[=DIR]\fP] [\-\-exec\-prefix\fI[=DIR]\fP] [\-\-version] [\-\-libs] [\-\-cflags] [LIBRARIES]
-.SH DESCRIPTION
-.PP
-\fIglib-config\fP is a tool that is used to configure to determine
-the compiler and linker flags that should be used to compile
-and link programs that use \fIGLib\fP. It is also used internally
-to the .m4 macros for GNU autoconf that are included with \fIGLib\fP.
-.
-.SH OPTIONS
-.l
-\fIglib-config\fP accepts the following options:
-.TP 8
-.B  LIBRARIES
-\fIGLib\fP has three libraries 'glib', 'gmodule' and 'gthread'.  If you specify one of
-them, only the appropriate things for that library will be printed.
-.TP 8
-.B  \-\-version
-Print the currently installed version of \fIGLib\fP on the standard output.
-.TP 8
-.B  \-\-libs
-Print the linker flags that are necessary to link a \fIGLib\fP program.
-.TP 8
-.B  \-\-cflags
-Print the compiler flags that are necessary to compile a \fIGLib\fP program.
-.TP 8
-.B  \-\-prefix=PREFIX
-If specified, use PREFIX instead of the installation prefix that \fIGLib\fP
-was built with when computing the output for the \-\-cflags and
-\-\-libs options. This option is also used for the exec prefix
-if \-\-exec\-prefix was not specified. This option must be specified
-before any \-\-libs or \-\-cflags options.
-.TP 8
-.B  \-\-exec\-prefix=PREFIX
-If specified, use PREFIX instead of the installation exec prefix that
-\fIGLib\fP was built with when computing the output for the \-\-cflags
-and \-\-libs options.  This option must be specified before any
-\-\-libs or \-\-cflags options.
-.SH SEE ALSO
-.BR gtk-config (1),
-.BR gimp (1),
-.BR gimptool (1)
-.SH COPYRIGHT
-Copyright \(co  1998 Owen Taylor
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation.
diff --git a/glib/docs/glib.html b/glib/docs/glib.html
deleted file mode 100644
index 2aa68f2..0000000
--- a/glib/docs/glib.html
+++ /dev/null
@@ -1,812 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.54
-     from glib.texi on 23 August 1999 -->
-
-<TITLE>GLIB</TITLE>
-
-</HEAD>
-<BODY>
-<H1>GLIB, Useful routines for C programming </H1>
-<H2>Version 1.0</H2>
-<H2>Feburary 1998</H2>
-<ADDRESS>by Gregory McLean</ADDRESS>
-<P>
-<P><HR><P>
-
-
-<H1><A NAME="SEC1" HREF="glib_toc.html#TOC1">Copying</A></H1>
-
-
-
-<H1><A NAME="SEC2" HREF="glib_toc.html#TOC2">What is GLIB</A></H1>
-
-
-
-<H1><A NAME="SEC3" HREF="glib_toc.html#TOC3">Doubly linked lists</A></H1>
-
-
-
-<H3><A NAME="SEC4" HREF="glib_toc.html#TOC4">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_alloc</B> <I>(void)</I>
-<DD><A NAME="IDX1"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_list_free</B> <I>(GList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX2"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_list_free_1</B> <I>(GList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX3"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_append</B> <I>(GList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX4"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_prepend</B> <I>(GList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX5"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_insert</B> <I>(GList *<VAR>list</VAR>, gpointer <VAR>data</VAR>, gint <VAR>position</VAR>)</I>
-<DD><A NAME="IDX6"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_insert_sorted</B> <I>(GList *<VAR>list</VAR>, gpointer <VAR>data</VAR>, GCompareFunc <VAR>func</VAR>)</I>
-<DD><A NAME="IDX7"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_concat</B> <I>(GList *<VAR>list1</VAR>, GList *<VAR>list2</VAR>)</I>
-<DD><A NAME="IDX8"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_remove</B> <I>(GList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX9"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_remove_link</B> <I>(GList *<VAR>list</VAR>, GList *<VAR>link</VAR>)</I>
-<DD><A NAME="IDX10"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_reverse</B> <I>(GList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX11"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_nth</B> <I>(GList *<VAR>list</VAR>, gint <VAR>n</VAR>)</I>
-<DD><A NAME="IDX12"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_find</B> <I>(GList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX13"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_last</B> <I>(GList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX14"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GList* <B>g_list_first</B> <I>(GList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX15"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gint <B>g_list_length</B> <I>(GList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX16"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_list_foreach</B> <I>(GList *<VAR>list</VAR>, GFunc <VAR>func</VAR>, gpointer <VAR>user_data</VAR>)</I>
-<DD><A NAME="IDX17"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC5" HREF="glib_toc.html#TOC5">Signly linked lists</A></H1>
-
-
-
-<H3><A NAME="SEC6" HREF="glib_toc.html#TOC6">Functions</A></H3>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_alloc</B> <I>(void)</I>
-<DD><A NAME="IDX18"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_slist_free</B> <I>(GSList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX19"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_slist_free_1</B> <I>(GSList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX20"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_append</B> <I>(GSList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX21"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_prepend</B> <I>(GSList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX22"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_insert</B> <I>(GSList *<VAR>list</VAR>, gpointer <VAR>data</VAR>, gint <VAR>position</VAR>)</I>
-<DD><A NAME="IDX23"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_insert_sorted</B> <I>(GSList *<VAR>list</VAR>, gpointer <VAR>data</VAR>, GCompareFunc <VAR>func</VAR>)</I>
-<DD><A NAME="IDX24"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_concat</B> <I>(GSList *<VAR>list1</VAR>, GSList *<VAR>list2</VAR>)</I>
-<DD><A NAME="IDX25"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_remove</B> <I>(GSList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX26"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_remove_link</B> <I>(GSList *<VAR>list</VAR>, GSList *<VAR>link</VAR>)</I>
-<DD><A NAME="IDX27"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_reverse</B> <I>(GSList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX28"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_nth</B> <I>(GSList *<VAR>list</VAR>, gint <VAR>n</VAR>)</I>
-<DD><A NAME="IDX29"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_find</B> <I>(GSList *<VAR>list</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX30"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GSList* <B>g_slist_last</B> <I>(GSList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX31"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gint <B>g_slist_length</B> <I>(GSList *<VAR>list</VAR>)</I>
-<DD><A NAME="IDX32"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_slist_foreach</B> <I>(GSList *<VAR>list</VAR>, GFunc <VAR>func</VAR>, gpointer <VAR>user_data</VAR>)</I>
-<DD><A NAME="IDX33"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC7" HREF="glib_toc.html#TOC7">List allocators</A></H1>
-
-
-
-<H3><A NAME="SEC8" HREF="glib_toc.html#TOC8">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> GListAllocator* <B>g_list_allocator_new</B> <I>(void)</I>
-<DD><A NAME="IDX34"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_list_allocator_free</B> <I>(GListAllocator *<VAR>allocator</VAR>)</I>
-<DD><A NAME="IDX35"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GListAllocator* <B>g_slist_set_allocator</B> <I>(GListAllocator *<VAR>allocator</VAR>)</I>
-<DD><A NAME="IDX36"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GListAllocator* <B>g_list_set_allocator</B> <I>(GListAllocator *<VAR>allocator</VAR>)</I>
-<DD><A NAME="IDX37"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC9" HREF="glib_toc.html#TOC9">Hash tables</A></H1>
-
-
-
-<H3><A NAME="SEC10" HREF="glib_toc.html#TOC10">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> GHashTable* <B>g_hash_table_new</B> <I>(GHashFunc <VAR>hash_func</VAR>, GCompareFunc <VAR>key_compare_func</VAR>)</I>
-<DD><A NAME="IDX38"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_hash_table_destroy</B> <I>(GHashTable *<VAR>hash_table</VAR>)</I>
-<DD><A NAME="IDX39"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_hash_table_insert</B> <I>(GHashTable *<VAR>hash_table</VAR>, gpointer <VAR>key</VAR>, gpointer <VAR>value</VAR>)</I>
-<DD><A NAME="IDX40"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_hash_table_remove</B> <I>(GHashTable *<VAR>hash_table</VAR>, gpointer <VAR>key</VAR>)</I>
-<DD><A NAME="IDX41"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_hash_table_lookup</B> <I>(GHashTable *<VAR>hash_table</VAR>, gpointer <VAR>key</VAR>)</I>
-<DD><A NAME="IDX42"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_hash_table_freeze</B> <I>(GHashTable *<VAR>hash_table</VAR>)</I>
-<DD><A NAME="IDX43"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_hash_table_thaw</B> <I>(GHashTable *<VAR>hash_table</VAR>)</I>
-<DD><A NAME="IDX44"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_hash_table_foreach</B> <I>(GHashTable *<VAR>hash_table</VAR>, GHFunc <VAR>func</VAR>, gpointer <VAR>user_data</VAR>)</I>
-<DD><A NAME="IDX45"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC11" HREF="glib_toc.html#TOC11">Cache handling</A></H1>
-
-
-
-<H3><A NAME="SEC12" HREF="glib_toc.html#TOC12">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> GCache* <B>g_cache_new</B> <I>(GCacheNewFunc <VAR>value_new_func</VAR>, GCacheDestroyFunc <VAR>value_destroy_func</VAR>, GCacheDupFunc <VAR>key_dup_func</VAR>, GCacheDestroyFunc <VAR>key_destroy_func</VAR>, GHashFunc <VAR>hash_key_func</VAR>, GHashFunc <VAR>hash_value_func</VAR>, GCompareFunc <VAR>key_compare_func</VAR>)</I>
-<DD><A NAME="IDX46"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_cache_destroy</B> <I>(GCache *<VAR>cache</VAR>)</I>
-<DD><A NAME="IDX47"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_cache_insert</B> <I>(GCache *<VAR>cache</VAR>, gpointer <VAR>key</VAR>)</I>
-<DD><A NAME="IDX48"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_cache_remove</B> <I>(GCache *<VAR>cache</VAR>, gpointer <VAR>key</VAR>)</I>
-<DD><A NAME="IDX49"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_cache_key_foreach</B> <I>(GCache *<VAR>cache</VAR>, GHFunc <VAR>func</VAR>, gpointer <VAR>user_data</VAR>)</I>
-<DD><A NAME="IDX50"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_cache_value_foreach</B> <I>(GCache *<VAR>cache</VAR>, GHFunc <VAR>func</VAR>, gpointer <VAR>user_data</VAR>)</I>
-<DD><A NAME="IDX51"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC13" HREF="glib_toc.html#TOC13">Tree handling</A></H1>
-
-
-
-<H3><A NAME="SEC14" HREF="glib_toc.html#TOC14">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> GTree* <B>g_tree_new</B> <I>(GCompareFunc <VAR>key_compare_func</VAR>)</I>
-<DD><A NAME="IDX52"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_tree_destroy</B> <I>(GTree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX53"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_tree_remove</B> <I>(GTree *<VAR>tree</VAR>, gpointer <VAR>key</VAR>, gpointer <VAR>value</VAR>)</I>
-<DD><A NAME="IDX54"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_tree_lookup</B> <I>(GTree *<VAR>tree</VAR>, gpointer <VAR>key</VAR>)</I>
-<DD><A NAME="IDX55"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_tree_traverse</B> <I>(GTree *<VAR>tree</VAR>, GTraverseFunc <VAR>traverse_func</VAR>, GTraverseType <VAR>traverse_type</VAR>, gpointer <VAR>data</VAR></I>
-<DD><A NAME="IDX56"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_tree_search</B> <I>(GTree *<VAR>tree</VAR>, GSearchFunc <VAR>search_func</VAR>, gpointer <VAR>data</VAR>)</I>
-<DD><A NAME="IDX57"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gint <B>g_tree_height</B> <I>(GTree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX58"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gint <B>g_tree_nnodes</B> <I>(GTree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX59"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC15" HREF="glib_toc.html#TOC15">Memory handling</A></H1>
-
-
-
-<H3><A NAME="SEC16" HREF="glib_toc.html#TOC16">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_malloc</B> <I>(gulong <VAR>size</VAR>)</I>
-<DD><A NAME="IDX60"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_malloc0</B> <I>(gulong <VAR>size</VAR>)</I>
-<DD><A NAME="IDX61"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_realloc</B> <I>(gpointer <VAR>mem</VAR>, gulong <VAR>size</VAR>)</I>
-<DD><A NAME="IDX62"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_profile</B> <I>(void)</I>
-<DD><A NAME="IDX63"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_check</B> <I>(gpointer <VAR>mem</VAR>)</I>
-<DD><A NAME="IDX64"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> GMemChunk* <B>g_mem_chunk_new</B> <I>(gchar *<VAR>name</VAR>, gint <VAR>atom_size</VAR>, gulong <VAR>area_size</VAR>, gint <VAR>type</VAR>)</I>
-<DD><A NAME="IDX65"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_chunk_destroy</B> <I>(GMemChunk *<VAR>mem_chunk</VAR>)</I>
-<DD><A NAME="IDX66"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gpointer <B>g_mem_chunk_alloc</B> <I>(GMemChunk *<VAR>mem_chunk</VAR>)</I>
-<DD><A NAME="IDX67"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_chunk_free</B> <I>(GMemChunk *<VAR>mem_chunk</VAR>, gpointer <VAR>mem</VAR>)</I>
-<DD><A NAME="IDX68"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_chunk_clean</B> <I>(GMemChunk *<VAR>mem_chunk</VAR>)</I>
-<DD><A NAME="IDX69"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_chunk_reset</B> <I>(GMemChunk *<VAR>mem_chunk</VAR>)</I>
-<DD><A NAME="IDX70"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_chunk_print</B> <I>(GMemChunk *<VAR>mem_chunk</VAR>)</I>
-<DD><A NAME="IDX71"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_mem_chunk_info</B> <I>(void)</I>
-<DD><A NAME="IDX72"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_blow_chunks</B> <I>(void)</I>
-<DD><A NAME="IDX73"></A>
-Not what you might be thinking, <CODE>g_blow_chunks()</CODE> simply compresses all 
-the chunks. This operation consists of freeing every memory area that should
-be freed (but which we haven't gotten around to doing yet).
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC17" HREF="glib_toc.html#TOC17">Timer functions</A></H1>
-
-
-
-<H3><A NAME="SEC18" HREF="glib_toc.html#TOC18">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> GTimer* <B>g_timer_new</B> <I>(void)</I>
-<DD><A NAME="IDX74"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_timer_destroy</B> <I>(GTimer *<VAR>timer</VAR>)</I>
-<DD><A NAME="IDX75"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_timer_start</B> <I>(GTimer *<VAR>timer</VAR>)</I>
-<DD><A NAME="IDX76"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_timer_stop</B> <I>(GTimer *<VAR>timer</VAR>)</I>
-<DD><A NAME="IDX77"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_timer_reset</B> <I>(GTimer *<VAR>timer</VAR>)</I>
-<DD><A NAME="IDX78"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> gdouble <B>g_timer_elapsed</B> <I>(GTimer *<VAR>timer</VAR>, gulong *<VAR>microseconds</VAR>)</I>
-<DD><A NAME="IDX79"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC19" HREF="glib_toc.html#TOC19">Output functions</A></H1>
-
-
-
-<H3><A NAME="SEC20" HREF="glib_toc.html#TOC20">Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_error</B> <I>(gchar *<VAR>format</VAR>, ...)</I>
-<DD><A NAME="IDX80"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_warning</B> <I>(gchar *<VAR>format</VAR>, ...)</I>
-<DD><A NAME="IDX81"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_message</B> <I>(gchar *<VAR>format</VAR>, ...)</I>
-<DD><A NAME="IDX82"></A>
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>g_print</B> <I>(gchar *<VAR>format</VAR>, ...)</I>
-<DD><A NAME="IDX83"></A>
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC21" HREF="glib_toc.html#TOC21">Utility functions</A></H1>
-
-
-
-<H1><A NAME="SEC22" HREF="glib_toc.html#TOC22">Error handling</A></H1>
-
-
-
-<H1><A NAME="SEC23" HREF="glib_toc.html#TOC23">String chunks</A></H1>
-
-
-
-<H1><A NAME="SEC24" HREF="glib_toc.html#TOC24">String handling</A></H1>
-
-
-
-<H1><A NAME="SEC25" HREF="glib_toc.html#TOC25">Resizable arrays</A></H1>
-
-
-
-<H1><A NAME="SEC26" HREF="glib_toc.html#TOC26">Flexible lexical scanner</A></H1>
-
-
-
-<H1><A NAME="SEC27" HREF="glib_toc.html#TOC27">Other stuff</A></H1>
-
-
-
-<H1><A NAME="SEC28" HREF="glib_toc.html#TOC28">Function Index</A></H1>
-
-<P>
-<H2>g</H2>
-<DIR>
-<LI><A HREF="glib.html#IDX73">g_blow_chunks</A>
-<LI><A HREF="glib.html#IDX47">g_cache_destroy</A>
-<LI><A HREF="glib.html#IDX48">g_cache_insert</A>
-<LI><A HREF="glib.html#IDX50">g_cache_key_foreach</A>
-<LI><A HREF="glib.html#IDX46">g_cache_new</A>
-<LI><A HREF="glib.html#IDX49">g_cache_remove</A>
-<LI><A HREF="glib.html#IDX51">g_cache_value_foreach</A>
-<LI><A HREF="glib.html#IDX80">g_error</A>
-<LI><A HREF="glib.html#IDX39">g_hash_table_destroy</A>
-<LI><A HREF="glib.html#IDX45">g_hash_table_foreach</A>
-<LI><A HREF="glib.html#IDX43">g_hash_table_freeze</A>
-<LI><A HREF="glib.html#IDX40">g_hash_table_insert</A>
-<LI><A HREF="glib.html#IDX42">g_hash_table_lookup</A>
-<LI><A HREF="glib.html#IDX38">g_hash_table_new</A>
-<LI><A HREF="glib.html#IDX41">g_hash_table_remove</A>
-<LI><A HREF="glib.html#IDX44">g_hash_table_thaw</A>
-<LI><A HREF="glib.html#IDX1">g_list_alloc</A>
-<LI><A HREF="glib.html#IDX35">g_list_allocator_free</A>
-<LI><A HREF="glib.html#IDX34">g_list_allocator_new</A>
-<LI><A HREF="glib.html#IDX4">g_list_append</A>
-<LI><A HREF="glib.html#IDX8">g_list_concat</A>
-<LI><A HREF="glib.html#IDX13">g_list_find</A>
-<LI><A HREF="glib.html#IDX15">g_list_first</A>
-<LI><A HREF="glib.html#IDX17">g_list_foreach</A>
-<LI><A HREF="glib.html#IDX2">g_list_free</A>
-<LI><A HREF="glib.html#IDX3">g_list_free_1</A>
-<LI><A HREF="glib.html#IDX6">g_list_insert</A>
-<LI><A HREF="glib.html#IDX7">g_list_insert_sorted</A>
-<LI><A HREF="glib.html#IDX14">g_list_last</A>
-<LI><A HREF="glib.html#IDX16">g_list_length</A>
-<LI><A HREF="glib.html#IDX12">g_list_nth</A>
-<LI><A HREF="glib.html#IDX5">g_list_prepend</A>
-<LI><A HREF="glib.html#IDX9">g_list_remove</A>
-<LI><A HREF="glib.html#IDX10">g_list_remove_link</A>
-<LI><A HREF="glib.html#IDX11">g_list_reverse</A>
-<LI><A HREF="glib.html#IDX37">g_list_set_allocator</A>
-<LI><A HREF="glib.html#IDX60">g_malloc</A>
-<LI><A HREF="glib.html#IDX61">g_malloc0</A>
-<LI><A HREF="glib.html#IDX64">g_mem_check</A>
-<LI><A HREF="glib.html#IDX67">g_mem_chunk_alloc</A>
-<LI><A HREF="glib.html#IDX69">g_mem_chunk_clean</A>
-<LI><A HREF="glib.html#IDX66">g_mem_chunk_destroy</A>
-<LI><A HREF="glib.html#IDX68">g_mem_chunk_free</A>
-<LI><A HREF="glib.html#IDX72">g_mem_chunk_info</A>
-<LI><A HREF="glib.html#IDX65">g_mem_chunk_new</A>
-<LI><A HREF="glib.html#IDX71">g_mem_chunk_print</A>
-<LI><A HREF="glib.html#IDX70">g_mem_chunk_reset</A>
-<LI><A HREF="glib.html#IDX63">g_mem_profile</A>
-<LI><A HREF="glib.html#IDX82">g_message</A>
-<LI><A HREF="glib.html#IDX83">g_print</A>
-<LI><A HREF="glib.html#IDX62">g_realloc</A>
-<LI><A HREF="glib.html#IDX18">g_slist_alloc</A>
-<LI><A HREF="glib.html#IDX21">g_slist_append</A>
-<LI><A HREF="glib.html#IDX25">g_slist_concat</A>
-<LI><A HREF="glib.html#IDX30">g_slist_find</A>
-<LI><A HREF="glib.html#IDX33">g_slist_foreach</A>
-<LI><A HREF="glib.html#IDX19">g_slist_free</A>
-<LI><A HREF="glib.html#IDX20">g_slist_free_1</A>
-<LI><A HREF="glib.html#IDX23">g_slist_insert</A>
-<LI><A HREF="glib.html#IDX24">g_slist_insert_sorted</A>
-<LI><A HREF="glib.html#IDX31">g_slist_last</A>
-<LI><A HREF="glib.html#IDX32">g_slist_length</A>
-<LI><A HREF="glib.html#IDX29">g_slist_nth</A>
-<LI><A HREF="glib.html#IDX22">g_slist_prepend</A>
-<LI><A HREF="glib.html#IDX26">g_slist_remove</A>
-<LI><A HREF="glib.html#IDX27">g_slist_remove_link</A>
-<LI><A HREF="glib.html#IDX28">g_slist_reverse</A>
-<LI><A HREF="glib.html#IDX36">g_slist_set_allocator</A>
-<LI><A HREF="glib.html#IDX75">g_timer_destroy</A>
-<LI><A HREF="glib.html#IDX79">g_timer_elapsed</A>
-<LI><A HREF="glib.html#IDX74">g_timer_new</A>
-<LI><A HREF="glib.html#IDX78">g_timer_reset</A>
-<LI><A HREF="glib.html#IDX76">g_timer_start</A>
-<LI><A HREF="glib.html#IDX77">g_timer_stop</A>
-<LI><A HREF="glib.html#IDX53">g_tree_destroy</A>
-<LI><A HREF="glib.html#IDX58">g_tree_height</A>
-<LI><A HREF="glib.html#IDX55">g_tree_lookup</A>
-<LI><A HREF="glib.html#IDX52">g_tree_new</A>
-<LI><A HREF="glib.html#IDX59">g_tree_nnodes</A>
-<LI><A HREF="glib.html#IDX54">g_tree_remove</A>
-<LI><A HREF="glib.html#IDX57">g_tree_search</A>
-<LI><A HREF="glib.html#IDX56">g_tree_traverse</A>
-<LI><A HREF="glib.html#IDX81">g_warning</A>
-</DIR>
-
-</P>
-
-
-<H1><A NAME="SEC29" HREF="glib_toc.html#TOC29">Concept Index</A></H1>
-
-<P>
-
-</P>
-<P><HR><P>
-This document was generated on 23 August 1999 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
-translator version 1.54.</P>
-</BODY>
-</HTML>
diff --git a/glib/docs/glib.info b/glib/docs/glib.info
deleted file mode 100644
index 92d66db..0000000
--- a/glib/docs/glib.info
+++ /dev/null
@@ -1,511 +0,0 @@
-This is glib.info, produced by makeinfo version 4.0 from glib.texi.
-
-   This file documents GLIB, A library of useful routines for C
-programming
-
-   Copyright (C) 1998 Gregory A McLean
-
-   Permission is granted to make and distributed verbatim copies of this
-manual, provided the copyright notice and this permission notice are
-preserved on all copies.
-
-   Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-   Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by Gregory McLean.
-
-INFO-DIR-SECTION Library of useful routines for 'C' programing
-START-INFO-DIR-ENTRY
-* GLIB: (glib).        useful routines for 'C' programming
-END-INFO-DIR-ENTRY
-
-
-File: glib.info,  Node: Top,  Next: Copying,  Prev: (dir),  Up: (dir)
-
-useful routines for 'C' programming
-***********************************
-
-   This is edition 1.0 of the GLIB documentation, 3 Feburary 1998.
-
-* Menu:
-
-* Copying::                     Your rights.
-* Overview::                    What is GLIB?
-* Doubly linked lists::         Doubly linked lists
-* Signly linked lists::         Singly linked lists
-* List allocators::             List Allocators
-* Hash tables::                 Hash tables
-* Caches::                      Cache handling
-* Trees::                       Tree handling
-* Memory::                      Memory handling
-* Timers::                      Timer functions
-* Output::                      Output handling
-* Utilities::                   Utilitiy functions
-* Errors::                      Error handling
-* String Chunks::               String Chunks
-* Strings::                     String handling
-* Resizable arrays::            Resizeable arrays
-* GScanner::                    Flexible lexical scanner
-* Miscellany::                  Other stuff
-* Function Index::              Index of functions
-* Concept Index::               Index of concepts
-
-
-File: glib.info,  Node: Copying,  Next: Overview,  Prev: Top,  Up: Top
-
-Copying
-*******
-
-
-File: glib.info,  Node: Overview,  Next: Doubly linked lists,  Prev: Copying,  Up: Top
-
-What is GLIB
-************
-
-
-File: glib.info,  Node: Doubly linked lists,  Next: Signly linked lists,  Prev: Overview,  Up: Top
-
-Doubly linked lists
-*******************
-
-Functions
----------
-
- - Function: GList* g_list_alloc (void)
-
- - Function: void g_list_free (GList *LIST)
-
- - Function: void g_list_free_1 (GList *LIST)
-
- - Function: GList* g_list_append (GList *LIST, gpointer DATA)
-
- - Function: GList* g_list_prepend (GList *LIST, gpointer DATA)
-
- - Function: GList* g_list_insert (GList *LIST, gpointer DATA, gint
-          POSITION)
-
- - Function: GList* g_list_insert_sorted (GList *LIST, gpointer DATA,
-          GCompareFunc FUNC)
-
- - Function: GList* g_list_concat (GList *LIST1, GList *LIST2)
-
- - Function: GList* g_list_remove (GList *LIST, gpointer DATA)
-
- - Function: GList* g_list_remove_link (GList *LIST, GList *LINK)
-
- - Function: GList* g_list_reverse (GList *LIST)
-
- - Function: GList* g_list_nth (GList *LIST, gint N)
-
- - Function: GList* g_list_find (GList *LIST, gpointer DATA)
-
- - Function: GList* g_list_last (GList *LIST)
-
- - Function: GList* g_list_first (GList *LIST)
-
- - Function: gint g_list_length (GList *LIST)
-
- - Function: void g_list_foreach (GList *LIST, GFunc FUNC, gpointer
-          USER_DATA)
-
-
-File: glib.info,  Node: Signly linked lists,  Next: List allocators,  Prev: Doubly linked lists,  Up: Top
-
-Signly linked lists
-*******************
-
-Functions
----------
-
- - Function: GSList* g_slist_alloc (void)
-
- - Function: void g_slist_free (GSList *LIST)
-
- - Function: void g_slist_free_1 (GSList *LIST)
-
- - Function: GSList* g_slist_append (GSList *LIST, gpointer DATA)
-
- - Function: GSList* g_slist_prepend (GSList *LIST, gpointer DATA)
-
- - Function: GSList* g_slist_insert (GSList *LIST, gpointer DATA, gint
-          POSITION)
-
- - Function: GSList* g_slist_insert_sorted (GSList *LIST, gpointer
-          DATA, GCompareFunc FUNC)
-
- - Function: GSList* g_slist_concat (GSList *LIST1, GSList *LIST2)
-
- - Function: GSList* g_slist_remove (GSList *LIST, gpointer DATA)
-
- - Function: GSList* g_slist_remove_link (GSList *LIST, GSList *LINK)
-
- - Function: GSList* g_slist_reverse (GSList *LIST)
-
- - Function: GSList* g_slist_nth (GSList *LIST, gint N)
-
- - Function: GSList* g_slist_find (GSList *LIST, gpointer DATA)
-
- - Function: GSList* g_slist_last (GSList *LIST)
-
- - Function: gint g_slist_length (GSList *LIST)
-
- - Function: void g_slist_foreach (GSList *LIST, GFunc FUNC, gpointer
-          USER_DATA)
-
-
-File: glib.info,  Node: List allocators,  Next: Hash tables,  Prev: Signly linked lists,  Up: Top
-
-List allocators
-***************
-
-Functions
----------
-
- - Function: GListAllocator* g_list_allocator_new (void)
-
- - Function: void g_list_allocator_free (GListAllocator *ALLOCATOR)
-
- - Function: GListAllocator* g_slist_set_allocator (GListAllocator
-          *ALLOCATOR)
-
- - Function: GListAllocator* g_list_set_allocator (GListAllocator
-          *ALLOCATOR)
-
-
-File: glib.info,  Node: Hash tables,  Next: Caches,  Prev: List allocators,  Up: Top
-
-Hash tables
-***********
-
-Functions
----------
-
- - Function: GHashTable* g_hash_table_new (GHashFunc HASH_FUNC,
-          GCompareFunc KEY_COMPARE_FUNC)
-
- - Function: void g_hash_table_destroy (GHashTable *HASH_TABLE)
-
- - Function: void g_hash_table_insert (GHashTable *HASH_TABLE, gpointer
-          KEY, gpointer VALUE)
-
- - Function: void g_hash_table_remove (GHashTable *HASH_TABLE, gpointer
-          KEY)
-
- - Function: gpointer g_hash_table_lookup (GHashTable *HASH_TABLE,
-          gpointer KEY)
-
- - Function: void g_hash_table_freeze (GHashTable *HASH_TABLE)
-
- - Function: void g_hash_table_thaw (GHashTable *HASH_TABLE)
-
- - Function: void g_hash_table_foreach (GHashTable *HASH_TABLE, GHFunc
-          FUNC, gpointer USER_DATA)
-
-
-File: glib.info,  Node: Caches,  Next: Trees,  Prev: Hash tables,  Up: Top
-
-Cache handling
-**************
-
-Functions
----------
-
- - Function: GCache* g_cache_new (GCacheNewFunc VALUE_NEW_FUNC,
-          GCacheDestroyFunc VALUE_DESTROY_FUNC, GCacheDupFunc
-          KEY_DUP_FUNC, GCacheDestroyFunc KEY_DESTROY_FUNC, GHashFunc
-          HASH_KEY_FUNC, GHashFunc HASH_VALUE_FUNC, GCompareFunc
-          KEY_COMPARE_FUNC)
-
- - Function: void g_cache_destroy (GCache *CACHE)
-
- - Function: gpointer g_cache_insert (GCache *CACHE, gpointer KEY)
-
- - Function: void g_cache_remove (GCache *CACHE, gpointer KEY)
-
- - Function: void g_cache_key_foreach (GCache *CACHE, GHFunc FUNC,
-          gpointer USER_DATA)
-
- - Function: void g_cache_value_foreach (GCache *CACHE, GHFunc FUNC,
-          gpointer USER_DATA)
-
-
-File: glib.info,  Node: Trees,  Next: Memory,  Prev: Caches,  Up: Top
-
-Tree handling
-*************
-
-Functions
----------
-
- - Function: GTree* g_tree_new (GCompareFunc KEY_COMPARE_FUNC)
-
- - Function: void g_tree_destroy (GTree *TREE)
-
- - Function: void g_tree_remove (GTree *TREE, gpointer KEY, gpointer
-          VALUE)
-
- - Function: gpointer g_tree_lookup (GTree *TREE, gpointer KEY)
-
- - Function: void g_tree_traverse (GTree *TREE, GTraverseFunc
-          TRAVERSE_FUNC, GTraverseType TRAVERSE_TYPE, gpointer DATA
-
- - Function: gpointer g_tree_search (GTree *TREE, GSearchFunc
-          SEARCH_FUNC, gpointer DATA)
-
- - Function: gint g_tree_height (GTree *TREE)
-
- - Function: gint g_tree_nnodes (GTree *TREE)
-
-
-File: glib.info,  Node: Memory,  Next: Timers,  Prev: Trees,  Up: Top
-
-Memory handling
-***************
-
-Functions
----------
-
- - Function: gpointer g_malloc (gulong SIZE)
-
- - Function: gpointer g_malloc0 (gulong SIZE)
-
- - Function: gpointer g_realloc (gpointer MEM, gulong SIZE)
-
- - Function: void g_mem_profile (void)
-
- - Function: void g_mem_check (gpointer MEM)
-
- - Function: GMemChunk* g_mem_chunk_new (gchar *NAME, gint ATOM_SIZE,
-          gulong AREA_SIZE, gint TYPE)
-
- - Function: void g_mem_chunk_destroy (GMemChunk *MEM_CHUNK)
-
- - Function: gpointer g_mem_chunk_alloc (GMemChunk *MEM_CHUNK)
-
- - Function: void g_mem_chunk_free (GMemChunk *MEM_CHUNK, gpointer MEM)
-
- - Function: void g_mem_chunk_clean (GMemChunk *MEM_CHUNK)
-
- - Function: void g_mem_chunk_reset (GMemChunk *MEM_CHUNK)
-
- - Function: void g_mem_chunk_print (GMemChunk *MEM_CHUNK)
-
- - Function: void g_mem_chunk_info (void)
-
- - Function: void g_blow_chunks (void)
-     Not what you might be thinking, `g_blow_chunks()' simply
-     compresses all the chunks. This operation consists of freeing
-     every memory area that should be freed (but which we haven't
-     gotten around to doing yet).
-
-
-File: glib.info,  Node: Timers,  Next: Output,  Prev: Memory,  Up: Top
-
-Timer functions
-***************
-
-Functions
----------
-
- - Function: GTimer* g_timer_new (void)
-
- - Function: void g_timer_destroy (GTimer *TIMER)
-
- - Function: void g_timer_start (GTimer *TIMER)
-
- - Function: void g_timer_stop (GTimer *TIMER)
-
- - Function: void g_timer_reset (GTimer *TIMER)
-
- - Function: gdouble g_timer_elapsed (GTimer *TIMER, gulong
-          *MICROSECONDS)
-
-
-File: glib.info,  Node: Output,  Next: Utilities,  Prev: Timers,  Up: Top
-
-Output functions
-****************
-
-Functions
----------
-
- - Function: void g_error (gchar *FORMAT, ...)
-
- - Function: void g_warning (gchar *FORMAT, ...)
-
- - Function: void g_message (gchar *FORMAT, ...)
-
- - Function: void g_print (gchar *FORMAT, ...)
-
-
-File: glib.info,  Node: Utilities,  Next: Errors,  Prev: Output,  Up: Top
-
-Utility functions
-*****************
-
-
-File: glib.info,  Node: Errors,  Next: String Chunks,  Prev: Utilities,  Up: Top
-
-Error handling
-**************
-
-
-File: glib.info,  Node: String Chunks,  Next: Strings,  Prev: Errors,  Up: Top
-
-String chunks
-*************
-
-
-File: glib.info,  Node: Strings,  Next: Resizable arrays,  Prev: String Chunks,  Up: Top
-
-String handling
-***************
-
-
-File: glib.info,  Node: Resizable arrays,  Next: GScanner,  Prev: Strings,  Up: Top
-
-Resizable arrays
-****************
-
-
-File: glib.info,  Node: GScanner,  Next: Miscellany,  Prev: Resizable arrays,  Up: Top
-
-Flexible lexical scanner
-************************
-
-
-File: glib.info,  Node: Miscellany,  Next: Function Index,  Prev: GScanner,  Up: Top
-
-Other stuff
-***********
-
-
-File: glib.info,  Node: Function Index,  Next: Concept Index,  Prev: Miscellany,  Up: Top
-
-Function Index
-**************
-
-* Menu:
-
-* g_blow_chunks:                         Memory.
-* g_cache_destroy:                       Caches.
-* g_cache_insert:                        Caches.
-* g_cache_key_foreach:                   Caches.
-* g_cache_new:                           Caches.
-* g_cache_remove:                        Caches.
-* g_cache_value_foreach:                 Caches.
-* g_error:                               Output.
-* g_hash_table_destroy:                  Hash tables.
-* g_hash_table_foreach:                  Hash tables.
-* g_hash_table_freeze:                   Hash tables.
-* g_hash_table_insert:                   Hash tables.
-* g_hash_table_lookup:                   Hash tables.
-* g_hash_table_new:                      Hash tables.
-* g_hash_table_remove:                   Hash tables.
-* g_hash_table_thaw:                     Hash tables.
-* g_list_alloc:                          Doubly linked lists.
-* g_list_allocator_free:                 List allocators.
-* g_list_allocator_new:                  List allocators.
-* g_list_append:                         Doubly linked lists.
-* g_list_concat:                         Doubly linked lists.
-* g_list_find:                           Doubly linked lists.
-* g_list_first:                          Doubly linked lists.
-* g_list_foreach:                        Doubly linked lists.
-* g_list_free:                           Doubly linked lists.
-* g_list_free_1:                         Doubly linked lists.
-* g_list_insert:                         Doubly linked lists.
-* g_list_insert_sorted:                  Doubly linked lists.
-* g_list_last:                           Doubly linked lists.
-* g_list_length:                         Doubly linked lists.
-* g_list_nth:                            Doubly linked lists.
-* g_list_prepend:                        Doubly linked lists.
-* g_list_remove:                         Doubly linked lists.
-* g_list_remove_link:                    Doubly linked lists.
-* g_list_reverse:                        Doubly linked lists.
-* g_list_set_allocator:                  List allocators.
-* g_malloc:                              Memory.
-* g_malloc0:                             Memory.
-* g_mem_check:                           Memory.
-* g_mem_chunk_alloc:                     Memory.
-* g_mem_chunk_clean:                     Memory.
-* g_mem_chunk_destroy:                   Memory.
-* g_mem_chunk_free:                      Memory.
-* g_mem_chunk_info:                      Memory.
-* g_mem_chunk_new:                       Memory.
-* g_mem_chunk_print:                     Memory.
-* g_mem_chunk_reset:                     Memory.
-* g_mem_profile:                         Memory.
-* g_message:                             Output.
-* g_print:                               Output.
-* g_realloc:                             Memory.
-* g_slist_alloc:                         Signly linked lists.
-* g_slist_append:                        Signly linked lists.
-* g_slist_concat:                        Signly linked lists.
-* g_slist_find:                          Signly linked lists.
-* g_slist_foreach:                       Signly linked lists.
-* g_slist_free:                          Signly linked lists.
-* g_slist_free_1:                        Signly linked lists.
-* g_slist_insert:                        Signly linked lists.
-* g_slist_insert_sorted:                 Signly linked lists.
-* g_slist_last:                          Signly linked lists.
-* g_slist_length:                        Signly linked lists.
-* g_slist_nth:                           Signly linked lists.
-* g_slist_prepend:                       Signly linked lists.
-* g_slist_remove:                        Signly linked lists.
-* g_slist_remove_link:                   Signly linked lists.
-* g_slist_reverse:                       Signly linked lists.
-* g_slist_set_allocator:                 List allocators.
-* g_timer_destroy:                       Timers.
-* g_timer_elapsed:                       Timers.
-* g_timer_new:                           Timers.
-* g_timer_reset:                         Timers.
-* g_timer_start:                         Timers.
-* g_timer_stop:                          Timers.
-* g_tree_destroy:                        Trees.
-* g_tree_height:                         Trees.
-* g_tree_lookup:                         Trees.
-* g_tree_new:                            Trees.
-* g_tree_nnodes:                         Trees.
-* g_tree_remove:                         Trees.
-* g_tree_search:                         Trees.
-* g_tree_traverse:                       Trees.
-* g_warning:                             Output.
-
-
-File: glib.info,  Node: Concept Index,  Prev: Function Index,  Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-
-Tag Table:
-Node: Top1011
-Node: Copying2203
-Node: Overview2294
-Node: Doubly linked lists2411
-Node: Signly linked lists3619
-Node: List allocators4831
-Node: Hash tables5292
-Node: Caches6115
-Node: Trees6916
-Node: Memory7629
-Node: Timers8797
-Node: Output9249
-Node: Utilities9578
-Node: Errors9692
-Node: String Chunks9807
-Node: Strings9918
-Node: Resizable arrays10043
-Node: GScanner10165
-Node: Miscellany10306
-Node: Function Index10419
-Node: Concept Index15117
-
-End Tag Table
diff --git a/glib/docs/glib.texi b/glib/docs/glib.texi
deleted file mode 100644
index 1bf23e1..0000000
--- a/glib/docs/glib.texi
+++ /dev/null
@@ -1,455 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename glib.info
-@settitle GLIB
-@setchapternewpage odd
-
-@set edition 1.0
-@set update-date 3 Feburary 1998
-@set update-month Feburary 1998
-@c %**end of header
-
-@ifinfo
-This file documents GLIB, A library of useful routines for C programming
-
-Copyright (C) 1998 Gregory A McLean
-
-Permission is granted to make and distributed verbatim copies of this
-manual, provided the copyright notice and this permission notice are
-preserved on all copies. 
-
-@ignore
-Permission is granted to process this file throught TeX and print the 
-results, provided the printed document carries copying permission notice 
-identical to this one except for the removal of this paragraph (this 
-paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation
-approved by Gregory McLean.
-@end ifinfo
-
-@titlepage
-@title GLIB, Useful routines for C programming 
-@subtitle Version 1.0
-@subtitle @value{update-month}
-@author by Gregory McLean
-
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1998 Gregory McLean
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation
-approved by Gregory McLean.
-@end titlepage
-
-@dircategory Library of useful routines for 'C' programing
-@direntry
-* GLIB: (glib).        useful routines for 'C' programming
-@end direntry
-
-@node Top, Copying, (dir), (dir)
-@top useful routines for 'C' programming
-@ifinfo
-This is edition @value{edition} of the GLIB documentation,
-@w{@value{update-date}}.
-@end ifinfo
-
-@menu
-* Copying::                     Your rights.
-* Overview::                    What is GLIB?
-* Doubly linked lists::         Doubly linked lists
-* Signly linked lists::         Singly linked lists
-* List allocators::             List Allocators
-* Hash tables::                 Hash tables
-* Caches::                      Cache handling
-* Trees::                       Tree handling
-* Memory::                      Memory handling
-* Timers::                      Timer functions
-* Output::                      Output handling
-* Utilities::                   Utilitiy functions
-* Errors::                      Error handling
-* String Chunks::               String Chunks
-* Strings::                     String handling
-* Resizable arrays::            Resizeable arrays
-* GScanner::                    Flexible lexical scanner
-* Miscellany::                  Other stuff
-* Function Index::              Index of functions
-* Concept Index::               Index of concepts
-@end menu
-
-@node Copying, Overview, Top, Top
-@comment node-name, next, previous, up
-@chapter Copying
-
-@node Overview, Doubly linked lists, Copying, Top
-@comment node-name, next, previous, up
-@chapter What is GLIB
-
-@node Doubly linked lists, Signly linked lists, Overview, Top
-@comment node-name, next, previous, up
-@chapter Doubly linked lists
-
-@subsection Functions
-
-@deftypefun GList* g_list_alloc (void)
-@end deftypefun
-
-@deftypefun void g_list_free (GList *@var{list})
-@end deftypefun
-
-@deftypefun void g_list_free_1 (GList *@var{list})
-@end deftypefun
-
-@deftypefun GList* g_list_append (GList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GList* g_list_prepend (GList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GList* g_list_insert (GList *@var{list}, gpointer @var{data}, gint @var{position})
-@end deftypefun
-
-@deftypefun GList* g_list_insert_sorted (GList *@var{list}, gpointer @var{data}, GCompareFunc @var{func})
-@end deftypefun
-
-@deftypefun GList* g_list_concat (GList *@var{list1}, GList *@var{list2})
-@end deftypefun
-
-@deftypefun GList* g_list_remove (GList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GList* g_list_remove_link (GList *@var{list}, GList *@var{link})
-@end deftypefun
-
-@deftypefun GList* g_list_reverse (GList *@var{list})
-@end deftypefun
-
-@deftypefun GList* g_list_nth (GList *@var{list}, gint @var{n})
-@end deftypefun
-
-@deftypefun GList* g_list_find (GList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GList* g_list_last (GList *@var{list})
-@end deftypefun
-
-@deftypefun GList* g_list_first (GList *@var{list})
-@end deftypefun
-
-@deftypefun gint g_list_length (GList *@var{list})
-@end deftypefun
-
-@deftypefun void g_list_foreach (GList *@var{list}, GFunc @var{func}, gpointer @var{user_data})
-@end deftypefun
-
-@node Signly linked lists, List allocators, Doubly linked lists, Top
-@comment node-name, next, previous, up
-@chapter Signly linked lists
-
-@subsection Functions
-@deftypefun GSList* g_slist_alloc (void)
-@end deftypefun
-
-@deftypefun void g_slist_free (GSList *@var{list})
-@end deftypefun
-
-@deftypefun void g_slist_free_1 (GSList *@var{list})
-@end deftypefun
-
-@deftypefun GSList* g_slist_append (GSList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GSList* g_slist_prepend (GSList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GSList* g_slist_insert (GSList *@var{list}, gpointer @var{data}, gint @var{position})
-@end deftypefun
-
-@deftypefun GSList* g_slist_insert_sorted (GSList *@var{list}, gpointer @var{data}, GCompareFunc @var{func})
-@end deftypefun
-
-@deftypefun GSList* g_slist_concat (GSList *@var{list1}, GSList *@var{list2})
-@end deftypefun
-
-@deftypefun GSList* g_slist_remove (GSList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GSList* g_slist_remove_link (GSList *@var{list}, GSList *@var{link})
-@end deftypefun
-
-@deftypefun GSList* g_slist_reverse (GSList *@var{list})
-@end deftypefun
-
-@deftypefun GSList* g_slist_nth (GSList *@var{list}, gint @var{n})
-@end deftypefun
-
-@deftypefun GSList* g_slist_find (GSList *@var{list}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun GSList* g_slist_last (GSList *@var{list})
-@end deftypefun
-
-@deftypefun gint g_slist_length (GSList *@var{list})
-@end deftypefun
-
-@deftypefun void g_slist_foreach (GSList *@var{list}, GFunc @var{func}, gpointer @var{user_data})
-@end deftypefun
-
-@node List allocators, Hash tables, Signly linked lists, Top
-@comment node-name, next, previous, up
-@chapter List allocators
-
-@subsection Functions
-
-@deftypefun GListAllocator* g_list_allocator_new (void)
-@end deftypefun
-
-@deftypefun void g_list_allocator_free (GListAllocator *@var{allocator})
-@end deftypefun
-
-@deftypefun GListAllocator* g_slist_set_allocator (GListAllocator *@var{allocator})
-@end deftypefun
-
-@deftypefun GListAllocator* g_list_set_allocator (GListAllocator *@var{allocator})
-@end deftypefun
-
-@node Hash tables, Caches, List allocators, Top
-@comment node-name, next, previous, up
-@chapter Hash tables
-
-@subsection Functions
-
-@deftypefun GHashTable* g_hash_table_new (GHashFunc @var{hash_func}, GCompareFunc @var{key_compare_func})
-@end deftypefun
-
-@deftypefun void g_hash_table_destroy (GHashTable *@var{hash_table})
-@end deftypefun
-
-@deftypefun void g_hash_table_insert (GHashTable *@var{hash_table}, gpointer @var{key}, gpointer @var{value})
-@end deftypefun
-
-@deftypefun void g_hash_table_remove (GHashTable *@var{hash_table}, gpointer @var{key})
-@end deftypefun
-
-@deftypefun gpointer g_hash_table_lookup (GHashTable *@var{hash_table}, gpointer @var{key})
-@end deftypefun
-
-@deftypefun void g_hash_table_freeze (GHashTable *@var{hash_table})
-@end deftypefun
-
-@deftypefun void g_hash_table_thaw (GHashTable *@var{hash_table})
-@end deftypefun
-
-@deftypefun void g_hash_table_foreach (GHashTable *@var{hash_table}, GHFunc @var{func}, gpointer @var{user_data})
-@end deftypefun
-
-@node Caches, Trees, Hash tables, Top
-@comment node-name, next, previous, up
-@chapter Cache handling
-
-@subsection Functions
-
-@deftypefun GCache* g_cache_new (GCacheNewFunc @var{value_new_func}, GCacheDestroyFunc @var{value_destroy_func}, GCacheDupFunc @var{key_dup_func}, GCacheDestroyFunc @var{key_destroy_func}, GHashFunc @var{hash_key_func}, GHashFunc @var{hash_value_func}, GCompareFunc @var{key_compare_func})
-@end deftypefun
-
-@deftypefun void g_cache_destroy (GCache *@var{cache})
-@end deftypefun
-
-@deftypefun gpointer g_cache_insert (GCache *@var{cache}, gpointer @var{key})
-@end deftypefun
-
-@deftypefun void g_cache_remove (GCache *@var{cache}, gpointer @var{key})
-@end deftypefun
-
-@deftypefun void g_cache_key_foreach (GCache *@var{cache}, GHFunc @var{func}, gpointer @var{user_data})
-@end deftypefun
-
-@deftypefun void g_cache_value_foreach (GCache *@var{cache}, GHFunc @var{func}, gpointer @var{user_data})
-@end deftypefun
-
-@node Trees, Memory, Caches, Top
-@comment node-name, next, previous, up
-@chapter Tree handling
-
-@subsection Functions
-
-@deftypefun GTree* g_tree_new (GCompareFunc @var{key_compare_func})
-@end deftypefun
-
-@deftypefun void g_tree_destroy (GTree *@var{tree})
-@end deftypefun
-
-@deftypefun void g_tree_remove (GTree *@var{tree}, gpointer @var{key}, gpointer @var{value})
-@end deftypefun
-
-@deftypefun gpointer g_tree_lookup (GTree *@var{tree}, gpointer @var{key})
-@end deftypefun
-
-@deftypefun void g_tree_traverse (GTree *@var{tree}, GTraverseFunc @var{traverse_func}, GTraverseType @var{traverse_type}, gpointer @var{data}
-@end deftypefun
-
-@deftypefun gpointer g_tree_search (GTree *@var{tree}, GSearchFunc @var{search_func}, gpointer @var{data})
-@end deftypefun
-
-@deftypefun gint g_tree_height (GTree *@var{tree})
-@end deftypefun
-
-@deftypefun gint g_tree_nnodes (GTree *@var{tree})
-@end deftypefun
-
-@node Memory, Timers, Trees, Top
-@comment node-name, next, previous, up
-@chapter Memory handling
-
-@subsection Functions
-
-@deftypefun gpointer g_malloc (gulong @var{size})
-@end deftypefun
-
-@deftypefun gpointer g_malloc0 (gulong @var{size})
-@end deftypefun
-
-@deftypefun gpointer g_realloc (gpointer @var{mem}, gulong @var{size})
-@end deftypefun
-
-@deftypefun void g_mem_profile (void)
-@end deftypefun
-
-@deftypefun void g_mem_check (gpointer @var{mem})
-@end deftypefun
-
-@deftypefun GMemChunk* g_mem_chunk_new (gchar *@var{name}, gint @var{atom_size}, gulong @var{area_size}, gint @var{type})
-@end deftypefun
-
-@deftypefun void g_mem_chunk_destroy (GMemChunk *@var{mem_chunk})
-@end deftypefun
-
-@deftypefun gpointer g_mem_chunk_alloc (GMemChunk *@var{mem_chunk})
-@end deftypefun
-
-@deftypefun void g_mem_chunk_free (GMemChunk *@var{mem_chunk}, gpointer @var{mem})
-@end deftypefun
-
-@deftypefun void g_mem_chunk_clean (GMemChunk *@var{mem_chunk})
-@end deftypefun
-
-@deftypefun void g_mem_chunk_reset (GMemChunk *@var{mem_chunk})
-@end deftypefun
-
-@deftypefun void g_mem_chunk_print (GMemChunk *@var{mem_chunk})
-@end deftypefun
-
-@deftypefun void g_mem_chunk_info (void)
-@end deftypefun
-
-@deftypefun void g_blow_chunks (void)
-Not what you might be thinking, @code{g_blow_chunks()} simply compresses all 
-the chunks. This operation consists of freeing every memory area that should
-be freed (but which we haven't gotten around to doing yet).
-@end deftypefun
-
-@node Timers, Output, Memory, Top
-@comment node-name, next, previous, up
-@chapter Timer functions
-
-@subsection Functions
-
-@deftypefun GTimer* g_timer_new (void)
-@end deftypefun
-
-@deftypefun void g_timer_destroy (GTimer *@var{timer})
-@end deftypefun
-
-@deftypefun void g_timer_start (GTimer *@var{timer})
-@end deftypefun
-
-@deftypefun void g_timer_stop (GTimer *@var{timer})
-@end deftypefun
-
-@deftypefun void g_timer_reset (GTimer *@var{timer})
-@end deftypefun
-
-@deftypefun gdouble g_timer_elapsed (GTimer *@var{timer}, gulong *@var{microseconds})
-@end deftypefun
-
-@node Output, Utilities, Timers, Top
-@comment node-name, next, previous, up
-@chapter Output functions
-
-@subsection Functions
-
-@deftypefun void g_error (gchar *@var{format}, @dots{})
-@end deftypefun
-
-@deftypefun void g_warning (gchar *@var{format}, @dots{})
-@end deftypefun
-
-@deftypefun void g_message (gchar *@var{format}, @dots{})
-@end deftypefun
-
-@deftypefun void g_print (gchar *@var{format}, @dots{})
-@end deftypefun
-
-@node Utilities, Errors, Output, Top
-@comment node-name, next, previous, up
-@chapter Utility functions
-
-@node Errors, String Chunks, Utilities, Top
-@comment node-name, next, previous, up
-@chapter Error handling
-
-@node String Chunks, Strings, Errors, Top
-@comment node-name, next, previous, up
-@chapter String chunks
-
-@node Strings, Resizable arrays, String Chunks, Top
-@comment node-name, next, previous, up
-@chapter String handling
-
-@node Resizable arrays, GScanner, Strings, Top
-@comment node-name, next, previous, up
-@chapter Resizable arrays
-
-@node GScanner, Miscellany, Resizable arrays, Top
-@comment node-name, next, previous, up
-@chapter Flexible lexical scanner
-
-@node Miscellany, Function Index, GScanner, Top
-@comment node-name, next, previous, up
-@chapter Other stuff
-
-@node Function Index, Concept Index, Miscellany, Top
-@comment node-name, next, previous, up
-@unnumbered Function Index
-
-@printindex fn
-
-@node Concept Index, , Function Index, Top
-@comment node-name, next, previous, up
-@unnumbered Concept Index
-
-@printindex cp
-
-@summarycontents
-@contents 
-@bye
-
diff --git a/glib/docs/glib_toc.html b/glib/docs/glib_toc.html
deleted file mode 100644
index 66b366f..0000000
--- a/glib/docs/glib_toc.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.54
-     from glib.texi on 23 August 1999 -->
-
-<TITLE>GLIB - Table of Contents</TITLE>
-
-</HEAD>
-<BODY>
-<H1>GLIB, Useful routines for C programming </H1>
-<H2>Version 1.0</H2>
-<H2>Feburary 1998</H2>
-<ADDRESS>by Gregory McLean</ADDRESS>
-<P>
-<P><HR><P>
-
-<UL>
-<LI><A NAME="TOC1" HREF="glib.html#SEC1">Copying</A>
-<LI><A NAME="TOC2" HREF="glib.html#SEC2">What is GLIB</A>
-<LI><A NAME="TOC3" HREF="glib.html#SEC3">Doubly linked lists</A>
-<UL>
-<UL>
-<LI><A NAME="TOC4" HREF="glib.html#SEC4">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC5" HREF="glib.html#SEC5">Signly linked lists</A>
-<UL>
-<UL>
-<LI><A NAME="TOC6" HREF="glib.html#SEC6">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC7" HREF="glib.html#SEC7">List allocators</A>
-<UL>
-<UL>
-<LI><A NAME="TOC8" HREF="glib.html#SEC8">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC9" HREF="glib.html#SEC9">Hash tables</A>
-<UL>
-<UL>
-<LI><A NAME="TOC10" HREF="glib.html#SEC10">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC11" HREF="glib.html#SEC11">Cache handling</A>
-<UL>
-<UL>
-<LI><A NAME="TOC12" HREF="glib.html#SEC12">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC13" HREF="glib.html#SEC13">Tree handling</A>
-<UL>
-<UL>
-<LI><A NAME="TOC14" HREF="glib.html#SEC14">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC15" HREF="glib.html#SEC15">Memory handling</A>
-<UL>
-<UL>
-<LI><A NAME="TOC16" HREF="glib.html#SEC16">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC17" HREF="glib.html#SEC17">Timer functions</A>
-<UL>
-<UL>
-<LI><A NAME="TOC18" HREF="glib.html#SEC18">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC19" HREF="glib.html#SEC19">Output functions</A>
-<UL>
-<UL>
-<LI><A NAME="TOC20" HREF="glib.html#SEC20">Functions</A>
-</UL>
-</UL>
-<LI><A NAME="TOC21" HREF="glib.html#SEC21">Utility functions</A>
-<LI><A NAME="TOC22" HREF="glib.html#SEC22">Error handling</A>
-<LI><A NAME="TOC23" HREF="glib.html#SEC23">String chunks</A>
-<LI><A NAME="TOC24" HREF="glib.html#SEC24">String handling</A>
-<LI><A NAME="TOC25" HREF="glib.html#SEC25">Resizable arrays</A>
-<LI><A NAME="TOC26" HREF="glib.html#SEC26">Flexible lexical scanner</A>
-<LI><A NAME="TOC27" HREF="glib.html#SEC27">Other stuff</A>
-<LI><A NAME="TOC28" HREF="glib.html#SEC28">Function Index</A>
-<LI><A NAME="TOC29" HREF="glib.html#SEC29">Concept Index</A>
-</UL>
-<P><HR><P>
-This document was generated on 23 August 1999 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
-translator version 1.54.</P>
-</BODY>
-</HTML>
diff --git a/glib/docs/texinfo.tex b/glib/docs/texinfo.tex
deleted file mode 100644
index aa52853..0000000
--- a/glib/docs/texinfo.tex
+++ /dev/null
@@ -1,5484 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-%
-% Load plain if necessary, i.e., if running under initex.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-%
-\def\texinfoversion{1999-01-05}%
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex file is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
-%
-% This texinfo.tex file is distributed in the hope that it will be
-% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING.  If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them.   Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-%   ftp://ftp.gnu.org/pub/gnu/texinfo.tex
-%   /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-%   (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-%   ftp://tug.org/tex/texinfo.tex
-%   ftp://ctan.org/macros/texinfo/texinfo.tex
-%   (and all CTAN mirrors, finger ctan@ctan.org for a list).
-% The texinfo.tex in the texinfo distribution itself could well be out
-% of date, so if that's what you're using, please check.
-% 
-% Send bug reports to bug-texinfo@gnu.org.
-% Please include a precise test case in each bug report,
-% including a complete document with which we can reproduce the problem.
-% 
-% To process a Texinfo manual with TeX, it's most reliable to use the
-% texi2dvi shell script that comes with the distribution.  For simple
-% manuals, however, you can get away with:
-%   tex foo.texi
-%   texindex foo.??
-%   tex foo.texi
-%   tex foo.texi
-%   dvips foo.dvi -o # or whatever, to process the dvi file.
-% The extra runs of TeX get the cross-reference information correct.
-% Sometimes one run after texindex suffices, and sometimes you need more
-% than two; texi2dvi does it as many times as necessary.
-
-\message{Loading texinfo [version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}%
-  \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% We never want plain's outer \+ definition in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English if not already set.
-\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
-\ifx\putwordChapter\undefined  \gdef\putwordChapter{Chapter}\fi
-\ifx\putwordfile\undefined     \gdef\putwordfile{file}\fi
-\ifx\putwordInfo\undefined     \gdef\putwordInfo{Info}\fi
-\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
-\ifx\putwordon\undefined       \gdef\putwordon{on}\fi
-\ifx\putwordpage\undefined     \gdef\putwordpage{page}\fi
-\ifx\putwordsection\undefined  \gdef\putwordsection{section}\fi
-\ifx\putwordSection\undefined  \gdef\putwordSection{Section}\fi
-\ifx\putwordsee\undefined      \gdef\putwordsee{see}\fi
-\ifx\putwordSee\undefined      \gdef\putwordSee{See}\fi
-\ifx\putwordShortContents\undefined  \gdef\putwordShortContents{Short Contents}\fi
-\ifx\putwordTableofContents\undefined\gdef\putwordTableofContents{Table of Contents}\fi
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal.  We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\ifx\eTeXversion\undefined
-\def\loggingall{\tracingcommands2 \tracingstats2
-   \tracingpages1 \tracingoutput1 \tracinglostchars1
-   \tracingmacros2 \tracingparagraphs1 \tracingrestores1
-   \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\else
-\def\loggingall{\tracingcommands3 \tracingstats2
-   \tracingpages1 \tracingoutput1 \tracinglostchars1
-   \tracingmacros2 \tracingparagraphs1 \tracingrestores1
-   \tracingscantokens1 \tracingassigns1 \tracingifs1
-   \tracinggroups1 \tracingnesting2
-   \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\fi
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-% 
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong  \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
-\newdimen\topandbottommargin \topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument.  Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
-  \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
-  %
-  \ifodd\pageno  \advance\hoffset by \bindingoffset
-  \else \advance\hoffset by -\bindingoffset\fi
-  %
-  % Do this outside of the \shipout so @code etc. will be expanded in
-  % the headline as they should be, not taken literally (outputting ''code).
-  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
-  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
-  %
-  {%
-    % Have to do this stuff outside the \shipout because we want it to
-    % take effect in \write's, yet the group defined by the \vbox ends
-    % before the \shipout runs.
-    %
-    \escapechar = `\\     % use backslash in output files.
-    \indexdummies         % don't expand commands in the output.
-    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
-                   % the page break happens to be in the middle of an example.
-    \shipout\vbox{%
-      \ifcropmarks \vbox to \outervsize\bgroup
-        \hsize = \outerhsize
-        \vskip-\topandbottommargin
-        \vtop to0pt{%
-          \line{\ewtop\hfil\ewtop}%
-          \nointerlineskip
-          \line{%
-            \vbox{\moveleft\cornerthick\nstop}%
-            \hfill
-            \vbox{\moveright\cornerthick\nstop}%
-          }%
-          \vss}%
-        \vskip\topandbottommargin
-        \line\bgroup
-          \hfil % center the page within the outer (page) hsize.
-          \ifodd\pageno\hskip\bindingoffset\fi
-          \vbox\bgroup
-      \fi
-      %
-      \unvbox\headlinebox
-      \pagebody{#1}%
-      \ifdim\ht\footlinebox > 0pt
-        % Only leave this space if the footline is nonempty.
-        % (We lessened \vsize for it in \oddfootingxxx.)
-        % The \baselineskip=24pt in plain's \makefootline has no effect.
-        \vskip 2\baselineskip
-        \unvbox\footlinebox
-      \fi
-      %
-      \ifcropmarks
-          \egroup % end of \vbox\bgroup
-        \hfil\egroup % end of (centering) \line\bgroup
-        \vskip\topandbottommargin plus1fill minus1fill
-        \boxmaxdepth = \cornerthick
-        \vbox to0pt{\vss
-          \line{%
-            \vbox{\moveleft\cornerthick\nsbot}%
-            \hfill
-            \vbox{\moveright\cornerthick\nsbot}%
-          }%
-          \nointerlineskip
-          \line{\ewbot\hfil\ewbot}%
-        }%
-      \egroup % \vbox from first cropmarks clause
-      \fi
-    }% end of \shipout\vbox
-  }% end of group with \turnoffactive
-  \advancepageno
-  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
-  \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks.  Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
-  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
-  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1.  The argument is the rest of
-% the input line (except we remove a trailing comment).  #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
-  \let\next = #1%
-  \begingroup
-    \obeylines
-    \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse.  Otherwise, we're done.
-\def\parseargx{%
-  % \obeyedspace is defined far below, after the definition of \sepspaces.
-  \ifx\obeyedspace\temp
-    \expandafter\parseargdiscardspace
-  \else
-    \expandafter\parseargline
-  \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
-  \gdef\parseargline#1^^M{%
-    \endgroup % End of the group started in \parsearg.
-    %
-    % First remove any @c comment, then any @comment.
-    % Result of each macro is put in \toks0.
-    \argremovec #1\c\relax %
-    \expandafter\argremovecomment \the\toks0 \comment\relax %
-    %
-    % Call the caller's macro, saved as \next in \parsearg.
-    \expandafter\next\expandafter{\the\toks0}%
-  }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us.  The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-%    @end itemize  @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'.  Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands.  (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.)  But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
-  \begingroup
-    \ignoreactivespaces
-    \edef\temp{#1}%
-    \global\toks0 = \expandafter{\temp}%
-  \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
-  \obeyspaces
-  \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment; press RETURN to continue}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo  is the same as @foo, for now.
-\newhelp\EMsimple{Press RETURN to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
-  \removeactivespaces{#1}%
-  \edef\endthing{\the\toks0}%
-  %
-  \expandafter\ifx\csname E\endthing\endcsname\relax
-    \expandafter\ifx\csname \endthing\endcsname\relax
-      % There's no \foo, i.e., no ``environment'' foo.
-      \errhelp = \EMsimple
-      \errmessage{Undefined command `@end \endthing'}%
-    \else
-      \unmatchedenderror\endthing
-    \fi
-  \else
-    % Everything's ok; the right environment has been started.
-    \csname E\endthing\endcsname
-  \fi
-}
-
-% There is an environment #1, but it hasn't been started.  Give an error.
-%
-\def\unmatchedenderror#1{%
-  \errhelp = \EMsimple
-  \errmessage{This `@end #1' doesn't have a matching `@#1'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
-  \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
-  % Why was this kern here?  It messes up equalizing space above and below
-  % environments.  --karl, 6may93
-  %{\advance \baselineskip by -\singlespaceskip
-  %\kern \baselineskip}%
-  \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt\char64}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt\char123}}
-\def\myrbrace {{\tt\char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
-  % Definitions to produce actual \{ & \} command in an index.
-  \catcode`\{ = 12 \catcode`\} = 12
-  \catcode`\[ = 1 \catcode`\] = 2
-  \catcode`\@ = 0 \catcode`\\ = 12
-  @gdef@lbracecmd[\{]%
-  @gdef@rbracecmd[\}]%
-@endgroup
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
-  \def\temp{#1}%
-  \ifx\temp\imacro \ptexi
-  \else\ifx\temp\jmacro \j
-  \else \errmessage{@dotless can be used only with i or j}%
-  \fi\fi
-}
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break.  Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox.  We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line.  According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0).  If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
-  \ifnum\catcode13=\active \else
-    \errhelp = \groupinvalidhelp
-    \errmessage{@group invalid in context where filling is enabled}%
-  \fi
-  %
-  % The \vtop we start below produces a box with normal height and large
-  % depth; thus, TeX puts \baselineskip glue before it, and (when the
-  % next line of text is done) \lineskip glue after it.  (See p.82 of
-  % the TeXbook.)  Thus, space below is not quite equal to space
-  % above.  But it's pretty close.
-  \def\Egroup{%
-    \egroup           % End the \vtop.
-    \endgroup         % End the \group.
-  }%
-  %
-  \vtop\bgroup
-    % We have to put a strut on the last line in case the @group is in
-    % the midst of an example, rather than completely enclosing it.
-    % Otherwise, the interline space between the last line of the group
-    % and the first line afterwards is too small.  But we can't put the
-    % strut in \Egroup, since there it would be on a line by itself.
-    % Hence this just inserts a strut at the beginning of each line.
-    \everypar = {\strut}%
-    %
-    % Since we have a strut on every line, we don't need any of TeX's
-    % normal interline spacing.
-    \offinterlineskip
-    %
-    % OK, but now we have to do something about blank
-    % lines in the input in @example-like environments, which normally
-    % just turn into \lisppar, which will insert no space now that we've
-    % turned off the interline space.  Simplest is to make them be an
-    % empty paragraph.
-    \ifx\par\lisppar
-      \edef\par{\leavevmode \par}%
-      %
-      % Reset ^^M's definition to new definition of \par.
-      \obeylines
-    \fi
-    %
-    % Do @comment since we are called inside an environment such as
-    % @example, where each end-of-line in the input causes an
-    % end-of-line in the output.  We don't want the end-of-line after
-    % the `@group' to put extra space in the output.  Since @group
-    % should appear on a line by itself (according to the Texinfo
-    % manual), we don't worry about eating any user text.
-    \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil  \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
-  % Go into vertical mode, so we don't make a big box in the middle of a
-  % paragraph.
-  \par
-  %
-  % Don't add any leading before our big empty box, but allow a page
-  % break, since the best break might be right here.
-  \allowbreak
-  \nointerlineskip
-  \vtop to #1\mil{\vfil}%
-  %
-  % TeX does not even consider page breaks if a penalty added to the
-  % main vertical list is 10000 or more.  But in order to see if the
-  % empty box we just added fits on the page, we must make it consider
-  % page breaks.  On the other hand, we don't want to actually break the
-  % page after the empty box.  So we use a penalty of 9999.
-  %
-  % There is an extremely small chance that TeX will actually break the
-  % page at this \penalty, if there are no other feasible breakpoints in
-  % sight.  (If the user is using lots of big @group commands, which
-  % almost-but-not-quite fill up a page, TeX will have a hard time doing
-  % good page breaking, for example.)  However, I could not construct an
-  % example where a page broke at this \penalty; if it happens in a real
-  % document, then we can reconsider our strategy.
-  \penalty9999
-  %
-  % Back up by the size of the box, whether we did a page break or not.
-  \kern -#1\mil
-  %
-  % Do not allow a page break right after this kern.
-  \nobreak
-}
-
-% @br   forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{%
-  \leavevmode
-  \hbox to 1.5em{%
-    \hskip 0pt plus 0.25fil minus 0.25fil
-    .\hss.\hss.%
-    \hskip 0pt plus 0.5fil minus 0.5fil
-  }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-% 
-\def\enddots{%
-  \leavevmode
-  \hbox to 2em{%
-    \hskip 0pt plus 0.25fil minus 0.25fil
-    .\hss.\hss.\hss.%
-    \hskip 0pt plus 0.5fil minus 0.5fil
-  }%
-  \spacefactor=3000
-}
-
-
-% @page    forces the start of a new page
-%
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
-  \vtop to \strutdepth{\baselineskip\strutdepth\vss
-  \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file    insert text of that file as input.
-% Allow normal characters that  we make active in the argument (a file name).
-\def\include{\begingroup
-  \catcode`\\=12
-  \catcode`~=12
-  \catcode`^=12
-  \catcode`_=12
-  \catcode`|=12
-  \catcode`<=12
-  \catcode`>=12
-  \catcode`+=12
-  \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
-  % Read the included file in a group so nested @include's work.
-  \def\thisfile{#1}%
-  \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line   outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n   outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore  is another way to write a comment
-
-\def\comment{\begingroup \catcode`\^^M=\other%
-\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
-\let\c=\comment
-
-% @paragraphindent  is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
-\let\chapter=\relax
-\let\unnumbered=\relax
-\let\top=\relax
-\let\unnumberedsec=\relax
-\let\unnumberedsection=\relax
-\let\unnumberedsubsec=\relax
-\let\unnumberedsubsection=\relax
-\let\unnumberedsubsubsec=\relax
-\let\unnumberedsubsubsection=\relax
-\let\section=\relax
-\let\subsec=\relax
-\let\subsubsec=\relax
-\let\subsection=\relax
-\let\subsubsection=\relax
-\let\appendix=\relax
-\let\appendixsec=\relax
-\let\appendixsection=\relax
-\let\appendixsubsec=\relax
-\let\appendixsubsection=\relax
-\let\appendixsubsubsec=\relax
-\let\appendixsubsubsection=\relax
-\let\contents=\relax
-\let\smallbook=\relax
-\let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
-  \let\defcodeindex = \relax
-  \let\defcv = \relax
-  \let\deffn = \relax
-  \let\deffnx = \relax
-  \let\defindex = \relax
-  \let\defivar = \relax
-  \let\defmac = \relax
-  \let\defmethod = \relax
-  \let\defop = \relax
-  \let\defopt = \relax
-  \let\defspec = \relax
-  \let\deftp = \relax
-  \let\deftypefn = \relax
-  \let\deftypefun = \relax
-  \let\deftypevar = \relax
-  \let\deftypevr = \relax
-  \let\defun = \relax
-  \let\defvar = \relax
-  \let\defvr = \relax
-  \let\ref = \relax
-  \let\xref = \relax
-  \let\printindex = \relax
-  \let\pxref = \relax
-  \let\settitle = \relax
-  \let\setchapternewpage = \relax
-  \let\setchapterstyle = \relax
-  \let\everyheading = \relax
-  \let\evenheading = \relax
-  \let\oddheading = \relax
-  \let\everyfooting = \relax
-  \let\evenfooting = \relax
-  \let\oddfooting = \relax
-  \let\headings = \relax
-  \let\include = \relax
-  \let\lowersections = \relax
-  \let\down = \relax
-  \let\raisesections = \relax
-  \let\up = \relax
-  \let\set = \relax
-  \let\clear = \relax
-  \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% @dircategory CATEGORY  -- specify a category of the dir file
-% which this file should belong to.  Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
-%
-\def\doignore#1{\begingroup
-  % Don't complain about control sequences we have declared \outer.
-  \ignoresections
-  %
-  % Define a command to swallow text until we reach `@end #1'.
-  % This @ is a catcode 12 token (that is the normal catcode of @ in
-  % this texinfo.tex file).  We change the catcode of @ below to match.
-  \long\def\doignoretext##1@end #1{\enddoignore}%
-  %
-  % Make sure that spaces turn into tokens that match what \doignoretext wants.
-  \catcode32 = 10
-  %
-  % Ignore braces, too, so mismatched braces don't cause trouble.
-  \catcode`\{ = 9
-  \catcode`\} = 9
-  %
-  % We must not have @c interpreted as a control sequence.
-  \catcode`\@ = 12
-  %
-  % Make the letter c a comment character so that the rest of the line
-  % will be ignored. This way, the document can have (for example)
-  %   @c @end ifinfo
-  % and the @end ifinfo will be properly ignored.
-  % (We've just changed @ to catcode 12.)
-  \catcode`\c = 14
-  %
-  % And now expand that command.
-  \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
-  \ifwarnedobs\relax\else
-  % We need to warn folks that they may have trouble with TeX 3.0.
-  % This uses \immediate\write16 rather than \message to get newlines.
-    \immediate\write16{}
-    \immediate\write16{***WARNING*** for users of Unix TeX 3.0!}
-    \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
-    \immediate\write16{If you are running another version of TeX, relax.}
-    \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
-    \immediate\write16{  Then upgrade your TeX installation if you can.}
-    \immediate\write16{  (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
-    \immediate\write16{If you are stuck with version 3.0, run the}
-    \immediate\write16{  script ``tex3patch'' from the Texinfo distribution}
-    \immediate\write16{  to use a workaround.}
-    \immediate\write16{}
-    \global\warnedobstrue
-    \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex.  For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
-  \obstexwarn
-  % We must actually expand the ignored text to look for the @end
-  % command, so that nested ignore constructs work.  Thus, we put the
-  % text into a \vbox and then do nothing with the result.  To minimize
-  % the change of memory overflow, we follow the approach outlined on
-  % page 401 of the TeXbook: make the current font be a dummy font.
-  %
-  \setbox0 = \vbox\bgroup
-    % Don't complain about control sequences we have declared \outer.
-    \ignoresections
-    %
-    % Define `@end #1' to end the box, which will in turn undefine the
-    % @end command again.
-    \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
-    %
-    % We are going to be parsing Texinfo commands.  Most cause no
-    % trouble when they are used incorrectly, but some commands do
-    % complicated argument parsing or otherwise get confused, so we
-    % undefine them.
-    %
-    % We can't do anything about stray @-signs, unfortunately;
-    % they'll produce `undefined control sequence' errors.
-    \ignoremorecommands
-    %
-    % Set the current font to be \nullfont, a TeX primitive, and define
-    % all the font commands to also use \nullfont.  We don't use
-    % dummy.tfm, as suggested in the TeXbook, because not all sites
-    % might have that installed.  Therefore, math mode will still
-    % produce output, but that should be an extremely small amount of
-    % stuff compared to the main input.
-    %
-    \nullfont
-    \let\tenrm = \nullfont  \let\tenit = \nullfont  \let\tensl = \nullfont
-    \let\tenbf = \nullfont  \let\tentt = \nullfont  \let\smallcaps = \nullfont
-    \let\tensf = \nullfont
-    % Similarly for index fonts (mostly for their use in
-    % smallexample)
-    \let\indrm = \nullfont  \let\indit = \nullfont  \let\indsl = \nullfont
-    \let\indbf = \nullfont  \let\indtt = \nullfont  \let\indsc = \nullfont
-    \let\indsf = \nullfont
-    %
-    % Don't complain when characters are missing from the fonts.
-    \tracinglostchars = 0
-    %
-    % Don't bother to do space factor calculations.
-    \frenchspacing
-    %
-    % Don't report underfull hboxes.
-    \hbadness = 10000
-    %
-    % Do minimal line-breaking.
-    \pretolerance = 10000
-    %
-    % Do not execute instructions in @tex
-    \def\tex{\doignore{tex}}%
-    % Do not execute macro definitions.
-    % `c' is a comment character, so the word `macro' will get cut off.
-    \def\macro{\doignore{ma}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it.  Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
-  \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
-  \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
-  \def\temp{#2}%
-  \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
-  \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
-  \fi
-  \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-%
-{
-  \catcode`\_ = \active
-  %
-  % We might end up with active _ or - characters in the argument if
-  % we're called from @code, as @code{@value{foo-bar_}}.  So \let any
-  % such active characters to their normal equivalents.
-  \gdef\value{\begingroup
-    \catcode`\-=12 \catcode`\_=12
-    \indexbreaks \let_\normalunderscore
-    \valuexxx}
-}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
-
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we \let\value to this in \indexdummies).  Ones
-% whose names contain - or _ still won't work, but we can't do anything
-% about that.  The command has to be fully expandable, since the result
-% winds up in the index file.  This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
-% 
-\def\expandablevalue#1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    {[No value for ``#1'']}%
-  \else
-    \csname SET#1\endcsname
-  \fi
-}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifsetfail
-  \else
-    \expandafter\ifsetsucceed
-  \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifclearsucceed
-  \else
-    \expandafter\ifclearfail
-  \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.).  Make `@end iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group).  So we must
-% define \Eiftex to redefine itself to be its previous value.  (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
-  \edef\temp{%
-    % Remember the current value of \E#1.
-    \let\nece{prevE#1} = \nece{E#1}%
-    %
-    % At the `@end #1', redefine \E#1 to be its previous value.
-    \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
-  }%
-  \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @asis just yields its argument.  Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written.  Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo).  So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
-   \iflinks 
-     \readauxfile
-   \fi % \openindices needs to do some work in any case.
-   \openindices
-   \fixbackslash  % Turn off hack to swallow `\input texinfo'.
-   \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
-   %
-   % If texinfo.cnf is present on the system, read it.
-   % Useful for site-wide @afourpaper, etc.
-   % Just to be on the safe side, close the input stream before the \input.
-   \openin 1 texinfo.cnf
-   \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
-   \closein1
-   \temp
-   %
-   \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-% 
-\def\openindices{%
-  \newindex{cp}%
-  \newcodeindex{fn}%
-  \newcodeindex{vr}%
-  \newcodeindex{tp}%
-  \newcodeindex{ky}%
-  \newcodeindex{pg}%
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-
-\message{fonts,}
-% Font-change commands.
-
-% Texinfo sort of supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx}               %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices and small examples (9pt).
-% We actually use the slanted font rather than the italic,
-% because texinfo normally uses the slanted fonts for that.
-% Do not make many font distinctions in general in the index, since they
-% aren't very useful.
-\setfont\ninett\ttshape{9}{1000}
-\setfont\ninettsl\ttslshape{10}{900}
-\setfont\indrm\rmshape{9}{1000}
-\setfont\indit\itshape{9}{1000}
-\setfont\indsl\slshape{9}{1000}
-\let\indtt=\ninett
-\let\indttsl=\ninettsl
-\let\indsf=\indrm
-\let\indbf=\indrm
-\setfont\indsc\scshape{10}{900}
-\font\indi=cmmi9
-\font\indsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1}    % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1}    % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315}      % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315}      % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315}      % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families.  Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
-  \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
-  \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
-  \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE.  We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font.  Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example.  By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
-  \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
-  \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
-  \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
-  \resetmathfonts}
-\def\titlefonts{%
-  \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
-  \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
-  \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
-  \let\tenttsl=\titlettsl
-  \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
-  \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
-  \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
-  \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
-  \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
-  \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
-  \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
-  \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
-  \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
-  \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
-  \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
-  \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
-  \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\indexfonts{%
-  \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
-  \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
-  \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
-  \resetmathfonts \setleading{12pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartslanted
-\let\dfn=\smartslanted
-\let\emph=\smartitalic
-\let\cite=\smartslanted
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph.  Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1  \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
-  {\tt \rawbackslash \frenchspacing #1}%
-  \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\smallrm\rmshape{8}{1000}
-\font\smallsy=cmsy9
-\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
-  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-    \vbox{\hrule\kern-0.4pt
-     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-    \kern-0.4pt\hrule}%
-  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
-  {%
-    % Change normal interword space to be same as for the current font.
-    \spaceskip = \fontdimen2\font
-    %
-    % Switch to typewriter.
-    \tt
-    %
-    % But `\ ' produces the large typewriter interword space.
-    \def\ {{\spaceskip = 0pt{} }}%
-    %
-    % Turn off hyphenation.
-    \nohyphenation
-    %
-    \rawbackslash
-    \frenchspacing
-    #1%
-  }%
-  \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-%  -- rms.
-{
-  \catcode`\-=\active
-  \catcode`\_=\active
-  %
-  \global\def\code{\begingroup
-    \catcode`\-=\active \let-\codedash
-    \catcode`\_=\active \let_\codeunder
-    \codex
-  }
-  %
-  % If we end up with any active - characters when handling the index,
-  % just treat them as a normal -.
-  \global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose  %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-%   `example' (@kbd uses ttsl only inside of @example and friends),
-%   or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
-  \def\arg{#1}%
-  \ifx\arg\worddistinct
-    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
-  \else\ifx\arg\wordexample
-    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
-  \else\ifx\arg\wordcode
-    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
-  \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct.  (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% For @url, @env, @command quotes seem unnecessary, so use \code.
-\let\url=\code
-\let\env=\code
-\let\command=\code
-
-% @uref (abbreviation for `urlref') takes an optional second argument
-% specifying the text to display.  First (mandatory) arg is the url.
-% Perhaps eventually put in a hypertex \special here.
-% 
-\def\uref#1{\urefxxx #1,,\finish}
-\def\urefxxx#1,#2,#3\finish{%
-  \setbox0 = \hbox{\ignorespaces #2}%
-  \ifdim\wd0 > 0pt
-    \unhbox0\ (\code{#1})%
-  \else
-    \code{#1}%
-  \fi
-}
-
-% rms does not like the angle brackets --karl, 17may97.
-% So now @email is just like @uref.
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\let\email=\uref
-
-% Check if we are currently using a typewriter font.  Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'.  The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find.  We need it for
-% Polish suppressed-l.  --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}}              % roman font
-\def\sc#1{{\smallcaps#1}}       % smallcaps font
-\def\ii#1{{\it #1}}             % italic font
-
-% @acronym downcases the argument and prints in smallcaps.
-\def\acronym#1{{\smallcaps \lowercase{#1}}}
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page.  Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-% 
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
-        \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
-   \let\subtitlerm=\tenrm
-   \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
-   %
-   \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
-   %
-   % Leave some space at the very top of the page.
-   \vglue\titlepagetopglue
-   %
-   % Now you can print the title using @title.
-   \def\title{\parsearg\titlezzz}%
-   \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
-                    % print a rule at the page bottom also.
-                    \finishedtitlepagefalse
-                    \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
-   % No rule at page bottom unless we print one at the top with @title.
-   \finishedtitlepagetrue
-   %
-   % Now you can put text using @subtitle.
-   \def\subtitle{\parsearg\subtitlezzz}%
-   \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
-   %
-   % @author should come last, but may come many times.
-   \def\author{\parsearg\authorzzz}%
-   \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
-      {\authorfont \leftline{##1}}}%
-   %
-   % Most title ``pages'' are actually two pages long, with space
-   % at the top of the second.  We don't want the ragged left on the second.
-   \let\oldpage = \page
-   \def\page{%
-      \iffinishedtitlepage\else
-         \finishtitlepage
-      \fi
-      \oldpage
-      \let\page = \oldpage
-      \hbox{}}%
-%   \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
-   \iffinishedtitlepage\else
-      \finishtitlepage
-   \fi
-   % It is important to do the page break before ending the group,
-   % because the headline and footline are only empty inside the group.
-   % If we use the new definition of \page, we always get a blank page
-   % after the title page, which we certainly don't want.
-   \oldpage
-   \endgroup
-   %
-   % If they want short, they certainly want long too.
-   \ifsetshortcontentsaftertitlepage
-     \shortcontents
-     \contents
-     \global\let\shortcontents = \relax
-     \global\let\contents = \relax
-   \fi
-   %
-   \ifsetcontentsaftertitlepage
-     \contents
-     \global\let\contents = \relax
-     \global\let\shortcontents = \relax
-   \fi
-   %
-   \HEADINGSon
-}
-
-\def\finishtitlepage{%
-   \vskip4pt \hrule height 2pt width \hsize
-   \vskip\titlepagebottomglue
-   \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks\evenheadline    % headline on even pages
-\newtoks\oddheadline     % headline on odd pages
-\newtoks\evenfootline    % footline on even pages
-\newtoks\oddfootline     % footline on odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
-                            \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
-                            \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what  @headings on  does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
-  \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
-  %
-  % Leave some space for the footline.  Hopefully ok to assume
-  % @evenfooting will not be used by itself.
-  \global\advance\pageheight by -\baselineskip
-  \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double      turns headings on for double-sided printing.
-% @headings single      turns headings on for single-sided printing.
-% @headings off         turns them off.
-% @headings on          same as @headings double, retained for compatibility.
-% @headings after       turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line...  specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent  \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin  \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
-                 \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
-                 \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
-  \advance\hsize by -\rightskip
-  \advance\hsize by -\tableindent
-  \setbox0=\hbox{\itemfont{#1}}%
-  \itemindex{#1}%
-  \nobreak % This prevents a break before @itemx.
-  %
-  % If the item text does not fit in the space we have, put it on a line
-  % by itself, and do not allow a page break either before or after that
-  % line.  We do not start a paragraph here because then if the next
-  % command is, e.g., @kindex, the whatsit would get put into the
-  % horizontal list on a line by itself, resulting in extra blank space.
-  \ifdim \wd0>\itemmax
-    %
-    % Make this a paragraph so we get the \parskip glue and wrapping,
-    % but leave it ragged-right.
-    \begingroup
-      \advance\leftskip by-\tableindent
-      \advance\hsize by\tableindent
-      \advance\rightskip by0pt plus1fil
-      \leavevmode\unhbox0\par
-    \endgroup
-    %
-    % We're going to be starting a paragraph, but we don't want the
-    % \parskip glue -- logically it's part of the @item we just started.
-    \nobreak \vskip-\parskip
-    %
-    % Stop a page break at the \parskip glue coming up.  Unfortunately
-    % we can't prevent a possible page break at the following
-    % \baselineskip glue.
-    \nobreak
-    \endgroup
-    \itemxneedsnegativevskipfalse
-  \else
-    % The item text fits into the space.  Start a paragraph, so that the
-    % following text (if any) will end up on the same line.  
-    \noindent
-    % Do this with kerns and \unhbox so that if there is a footnote in
-    % the item text, it can migrate to the main vertical list and
-    % eventually be printed.
-    \nobreak\kern-\tableindent
-    \dimen0 = \itemmax  \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
-    \unhbox0
-    \nobreak\kern\dimen0
-    \endgroup
-    \itemxneedsnegativevskiptrue
-  \fi
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-% Contains a kludge to get @end[description] to work.
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-% @table, @ftable, @vtable.
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1        \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1        \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1        \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
-  \begingroup % ended by the @end itemize
-  \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
-  \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list.  No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1  \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
-  \begingroup % ended by the @end enumerate
-  %
-  % If we were given no argument, pretend we were given `1'.
-  \def\thearg{#1}%
-  \ifx\thearg\empty \def\thearg{1}\fi
-  %
-  % Detect if the argument is a single token.  If so, it might be a
-  % letter.  Otherwise, the only valid thing it can be is a number.
-  % (We will always have one token, because of the test we just made.
-  % This is a good thing, since \splitoff doesn't work given nothing at
-  % all -- the first parameter is undelimited.)
-  \expandafter\splitoff\thearg\endmark
-  \ifx\rest\empty
-    % Only one token in the argument.  It could still be anything.
-    % A ``lowercase letter'' is one whose \lccode is nonzero.
-    % An ``uppercase letter'' is one whose \lccode is both nonzero, and
-    %   not equal to itself.
-    % Otherwise, we assume it's a number.
-    %
-    % We need the \relax at the end of the \ifnum lines to stop TeX from
-    % continuing to look for a <number>.
-    %
-    \ifnum\lccode\expandafter`\thearg=0\relax
-      \numericenumerate % a number (we hope)
-    \else
-      % It's a letter.
-      \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
-        \lowercaseenumerate % lowercase letter
-      \else
-        \uppercaseenumerate % uppercase letter
-      \fi
-    \fi
-  \else
-    % Multiple tokens in the argument.  We hope it's a number.
-    \numericenumerate
-  \fi
-}
-
-% An @enumerate whose labels are integers.  The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
-  \itemno = \thearg
-  \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
-  \itemno = \expandafter`\thearg
-  \startenumeration{%
-    % Be sure we're not beyond the end of the alphabet.
-    \ifnum\itemno=0
-      \errmessage{No more lowercase letters in @enumerate; get a bigger
-                  alphabet}%
-    \fi
-    \char\lccode\itemno
-  }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
-  \itemno = \expandafter`\thearg
-  \startenumeration{%
-    % Be sure we're not beyond the end of the alphabet.
-    \ifnum\itemno=0
-      \errmessage{No more uppercase letters in @enumerate; get a bigger
-                  alphabet}
-    \fi
-    \char\uccode\itemno
-  }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments.  Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
-  \advance\itemno by -1
-  \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble.  Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-%   @multitable @columnfractions .25 .3 .45
-%   @item ...
-%
-%   Numbers following @columnfractions are the percent of the total
-%   current hsize to be used for each column. You may use as many
-%   columns as desired.
-
-
-% Or use a template:
-%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-%   @item ...
-%   using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-%     @multitable {Column 1 template} {Column 2 template} {Column 3
-%      template}
-% Not:
-%     @multitable {Column 1 template} {Column 2 template}
-%      {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-%   @item first col stuff @tab second col stuff @tab third col
-%   @item
-%   first col stuff
-%   @tab
-%   second col stuff
-%   @tab
-%   third col
-%   @item first col stuff @tab second col stuff
-%   @tab Many paragraphs of text may be used in any column.
-%
-%         They will wrap at the width determined by the template.
-%   @item@tab@tab This will be in third column.
-%   @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-%                                                            to baseline.
-%   0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-% 
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% #1 is the part of the @columnfraction before the decimal point, which
-% is presumably either 0 or the empty string (but we don't check, we
-% just throw it away).  #2 is the decimal part, which we use as the
-% percent of \hsize for this column.
-\def\pickupwholefraction#1.#2 {%
-  \global\advance\colcount by 1
-  \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}%
-  \setuptable
-}
-
-\newcount\colcount
-\def\setuptable#1{%
-  \def\firstarg{#1}%
-  \ifx\firstarg\xendsetuptable
-    \let\go = \relax
-  \else
-    \ifx\firstarg\xcolumnfractions
-      \global\setpercenttrue
-    \else
-      \ifsetpercent
-         \let\go\pickupwholefraction
-      \else
-         \global\advance\colcount by 1
-         \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
-                            % typically that is always in the input, anyway.
-         \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
-      \fi
-    \fi
-    \ifx\go\pickupwholefraction
-      % Put the argument back for the \pickupwholefraction call, so
-      % we'll always have a period there to be parsed.
-      \def\go{\pickupwholefraction#1}%
-    \else
-      \let\go = \setuptable
-    \fi%
-  \fi
-  \go
-}
-
-% multitable syntax
-\def\tab{&\hskip1sp\relax} % 2/2/96
-                           % tiny skip here makes sure this column space is
-                           % maintained, even if it is never used.
-
-% @multitable ... @end multitable definitions:
-%
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
-  \vskip\parskip
-  \let\item\crcr
-  \tolerance=9500
-  \hbadness=9500
-  \setmultitablespacing
-  \parskip=\multitableparskip
-  \parindent=\multitableparindent
-  \overfullrule=0pt
-  \global\colcount=0
-  \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
-  %
-  % To parse everything between @multitable and @item:
-  \setuptable#1 \endsetuptable
-  %
-  % \everycr will reset column counter, \colcount, at the end of
-  % each line. Every column entry will cause \colcount to advance by one.
-  % The table preamble
-  % looks at the current \colcount to find the correct column width.
-  \everycr{\noalign{%
-  %
-  % \filbreak%% keeps underfull box messages off when table breaks over pages.
-  % Maybe so, but it also creates really weird page breaks when the table
-  % breaks over pages. Wouldn't \vfil be better?  Wait until the problem
-  % manifests itself, so it can be fixed for real --karl.
-    \global\colcount=0\relax}}%
-  %
-  % This preamble sets up a generic column definition, which will
-  % be used as many times as user calls for columns.
-  % \vtop will set a single line and will also let text wrap and
-  % continue for many paragraphs if desired.
-  \halign\bgroup&\global\advance\colcount by 1\relax
-    \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
-  %
-  % In order to keep entries from bumping into each other
-  % we will add a \leftskip of \multitablecolspace to all columns after
-  % the first one.
-  % 
-  % If a template has been used, we will add \multitablecolspace
-  % to the width of each template entry.
-  % 
-  % If the user has set preamble in terms of percent of \hsize we will
-  % use that dimension as the width of the column, and the \leftskip
-  % will keep entries from bumping into each other.  Table will start at
-  % left margin and final column will justify at right margin.
-  % 
-  % Make sure we don't inherit \rightskip from the outer environment.
-  \rightskip=0pt
-  \ifnum\colcount=1
-    % The first column will be indented with the surrounding text.
-    \advance\hsize by\leftskip
-  \else
-    \ifsetpercent \else
-      % If user has not set preamble in terms of percent of \hsize
-      % we will advance \hsize by \multitablecolspace.
-      \advance\hsize by \multitablecolspace
-    \fi
-   % In either case we will make \leftskip=\multitablecolspace:
-  \leftskip=\multitablecolspace
-  \fi
-  % Ignoring space at the beginning and end avoids an occasional spurious
-  % blank line, when TeX decides to break the line at the space before the
-  % box from the multistrut, so the strut ends up on a line by itself.
-  % For example:
-  % @multitable @columnfractions .11 .89
-  % @item @code{#}
-  % @tab Legal holiday which is valid in major parts of the whole country.
-  % Is automatically provided with highlighting sequences respectively marking
-  % characters.
-  \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%%        If so, set to same dimension as multitablelinespace.
-\else
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
-\fi}
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index.  The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-%
-\def\newindex#1{%
-  \iflinks
-    \expandafter\newwrite \csname#1indfile\endcsname
-    \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-  \fi
-  \expandafter\xdef\csname#1index\endcsname{%     % Define @#1index
-    \noexpand\doindex{#1}}
-}
-
-% @defindex foo  ==  \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex#1{%
-  \iflinks
-    \expandafter\newwrite \csname#1indfile\endcsname
-    \openout \csname#1indfile\endcsname \jobname.#1
-  \fi
-  \expandafter\xdef\csname#1index\endcsname{%
-    \noexpand\docodeindex{#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar    makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-% The \closeout helps reduce unnecessary open files; the limit on the
-% Acorn RISC OS is a mere 16 files.
-\def\synindex#1 #2 {%
-  \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-  \expandafter\closeout\csname#1indfile\endcsname
-  \expandafter\let\csname#1indfile\endcsname=\synindexfoo
-  \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
-    \noexpand\doindex{#2}}%
-}
-
-% @syncodeindex foo bar   similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex#1 #2 {%
-  \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-  \expandafter\closeout\csname#1indfile\endcsname
-  \expandafter\let\csname#1indfile\endcsname=\synindexfoo
-  \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
-    \noexpand\docodeindex{#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-%  and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-\def\ { }%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-% Need these in case \tex is in effect and \{ is a \delimiter again.
-% But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
-\let\{ = \mylbrace
-\let\} = \myrbrace
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\uref##1{\realbackslash uref {##1}}%
-\def\url##1{\realbackslash url {##1}}%
-\def\env##1{\realbackslash env {##1}}%
-\def\command##1{\realbackslash command {##1}}%
-\def\option##1{\realbackslash option {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\acronym##1{\realbackslash acronym {##1}}%
-%
-% Handle some cases of @value -- where the variable name does not
-% contain - or _, and the value does not contain any
-% (non-fully-expandable) commands.
-\let\value = \expandablevalue
-%
-\unsepspaces
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\url=\indexdummyfont
-\let\uref=\indexdummyfont
-\let\env=\indexdummyfont
-\let\command=\indexdummyfont
-\let\option=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
- @gdef@realbackslash{\}}
-
-\let\indexbackslash=0  %overridden during \printindex.
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
-% For \ifx comparisons.
-\def\emptymacro{\empty}
-
-% Most index entries go through here, but \dosubind is the general case.
-% 
-\def\doind#1#2{\dosubind{#1}{#2}\empty}
-
-% Workhorse for all \fooindexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% \empty if called from \doind, as we usually are.  The main exception
-% is with defuns, which call us directly.
-% 
-\def\dosubind#1#2#3{%
-  % Put the index entry in the margin if desired.
-  \ifx\SETmarginindex\relax\else
-    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
-  \fi
-  {%
-    \count255=\lastpenalty
-    {%
-      \indexdummies % Must do this here, since \bf, etc expand at this stage
-      \escapechar=`\\
-      {%
-        \let\folio = 0% We will expand all macros now EXCEPT \folio.
-        \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
-        % so it will be output as is; and it will print as backslash.
-        %
-        \def\thirdarg{#3}%
-        %
-        % If third arg is present, precede it with space in sort key.
-        \ifx\thirdarg\emptymacro
-          \let\subentry = \empty
-        \else
-          \def\subentry{ #3}%
-        \fi
-        %
-        % First process the index-string with all font commands turned off
-        % to get the string to sort by.
-        {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
-        %
-        % Now produce the complete index entry, with both the sort key and the
-        % original text, including any font commands.
-        \toks0 = {#2}%
-        \edef\temp{%
-          \write\csname#1indfile\endcsname{%
-            \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
-        }%
-        %
-        % If third (subentry) arg is present, add it to the index string.
-        \ifx\thirdarg\emptymacro \else
-          \toks0 = {#3}%
-          \edef\temp{\temp{\the\toks0}}%
-        \fi
-        %
-        % If a skip is the last thing on the list now, preserve it
-        % by backing up by \lastskip, doing the \write, then inserting
-        % the skip again.  Otherwise, the whatsit generated by the
-        % \write will make \lastskip zero.  The result is that sequences
-        % like this:
-        % @end defun
-        % @tindex whatever
-        % @defun ...
-        % will have extra space inserted, because the \medbreak in the
-        % start of the @defun won't see the skip inserted by the @end of
-        % the previous defun.
-        % 
-        % But don't do any of this if we're not in vertical mode.  We
-        % don't want to do a \vskip and prematurely end a paragraph.
-        % 
-        % Avoid page breaks due to these extra skips, too.
-        % 
-        \iflinks
-          \ifvmode
-            \skip0 = \lastskip
-            \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi
-          \fi
-          %
-          \temp % do the write
-          %
-          % 
-          \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
-        \fi
-      }%
-    }%
-    \penalty\count255
-  }%
-}
-
-% The index entry written in the file actually looks like
-%  \entry {sortstring}{page}{topic}
-% or
-%  \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-%  \initial {c}
-%     before the first topic whose initial is c
-%  \entry {topic}{pagelist}
-%     for a topic that is used without subtopics
-%  \primary {topic}
-%     for the beginning of a topic that is used with subtopics
-%  \secondary {subtopic}{pagelist}
-%     for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
-  \dobreak \chapheadingskip{10000}%
-  %
-  \indexfonts \rm
-  \tolerance = 9500
-  \indexbreaks
-  %
-  % See if the index file exists and is nonempty.
-  % Change catcode of @ here so that if the index file contains
-  % \initial {@}
-  % as its first line, TeX doesn't complain about mismatched braces
-  % (because it thinks @} is a control sequence).
-  \catcode`\@ = 11
-  \openin 1 \jobname.#1s
-  \ifeof 1
-    % \enddoublecolumns gets confused if there is no text in the index,
-    % and it loses the chapter title and the aux file entries for the
-    % index.  The easiest way to prevent this problem is to make sure
-    % there is some text.
-    (Index is nonexistent)
-  \else
-    %
-    % If the index file exists but is empty, then \openin leaves \ifeof
-    % false.  We have to make TeX try to read something from the file, so
-    % it can discover if there is anything in it.
-    \read 1 to \temp
-    \ifeof 1
-      (Index is empty)
-    \else
-      % Index files are almost Texinfo source, but we use \ as the escape
-      % character.  It would be better to use @, but that's too big a change
-      % to make right now.
-      \def\indexbackslash{\rawbackslashxx}%
-      \catcode`\\ = 0
-      \escapechar = `\\
-      \begindoublecolumns
-      \input \jobname.#1s
-      \enddoublecolumns
-    \fi
-  \fi
-  \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-\def\initial#1{{%
-  % Some minor font changes for the special characters.
-  \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
-  %
-  % Remove any glue we may have, we'll be inserting our own.
-  \removelastskip
-  % 
-  % We like breaks before the index initials, so insert a bonus.
-  \penalty -300
-  %
-  % Typeset the initial.  Making this add up to a whole number of
-  % baselineskips increases the chance of the dots lining up from column
-  % to column.  It still won't often be perfect, because of the stretch
-  % we need before each entry, but it's better.
-  % 
-  % No shrink because it confuses \balancecolumns.
-  \vskip 1.67\baselineskip plus .5\baselineskip
-  \leftline{\secbf #1}%
-  \vskip .33\baselineskip plus .1\baselineskip
-  %
-  % Do our best not to break after the initial.
-  \nobreak
-}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin.  It is used for index and table of contents
-% entries.  The paragraph is indented by \leftskip.
-%
-\def\entry#1#2{\begingroup
-  %
-  % Start a new paragraph if necessary, so our assignments below can't
-  % affect previous text.
-  \par
-  %
-  % Do not fill out the last line with white space.
-  \parfillskip = 0in
-  %
-  % No extra space above this paragraph.
-  \parskip = 0in
-  %
-  % Do not prefer a separate line ending with a hyphen to fewer lines.
-  \finalhyphendemerits = 0
-  %
-  % \hangindent is only relevant when the entry text and page number
-  % don't both fit on one line.  In that case, bob suggests starting the
-  % dots pretty far over on the line.  Unfortunately, a large
-  % indentation looks wrong when the entry text itself is broken across
-  % lines.  So we use a small indentation and put up with long leaders.
-  %
-  % \hangafter is reset to 1 (which is the value we want) at the start
-  % of each paragraph, so we need not do anything with that.
-  \hangindent = 2em
-  %
-  % When the entry text needs to be broken, just fill out the first line
-  % with blank space.
-  \rightskip = 0pt plus1fil
-  %
-  % A bit of stretch before each entry for the benefit of balancing columns.
-  \vskip 0pt plus1pt
-  %
-  % Start a ``paragraph'' for the index entry so the line breaking
-  % parameters we've set above will have an effect.
-  \noindent
-  %
-  % Insert the text of the index entry.  TeX will do line-breaking on it.
-  #1%
-  % The following is kludged to not output a line of dots in the index if
-  % there are no page numbers.  The next person who breaks this will be
-  % cursed by a Unix daemon.
-  \def\tempa{{\rm }}%
-  \def\tempb{#2}%
-  \edef\tempc{\tempa}%
-  \edef\tempd{\tempb}%
-  \ifx\tempc\tempd\ \else%
-    %
-    % If we must, put the page number on a line of its own, and fill out
-    % this line with blank space.  (The \hfil is overwhelmed with the
-    % fill leaders glue in \indexdotfill if the page number does fit.)
-    \hfil\penalty50
-    \null\nobreak\indexdotfill % Have leaders before the page number.
-    %
-    % The `\ ' here is removed by the implicit \unskip that TeX does as
-    % part of (the primitive) \par.  Without it, a spurious underfull
-    % \hbox ensues.
-    \ #2% The page number ends the paragraph.
-  \fi%
-  \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
-  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
-  % Grab any single-column material above us.
-  \output = {\global\setbox\partialpage = \vbox{%
-    % 
-    % Here is a possibility not foreseen in manmac: if we accumulate a
-    % whole lot of material, we might end up calling this \output
-    % routine twice in a row (see the doublecol-lose test, which is
-    % essentially a couple of indexes with @setchapternewpage off).  In
-    % that case, we must prevent the second \partialpage from
-    % simply overwriting the first, causing us to lose the page.
-    % This will preserve it until a real output routine can ship it
-    % out.  Generally, \partialpage will be empty when this runs and
-    % this will be a no-op.
-    \unvbox\partialpage
-    %
-    % Unvbox the main output page.
-    \unvbox255
-    \kern-\topskip \kern\baselineskip
-  }}%
-  \eject % run that output routine to set \partialpage
-  %
-  % Use the double-column output routine for subsequent pages.
-  \output = {\doublecolumnout}%
-  %
-  % Change the page size parameters.  We could do this once outside this
-  % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
-  % format, but then we repeat the same computation.  Repeating a couple
-  % of assignments once per index is clearly meaningless for the
-  % execution time, so we may as well do it in one place.
-  %
-  % First we halve the line length, less a little for the gutter between
-  % the columns.  We compute the gutter based on the line length, so it
-  % changes automatically with the paper format.  The magic constant
-  % below is chosen so that the gutter has the same value (well, +-<1pt)
-  % as it did when we hard-coded it.
-  %
-  % We put the result in a separate register, \doublecolumhsize, so we
-  % can restore it in \pagesofar, after \hsize itself has (potentially)
-  % been clobbered.
-  %
-  \doublecolumnhsize = \hsize
-    \advance\doublecolumnhsize by -.04154\hsize
-    \divide\doublecolumnhsize by 2
-  \hsize = \doublecolumnhsize
-  %
-  % Double the \vsize as well.  (We don't need a separate register here,
-  % since nobody clobbers \vsize.)
-  \advance\vsize by -\ht\partialpage
-  \vsize = 2\vsize
-}
-
-% The double-column output routine for all double-column pages except
-% the last.
-% 
-\def\doublecolumnout{%
-  \splittopskip=\topskip \splitmaxdepth=\maxdepth
-  % Get the available space for the double columns -- the normal
-  % (undoubled) page height minus any material left over from the
-  % previous page.
-  \dimen@ = \vsize
-  \divide\dimen@ by 2
-  %
-  % box0 will be the left-hand column, box2 the right.
-  \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
-  \onepageout\pagesofar
-  \unvbox255
-  \penalty\outputpenalty
-}
-\def\pagesofar{%
-  % Re-output the contents of the output page -- any previous material,
-  % followed by the two boxes we just split, in box0 and box2.
-  \advance\vsize by \ht\partialpage
-  \unvbox\partialpage
-  %
-  \hsize = \doublecolumnhsize
-  \wd0=\hsize \wd2=\hsize
-  \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
-  \output = {%
-    % Split the last of the double-column material.  Leave it on the
-    % current page, no automatic page break.
-    \balancecolumns
-    %
-    % If we end up splitting too much material for the current page,
-    % though, there will be another page break right after this \output
-    % invocation ends.  Having called \balancecolumns once, we do not
-    % want to call it again.  Therefore, reset \output to its normal
-    % definition right away.  (We hope \balancecolumns will never be
-    % called on to balance too much material, but if it is, this makes
-    % the output somewhat more palatable.)
-    \global\output = {\onepageout{\pagecontents\PAGE}}%
-  }%
-  \eject
-  \endgroup % started in \begindoublecolumns
-  %
-  % \pagegoal was set to the doubled \vsize above, since we restarted
-  % the current page.  We're now back to normal single-column
-  % typesetting, so reset \pagegoal to the normal \vsize (after the
-  % \endgroup where \vsize got restored).
-  \pagegoal = \vsize
-}
-\def\balancecolumns{%
-  % Called at the end of the double column material.
-  \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
-  \dimen@ = \ht0
-  \advance\dimen@ by \topskip
-  \advance\dimen@ by-\baselineskip
-  \divide\dimen@ by 2 % target to split to
-  %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
-  \splittopskip = \topskip
-  % Loop until we get a decent breakpoint.
-  {%
-    \vbadness = 10000
-    \loop
-      \global\setbox3 = \copy0
-      \global\setbox1 = \vsplit3 to \dimen@
-    \ifdim\ht3>\dimen@
-      \global\advance\dimen@ by 1pt
-    \repeat
-  }%
-  %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
-  \setbox0=\vbox to\dimen@{\unvbox1}%
-  \setbox2=\vbox to\dimen@{\unvbox3}%
-  %
-  \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno        \secno=0
-\newcount\subsecno     \subsecno=0
-\newcount\subsubsecno  \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno  \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it.  @section does likewise.
-\def\thischapter{}
-\def\thissection{}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \chapterzzz{#2}
-\or
-  \seczzz{#2}
-\or
-  \numberedsubseczzz{#2}
-\or
-  \numberedsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \chapterzzz{#2}
-  \else
-    \numberedsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \appendixzzz{#2}
-\or
-  \appendixsectionzzz{#2}
-\or
-  \appendixsubseczzz{#2}
-\or
-  \appendixsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \appendixzzz{#2}
-  \else
-    \appendixsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \unnumberedzzz{#2}
-\or
-  \unnumberedseczzz{#2}
-\or
-  \unnumberedsubseczzz{#2}
-\or
-  \unnumberedsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \unnumberedzzz{#2}
-  \else
-    \unnumberedsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% @chapter, @appendix, @unnumbered.
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
-                                  {\the\chapno}}}%
-\temp
-\donoderef
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1
-\message{\putwordAppendix\space \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
-                       {\putwordAppendix{} \appendixletter}}}%
-\temp
-\appendixnoderef
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-% @top is like @unnumbered.
-\outer\def\top{\parsearg\unnumberedyyy}
-
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message.  Therefore, if #1 contained @-commands, TeX
-% expanded them.  For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself.  We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of <toks register>.  (We also do this for
-% the toc entries.)
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}
-
-% Sections.
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
-                                  {\the\chapno}{\the\secno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
-                                  {\appendixletter}{\the\secno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsections.
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
-                                    {\the\chapno}{\the\secno}{\the\subsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
-                                {\appendixletter}{\the\secno}{\the\subsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
-                                    {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsubsections.
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
-  {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
-  {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
-  {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
-  {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
-                                    {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-%       1) We use \vbox rather than the earlier \line to permit
-%          overlong headings to fold.
-%       2) \hyphenpenalty is set to 10000 because hyphenation in a
-%          heading is obnoxious; this forbids it.
-%       3) Likewise, headings look best if no \parindent is used, and
-%          if justification is not attempted.  Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                  \parindent=0pt\raggedright
-                  \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                  \parindent=0pt\raggedright
-                  \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
-  \pchapsepmacro
-  {%
-    \chapfonts \rm
-    \def\chapnum{#2}%
-    \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
-          \hangindent = \wd0 \centerparametersmaybe
-          \unhbox0 #1\par}%
-  }%
-  \nobreak\bigskip % no page break after a chapter title
-  \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
-  \def\centerparametersmaybe{%
-    \advance\rightskip by 3\rightskip
-    \leftskip = \rightskip
-    \parfillskip = 0pt
-  }%
-  \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt\raggedright
-                       \rm #1\hfill}}\bigskip \par\nobreak
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt
-                       \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
-  {%
-    \expandafter\advance\csname #1headingskip\endcsname by \parskip
-    \csname #1headingbreak\endcsname
-  }%
-  {%
-    % Switch to the right set of fonts.
-    \csname #1fonts\endcsname \rm
-    %
-    % Only insert the separating space if we have a section number.
-    \def\secnum{#2}%
-    \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
-    %
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
-          \hangindent = \wd0 % zero if no section number
-          \unhbox0 #3}%
-  }%
-  \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc,}
-\newwrite\tocfile
-
-% Write an entry to the toc file, opening it if necessary.
-% Called from @chapter, etc.  We supply {\folio} at the end of the
-% argument, which will end up as the last argument to the \...entry macro.
-% 
-% We open the .toc file here instead of at @setfilename or any other
-% given time so that @contents can be put in the document anywhere.
-% 
-\newif\iftocfileopened
-\def\writetocentry#1{%
-  \iftocfileopened\else
-    \immediate\openout\tocfile = \jobname.toc
-    \global\tocfileopenedtrue
-  \fi
-  \iflinks \write\tocfile{#1{\folio}}\fi
-}
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\newcount\savepageno
-\newcount\lastnegativepageno \lastnegativepageno = -1
-
-% Finish up the main text and prepare to read what we've written
-% to \tocfile.
-% 
-\def\startcontents#1{%
-   % If @setchapternewpage on, and @headings double, the contents should
-   % start on an odd page, unlike chapters.  Thus, we maintain
-   % \contentsalignmacro in parallel with \pagealignmacro.
-   % From: Torbjorn Granlund <tege@matematik.su.se>
-   \contentsalignmacro
-   \immediate\closeout\tocfile
-   %
-   % Don't need to put `Contents' or `Short Contents' in the headline.
-   % It is abundantly clear what they are.
-   \unnumbchapmacro{#1}\def\thischapter{}%
-   \savepageno = \pageno
-   \begingroup                  % Set up to handle contents files properly.
-      \catcode`\\=0  \catcode`\{=1  \catcode`\}=2  \catcode`\@=11
-      % We can't do this, because then an actual ^ in a section
-      % title fails, e.g., @chapter ^ -- exponentiation.  --karl, 9jul97.
-      %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
-      \raggedbottom             % Worry more about breakpoints than the bottom.
-      \advance\hsize by -\contentsrightmargin % Don't use the full line length.
-      %
-      % Roman numerals for page numbers.
-      \ifnum \pageno>0 \pageno = \lastnegativepageno \fi
-}
-
-
-% Normal (long) toc.
-\def\contents{%
-   \startcontents{\putwordTableofContents}%
-     \openin 1 \jobname.toc
-     \ifeof 1 \else
-       \closein 1
-       \input \jobname.toc
-     \fi
-     \vfill \eject
-   \endgroup
-   \lastnegativepageno = \pageno
-   \pageno = \savepageno
-}
-
-% And just the chapters.
-\def\summarycontents{%
-   \startcontents{\putwordShortContents}%
-      %
-      \let\chapentry = \shortchapentry
-      \let\unnumbchapentry = \shortunnumberedentry
-      % We want a true roman here for the page numbers.
-      \secfonts
-      \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
-      \rm
-      \hyphenpenalty = 10000
-      \advance\baselineskip by 1pt % Open it up a little.
-      \def\secentry ##1##2##3##4{}
-      \def\unnumbsecentry ##1##2{}
-      \def\subsecentry ##1##2##3##4##5{}
-      \def\unnumbsubsecentry ##1##2{}
-      \def\subsubsecentry ##1##2##3##4##5##6{}
-      \def\unnumbsubsubsecentry ##1##2{}
-      \openin 1 \jobname.toc
-      \ifeof 1 \else
-        \closein 1
-        \input \jobname.toc
-      \fi
-     \vfill \eject
-   \endgroup
-   \lastnegativepageno = \pageno
-   \pageno = \savepageno
-}
-\let\shortcontents = \summarycontents
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
-  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-\setbox0 = \hbox{\shortcontrm \putwordAppendix }
-\newdimen\shortappendixwidth \shortappendixwidth = \wd0
-
-\def\shortchaplabel#1{%
-  % We typeset #1 in a box of constant width, regardless of the text of
-  % #1, so the chapter titles will come out aligned.
-  \setbox0 = \hbox{#1}%
-  \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
-  %
-  % This space should be plenty, since a single number is .5em, and the
-  % widest letter (M) is 1em, at least in the Computer Modern fonts.
-  % (This space doesn't include the extra space that gets added after
-  % the label; that gets put in by \shortchapentry above.)
-  \advance\dimen0 by 1.1em
-  \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
-  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
-   \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
-   \begingroup
-     \chapentryfonts
-     \tocentry{#1}{\dopageno{#2}}%
-   \endgroup
-   \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
-  \secentryfonts \leftskip=\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
-  \subsecentryfonts \leftskip=2\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
-  \subsubsecentryfonts \leftskip=3\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here.  (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
-  \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
-  % Do not use \turnoffactive in these arguments.  Since the toc is
-  % typeset in cmr, so characters such as _ would come out wrong; we
-  % have to do the usual translation tricks.
-  \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox    \newbox\longdblarrowbox
-\newbox\pushcharbox    \newbox\bullbox
-\newbox\equivbox       \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-%                                      depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
-   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
-   \advance\hsize by -2\dimen2 % Rules.
-   \vbox{
-      \hrule height\dimen2
-      \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
-         \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
-         \kern3pt\vrule width\dimen2}% Space to right.
-      \hrule height\dimen2}
-    \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex    escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
-  \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
-  \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
-  \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
-  \catcode `\%=14
-  \catcode 43=12 % plus
-  \catcode`\"=12
-  \catcode`\==12
-  \catcode`\|=12
-  \catcode`\<=12
-  \catcode`\>=12
-  \escapechar=`\\
-  %
-  \let\b=\ptexb
-  \let\bullet=\ptexbullet
-  \let\c=\ptexc
-  \let\,=\ptexcomma
-  \let\.=\ptexdot
-  \let\dots=\ptexdots
-  \let\equiv=\ptexequiv
-  \let\!=\ptexexclam
-  \let\i=\ptexi
-  \let\{=\ptexlbrace
-  \let\+=\tabalign
-  \let\}=\ptexrbrace
-  \let\*=\ptexstar
-  \let\t=\ptext
-  %
-  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
-  \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
-  \def\@{@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments.  \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output.  Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is.  This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical.  We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
-% environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
-        \ctl\leaders\hrule height\circthick\hfil\ctr
-        \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
-        \cbl\leaders\hrule height\circthick\hfil\cbr
-        \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
-        \lskip=\leftskip \rskip=\rightskip
-        \leftskip=0pt\rightskip=0pt %we want these *outside*.
-        \cartinner=\hsize \advance\cartinner by-\lskip
-                          \advance\cartinner by-\rskip
-        \cartouter=\hsize
-        \advance\cartouter by 18.4pt % allow for 3pt kerns on either
-%                                    side, and for 6pt waste from
-%                                    each corner char, and rule thickness
-        \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
-        % Flag to tell @lisp, etc., not to narrow margin.
-        \let\nonarrowing=\comment
-        \vbox\bgroup
-                \baselineskip=0pt\parskip=0pt\lineskip=0pt
-                \carttop
-                \hbox\bgroup
-                        \hskip\lskip
-                        \vrule\kern3pt
-                        \vbox\bgroup
-                                \hsize=\cartinner
-                                \kern3pt
-                                \begingroup
-                                        \baselineskip=\normbskip
-                                        \lineskip=\normlskip
-                                        \parskip=\normpskip
-                                        \vskip -\parskip
-\def\Ecartouche{%
-                                \endgroup
-                                \kern3pt
-                        \egroup
-                        \kern3pt\vrule
-                        \hskip\rskip
-                \egroup
-                \cartbot
-        \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
-  \aboveenvbreak
-  \inENV % This group ends at the end of the body
-  \hfuzz = 12pt % Don't be fussy
-  \sepspaces % Make spaces be word-separators rather than space tokens.
-  \singlespace
-  \let\par = \lisppar % don't ignore blank lines
-  \obeylines % each line of input is a line of output
-  \parskip = 0pt
-  \parindent = 0pt
-  \emergencystretch = 0pt % don't try to avoid overfull boxes
-  % @cartouche defines \nonarrowing to inhibit narrowing
-  % at next level down.
-  \ifx\nonarrowing\relax
-    \advance \leftskip by \lispnarrowing
-    \exdentamount=\lispnarrowing
-    \let\exdent=\nofillexdent
-    \let\nonarrowing=\relax
-  \fi
-}
-
-% Define the \E... control sequence only if we are inside the particular
-% environment, so the error checking in \end will work.
-% 
-% To end an @example-like environment, we first end the paragraph (via
-% \afterenvbreak's vertical glue), and then the group.  That way we keep
-% the zero \parskip that the environments set -- \parskip glue will be
-% inserted at the beginning of the next paragraph in the document, after
-% the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}
-
-% @lisp: indented, narrowed, typewriter font.
-\def\lisp{\begingroup
-  \nonfillstart
-  \let\Elisp = \nonfillfinish
-  \tt
-  \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
-  \gobble       % eat return
-}
-
-% @example: Same as @lisp.
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-
-% @small... is usually equivalent to the non-small (@smallbook
-% redefines).  We must call \example (or whatever) last in the
-% definition, since it reads the return following the @example (or
-% whatever) command.
-% 
-% This actually allows (for example) @end display inside an
-% @smalldisplay.  Too bad, but makeinfo will catch the error anyway.
-%
-\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display}
-\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format}
-\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts.
-% Originally contributed by Pavel@xerox.
-\def\smalllispx{\begingroup
-  \def\Esmalllisp{\nonfillfinish\endgroup}%
-  \def\Esmallexample{\nonfillfinish\endgroup}%
-  \indexfonts
-  \lisp
-}
-
-% @display: same as @lisp except keep current font.
-%
-\def\display{\begingroup
-  \nonfillstart
-  \let\Edisplay = \nonfillfinish
-  \gobble
-}
-
-% @smalldisplay (when @smallbook): @display plus smaller fonts.
-%
-\def\smalldisplayx{\begingroup
-  \def\Esmalldisplay{\nonfillfinish\endgroup}%
-  \indexfonts \rm
-  \display
-}
-
-% @format: same as @display except don't narrow margins.
-%
-\def\format{\begingroup
-  \let\nonarrowing = t
-  \nonfillstart
-  \let\Eformat = \nonfillfinish
-  \gobble
-}
-
-% @smallformat (when @smallbook): @format plus smaller fonts.
-%
-\def\smallformatx{\begingroup
-  \def\Esmallformat{\nonfillfinish\endgroup}%
-  \indexfonts \rm
-  \format
-}
-
-% @flushleft (same as @format).
-%
-\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
-
-% @flushright.
-% 
-\def\flushright{\begingroup
-  \let\nonarrowing = t
-  \nonfillstart
-  \let\Eflushright = \nonfillfinish
-  \advance\leftskip by 0pt plus 1fill
-  \gobble
-}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
-  \begingroup\inENV %This group ends at the end of the @quotation body
-  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
-  \singlespace
-  \parindent=0pt
-  % We have retained a nonzero parskip for the environment, since we're
-  % doing normal filling. So to avoid extra space below the environment...
-  \def\Equotation{\parskip = 0pt \nonfillfinish}%
-  %
-  % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
-  \ifx\nonarrowing\relax
-    \advance\leftskip by \lispnarrowing
-    \advance\rightskip by \lispnarrowing
-    \exdentamount = \lispnarrowing
-    \let\nonarrowing = \relax
-  \fi
-}
-
-
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc.  For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
-  \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
-  % also in that case restore the outer-level definition of (.
-  \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
-  \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text.  This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\def\ampnr{\&}
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\noindent
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2
-\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip        % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-%    such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-% 
-\def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-% @deftypemethod has an extra argument that nothing else does.  Sigh.
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-% #5 is the method's return type.
-% 
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody.  It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
-  \begingroup\inENV %
-  \medbreak %
-  % Define the end token that this defining construct specifies
-  % so that it will exit this group.
-  \def#1{\endgraf\endgroup\medbreak}%
-  \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
-  \parindent=0in
-  \advance\leftskip by \defbodyindent
-  \exdentamount=\defbodyindent
-  \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
-  \parsebodycommon{#1}{#2}{#3}%
-  \spacesplit{#3{#4}}%
-}
-
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument.  Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name.  That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
-  \parsebodycommon{#1}{#2}{#3}%
-  \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any).  That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
-  #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-%  the first is all of #2 before the space token,
-%  the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs #1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-\hyphenchar\tensl=0
-#1%
-\hyphenchar\tensl=45
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type.  #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification.  #2 is the data type.  #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-%               at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special Form}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
-\def\defunx #1 {\errmessage{@defunx in invalid context}}
-\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
-\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
-\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypefunx #1 {\errmessage{@deftypefunx in invalid context}}
-
-% @defmethod, and so on
-
-% @defop CATEGORY CLASS OPERATION ARG...
-
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-
-\def\defopheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypemethod CLASS RETURN-TYPE METHOD ARG...
-%
-\def\deftypemethod{%
-  \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
-  \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
-  \begingroup
-    \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
-    \deftypefunargs{#4}%
-  \endgroup
-}
-
-% @defmethod == @defop Method
-%
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-%
-% #1 is the class name, #2 the method name, #3 the args.
-\def\defmethodheader#1#2#3{%
-  \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index
-  \begingroup
-    \defname{#2}{\putwordMethodon\ \code{#1}}%
-    \defunargs{#3}%
-  \endgroup
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype{} of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar == @defcv {Instance Variable}
-
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance Variable of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-
-\def\defopx #1 {\errmessage{@defopx in invalid context}}
-\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
-\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
-\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
-
-% Now @defvar
-
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type.  #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
-
-\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
-\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
-
-\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
-
-
-\message{macros,}
-% @macro.
-
-% To do this right we need a feature of e-TeX, \scantokens, 
-% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
- \newwrite\macscribble
- \def\scanmacro#1{%
-   \begingroup \newlinechar`\^^M
-   \immediate\openout\macscribble=\jobname.tmp
-   \immediate\write\macscribble{#1}%
-   \immediate\closeout\macscribble
-   \let\xeatspaces\eatspaces
-   \input \jobname.tmp
-   \endgroup
-}
-\else
-\def\scanmacro#1{%
-\begingroup \newlinechar`\^^M
-\let\xeatspaces\eatspaces\scantokens{#1}\endgroup}
-\fi
-
-\newcount\paramno   % Count of parameters
-\newtoks\macname    % Macro name
-\newif\ifrecursive  % Is it recursive?
-
-% Utility routines.
-% Thisdoes \let #1 = #2, except with \csnames.
-\def\cslet#1#2{%
-\expandafter\expandafter
-\expandafter\let
-\expandafter\expandafter
-\csname#1\endcsname
-\csname#2\endcsname}
-
-% Trim leading and trailing spaces off a string.
-% Concepts from aro-bend problem 15 (see CTAN).
-{\catcode`\@=11
-\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
-\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
-\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
-\def\unbrace#1{#1}
-\unbrace{\gdef\trim@@@ #1 } #2@{#1}
-}
-
-% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=12\catcode`\Q=3%
-\gdef\eatcr #1{\eatcra #1Q^^MQ}%
-\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
-\gdef\eatcrb#1Q#2Q{#1}%
-}
-
-% Macro bodies are absorbed as an argument in a context where
-% all characters are catcode 10, 11 or 12, except \ which is active
-% (as in normal texinfo). It is necessary to change the definition of \.
-
-% It's necessary to have hard CRs when the macro is executed. This is 
-% done by  making ^^M (\endlinechar) catcode 12 when reading the macro 
-% body, and then making it the \newlinechar in \scanmacro.
-
-\def\macrobodyctxt{%
-  \catcode`\~=12
-  \catcode`\^=12
-  \catcode`\_=12
-  \catcode`\|=12
-  \catcode`\<=12
-  \catcode`\>=12
-  \catcode`\+=12
-  \catcode`\{=12
-  \catcode`\}=12
-  \catcode`\@=12
-  \catcode`\^^M=12
-  \usembodybackslash}
-
-\def\macroargctxt{%
-  \catcode`\~=12
-  \catcode`\^=12
-  \catcode`\_=12
-  \catcode`\|=12
-  \catcode`\<=12
-  \catcode`\>=12
-  \catcode`\+=12
-  \catcode`\@=12
-  \catcode`\\=12}
-
-% \mbodybackslash is the definition of \ in @macro bodies.
-% It maps \foo\ => \csname macarg.foo\endcsname => #N 
-% where N is the macro parameter number.
-% We define \csname macarg.\endcsname to be \realbackslash, so
-% \\ in macro replacement text gets you a backslash.
-
-{\catcode`@=0 @catcode`@\=@active
- @gdef@usembodybackslash{@let\=@mbodybackslash}
- @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
-}
-\expandafter\def\csname macarg.\endcsname{\realbackslash}
-
-\def\macro{\recursivefalse\parsearg\macroxxx}
-\def\rmacro{\recursivetrue\parsearg\macroxxx}
-
-\def\macroxxx#1{%
-  \getargs{#1}%           now \macname is the macname and \argl the arglist
-  \ifx\argl\empty       % no arguments
-     \paramno=0%
-  \else
-     \expandafter\parsemargdef \argl;% 
-  \fi
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-     \cslet{macsave.\the\macname}{\the\macname}%
-  \else
-     \message{Warning: redefining \the\macname}%
-  \fi
-  \begingroup \macrobodyctxt
-  \ifrecursive \expandafter\parsermacbody
-  \else \expandafter\parsemacbody 
-  \fi}
-
-\def\unmacro{\parsearg\unmacroxxx}
-\def\unmacroxxx#1{%
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-    \errmessage{Macro \the\macname\ not defined.}%
-  \else
-    \cslet{#1}{macsave.#1}%
-    \expandafter\let \csname macsave.\the\macname\endcsname \undefined
-  \fi
-}
-
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
-\def\getargs#1{\getargsxxx#1{}}
-\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
-\def\getmacname #1 #2\relax{\macname={#1}}
-\def\getmacargs#1{\def\argl{#1}}
-
-% Parse the optional {params} list.  Set up \paramno and \paramlist
-% so \defmacro knows what to do.  Define \macarg.blah for each blah
-% in the params list, to be ##N where N is the position in that list.
-% That gets used by \mbodybackslash (above).
-
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX:  let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
-
-\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
-        \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
-\def\parsemargdefxxx#1,{%
-  \if#1;\let\next=\relax
-  \else \let\next=\parsemargdefxxx
-    \advance\paramno by 1%
-    \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
-        {\xeatspaces{\hash\the\paramno}}%
-    \edef\paramlist{\paramlist\hash\the\paramno,}%
-  \fi\next}
-
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-
-\long\def\parsemacbody#1@end macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\long\def\parsermacbody#1@end rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
-% Much magic with \expandafter here.
-% \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
-\def\defmacro{%
-  \let\hash=##% convert placeholders to macro parameter chars
-  \ifrecursive
-    \ifcase\paramno
-    % 0
-      \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\scanmacro{\temp}}%
-    \or % 1
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
-      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
-         \egroup\noexpand\scanmacro{\temp}}%
-    \else % many
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\csname\the\macname xx\endcsname}
-      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
-      \expandafter\expandafter
-      \expandafter\xdef
-      \expandafter\expandafter
-        \csname\the\macname xxx\endcsname 
-          \paramlist{\egroup\noexpand\scanmacro{\temp}}%
-    \fi
-  \else
-    \ifcase\paramno
-    % 0
-      \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\norecurse{\the\macname}%
-        \noexpand\scanmacro{\temp}\egroup}%
-    \or % 1
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
-      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
-        \egroup
-        \noexpand\norecurse{\the\macname}%
-        \noexpand\scanmacro{\temp}\egroup}%
-    \else % many
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\csname\the\macname xx\endcsname}
-      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
-      \expandafter\expandafter
-      \expandafter\xdef
-      \expandafter\expandafter
-      \csname\the\macname xxx\endcsname
-      \paramlist{%
-          \egroup
-          \noexpand\norecurse{\the\macname}%
-          \noexpand\scanmacro{\temp}\egroup}%
-    \fi
-  \fi}
-
-\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
-
-% \braceorline decides whether the next nonwhitespace character is a
-% {.  If so it reads up to the closing }, if not, it reads the whole
-% line.  Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
-\def\braceorlinexxx{%
-  \ifx\nchar\bgroup\else
-    \expandafter\parsearg 
-  \fi \next}
-
-
-\message{cross references,}
-\newwrite\auxfile
-
-\newif\ifhavexrefs    % True if xref values are known.
-\newif\ifwarnedxrefs  % True if we warned once that they aren't known.
-
-% @inforef is relatively simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
-  node \samp{\ignorespaces#1{}}}
-
-% @node's job is to define \lastnode.
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-% The sectioning commands (@chapter, etc.) call these.
-\def\donoderef{%
-  \ifx\lastnode\relax\else
-    \expandafter\expandafter\expandafter\setref{\lastnode}%
-      {Ysectionnumberandtype}%
-    \global\let\lastnode=\relax
-  \fi
-}
-\def\unnumbnoderef{%
-  \ifx\lastnode\relax\else
-    \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}%
-    \global\let\lastnode=\relax
-  \fi
-}
-\def\appendixnoderef{%
-  \ifx\lastnode\relax\else
-    \expandafter\expandafter\expandafter\setref{\lastnode}%
-      {Yappendixletterandtype}%
-    \global\let\lastnode=\relax
-  \fi
-}
-
-
-% @anchor{NAME} -- define xref target at arbitrary point.
-% 
-\def\anchor#1{\setref{#1}{Ynothing}}
-
-
-% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
-% NAME-title, NAME-pg, and NAME-SNT.  Called from \foonoderef.  We have
-% to set \indexdummies so commands such as @code in a section title
-% aren't expanded.  It would be nicer not to expand the titles in the
-% first place, but there's so many layers that that is hard to do.
-% 
-\def\setref#1#2{{%
-  \indexdummies
-  \dosetq{#1-title}{Ytitle}%
-  \dosetq{#1-pg}{Ypagenumber}%
-  \dosetq{#1-snt}{#2}
-}}
-
-% @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
-% the node name, #2 the name of the Info cross-reference, #3 the printed
-% node name, #4 the name of the Info file, #5 the name of the printed
-% manual.  All but the node name can be omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
-  \def\printedmanual{\ignorespaces #5}%
-  \def\printednodename{\ignorespaces #3}%
-  \setbox1=\hbox{\printedmanual}%
-  \setbox0=\hbox{\printednodename}%
-  \ifdim \wd0 = 0pt
-    % No printed node name was explicitly given.
-    \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
-      % Use the node name inside the square brackets.
-      \def\printednodename{\ignorespaces #1}%
-    \else
-      % Use the actual chapter/section title appear inside
-      % the square brackets.  Use the real section title if we have it.
-      \ifdim \wd1 > 0pt
-        % It is in another manual, so we don't have it.
-        \def\printednodename{\ignorespaces #1}%
-      \else
-        \ifhavexrefs
-          % We know the real title if we have the xref values.
-          \def\printednodename{\refx{#1-title}{}}%
-        \else
-          % Otherwise just copy the Info node name.
-          \def\printednodename{\ignorespaces #1}%
-        \fi%
-      \fi
-    \fi
-  \fi
-  %
-  % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
-  % insert empty discretionaries after hyphens, which means that it will
-  % not find a line break at a hyphen in a node names.  Since some manuals
-  % are best written with fairly long node names, containing hyphens, this
-  % is a loss.  Therefore, we give the text of the node name again, so it
-  % is as if TeX is seeing it for the first time.
-  \ifdim \wd1 > 0pt
-    \putwordsection{} ``\printednodename'' in \cite{\printedmanual}%
-  \else
-    % _ (for example) has to be the character _ for the purposes of the
-    % control sequence corresponding to the node, but it has to expand
-    % into the usual \leavevmode...\vrule stuff for purposes of
-    % printing. So we \turnoffactive for the \refx-snt, back on for the
-    % printing, back off for the \refx-pg.
-    {\normalturnoffactive
-     % Only output a following space if the -snt ref is nonempty; for
-     % @unnumbered and @anchor, it won't be.
-     \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
-     \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
-    }%
-    % [mynode], 
-    [\printednodename],\space
-    % page 3
-    \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
-  \fi
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \normalturnoffactive so that punctuation chars such as underscore
-% and backslash work in node names.  (\turnoffactive doesn't do \.)
-\def\dosetq#1#2{%
-  {\let\folio=0
-   \normalturnoffactive
-   \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
-   \iflinks
-     \next
-   \fi
-  }%
-}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
-  \let\linenumber = \empty % Non-3.0.
-\else
-  \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
-  \expandafter\ifx\csname X#1\endcsname\relax
-    % If not defined, say something at least.
-    \angleleft un\-de\-fined\angleright
-    \iflinks
-      \ifhavexrefs
-        \message{\linenumber Undefined cross reference `#1'.}%
-      \else
-        \ifwarnedxrefs\else
-          \global\warnedxrefstrue
-          \message{Cross reference values unknown; you must run TeX again.}%
-        \fi
-      \fi
-    \fi
-  \else
-    % It's defined, so just use it.
-    \csname X#1\endcsname
-  \fi
-  #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-% 
-\def\xrdef#1{\begingroup
-  % Reenable \ as an escape while reading the second argument.
-  \catcode`\\ = 0
-  \afterassignment\endgroup
-  \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any.  No error if none exists.
-\def\readauxfile{\begingroup
-  \catcode`\^^@=\other
-  \catcode`\^^A=\other
-  \catcode`\^^B=\other
-  \catcode`\^^C=\other
-  \catcode`\^^D=\other
-  \catcode`\^^E=\other
-  \catcode`\^^F=\other
-  \catcode`\^^G=\other
-  \catcode`\^^H=\other
-  \catcode`\^^K=\other
-  \catcode`\^^L=\other
-  \catcode`\^^N=\other
-  \catcode`\^^P=\other
-  \catcode`\^^Q=\other
-  \catcode`\^^R=\other
-  \catcode`\^^S=\other
-  \catcode`\^^T=\other
-  \catcode`\^^U=\other
-  \catcode`\^^V=\other
-  \catcode`\^^W=\other
-  \catcode`\^^X=\other
-  \catcode`\^^Z=\other
-  \catcode`\^^[=\other
-  \catcode`\^^\=\other
-  \catcode`\^^]=\other
-  \catcode`\^^^=\other
-  \catcode`\^^_=\other
-  \catcode`\@=\other
-  \catcode`\^=\other
-  % It was suggested to define this as 7, which would allow ^^e4 etc.
-  % in xref tags, i.e., node names.  But since ^^e4 notation isn't
-  % supported in the main text, it doesn't seem desirable.  Furthermore,
-  % that is not enough: for node names that actually contain a ^
-  % character, we would end up writing a line like this: 'xrdef {'hat
-  % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
-  % argument, and \hat is not an expandable control sequence.  It could
-  % all be worked out, but why?  Either we support ^^ or we don't.
-  %
-  % The other change necessary for this was to define \auxhat:
-  % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
-  % and then to call \auxhat in \setq.
-  %
-  \catcode`\~=\other
-  \catcode`\[=\other
-  \catcode`\]=\other
-  \catcode`\"=\other
-  \catcode`\_=\other
-  \catcode`\|=\other
-  \catcode`\<=\other
-  \catcode`\>=\other
-  \catcode`\$=\other
-  \catcode`\#=\other
-  \catcode`\&=\other
-  \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
-  % Make the characters 128-255 be printing characters
-  {%
-    \count 1=128
-    \def\loop{%
-      \catcode\count 1=\other
-      \advance\count 1 by 1
-      \ifnum \count 1<256 \loop \fi
-    }%
-  }%
-  % The aux file uses ' as the escape (for now).
-  % Turn off \ as an escape so we do not lose on
-  % entries which were dumped with control sequences in their names.
-  % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
-  % Reference to such entries still does not work the way one would wish,
-  % but at least they do not bomb out when the aux file is read in.
-  \catcode`\{=1
-  \catcode`\}=2
-  \catcode`\%=\other
-  \catcode`\'=0
-  \catcode`\\=\other
-  %
-  \openin 1 \jobname.aux
-  \ifeof 1 \else
-    \closein 1
-    \input \jobname.aux
-    \global\havexrefstrue
-    \global\warnedobstrue
-  \fi
-  % Open the new aux file.  TeX will close it automatically at exit.
-  \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode `\@=11
-%
-% Auto-number footnotes.  Otherwise like plain.
-\gdef\footnote{%
-  \global\advance\footnoteno by \@ne
-  \edef\thisfootno{$^{\the\footnoteno}$}%
-  %
-  % In case the footnote comes at the end of a sentence, preserve the
-  % extra spacing after we do the footnote number.
-  \let\@sf\empty
-  \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
-  %
-  % Remove inadvertent blank space before typesetting the footnote number.
-  \unskip
-  \thisfootno\@sf
-  \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter.  Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read.  --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
-  % We want to typeset this text as a normal paragraph, even if the
-  % footnote reference occurs in (for example) a display environment.
-  % So reset some parameters.
-  \interlinepenalty\interfootnotelinepenalty
-  \splittopskip\ht\strutbox % top baseline for broken footnotes
-  \splitmaxdepth\dp\strutbox
-  \floatingpenalty\@MM
-  \leftskip\z@skip
-  \rightskip\z@skip
-  \spaceskip\z@skip
-  \xspaceskip\z@skip
-  \parindent\defaultparindent
-  %
-  % Hang the footnote text off the number.
-  \hang
-  \textindent{\thisfootno}%
-  %
-  % Don't crash into the line above the footnote text.  Since this
-  % expands into a box, it must come within the paragraph, lest it
-  % provide a place where TeX can split the footnote.
-  \footstrut
-  \futurelet\next\fo@t
-}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
-  \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\egroup}
-
-}%end \catcode `\@=11
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly.  There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
-  \normalbaselineskip = #1\relax
-  \normallineskip = \lineskipfactor\normalbaselineskip
-  \normalbaselines
-  \setbox\strutbox =\hbox{%
-    \vrule width0pt height\strutheightpercent\baselineskip
-                    depth \strutdepthpercent \baselineskip
-  }%
-}
-
-% @| inserts a changebar to the left of the current line.  It should
-% surround any changed text.  This approach does *not* work if the
-% change spans more than two lines of output.  To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
-  % \vadjust can only be used in horizontal mode.
-  \leavevmode
-  %
-  % Append this vertical mode material after the current line in the output.
-  \vadjust{%
-    % We want to insert a rule with the height and depth of the current
-    % leading; that is exactly what \strutbox is supposed to record.
-    \vskip-\baselineskip
-    %
-    % \vadjust-items are inserted at the left edge of the type.  So
-    % the \llap here moves out into the left-hand margin.
-    \llap{%
-      %
-      % For a thicker or thinner bar, change the `1pt'.
-      \vrule height\baselineskip width1pt
-      %
-      % This is the space between the bar and the text.
-      \hskip 12pt
-    }%
-  }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image.  We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-% 
-% Check for and read epsf.tex up front.  If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
-  \closein 1
-  % Do not bother showing banner with post-v2.7 epsf.tex (available in
-  % doc/epsf.tex until it shows up on ctan).
-  \def\epsfannounce{\toks0 = }%
-  \input epsf.tex
-\fi
-%
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
-  work.  It is also included in the Texinfo distribution, or you can get
-  it from ftp://ftp.tug.org/tex/epsf.tex.}
-%
-% Only complain once about lack of epsf.tex.
-\def\image#1{%
-  \ifx\epsfbox\undefined
-    \ifwarnednoepsf \else
-      \errhelp = \noepsfhelp
-      \errmessage{epsf.tex not found, images will be ignored}%
-      \global\warnednoepsftrue
-    \fi
-  \else
-    \imagexxx #1,,,\finish
-  \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
-  % \epsfbox itself resets \epsf?size at each figure.
-  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
-  \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
-  % If the image is by itself, center it.
-  \ifvmode
-    \nobreak\medskip
-    \nobreak
-    \centerline{\epsfbox{#1.eps}}%
-    \bigbreak
-  \else
-    \epsfbox{#1.eps}%
-  \fi
-}
-
-
-\message{paper sizes,}
-% And other related parameters.
-
-\newdimen\defaultparindent \defaultparindent = 15pt
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness = 10000
-
-% Don't be so finicky about underfull hboxes, either.
-\hbadness = 2000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything.  We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize.  This makes it come to about 9pt for the 8.5x11 format.  We
-% call this whenever the paper size is set.
-%
-\def\setemergencystretch{%
-  \ifx\emergencystretch\thisisundefined
-    % Allow us to assign to \emergencystretch anyway.
-    \def\emergencystretch{\dimen0}%
-  \else
-    \emergencystretch = \hsize
-    \divide\emergencystretch by 45
-  \fi
-}
-
-% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip.  Then whoever calls us can
-% set \parskip and call \setleading for \baselineskip.
-%
-\def\internalpagesizes#1#2#3#4#5#6{%
-  \voffset = #3\relax
-  \topskip = #6\relax
-  \splittopskip = \topskip
-  %
-  \vsize = #1\relax
-  \advance\vsize by \topskip
-  \outervsize = \vsize
-  \advance\outervsize by 2\topandbottommargin
-  \pageheight = \vsize
-  %
-  \hsize = #2\relax
-  \outerhsize = \hsize
-  \advance\outerhsize by 0.5in
-  \pagewidth = \hsize
-  %
-  \normaloffset = #4\relax
-  \bindingoffset = #5\relax
-  %
-  \parindent = \defaultparindent
-  \setemergencystretch
-}
-
-% @letterpaper (the default).
-\def\letterpaper{{\globaldefs = 1
-  \parskip = 3pt plus 2pt minus 1pt
-  \setleading{13.2pt}%
-  %
-  % If page is nothing but text, make it come out even.
-  \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}%
-}}
-
-% Use @smallbook to reset parameters for 7x9.5 (or so) format.
-\def\smallbook{{\globaldefs = 1
-  \parskip = 2pt plus 1pt
-  \setleading{12pt}%
-  %
-  \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}%
-  %
-  \lispnarrowing = 0.3in
-  \tolerance = 700
-  \hfuzz = 1pt
-  \contentsrightmargin = 0pt
-  \deftypemargin = 0pt
-  \defbodyindent = .5cm
-  %
-  \let\smalldisplay = \smalldisplayx
-  \let\smallexample = \smalllispx
-  \let\smallformat = \smallformatx
-  \let\smalllisp = \smalllispx
-}}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{{\globaldefs = 1
-  \setleading{12pt}%
-  \parskip = 3pt plus 2pt minus 1pt
-  %
-  \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%
-  %
-  \tolerance = 700
-  \hfuzz = 1pt
-}}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper.  Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex{{\globaldefs = 1
-  \setleading{13.6pt}%
-  %
-  \afourpaper
-  \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
-  %
-  \globaldefs = 0
-}}
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{%
-  \afourpaper
-  \internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
-  %
-  \globaldefs = 0
-}
-
-% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
-% Perhaps we should allow setting the margins, \topskip, \parskip,
-% and/or leading, also. Or perhaps we should compute them somehow.
-% 
-\def\pagesizes{\parsearg\pagesizesxxx}
-\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
-\def\pagesizesyyy#1,#2,#3\finish{{%
-  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
-  \globaldefs = 1
-  %
-  \parskip = 3pt plus 2pt minus 1pt
-  \setleading{13.2pt}%
-  %
-  \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}%
-}}
-
-% Set default to letter.
-% 
-\letterpaper
-
-\message{and turning on texinfo input format.}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise.  Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt\char34}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt\char124}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-\catcode`\@=0
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% Say @foo, not \foo, in error messages.
-\escapechar=`\@
-
-% \catcode 17=0   % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi
-  @catcode`+=@active @catcode`@_=@active}
-
-% These look ok in all fonts, so just make them not special.  The @rm below
-% makes sure that the current font starts out as the newly loaded cmr10
-@catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other
-
-@textfonts
-@rm
-
-@c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c page-delimiter: "^\\\\message"
-@c time-stamp-start: "def\\\\texinfoversion{"
-@c time-stamp-format: "%:y-%02m-%02d"
-@c time-stamp-end: "}"
-@c End:
diff --git a/glib/garray.c b/glib/garray.c
deleted file mode 100644
index d018ec7..0000000
--- a/glib/garray.c
+++ /dev/null
@@ -1,490 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <string.h>
-#include "glib.h"
-
-
-#define MIN_ARRAY_SIZE  16
-
-
-typedef struct _GRealArray  GRealArray;
-
-struct _GRealArray
-{
-  guint8 *data;
-  guint   len;
-  guint   alloc;
-  guint   elt_size;
-  guint   zero_terminated : 1;
-  guint   clear : 1;
-};
-
-
-static gint g_nearest_pow        (gint        num);
-static void g_array_maybe_expand (GRealArray *array,
-				  gint        len);
-
-static GMemChunk *array_mem_chunk = NULL;
-G_LOCK_DEFINE_STATIC (array_mem_chunk);
-
-GArray*
-g_array_new (gboolean zero_terminated,
-	     gboolean clear,
-	     guint    elt_size)
-{
-  GRealArray *array;
-
-  G_LOCK (array_mem_chunk);
-  if (!array_mem_chunk)
-    array_mem_chunk = g_mem_chunk_new ("array mem chunk",
-				       sizeof (GRealArray),
-				       1024, G_ALLOC_AND_FREE);
-
-  array = g_chunk_new (GRealArray, array_mem_chunk);
-  G_UNLOCK (array_mem_chunk);
-
-  array->data            = NULL;
-  array->len             = 0;
-  array->alloc           = 0;
-  array->zero_terminated = (zero_terminated ? 1 : 0);
-  array->clear           = (clear ? 1 : 0);
-  array->elt_size        = elt_size;
-
-  return (GArray*) array;
-}
-
-void
-g_array_free (GArray  *array,
-	      gboolean free_segment)
-{
-  if (free_segment)
-    g_free (array->data);
-
-  G_LOCK (array_mem_chunk);
-  g_mem_chunk_free (array_mem_chunk, array);
-  G_UNLOCK (array_mem_chunk);
-}
-
-GArray*
-g_array_append_vals (GArray       *farray,
-		     gconstpointer data,
-		     guint         len)
-{
-  GRealArray *array = (GRealArray*) farray;
-
-  g_array_maybe_expand (array, len);
-
-  memcpy (array->data + array->elt_size * array->len, data, array->elt_size * len);
-
-  array->len += len;
-
-  return farray;
-}
-
-GArray*
-g_array_prepend_vals (GArray        *farray,
-		      gconstpointer  data,
-		      guint          len)
-{
-  GRealArray *array = (GRealArray*) farray;
-
-  g_array_maybe_expand (array, len);
-
-  g_memmove (array->data + array->elt_size * len, array->data, array->elt_size * array->len);
-
-  memcpy (array->data, data, len * array->elt_size);
-
-  array->len += len;
-
-  return farray;
-}
-
-GArray*
-g_array_insert_vals (GArray        *farray,
-		     guint          index,
-		     gconstpointer  data,
-		     guint          len)
-{
-  GRealArray *array = (GRealArray*) farray;
-
-  g_array_maybe_expand (array, len);
-
-  g_memmove (array->data + array->elt_size * (len + index), 
-	     array->data + array->elt_size * index, 
-	     array->elt_size * (array->len - index));
-
-  memcpy (array->data + array->elt_size * index, data, len * array->elt_size);
-
-  array->len += len;
-
-  return farray;
-}
-
-GArray*
-g_array_set_size (GArray *farray,
-		  guint   length)
-{
-  GRealArray *array = (GRealArray*) farray;
-
-  if (array->len < length)
-    g_array_maybe_expand (array, length - array->len);
-
-  array->len = length;
-
-  return farray;
-}
-
-GArray*
-g_array_remove_index (GArray* farray,
-		      guint index)
-{
-  GRealArray* array = (GRealArray*) farray;
-
-  g_return_val_if_fail (array, NULL);
-
-  g_return_val_if_fail (index < array->len, NULL);
-
-  if (index != array->len - 1)
-      g_memmove (array->data + array->elt_size * index, 
-		 array->data + array->elt_size * (index + 1), 
-		 array->elt_size * (array->len - index - 1));
-  
-  if (array->zero_terminated)
-    memset (array->data + array->elt_size * (array->len - 1), 0, 
-	    array->elt_size);
-
-  array->len -= 1;
-
-  return farray;
-}
-
-GArray*
-g_array_remove_index_fast (GArray* farray,
-			   guint index)
-{
-  GRealArray* array = (GRealArray*) farray;
-
-  g_return_val_if_fail (array, NULL);
-
-  g_return_val_if_fail (index < array->len, NULL);
-
-  if (index != array->len - 1)
-    g_memmove (array->data + array->elt_size * index, 
-	       array->data + array->elt_size * (array->len - 1), 
-	       array->elt_size);
-  
-  if (array->zero_terminated)
-    memset (array->data + array->elt_size * (array->len - 1), 0, 
-	    array->elt_size);
-
-  array->len -= 1;
-
-  return farray;
-}
-
-static gint
-g_nearest_pow (gint num)
-{
-  gint n = 1;
-
-  while (n < num)
-    n <<= 1;
-
-  return n;
-}
-
-static void
-g_array_maybe_expand (GRealArray *array,
-		      gint        len)
-{
-  guint want_alloc = (array->len + len + array->zero_terminated) * array->elt_size;
-
-  if (want_alloc > array->alloc)
-    {
-      guint old_alloc = array->alloc;
-
-      array->alloc = g_nearest_pow (want_alloc);
-      array->alloc = MAX (array->alloc, MIN_ARRAY_SIZE);
-
-      array->data = g_realloc (array->data, array->alloc);
-
-      if (array->clear || array->zero_terminated)
-	memset (array->data + old_alloc, 0, array->alloc - old_alloc);
-    }
-}
-
-/* Pointer Array
- */
-
-typedef struct _GRealPtrArray  GRealPtrArray;
-
-struct _GRealPtrArray
-{
-  gpointer *pdata;
-  guint     len;
-  guint     alloc;
-};
-
-static void g_ptr_array_maybe_expand (GRealPtrArray *array,
-				      gint           len);
-
-static GMemChunk *ptr_array_mem_chunk = NULL;
-G_LOCK_DEFINE_STATIC (ptr_array_mem_chunk);
-
-
-GPtrArray*
-g_ptr_array_new (void)
-{
-  GRealPtrArray *array;
-
-  G_LOCK (ptr_array_mem_chunk);
-  if (!ptr_array_mem_chunk)
-    ptr_array_mem_chunk = g_mem_chunk_new ("array mem chunk",
-					   sizeof (GRealPtrArray),
-					   1024, G_ALLOC_AND_FREE);
-
-  array = g_chunk_new (GRealPtrArray, ptr_array_mem_chunk);
-  G_UNLOCK (ptr_array_mem_chunk);
-
-  array->pdata = NULL;
-  array->len = 0;
-  array->alloc = 0;
-
-  return (GPtrArray*) array;
-}
-
-void
-g_ptr_array_free (GPtrArray   *array,
-		  gboolean  free_segment)
-{
-  g_return_if_fail (array);
-
-  if (free_segment)
-    g_free (array->pdata);
-
-  G_LOCK (ptr_array_mem_chunk);
-  g_mem_chunk_free (ptr_array_mem_chunk, array);
-  G_UNLOCK (ptr_array_mem_chunk);
-}
-
-static void
-g_ptr_array_maybe_expand (GRealPtrArray *array,
-			  gint        len)
-{
-  guint old_alloc;
-
-  if ((array->len + len) > array->alloc)
-    {
-      old_alloc = array->alloc;
-
-      array->alloc = g_nearest_pow (array->len + len);
-      array->alloc = MAX (array->alloc, MIN_ARRAY_SIZE);
-      if (array->pdata)
-	array->pdata = g_realloc (array->pdata, sizeof(gpointer) * array->alloc);
-      else
-	array->pdata = g_new0 (gpointer, array->alloc);
-
-      memset (array->pdata + old_alloc, 0, 
-	      sizeof (gpointer) * (array->alloc - old_alloc));
-    }
-}
-
-void
-g_ptr_array_set_size  (GPtrArray   *farray,
-		       gint	     length)
-{
-  GRealPtrArray* array = (GRealPtrArray*) farray;
-
-  g_return_if_fail (array);
-
-  if (length > array->len)
-    g_ptr_array_maybe_expand (array, (length - array->len));
-
-  array->len = length;
-}
-
-gpointer
-g_ptr_array_remove_index (GPtrArray* farray,
-			  guint index)
-{
-  GRealPtrArray* array = (GRealPtrArray*) farray;
-  gpointer result;
-
-  g_return_val_if_fail (array, NULL);
-
-  g_return_val_if_fail (index < array->len, NULL);
-
-  result = array->pdata[index];
-  
-  if (index != array->len - 1)
-    g_memmove (array->pdata + index, array->pdata + index + 1, 
-	       sizeof (gpointer) * (array->len - index - 1));
-  
-  array->pdata[array->len - 1] = NULL;
-
-  array->len -= 1;
-
-  return result;
-}
-
-gpointer
-g_ptr_array_remove_index_fast (GPtrArray* farray,
-			       guint index)
-{
-  GRealPtrArray* array = (GRealPtrArray*) farray;
-  gpointer result;
-
-  g_return_val_if_fail (array, NULL);
-
-  g_return_val_if_fail (index < array->len, NULL);
-
-  result = array->pdata[index];
-  
-  if (index != array->len - 1)
-    array->pdata[index] = array->pdata[array->len - 1];
-
-  array->pdata[array->len - 1] = NULL;
-
-  array->len -= 1;
-
-  return result;
-}
-
-gboolean
-g_ptr_array_remove (GPtrArray* farray,
-		    gpointer data)
-{
-  GRealPtrArray* array = (GRealPtrArray*) farray;
-  int i;
-
-  g_return_val_if_fail (array, FALSE);
-
-  for (i = 0; i < array->len; i += 1)
-    {
-      if (array->pdata[i] == data)
-	{
-	  g_ptr_array_remove_index (farray, i);
-	  return TRUE;
-	}
-    }
-
-  return FALSE;
-}
-
-gboolean
-g_ptr_array_remove_fast (GPtrArray* farray,
-			 gpointer data)
-{
-  GRealPtrArray* array = (GRealPtrArray*) farray;
-  int i;
-
-  g_return_val_if_fail (array, FALSE);
-
-  for (i = 0; i < array->len; i += 1)
-    {
-      if (array->pdata[i] == data)
-	{
-	  g_ptr_array_remove_index_fast (farray, i);
-	  return TRUE;
-	}
-    }
-
-  return FALSE;
-}
-
-void
-g_ptr_array_add (GPtrArray* farray,
-		 gpointer data)
-{
-  GRealPtrArray* array = (GRealPtrArray*) farray;
-
-  g_return_if_fail (array);
-
-  g_ptr_array_maybe_expand (array, 1);
-
-  array->pdata[array->len++] = data;
-}
-
-/* Byte arrays
- */
-
-GByteArray* g_byte_array_new      (void)
-{
-  return (GByteArray*) g_array_new (FALSE, FALSE, 1);
-}
-
-void	    g_byte_array_free     (GByteArray *array,
-			           gboolean    free_segment)
-{
-  g_array_free ((GArray*) array, free_segment);
-}
-
-GByteArray* g_byte_array_append   (GByteArray *array,
-				   const guint8 *data,
-				   guint       len)
-{
-  g_array_append_vals ((GArray*) array, (guint8*)data, len);
-
-  return array;
-}
-
-GByteArray* g_byte_array_prepend  (GByteArray *array,
-				   const guint8 *data,
-				   guint       len)
-{
-  g_array_prepend_vals ((GArray*) array, (guint8*)data, len);
-
-  return array;
-}
-
-GByteArray* g_byte_array_set_size (GByteArray *array,
-				   guint       length)
-{
-  g_array_set_size ((GArray*) array, length);
-
-  return array;
-}
-
-GByteArray* g_byte_array_remove_index (GByteArray *array,
-				       guint index)
-{
-  g_array_remove_index((GArray*) array, index);
-
-  return array;
-}
-
-GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
-						   guint index)
-{
-  g_array_remove_index_fast((GArray*) array, index);
-
-  return array;
-}
diff --git a/glib/gcache.c b/glib/gcache.c
deleted file mode 100644
index bba7910..0000000
--- a/glib/gcache.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-
-typedef struct _GCacheNode  GCacheNode;
-typedef struct _GRealCache  GRealCache;
-
-struct _GCacheNode
-{
-  /* A reference counted node */
-  gpointer value;
-  gint ref_count;
-};
-
-struct _GRealCache
-{
-  /* Called to create a value from a key */
-  GCacheNewFunc value_new_func;
-
-  /* Called to destroy a value */
-  GCacheDestroyFunc value_destroy_func;
-
-  /* Called to duplicate a key */
-  GCacheDupFunc key_dup_func;
-
-  /* Called to destroy a key */
-  GCacheDestroyFunc key_destroy_func;
-
-  /* Associates keys with nodes */
-  GHashTable *key_table;
-
-  /* Associates nodes with keys */
-  GHashTable *value_table;
-};
-
-
-static GCacheNode* g_cache_node_new     (gpointer value);
-static void        g_cache_node_destroy (GCacheNode *node);
-
-
-static GMemChunk *node_mem_chunk = NULL;
-G_LOCK_DEFINE_STATIC (node_mem_chunk);
-
-GCache*
-g_cache_new (GCacheNewFunc      value_new_func,
-	     GCacheDestroyFunc  value_destroy_func,
-	     GCacheDupFunc      key_dup_func,
-	     GCacheDestroyFunc  key_destroy_func,
-	     GHashFunc          hash_key_func,
-	     GHashFunc          hash_value_func,
-	     GCompareFunc       key_compare_func)
-{
-  GRealCache *cache;
-
-  g_return_val_if_fail (value_new_func != NULL, NULL);
-  g_return_val_if_fail (value_destroy_func != NULL, NULL);
-  g_return_val_if_fail (key_dup_func != NULL, NULL);
-  g_return_val_if_fail (key_destroy_func != NULL, NULL);
-  g_return_val_if_fail (hash_key_func != NULL, NULL);
-  g_return_val_if_fail (hash_value_func != NULL, NULL);
-  g_return_val_if_fail (key_compare_func != NULL, NULL);
-
-  cache = g_new (GRealCache, 1);
-  cache->value_new_func = value_new_func;
-  cache->value_destroy_func = value_destroy_func;
-  cache->key_dup_func = key_dup_func;
-  cache->key_destroy_func = key_destroy_func;
-  cache->key_table = g_hash_table_new (hash_key_func, key_compare_func);
-  cache->value_table = g_hash_table_new (hash_value_func, NULL);
-
-  return (GCache*) cache;
-}
-
-void
-g_cache_destroy (GCache *cache)
-{
-  GRealCache *rcache;
-
-  g_return_if_fail (cache != NULL);
-
-  rcache = (GRealCache*) cache;
-  g_hash_table_destroy (rcache->key_table);
-  g_hash_table_destroy (rcache->value_table);
-  g_free (rcache);
-}
-
-gpointer
-g_cache_insert (GCache   *cache,
-		gpointer  key)
-{
-  GRealCache *rcache;
-  GCacheNode *node;
-  gpointer value;
-
-  g_return_val_if_fail (cache != NULL, NULL);
-
-  rcache = (GRealCache*) cache;
-
-  node = g_hash_table_lookup (rcache->key_table, key);
-  if (node)
-    {
-      node->ref_count += 1;
-      return node->value;
-    }
-
-  key = (* rcache->key_dup_func) (key);
-  value = (* rcache->value_new_func) (key);
-  node = g_cache_node_new (value);
-
-  g_hash_table_insert (rcache->key_table, key, node);
-  g_hash_table_insert (rcache->value_table, value, key);
-
-  return node->value;
-}
-
-void
-g_cache_remove (GCache   *cache,
-		gpointer  value)
-{
-  GRealCache *rcache;
-  GCacheNode *node;
-  gpointer key;
-
-  g_return_if_fail (cache != NULL);
-
-  rcache = (GRealCache*) cache;
-
-  key = g_hash_table_lookup (rcache->value_table, value);
-  node = g_hash_table_lookup (rcache->key_table, key);
-
-  g_return_if_fail (node != NULL);
-
-  node->ref_count -= 1;
-  if (node->ref_count == 0)
-    {
-      g_hash_table_remove (rcache->value_table, value);
-      g_hash_table_remove (rcache->key_table, key);
-
-      (* rcache->key_destroy_func) (key);
-      (* rcache->value_destroy_func) (node->value);
-      g_cache_node_destroy (node);
-    }
-}
-
-void
-g_cache_key_foreach (GCache   *cache,
-		     GHFunc    func,
-		     gpointer  user_data)
-{
-  GRealCache *rcache;
-
-  g_return_if_fail (cache != NULL);
-  g_return_if_fail (func != NULL);
-
-  rcache = (GRealCache*) cache;
-
-  g_hash_table_foreach (rcache->value_table, func, user_data);
-}
-
-void
-g_cache_value_foreach (GCache   *cache,
-		       GHFunc    func,
-		       gpointer  user_data)
-{
-  GRealCache *rcache;
-
-  g_return_if_fail (cache != NULL);
-  g_return_if_fail (func != NULL);
-
-  rcache = (GRealCache*) cache;
-
-  g_hash_table_foreach (rcache->key_table, func, user_data);
-}
-
-
-static GCacheNode*
-g_cache_node_new (gpointer value)
-{
-  GCacheNode *node;
-
-  G_LOCK (node_mem_chunk);
-  if (!node_mem_chunk)
-    node_mem_chunk = g_mem_chunk_new ("cache node mem chunk", sizeof (GCacheNode),
-				      1024, G_ALLOC_AND_FREE);
-
-  node = g_chunk_new (GCacheNode, node_mem_chunk);
-  G_UNLOCK (node_mem_chunk);
-
-  node->value = value;
-  node->ref_count = 1;
-
-  return node;
-}
-
-static void
-g_cache_node_destroy (GCacheNode *node)
-{
-  G_LOCK (node_mem_chunk);
-  g_mem_chunk_free (node_mem_chunk, node);
-  G_UNLOCK (node_mem_chunk);
-}
diff --git a/glib/gcompletion.c b/glib/gcompletion.c
deleted file mode 100644
index 9bc4c9b..0000000
--- a/glib/gcompletion.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-#include <string.h>
-
-static void completion_check_cache (GCompletion* cmp,
-				    gchar**	 new_prefix);
-
-GCompletion* 
-g_completion_new (GCompletionFunc func)
-{
-  GCompletion* gcomp;
-  
-  gcomp = g_new (GCompletion, 1);
-  gcomp->items = NULL;
-  gcomp->cache = NULL;
-  gcomp->prefix = NULL;
-  gcomp->func = func;
-
-  return gcomp;
-}
-
-void 
-g_completion_add_items (GCompletion* cmp,
-			GList*	     items)
-{
-  GList* it;
-  
-  g_return_if_fail (cmp != NULL);
-  g_return_if_fail (items != NULL);
-  
-  /* optimize adding to cache? */
-  if (cmp->cache)
-    {
-      g_list_free (cmp->cache);
-      cmp->cache = NULL;
-    }
-
-  if (cmp->prefix)
-    {
-      g_free (cmp->prefix);
-      cmp->prefix = NULL;
-    }
-  
-  it = items;
-  while (it)
-    {
-      cmp->items = g_list_prepend (cmp->items, it->data);
-      it = it->next;
-    }
-}
-
-void 
-g_completion_remove_items (GCompletion* cmp,
-			   GList*	items)
-{
-  GList* it;
-  
-  g_return_if_fail (cmp != NULL);
-  g_return_if_fail (items != NULL);
-  
-  it = items;
-  while (cmp->items && it)
-    {
-      cmp->items = g_list_remove (cmp->items, it->data);
-      it = it->next;
-    }
-
-  it = items;
-  while (cmp->cache && it)
-    {
-      cmp->cache = g_list_remove(cmp->cache, it->data);
-      it = it->next;
-    }
-}
-
-void 
-g_completion_clear_items (GCompletion* cmp)
-{
-  g_return_if_fail (cmp != NULL);
-  
-  g_list_free (cmp->items);
-  cmp->items = NULL;
-  g_list_free (cmp->cache);
-  cmp->cache = NULL;
-  g_free (cmp->prefix);
-  cmp->prefix = NULL;
-}
-
-static void   
-completion_check_cache (GCompletion* cmp,
-			gchar**	     new_prefix)
-{
-  register GList* list;
-  register gint len;
-  register gint i;
-  register gint plen;
-  gchar* postfix;
-  gchar* s;
-  
-  if (!new_prefix)
-    return;
-  if (!cmp->cache)
-    {
-      *new_prefix = NULL;
-      return;
-    }
-  
-  len = strlen(cmp->prefix);
-  list = cmp->cache;
-  s = cmp->func ? cmp->func (list->data) : (gchar*) list->data;
-  postfix = s + len;
-  plen = strlen (postfix);
-  list = list->next;
-  
-  while (list && plen)
-    {
-      s = cmp->func ? cmp->func (list->data) : (gchar*) list->data;
-      s += len;
-      for (i = 0; i < plen; ++i)
-	{
-	  if (postfix[i] != s[i])
-	    break;
-	}
-      plen = i;
-      list = list->next;
-    }
-  
-  *new_prefix = g_new0 (gchar, len + plen + 1);
-  strncpy (*new_prefix, cmp->prefix, len);
-  strncpy (*new_prefix + len, postfix, plen);
-}
-
-GList* 
-g_completion_complete (GCompletion* cmp,
-		       gchar*	    prefix,
-		       gchar**	    new_prefix)
-{
-  gint plen, len;
-  gint done = 0;
-  GList* list;
-  
-  g_return_val_if_fail (cmp != NULL, NULL);
-  g_return_val_if_fail (prefix != NULL, NULL);
-  
-  len = strlen (prefix);
-  if (cmp->prefix && cmp->cache)
-    {
-      plen = strlen (cmp->prefix);
-      if (plen <= len && !strncmp (prefix, cmp->prefix, plen))
-	{ 
-	  /* use the cache */
-	  list = cmp->cache;
-	  while (list)
-	    {
-	      if (strncmp (prefix,
-			   cmp->func ? cmp->func (list->data) : (gchar*) list->data,
-			   len))
-		{
-		  list = g_list_remove_link (cmp->cache, list);
-		  if (list != cmp->cache)
-		    cmp->cache = list;
-		}
-	      else
-		list = list->next;
-	    }
-	  done = 1;
-	}
-    }
-  
-  if (!done)
-    {
-      /* normal code */
-      g_list_free (cmp->cache);
-      cmp->cache = NULL;
-      list = cmp->items;
-      while (*prefix && list)
-	{
-	  if (!strncmp (prefix,
-			cmp->func ? cmp->func (list->data) : (gchar*) list->data,
-			len))
-	    cmp->cache = g_list_prepend (cmp->cache, list->data);
-	  list = list->next;
-	}
-    }
-  if (cmp->prefix)
-    {
-      g_free (cmp->prefix);
-      cmp->prefix = NULL;
-    }
-  if (cmp->cache)
-    cmp->prefix = g_strdup (prefix);
-  completion_check_cache (cmp, new_prefix);
-  
-  return *prefix ? cmp->cache : cmp->items;
-}
-
-void 
-g_completion_free (GCompletion* cmp)
-{
-  g_return_if_fail (cmp != NULL);
-  
-  g_completion_clear_items (cmp);
-  g_free (cmp);
-}
-
-#ifdef TEST_COMPLETION
-#include <stdio.h>
-int
-main (int   argc,
-      char* argv[])
-{
-  FILE *file;
-  gchar buf[1024];
-  GList *list;
-  GList *result;
-  GList *tmp;
-  GCompletion *cmp;
-  gint i;
-  gchar *longp = NULL;
-  
-  if (argc < 3)
-    {
-      g_warning ("Usage: %s filename prefix1 [prefix2 ...]\n", argv[0]);
-      return 1;
-    }
-  
-  file = fopen (argv[1], "r");
-  if (!file)
-    {
-      g_warning ("Cannot open %s\n", argv[1]);
-      return 1;
-    }
-  
-  cmp = g_completion_new (NULL);
-  list = g_list_alloc ();
-  while (fgets (buf, 1024, file))
-    {
-      list->data = g_strdup (buf);
-      g_completion_add_items (cmp, list);
-    }
-  fclose (file);
-  
-  for (i = 2; i < argc; ++i)
-    {
-      printf ("COMPLETING: %s\n", argv[i]);
-      result = g_completion_complete (cmp, argv[i], &longp);
-      g_list_foreach (result, (GFunc) printf, NULL);
-      printf ("LONG MATCH: %s\n", longp);
-      g_free (longp);
-      longp = NULL;
-    }
-  
-  g_list_foreach (cmp->items, (GFunc) g_free, NULL);
-  g_completion_free (cmp);
-  g_list_free (list);
-  
-  return 0;
-}
-#endif
diff --git a/glib/gdataset.c b/glib/gdataset.c
deleted file mode 100644
index 2aa4032..0000000
--- a/glib/gdataset.c
+++ /dev/null
@@ -1,611 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gdataset.c: Generic dataset mechanism, similar to GtkObject data.
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe ; FIXME: might still freeze, watch out, not thoroughly
- * looked at yet.  
- */
-
-#include        <string.h>
-#include	"glib.h"
-
-
-
-/* --- defines --- */
-#define	G_QUARK_BLOCK_SIZE			(512)
-#define	G_DATA_MEM_CHUNK_PREALLOC		(128)
-#define	G_DATA_CACHE_MAX			(512)
-#define	G_DATASET_MEM_CHUNK_PREALLOC		(32)
-
-
-/* --- structures --- */
-typedef struct _GDataset GDataset;
-struct _GData
-{
-  GData *next;
-  GQuark id;
-  gpointer data;
-  GDestroyNotify destroy_func;
-};
-
-struct _GDataset
-{
-  gconstpointer location;
-  GData        *datalist;
-};
-
-
-/* --- prototypes --- */
-static inline GDataset*	g_dataset_lookup		(gconstpointer	  dataset_location);
-static inline void	g_datalist_clear_i		(GData		**datalist);
-static void		g_dataset_destroy_internal	(GDataset	 *dataset);
-static inline void	g_data_set_internal		(GData     	**datalist,
-							 GQuark   	  key_id,
-							 gpointer         data,
-							 GDestroyNotify   destroy_func,
-							 GDataset	 *dataset);
-static void		g_data_initialize		(void);
-static inline GQuark	g_quark_new			(gchar  	*string);
-
-
-/* --- variables --- */
-G_LOCK_DEFINE_STATIC (g_dataset_global);
-static GHashTable   *g_dataset_location_ht = NULL;
-static GDataset     *g_dataset_cached = NULL; /* should this be
-						 threadspecific? */
-static GMemChunk    *g_dataset_mem_chunk = NULL;
-static GMemChunk    *g_data_mem_chunk = NULL;
-static GData	    *g_data_cache = NULL;
-static guint	     g_data_cache_length = 0;
-
-G_LOCK_DEFINE_STATIC (g_quark_global);
-static GHashTable   *g_quark_ht = NULL;
-static gchar       **g_quarks = NULL;
-static GQuark        g_quark_seq_id = 0;
-
-
-/* --- functions --- */
-
-/* HOLDS: g_dataset_global_lock */
-static inline void
-g_datalist_clear_i (GData **datalist)
-{
-  register GData *list;
-  
-  /* unlink *all* items before walking their destructors
-   */
-  list = *datalist;
-  *datalist = NULL;
-  
-  while (list)
-    {
-      register GData *prev;
-      
-      prev = list;
-      list = prev->next;
-      
-      if (prev->destroy_func)
-	{
-	  G_UNLOCK (g_dataset_global);
-	  prev->destroy_func (prev->data);
-	  G_LOCK (g_dataset_global);
-	}
-      
-      if (g_data_cache_length < G_DATA_CACHE_MAX)
-	{
-	  prev->next = g_data_cache;
-	  g_data_cache = prev;
-	  g_data_cache_length++;
-	}
-      else
-	g_mem_chunk_free (g_data_mem_chunk, prev);
-    }
-}
-
-void
-g_datalist_clear (GData **datalist)
-{
-  g_return_if_fail (datalist != NULL);
-  
-  G_LOCK (g_dataset_global);
-  if (!g_dataset_location_ht)
-    g_data_initialize ();
-
-  while (*datalist)
-    g_datalist_clear_i (datalist);
-  G_UNLOCK (g_dataset_global);
-}
-
-/* HOLDS: g_dataset_global_lock */
-static inline GDataset*
-g_dataset_lookup (gconstpointer	dataset_location)
-{
-  register GDataset *dataset;
-  
-  if (g_dataset_cached && g_dataset_cached->location == dataset_location)
-    return g_dataset_cached;
-  
-  dataset = g_hash_table_lookup (g_dataset_location_ht, dataset_location);
-  if (dataset)
-    g_dataset_cached = dataset;
-  
-  return dataset;
-}
-
-/* HOLDS: g_dataset_global_lock */
-static void
-g_dataset_destroy_internal (GDataset *dataset)
-{
-  register gconstpointer dataset_location;
-  
-  dataset_location = dataset->location;
-  while (dataset)
-    {
-      if (!dataset->datalist)
-	{
-	  if (dataset == g_dataset_cached)
-	    g_dataset_cached = NULL;
-	  g_hash_table_remove (g_dataset_location_ht, dataset_location);
-	  g_mem_chunk_free (g_dataset_mem_chunk, dataset);
-	  break;
-	}
-      
-      g_datalist_clear_i (&dataset->datalist);
-      dataset = g_dataset_lookup (dataset_location);
-    }
-}
-
-void
-g_dataset_destroy (gconstpointer  dataset_location)
-{
-  g_return_if_fail (dataset_location != NULL);
-  
-  G_LOCK (g_dataset_global);
-  if (g_dataset_location_ht)
-    {
-      register GDataset *dataset;
-
-      dataset = g_dataset_lookup (dataset_location);
-      if (dataset)
-	g_dataset_destroy_internal (dataset);
-    }
-  G_UNLOCK (g_dataset_global);
-}
-
-/* HOLDS: g_dataset_global_lock */
-static inline void
-g_data_set_internal (GData	  **datalist,
-		     GQuark         key_id,
-		     gpointer       data,
-		     GDestroyNotify destroy_func,
-		     GDataset	   *dataset)
-{
-  register GData *list;
-  
-  list = *datalist;
-  if (!data)
-    {
-      register GData *prev;
-      
-      prev = NULL;
-      while (list)
-	{
-	  if (list->id == key_id)
-	    {
-	      if (prev)
-		prev->next = list->next;
-	      else
-		{
-		  *datalist = list->next;
-		  
-		  /* the dataset destruction *must* be done
-		   * prior to invokation of the data destroy function
-		   */
-		  if (!*datalist && dataset)
-		    g_dataset_destroy_internal (dataset);
-		}
-	      
-	      /* the GData struct *must* already be unlinked
-	       * when invoking the destroy function.
-	       * we use (data==NULL && destroy_func!=NULL) as
-	       * a special hint combination to "steal"
-	       * data without destroy notification
-	       */
-	      if (list->destroy_func && !destroy_func)
-		{
-		  G_UNLOCK (g_dataset_global);
-		  list->destroy_func (list->data);
-		  G_LOCK (g_dataset_global);
-		}
-	      
-	      if (g_data_cache_length < G_DATA_CACHE_MAX)
-		{
-		  list->next = g_data_cache;
-		  g_data_cache = list;
-		  g_data_cache_length++;
-		}
-	      else
-		g_mem_chunk_free (g_data_mem_chunk, list);
-	      
-	      return;
-	    }
-	  
-	  prev = list;
-	  list = list->next;
-	}
-    }
-  else
-    {
-      while (list)
-	{
-	  if (list->id == key_id)
-	    {
-	      if (!list->destroy_func)
-		{
-		  list->data = data;
-		  list->destroy_func = destroy_func;
-		}
-	      else
-		{
-		  register GDestroyNotify dfunc;
-		  register gpointer ddata;
-		  
-		  dfunc = list->destroy_func;
-		  ddata = list->data;
-		  list->data = data;
-		  list->destroy_func = destroy_func;
-		  
-		  /* we need to have updated all structures prior to
-		   * invokation of the destroy function
-		   */
-		  G_UNLOCK (g_dataset_global);
-		  dfunc (ddata);
-		  G_LOCK (g_dataset_global);
-		}
-	      
-	      return;
-	    }
-	  
-	  list = list->next;
-	}
-      
-      if (g_data_cache)
-	{
-	  list = g_data_cache;
-	  g_data_cache = list->next;
-	  g_data_cache_length--;
-	}
-      else
-	list = g_chunk_new (GData, g_data_mem_chunk);
-      list->next = *datalist;
-      list->id = key_id;
-      list->data = data;
-      list->destroy_func = destroy_func;
-      *datalist = list;
-    }
-}
-
-void
-g_dataset_id_set_data_full (gconstpointer  dataset_location,
-			    GQuark         key_id,
-			    gpointer       data,
-			    GDestroyNotify destroy_func)
-{
-  register GDataset *dataset;
-  
-  g_return_if_fail (dataset_location != NULL);
-  if (!data)
-    g_return_if_fail (destroy_func == NULL);
-  if (!key_id)
-    {
-      if (data)
-	g_return_if_fail (key_id > 0);
-      else
-	return;
-    }
-  
-  G_LOCK (g_dataset_global);
-  if (!g_dataset_location_ht)
-    g_data_initialize ();
- 
-  dataset = g_dataset_lookup (dataset_location);
-  if (!dataset)
-    {
-      dataset = g_chunk_new (GDataset, g_dataset_mem_chunk);
-      dataset->location = dataset_location;
-      g_datalist_init (&dataset->datalist);
-      g_hash_table_insert (g_dataset_location_ht, 
-			   (gpointer) dataset->location,
-			   dataset);
-    }
-  
-  g_data_set_internal (&dataset->datalist, key_id, data, destroy_func, dataset);
-  G_UNLOCK (g_dataset_global);
-}
-
-void
-g_datalist_id_set_data_full (GData	  **datalist,
-			     GQuark         key_id,
-			     gpointer       data,
-			     GDestroyNotify destroy_func)
-{
-  g_return_if_fail (datalist != NULL);
-  if (!data)
-    g_return_if_fail (destroy_func == NULL);
-  if (!key_id)
-    {
-      if (data)
-	g_return_if_fail (key_id > 0);
-      else
-	return;
-    }
-
-  G_LOCK (g_dataset_global);
-  if (!g_dataset_location_ht)
-    g_data_initialize ();
-  
-  g_data_set_internal (datalist, key_id, data, destroy_func, NULL);
-  G_UNLOCK (g_dataset_global);
-}
-
-void
-g_dataset_id_remove_no_notify (gconstpointer  dataset_location,
-			       GQuark         key_id)
-{
-  g_return_if_fail (dataset_location != NULL);
-  
-  G_LOCK (g_dataset_global);
-  if (key_id && g_dataset_location_ht)
-    {
-      GDataset *dataset;
-  
-      dataset = g_dataset_lookup (dataset_location);
-      if (dataset)
-	g_data_set_internal (&dataset->datalist, key_id, NULL, (GDestroyNotify) 42, dataset);
-    } 
-  G_UNLOCK (g_dataset_global);
-}
-
-void
-g_datalist_id_remove_no_notify (GData	**datalist,
-				GQuark    key_id)
-{
-  g_return_if_fail (datalist != NULL);
-
-  G_LOCK (g_dataset_global);
-  if (key_id && g_dataset_location_ht)
-    g_data_set_internal (datalist, key_id, NULL, (GDestroyNotify) 42, NULL);
-  G_UNLOCK (g_dataset_global);
-}
-
-gpointer
-g_dataset_id_get_data (gconstpointer  dataset_location,
-		       GQuark         key_id)
-{
-  g_return_val_if_fail (dataset_location != NULL, NULL);
-  
-  G_LOCK (g_dataset_global);
-  if (key_id && g_dataset_location_ht)
-    {
-      register GDataset *dataset;
-      
-      dataset = g_dataset_lookup (dataset_location);
-      if (dataset)
-	{
-	  register GData *list;
-	  
-	  for (list = dataset->datalist; list; list = list->next)
-	    if (list->id == key_id)
-	      {
-		G_UNLOCK (g_dataset_global);
-		return list->data;
-	      }
-	}
-    }
-  G_UNLOCK (g_dataset_global);
- 
-  return NULL;
-}
-
-gpointer
-g_datalist_id_get_data (GData	 **datalist,
-			GQuark     key_id)
-{
-  g_return_val_if_fail (datalist != NULL, NULL);
-  
-  if (key_id)
-    {
-      register GData *list;
-      
-      for (list = *datalist; list; list = list->next)
-	if (list->id == key_id)
-	  return list->data;
-    }
-  
-  return NULL;
-}
-
-void
-g_dataset_foreach (gconstpointer    dataset_location,
-		   GDataForeachFunc func,
-		   gpointer         user_data)
-{
-  register GDataset *dataset;
-  
-  g_return_if_fail (dataset_location != NULL);
-  g_return_if_fail (func != NULL);
-
-  G_LOCK (g_dataset_global);
-  if (g_dataset_location_ht)
-    {
-      dataset = g_dataset_lookup (dataset_location);
-      G_UNLOCK (g_dataset_global);
-      if (dataset)
-	{
-	  register GData *list;
-	  
-	  for (list = dataset->datalist; list; list = list->next)
-	      func (list->id, list->data, user_data);
-	}
-    }
-  else
-    {
-      G_UNLOCK (g_dataset_global);
-    }
-}
-
-void
-g_datalist_foreach (GData	   **datalist,
-		    GDataForeachFunc func,
-		    gpointer         user_data)
-{
-  register GData *list;
-
-  g_return_if_fail (datalist != NULL);
-  g_return_if_fail (func != NULL);
-  
-  for (list = *datalist; list; list = list->next)
-    func (list->id, list->data, user_data);
-}
-
-void
-g_datalist_init (GData **datalist)
-{
-  g_return_if_fail (datalist != NULL);
-  
-  *datalist = NULL;
-}
-
-/* HOLDS: g_dataset_global_lock */
-static void
-g_data_initialize (void)
-{
-  g_return_if_fail (g_dataset_location_ht == NULL);
-
-  g_dataset_location_ht = g_hash_table_new (g_direct_hash, NULL);
-  g_dataset_cached = NULL;
-  g_dataset_mem_chunk =
-    g_mem_chunk_new ("GDataset MemChunk",
-		     sizeof (GDataset),
-		     sizeof (GDataset) * G_DATASET_MEM_CHUNK_PREALLOC,
-		     G_ALLOC_AND_FREE);
-  g_data_mem_chunk =
-    g_mem_chunk_new ("GData MemChunk",
-		     sizeof (GData),
-		     sizeof (GData) * G_DATA_MEM_CHUNK_PREALLOC,
-		     G_ALLOC_AND_FREE);
-}
-
-GQuark
-g_quark_try_string (const gchar *string)
-{
-  GQuark quark = 0;
-  g_return_val_if_fail (string != NULL, 0);
-  
-  G_LOCK (g_quark_global);
-  if (g_quark_ht)
-    quark = GPOINTER_TO_UINT (g_hash_table_lookup (g_quark_ht, string));
-  G_UNLOCK (g_quark_global);
-  
-  return quark;
-}
-
-GQuark
-g_quark_from_string (const gchar *string)
-{
-  GQuark quark;
-  
-  g_return_val_if_fail (string != NULL, 0);
-  
-  G_LOCK (g_quark_global);
-  if (g_quark_ht)
-    quark = (gulong) g_hash_table_lookup (g_quark_ht, string);
-  else
-    {
-      g_quark_ht = g_hash_table_new (g_str_hash, g_str_equal);
-      quark = 0;
-    }
-  
-  if (!quark)
-    quark = g_quark_new (g_strdup (string));
-  G_UNLOCK (g_quark_global);
-  
-  return quark;
-}
-
-GQuark
-g_quark_from_static_string (const gchar *string)
-{
-  GQuark quark;
-  
-  g_return_val_if_fail (string != NULL, 0);
-  
-  G_LOCK (g_quark_global);
-  if (g_quark_ht)
-    quark = (gulong) g_hash_table_lookup (g_quark_ht, string);
-  else
-    {
-      g_quark_ht = g_hash_table_new (g_str_hash, g_str_equal);
-      quark = 0;
-    }
-
-  if (!quark)
-    quark = g_quark_new ((gchar*) string);
-  G_UNLOCK (g_quark_global);
- 
-  return quark;
-}
-
-gchar*
-g_quark_to_string (GQuark quark)
-{
-  gchar* result = NULL;
-  G_LOCK (g_quark_global);
-  if (quark > 0 && quark <= g_quark_seq_id)
-    result = g_quarks[quark - 1];
-  G_UNLOCK (g_quark_global);
-
-  return result;
-}
-
-/* HOLDS: g_quark_global_lock */
-static inline GQuark
-g_quark_new (gchar *string)
-{
-  GQuark quark;
-  
-  if (g_quark_seq_id % G_QUARK_BLOCK_SIZE == 0)
-    g_quarks = g_renew (gchar*, g_quarks, g_quark_seq_id + G_QUARK_BLOCK_SIZE);
-  
-  g_quarks[g_quark_seq_id] = string;
-  g_quark_seq_id++;
-  quark = g_quark_seq_id;
-  g_hash_table_insert (g_quark_ht, string, GUINT_TO_POINTER (quark));
-  
-  return quark;
-}
diff --git a/glib/gdate.c b/glib/gdate.c
deleted file mode 100644
index b278a5a..0000000
--- a/glib/gdate.c
+++ /dev/null
@@ -1,1294 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "glib.h"
-
-#include <time.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <locale.h>
-
-GDate*
-g_date_new ()
-{
-  GDate *d = g_new0 (GDate, 1); /* happily, 0 is the invalid flag for everything. */
-  
-  return d;
-}
-
-GDate*
-g_date_new_dmy (GDateDay day, GDateMonth m, GDateYear y)
-{
-  GDate *d;
-  g_return_val_if_fail (g_date_valid_dmy (day, m, y), NULL);
-  
-  d = g_new (GDate, 1);
-  
-  d->julian = FALSE;
-  d->dmy    = TRUE;
-  
-  d->month = m;
-  d->day   = day;
-  d->year  = y;
-  
-  g_assert (g_date_valid (d));
-  
-  return d;
-}
-
-GDate*
-g_date_new_julian (guint32 j)
-{
-  GDate *d;
-  g_return_val_if_fail (g_date_valid_julian (j), NULL);
-  
-  d = g_new (GDate, 1);
-  
-  d->julian = TRUE;
-  d->dmy    = FALSE;
-  
-  d->julian_days = j;
-  
-  g_assert (g_date_valid (d));
-  
-  return d;
-}
-
-void
-g_date_free (GDate *d)
-{
-  g_return_if_fail (d != NULL);
-  
-  g_free (d);
-}
-
-gboolean     
-g_date_valid (GDate       *d)
-{
-  g_return_val_if_fail (d != NULL, FALSE);
-  
-  return (d->julian || d->dmy);
-}
-
-static const guint8 days_in_months[2][13] = 
-{  /* error, jan feb mar apr may jun jul aug sep oct nov dec */
-  {  0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, 
-  {  0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } /* leap year */
-};
-
-static const guint16 days_in_year[2][14] = 
-{  /* 0, jan feb mar apr may  jun  jul  aug  sep  oct  nov  dec */
-  {  0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, 
-  {  0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }
-};
-
-gboolean     
-g_date_valid_month (GDateMonth   m)
-{ 
-  return ( (m > G_DATE_BAD_MONTH) && (m < 13) );
-}
-
-gboolean     
-g_date_valid_year (GDateYear    y)
-{
-  return ( y > G_DATE_BAD_YEAR );
-}
-
-gboolean     
-g_date_valid_day (GDateDay     d)
-{
-  return ( (d > G_DATE_BAD_DAY) && (d < 32) );
-}
-
-gboolean     
-g_date_valid_weekday (GDateWeekday w)
-{
-  return ( (w > G_DATE_BAD_WEEKDAY) && (w < 8) );
-}
-
-gboolean     
-g_date_valid_julian (guint32      j)
-{
-  return (j > G_DATE_BAD_JULIAN);
-}
-
-gboolean     
-g_date_valid_dmy (GDateDay     d, 
-                  GDateMonth   m, 
-		  GDateYear    y)
-{
-  return ( (m > G_DATE_BAD_MONTH) &&
-           (m < 13)               && 
-           (d > G_DATE_BAD_DAY)   && 
-           (y > G_DATE_BAD_YEAR)  &&   /* must check before using g_date_is_leap_year */
-           (d <=  (g_date_is_leap_year (y) ? 
-		   days_in_months[1][m] : days_in_months[0][m])) );
-}
-
-
-/* "Julian days" just means an absolute number of days, where Day 1 ==
- *   Jan 1, Year 1
- */
-static void
-g_date_update_julian (GDate *d)
-{
-  GDateYear year;
-  gint index;
-  
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (d->dmy);
-  g_return_if_fail (!d->julian);
-  g_return_if_fail (g_date_valid_dmy (d->day, d->month, d->year));
-  
-  /* What we actually do is: multiply years * 365 days in the year,
-   *  add the number of years divided by 4, subtract the number of
-   *  years divided by 100 and add the number of years divided by 400,
-   *  which accounts for leap year stuff. Code from Steffen Beyer's
-   *  DateCalc. 
-   */
-  
-  year = d->year - 1; /* we know d->year > 0 since it's valid */
-  
-  d->julian_days = year * 365U;
-  d->julian_days += (year >>= 2); /* divide by 4 and add */
-  d->julian_days -= (year /= 25); /* divides original # years by 100 */
-  d->julian_days += year >> 2;    /* divides by 4, which divides original by 400 */
-  
-  index = g_date_is_leap_year (d->year) ? 1 : 0;
-  
-  d->julian_days += days_in_year[index][d->month] + d->day;
-  
-  g_return_if_fail (g_date_valid_julian (d->julian_days));
-  
-  d->julian = TRUE;
-}
-
-static void 
-g_date_update_dmy (GDate *d)
-{
-  GDateYear y;
-  GDateMonth m;
-  GDateDay day;
-  
-  guint32 A, B, C, D, E, M;
-  
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (d->julian);
-  g_return_if_fail (!d->dmy);
-  g_return_if_fail (g_date_valid_julian (d->julian_days));
-  
-  /* Formula taken from the Calendar FAQ; the formula was for the
-   *  Julian Period which starts on 1 January 4713 BC, so we add
-   *  1,721,425 to the number of days before doing the formula.
-   *
-   * I'm sure this can be simplified for our 1 January 1 AD period
-   * start, but I can't figure out how to unpack the formula.  
-   */
-  
-  A = d->julian_days + 1721425 + 32045;
-  B = ( 4 *(A + 36524) )/ 146097 - 1;
-  C = A - (146097 * B)/4;
-  D = ( 4 * (C + 365) ) / 1461 - 1;
-  E = C - ((1461*D) / 4);
-  M = (5 * (E - 1) + 2)/153;
-  
-  m = M + 3 - (12*(M/10));
-  day = E - (153*M + 2)/5;
-  y = 100 * B + D - 4800 + (M/10);
-  
-#ifdef G_ENABLE_DEBUG
-  if (!g_date_valid_dmy (day, m, y)) 
-    {
-      g_warning ("\nOOPS julian: %u  computed dmy: %u %u %u\n", 
-		 d->julian_days, day, m, y);
-    }
-#endif
-  
-  d->month = m;
-  d->day   = day;
-  d->year  = y;
-  
-  d->dmy = TRUE;
-}
-
-GDateWeekday 
-g_date_weekday (GDate *d)
-{
-  g_return_val_if_fail (d != NULL, G_DATE_BAD_WEEKDAY);
-  g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_WEEKDAY);
-  
-  if (!d->julian) 
-    {
-      g_date_update_julian (d);
-    }
-  g_return_val_if_fail (d->julian, G_DATE_BAD_WEEKDAY);
-  
-  return ((d->julian_days - 1) % 7) + 1;
-}
-
-GDateMonth   
-g_date_month (GDate *d)
-{
-  g_return_val_if_fail (d != NULL, G_DATE_BAD_MONTH);
-  g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_MONTH);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, G_DATE_BAD_MONTH);
-  
-  return d->month;
-}
-
-GDateYear    
-g_date_year (GDate *d)
-{
-  g_return_val_if_fail (d != NULL, G_DATE_BAD_YEAR);
-  g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_YEAR);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, G_DATE_BAD_YEAR);  
-  
-  return d->year;
-}
-
-GDateDay     
-g_date_day (GDate *d)
-{
-  g_return_val_if_fail (d != NULL, G_DATE_BAD_DAY);
-  g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_DAY);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, G_DATE_BAD_DAY);  
-  
-  return d->day;
-}
-
-guint32      
-g_date_julian (GDate *d)
-{
-  g_return_val_if_fail (d != NULL, G_DATE_BAD_JULIAN);
-  g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_JULIAN);
-  
-  if (!d->julian) 
-    {
-      g_date_update_julian (d);
-    }
-  g_return_val_if_fail (d->julian, G_DATE_BAD_JULIAN);  
-  
-  return d->julian_days;
-}
-
-guint        
-g_date_day_of_year (GDate *d)
-{
-  gint index;
-  
-  g_return_val_if_fail (d != NULL, 0);
-  g_return_val_if_fail (g_date_valid (d), 0);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, 0);  
-  
-  index = g_date_is_leap_year (d->year) ? 1 : 0;
-  
-  return (days_in_year[index][d->month] + d->day);
-}
-
-guint        
-g_date_monday_week_of_year (GDate *d)
-{
-  GDateWeekday wd;
-  guint day;
-  GDate first;
-  
-  g_return_val_if_fail (d != NULL, 0);
-  g_return_val_if_fail (g_date_valid (d), 0);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, 0);  
-  
-  g_date_clear (&first, 1);
-  
-  g_date_set_dmy (&first, 1, 1, d->year);
-  
-  wd = g_date_weekday (&first) - 1; /* make Monday day 0 */
-  day = g_date_day_of_year (d) - 1;
-  
-  return ((day + wd)/7U + (wd == 0 ? 1 : 0));
-}
-
-guint        
-g_date_sunday_week_of_year (GDate *d)
-{
-  GDateWeekday wd;
-  guint day;
-  GDate first;
-  
-  g_return_val_if_fail (d != NULL, 0);
-  g_return_val_if_fail (g_date_valid (d), 0);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, 0);  
-  
-  g_date_clear (&first, 1);
-  
-  g_date_set_dmy (&first, 1, 1, d->year);
-  
-  wd = g_date_weekday (&first);
-  if (wd == 7) wd = 0; /* make Sunday day 0 */
-  day = g_date_day_of_year (d) - 1;
-  
-  return ((day + wd)/7U + (wd == 0 ? 1 : 0));
-}
-
-void         
-g_date_clear (GDate       *d, guint ndates)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (ndates != 0);
-  
-  memset (d, 0x0, ndates*sizeof (GDate)); 
-}
-
-G_LOCK_DEFINE_STATIC (g_date_global);
-
-/* These are for the parser, output to the user should use *
- * g_date_strftime () - this creates more never-freed memory to annoy
- * all those memory debugger users. :-) 
- */
-
-static gchar *long_month_names[13] = 
-{ 
-  "Error", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL 
-};
-
-static gchar *short_month_names[13] = 
-{
-  "Error", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL 
-};
-
-/* This tells us if we need to update the parse info */
-static gchar *current_locale = NULL;
-
-/* order of these in the current locale */
-static GDateDMY dmy_order[3] = 
-{
-   G_DATE_DAY, G_DATE_MONTH, G_DATE_YEAR
-};
-
-/* Where to chop two-digit years: i.e., for the 1930 default, numbers
- * 29 and below are counted as in the year 2000, numbers 30 and above
- * are counted as in the year 1900.  
- */
-
-static GDateYear twodigit_start_year = 1930;
-
-/* It is impossible to enter a year between 1 AD and 99 AD with this
- * in effect.  
- */
-static gboolean using_twodigit_years = FALSE;
-
-struct _GDateParseTokens {
-  gint num_ints;
-  gint n[3];
-  guint month;
-};
-
-typedef struct _GDateParseTokens GDateParseTokens;
-
-#define NUM_LEN 10
-
-/* HOLDS: g_date_global_lock */
-static void
-g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt)
-{
-  gchar num[4][NUM_LEN+1];
-  gint i;
-  const guchar *s;
-  
-  /* We count 4, but store 3; so we can give an error
-   * if there are 4.
-   */
-  num[0][0] = num[1][0] = num[2][0] = num[3][0] = '\0';
-  
-  s = str;
-  pt->num_ints = 0;
-  while (*s && pt->num_ints < 4) 
-    {
-      
-      i = 0;
-      while (*s && isdigit (*s) && i <= NUM_LEN)
-        {
-          num[pt->num_ints][i] = *s;
-          ++s; 
-          ++i;
-        }
-      
-      if (i > 0) 
-        {
-          num[pt->num_ints][i] = '\0';
-          ++(pt->num_ints);
-        }
-      
-      if (*s == '\0') break;
-      
-      ++s;
-    }
-  
-  pt->n[0] = pt->num_ints > 0 ? atoi (num[0]) : 0;
-  pt->n[1] = pt->num_ints > 1 ? atoi (num[1]) : 0;
-  pt->n[2] = pt->num_ints > 2 ? atoi (num[2]) : 0;
-  
-  pt->month = G_DATE_BAD_MONTH;
-  
-  if (pt->num_ints < 3)
-    {
-      gchar lcstr[128];
-      int i = 1;
-      
-      strncpy (lcstr, str, 127);
-      g_strdown (lcstr);
-      
-      while (i < 13)
-        {
-          if (long_month_names[i] != NULL) 
-            {
-              const gchar *found = strstr (lcstr, long_month_names[i]);
-	      
-              if (found != NULL)
-                {
-                  pt->month = i;
-		  return;
-                }
-            }
-	  
-          if (short_month_names[i] != NULL) 
-            {
-              const gchar *found = strstr (lcstr, short_month_names[i]);
-	      
-              if (found != NULL)
-                {
-                  pt->month = i;
-                  return;
-                }
-            }
-
-          ++i;
-        }      
-    }
-}
-
-/* HOLDS: g_date_global_lock */
-static void
-g_date_prepare_to_parse (const gchar *str, GDateParseTokens *pt)
-{
-  const gchar *locale = setlocale (LC_TIME, NULL);
-  gboolean recompute_localeinfo = FALSE;
-  GDate d;
-  
-  g_return_if_fail (locale != NULL); /* should not happen */
-  
-  g_date_clear (&d, 1);              /* clear for scratch use */
-  
-  if ( (current_locale == NULL) || (strcmp (locale, current_locale) != 0) ) 
-    {
-      recompute_localeinfo = TRUE;  /* Uh, there used to be a reason for the temporary */
-    }
-  
-  if (recompute_localeinfo)
-    {
-      int i = 1;
-      GDateParseTokens testpt;
-      gchar buf[128];
-      
-      g_free (current_locale); /* still works if current_locale == NULL */
-      
-      current_locale = g_strdup (locale);
-      
-      while (i < 13) 
-        {
-          g_date_set_dmy (&d, 1, i, 1);
-	  
-          g_return_if_fail (g_date_valid (&d));
-	  
-          g_date_strftime (buf, 127, "%b", &d);
-          g_free (short_month_names[i]);
-          g_strdown (buf);
-          short_month_names[i] = g_strdup (buf);
-	  
-          
-	  
-          g_date_strftime (buf, 127, "%B", &d);
-          g_free (long_month_names[i]);
-          g_strdown (buf);
-          long_month_names[i] = g_strdup (buf);
-          
-          ++i;
-        }
-      
-      /* Determine DMY order */
-      
-      /* had to pick a random day - don't change this, some strftimes
-       * are broken on some days, and this one is good so far. */
-      g_date_set_dmy (&d, 4, 7, 1976);
-      
-      g_date_strftime (buf, 127, "%x", &d);
-      
-      g_date_fill_parse_tokens (buf, &testpt);
-      
-      i = 0;
-      while (i < testpt.num_ints)
-        {
-          switch (testpt.n[i])
-            {
-            case 7:
-              dmy_order[i] = G_DATE_MONTH;
-              break;
-            case 4:
-              dmy_order[i] = G_DATE_DAY;
-              break;
-            case 76:
-              using_twodigit_years = TRUE; /* FALL THRU */
-            case 1976:
-              dmy_order[i] = G_DATE_YEAR;
-              break;
-            default:
-              /* leave it unchanged */
-              break;
-            }
-          ++i;
-        }
-      
-#ifdef G_ENABLE_DEBUG
-      g_message ("**GDate prepared a new set of locale-specific parse rules.");
-      i = 1;
-      while (i < 13) 
-        {
-          g_message ("  %s   %s", long_month_names[i], short_month_names[i]);
-          ++i;
-        }
-      if (using_twodigit_years)
-        {
-          g_message ("**Using twodigit years with cutoff year: %u", twodigit_start_year);
-        }
-      { 
-        gchar *strings[3];
-        i = 0;
-        while (i < 3)
-          {
-            switch (dmy_order[i])
-              {
-              case G_DATE_MONTH:
-                strings[i] = "Month";
-                break;
-              case G_DATE_YEAR:
-                strings[i] = "Year";
-                break;
-              case G_DATE_DAY:
-                strings[i] = "Day";
-                break;
-              default:
-                strings[i] = NULL;
-                break;
-              }
-            ++i;
-          }
-        g_message ("**Order: %s, %s, %s", strings[0], strings[1], strings[2]);
-        g_message ("**Sample date in this locale: `%s'", buf);
-      }
-#endif
-    }
-  
-  g_date_fill_parse_tokens (str, pt);
-}
-
-void         
-g_date_set_parse (GDate       *d, 
-                  const gchar *str)
-{
-  GDateParseTokens pt;
-  guint m = G_DATE_BAD_MONTH, day = G_DATE_BAD_DAY, y = G_DATE_BAD_YEAR;
-  
-  g_return_if_fail (d != NULL);
-  
-  /* set invalid */
-  g_date_clear (d, 1);
-  
-  G_LOCK (g_date_global);
-
-  g_date_prepare_to_parse (str, &pt);
-  
-#ifdef G_ENABLE_DEBUG
-  g_message ("Found %d ints, `%d' `%d' `%d' and written out month %d", 
-	     pt.num_ints, pt.n[0], pt.n[1], pt.n[2], pt.month);
-#endif
-  
-  
-  if (pt.num_ints == 4) 
-    {
-      G_UNLOCK (g_date_global);
-      return; /* presumably a typo; bail out. */
-    }
-  
-  if (pt.num_ints > 1)
-    {
-      int i = 0;
-      int j = 0;
-      
-      g_assert (pt.num_ints < 4); /* i.e., it is 2 or 3 */
-      
-      while (i < pt.num_ints && j < 3) 
-        {
-          switch (dmy_order[j])
-            {
-            case G_DATE_MONTH:
-	    {
-	      if (pt.num_ints == 2 && pt.month != G_DATE_BAD_MONTH)
-		{
-		  m = pt.month;
-		  ++j;      /* skip months, but don't skip this number */
-		  continue;
-		}
-	      else 
-		m = pt.n[i];
-	    }
-	    break;
-            case G_DATE_DAY:
-	    {
-	      if (pt.num_ints == 2 && pt.month == G_DATE_BAD_MONTH)
-		{
-		  day = 1;
-		  ++j;      /* skip days, since we may have month/year */
-		  continue;
-		}
-	      day = pt.n[i];
-	    }
-	    break;
-            case G_DATE_YEAR:
-	    {
-	      y  = pt.n[i];
-	      
-	      if (using_twodigit_years && y < 100)
-		{
-		  guint two     =  twodigit_start_year % 100;
-		  guint century = (twodigit_start_year / 100) * 100;
-		  
-		  if (y < two)
-		    century += 100;
-		  
-		  y += century;
-		}
-	    }
-	    break;
-            default:
-              break;
-            }
-	  
-          ++i;
-          ++j;
-        }
-      
-      
-      if (pt.num_ints == 3 && !g_date_valid_dmy (day, m, y))
-        {
-          /* Try YYYY MM DD */
-          y   = pt.n[0];
-          m   = pt.n[1];
-          day = pt.n[2];
-          
-          if (using_twodigit_years && y < 100) 
-            y = G_DATE_BAD_YEAR; /* avoids ambiguity */
-        }
-    }
-  else if (pt.num_ints == 1) 
-    {
-      if (pt.month != G_DATE_BAD_MONTH)
-        {
-          /* Month name and year? */
-          m    = pt.month;
-          day  = 1;
-          y = pt.n[0];
-        }
-      else
-        {
-          /* Try yyyymmdd and yymmdd */
-	  
-          m   = (pt.n[0]/100) % 100;
-          day = pt.n[0] % 100;
-          y   = pt.n[0]/10000;
-	  
-          /* FIXME move this into a separate function */
-          if (using_twodigit_years && y < 100)
-            {
-              guint two     =  twodigit_start_year % 100;
-              guint century = (twodigit_start_year / 100) * 100;
-              
-              if (y < two)
-                century += 100;
-              
-              y += century;
-            }
-        }
-    }
-  
-  /* See if we got anything valid out of all this. */
-  /* y < 8000 is to catch 19998 style typos; the library is OK up to 65535 or so */
-  if (y < 8000 && g_date_valid_dmy (day, m, y)) 
-    {
-      d->month = m;
-      d->day   = day;
-      d->year  = y;
-      d->dmy   = TRUE;
-    }
-#ifdef G_ENABLE_DEBUG
-  else 
-    g_message ("Rejected DMY %u %u %u", day, m, y);
-#endif
-  G_UNLOCK (g_date_global);
-}
-
-void         
-g_date_set_time (GDate *d,
-		 GTime  time)
-{
-  time_t t = time;
-  struct tm tm;
-  
-  g_return_if_fail (d != NULL);
-  
-#ifdef HAVE_LOCALTIME_R
-  localtime_r (&t, &tm);
-#else
-  {
-    struct tm *ptm = localtime (&t);
-    g_assert (ptm);
-    memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm));
-  }
-#endif
-  
-  d->julian = FALSE;
-  
-  d->month = tm.tm_mon + 1;
-  d->day   = tm.tm_mday;
-  d->year  = tm.tm_year + 1900;
-  
-  g_return_if_fail (g_date_valid_dmy (d->day, d->month, d->year));
-  
-  d->dmy    = TRUE;
-}
-
-void         
-g_date_set_month (GDate     *d, 
-                  GDateMonth m)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid_month (m));
-
-  if (d->julian && !d->dmy) g_date_update_dmy(d);
-  d->julian = FALSE;
-  
-  d->month = m;
-  
-  if (g_date_valid_dmy (d->day, d->month, d->year))
-    d->dmy = TRUE;
-  else 
-    d->dmy = FALSE;
-}
-
-void         
-g_date_set_day (GDate     *d, 
-                GDateDay day)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid_day (day));
-  
-  if (d->julian && !d->dmy) g_date_update_dmy(d);
-  d->julian = FALSE;
-  
-  d->day = day;
-  
-  if (g_date_valid_dmy (d->day, d->month, d->year))
-    d->dmy = TRUE;
-  else 
-    d->dmy = FALSE;
-}
-
-void         
-g_date_set_year (GDate     *d, 
-                 GDateYear  y)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid_year (y));
-  
-  if (d->julian && !d->dmy) g_date_update_dmy(d);
-  d->julian = FALSE;
-  
-  d->year = y;
-  
-  if (g_date_valid_dmy (d->day, d->month, d->year))
-    d->dmy = TRUE;
-  else 
-    d->dmy = FALSE;
-}
-
-void         
-g_date_set_dmy (GDate     *d, 
-                GDateDay   day, 
-                GDateMonth m, 
-                GDateYear  y)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid_dmy (day, m, y));
-  
-  d->julian = FALSE;
-  
-  d->month = m;
-  d->day   = day;
-  d->year  = y;
-  
-  d->dmy = TRUE;
-}
-
-void         
-g_date_set_julian (GDate *d, guint32 j)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid_julian (j));
-  
-  d->julian_days = j;
-  d->julian = TRUE;
-  d->dmy = FALSE;
-}
-
-
-gboolean     
-g_date_is_first_of_month (GDate *d)
-{
-  g_return_val_if_fail (d != NULL, FALSE);
-  g_return_val_if_fail (g_date_valid (d), FALSE);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, FALSE);  
-  
-  if (d->day == 1) return TRUE;
-  else return FALSE;
-}
-
-gboolean     
-g_date_is_last_of_month (GDate *d)
-{
-  gint index;
-  
-  g_return_val_if_fail (d != NULL, FALSE);
-  g_return_val_if_fail (g_date_valid (d), FALSE);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_val_if_fail (d->dmy, FALSE);  
-  
-  index = g_date_is_leap_year (d->year) ? 1 : 0;
-  
-  if (d->day == days_in_months[index][d->month]) return TRUE;
-  else return FALSE;
-}
-
-void         
-g_date_add_days (GDate *d, guint ndays)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid (d));
-  
-  if (!d->julian)
-    {
-      g_date_update_julian (d);
-    }
-  g_return_if_fail (d->julian);
-  
-  d->julian_days += ndays;
-  d->dmy = FALSE;
-}
-
-void         
-g_date_subtract_days (GDate *d, guint ndays)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid (d));
-  
-  if (!d->julian)
-    {
-      g_date_update_julian (d);
-    }
-  g_return_if_fail (d->julian);
-  g_return_if_fail (d->julian_days > ndays);
-  
-  d->julian_days -= ndays;
-  d->dmy = FALSE;
-}
-
-void         
-g_date_add_months (GDate       *d, 
-                   guint        nmonths)
-{
-  guint years, months;
-  gint index;
-  
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid (d));
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_if_fail (d->dmy);  
-  
-  nmonths += d->month - 1;
-  
-  years  = nmonths/12;
-  months = nmonths%12;
-  
-  d->month = months + 1;
-  d->year  += years;
-  
-  index = g_date_is_leap_year (d->year) ? 1 : 0;
-  
-  if (d->day > days_in_months[index][d->month])
-    d->day = days_in_months[index][d->month];
-  
-  d->julian = FALSE;
-  
-  g_return_if_fail (g_date_valid (d));
-}
-
-void         
-g_date_subtract_months (GDate       *d, 
-                        guint        nmonths)
-{
-  guint years, months;
-  gint index;
-  
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid (d));
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_if_fail (d->dmy);  
-  
-  years  = nmonths/12;
-  months = nmonths%12;
-  
-  g_return_if_fail (d->year > years);
-  
-  d->year  -= years;
-  
-  if (d->month > months) d->month -= months;
-  else 
-    {
-      months -= d->month;
-      d->month = 12 - months;
-      d->year -= 1;
-    }
-  
-  index = g_date_is_leap_year (d->year) ? 1 : 0;
-  
-  if (d->day > days_in_months[index][d->month])
-    d->day = days_in_months[index][d->month];
-  
-  d->julian = FALSE;
-  
-  g_return_if_fail (g_date_valid (d));
-}
-
-void         
-g_date_add_years (GDate       *d, 
-                  guint        nyears)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid (d));
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_if_fail (d->dmy);  
-  
-  d->year += nyears;
-  
-  if (d->month == 2 && d->day == 29)
-    {
-      if (!g_date_is_leap_year (d->year))
-        {
-          d->day = 28;
-        }
-    }
-  
-  d->julian = FALSE;
-}
-
-void         
-g_date_subtract_years (GDate       *d, 
-                       guint        nyears)
-{
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid (d));
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_if_fail (d->dmy);  
-  g_return_if_fail (d->year > nyears);
-  
-  d->year -= nyears;
-  
-  if (d->month == 2 && d->day == 29)
-    {
-      if (!g_date_is_leap_year (d->year))
-        {
-          d->day = 28;
-        }
-    }
-  
-  d->julian = FALSE;
-}
-
-
-gboolean     
-g_date_is_leap_year (GDateYear  year)
-{
-  g_return_val_if_fail (g_date_valid_year (year), FALSE);
-  
-  return ( (((year % 4) == 0) && ((year % 100) != 0)) ||
-           (year % 400) == 0 );
-}
-
-guint8         
-g_date_days_in_month (GDateMonth month, 
-                      GDateYear  year)
-{
-  gint index;
-  
-  g_return_val_if_fail (g_date_valid_year (year), 0);
-  g_return_val_if_fail (g_date_valid_month (month), 0);
-  
-  index = g_date_is_leap_year (year) ? 1 : 0;
-  
-  return days_in_months[index][month];
-}
-
-guint8       
-g_date_monday_weeks_in_year (GDateYear  year)
-{
-  GDate d;
-  
-  g_return_val_if_fail (g_date_valid_year (year), 0);
-  
-  g_date_clear (&d, 1);
-  g_date_set_dmy (&d, 1, 1, year);
-  if (g_date_weekday (&d) == G_DATE_MONDAY) return 53;
-  g_date_set_dmy (&d, 31, 12, year);
-  if (g_date_weekday (&d) == G_DATE_MONDAY) return 53;
-  if (g_date_is_leap_year (year)) 
-    {
-      g_date_set_dmy (&d, 2, 1, year);
-      if (g_date_weekday (&d) == G_DATE_MONDAY) return 53;
-      g_date_set_dmy (&d, 30, 12, year);
-      if (g_date_weekday (&d) == G_DATE_MONDAY) return 53;
-    }
-  return 52;
-}
-
-guint8       
-g_date_sunday_weeks_in_year (GDateYear  year)
-{
-  GDate d;
-  
-  g_return_val_if_fail (g_date_valid_year (year), 0);
-  
-  g_date_clear (&d, 1);
-  g_date_set_dmy (&d, 1, 1, year);
-  if (g_date_weekday (&d) == G_DATE_SUNDAY) return 53;
-  g_date_set_dmy (&d, 31, 12, year);
-  if (g_date_weekday (&d) == G_DATE_SUNDAY) return 53;
-  if (g_date_is_leap_year (year)) 
-    {
-      g_date_set_dmy (&d, 2, 1, year);
-      if (g_date_weekday (&d) == G_DATE_SUNDAY) return 53;
-      g_date_set_dmy (&d, 30, 12, year);
-      if (g_date_weekday (&d) == G_DATE_SUNDAY) return 53;
-    }
-  return 52;
-}
-
-gint         
-g_date_compare (GDate     *lhs, 
-                GDate     *rhs)
-{
-  g_return_val_if_fail (lhs != NULL, 0);
-  g_return_val_if_fail (rhs != NULL, 0);
-  g_return_val_if_fail (g_date_valid (lhs), 0);
-  g_return_val_if_fail (g_date_valid (rhs), 0);
-  
-  /* Remember the self-comparison case! I think it works right now. */
-  
-  while (TRUE)
-    {
-      
-      if (lhs->julian && rhs->julian) 
-        {
-          if (lhs->julian_days < rhs->julian_days) return -1;
-          else if (lhs->julian_days > rhs->julian_days) return 1;
-          else                                          return 0;
-        }
-      else if (lhs->dmy && rhs->dmy) 
-        {
-          if (lhs->year < rhs->year)               return -1;
-          else if (lhs->year > rhs->year)               return 1;
-          else 
-            {
-              if (lhs->month < rhs->month)         return -1;
-              else if (lhs->month > rhs->month)         return 1;
-              else 
-                {
-                  if (lhs->day < rhs->day)              return -1;
-                  else if (lhs->day > rhs->day)              return 1;
-                  else                                       return 0;
-                }
-              
-            }
-          
-        }
-      else
-        {
-          if (!lhs->julian) g_date_update_julian (lhs);
-          if (!rhs->julian) g_date_update_julian (rhs);
-          g_return_val_if_fail (lhs->julian, 0);
-          g_return_val_if_fail (rhs->julian, 0);
-        }
-      
-    }
-  return 0; /* warnings */
-}
-
-
-void        
-g_date_to_struct_tm (GDate      *d, 
-                     struct tm   *tm)
-{
-  GDateWeekday day;
-     
-  g_return_if_fail (d != NULL);
-  g_return_if_fail (g_date_valid (d));
-  g_return_if_fail (tm != NULL);
-  
-  if (!d->dmy) 
-    {
-      g_date_update_dmy (d);
-    }
-  g_return_if_fail (d->dmy);
-  
-  /* zero all the irrelevant fields to be sure they're valid */
-  
-  /* On Linux and maybe other systems, there are weird non-POSIX
-   * fields on the end of struct tm that choke strftime if they
-   * contain garbage.  So we need to 0 the entire struct, not just the
-   * fields we know to exist. 
-   */
-  
-  memset (tm, 0x0, sizeof (struct tm));
-  
-  tm->tm_mday = d->day;
-  tm->tm_mon  = d->month - 1; /* 0-11 goes in tm */
-  tm->tm_year = ((int)d->year) - 1900; /* X/Open says tm_year can be negative */
-  
-  day = g_date_weekday (d);
-  if (day == 7) day = 0; /* struct tm wants days since Sunday, so Sunday is 0 */
-  
-  tm->tm_wday = (int)day;
-  
-  tm->tm_yday = g_date_day_of_year (d) - 1; /* 0 to 365 */
-  tm->tm_isdst = -1; /* -1 means "information not available" */
-}
-
-gsize     
-g_date_strftime (gchar       *s, 
-                 gsize        slen, 
-                 const gchar *format, 
-                 GDate       *d)
-{
-  struct tm tm;
-  gsize retval;
-  
-  g_return_val_if_fail (d != NULL, 0);
-  g_return_val_if_fail (g_date_valid (d), 0);
-  g_return_val_if_fail (slen > 0, 0); 
-  g_return_val_if_fail (format != 0, 0);
-  g_return_val_if_fail (s != 0, 0);
-  
-  g_date_to_struct_tm (d, &tm);
-  
-  retval = strftime (s, slen, format, &tm);
-  if (retval == 0)
-    {
-      /* If retval == 0, the contents of s are undefined.  We define
-       *  them. 
-       */
-      s[0] = '\0';
-    }
-  return retval;
-}
diff --git a/glib/gerror.c b/glib/gerror.c
deleted file mode 100644
index ba81b5f..0000000
--- a/glib/gerror.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe ; except for g_on_error_stack_trace, but who wants thread safety 
- * then
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <signal.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "glib.h"
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_TIMES_H
-#include <sys/times.h>
-#endif
-#include <sys/types.h>
-
-#include <time.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif /* HAVE_SYS_SELECT_H */
-
-#ifdef STDC_HEADERS
-#include <string.h> /* for bzero on BSD systems */
-#endif
-
-#ifdef _MSC_VER
-#include <process.h>		/* For _getpid() */
-#endif
-
-#ifndef NO_FD_SET
-#  define SELECT_MASK fd_set
-#else
-#  ifndef _AIX
-     typedef long fd_mask;
-#  endif
-#  if defined(_IBMR2)
-#    define SELECT_MASK void
-#  else
-#    define SELECT_MASK int
-#  endif
-#endif
-
-
-static void stack_trace (char **args);
-
-extern volatile gboolean glib_on_error_halt;
-volatile gboolean glib_on_error_halt = TRUE;
-
-void
-g_on_error_query (const gchar *prg_name)
-{
-  static const gchar *query1 = "[E]xit, [H]alt";
-  static const gchar *query2 = ", show [S]tack trace";
-  static const gchar *query3 = " or [P]roceed";
-  gchar buf[16];
-
-  if (!prg_name)
-    prg_name = g_get_prgname ();
-  
- retry:
-  
-  if (prg_name)
-    fprintf (stdout,
-	     "%s (pid:%u): %s%s%s: ",
-	     prg_name,
-	     (guint) getpid (),
-	     query1,
-	     query2,
-	     query3);
-  else
-    fprintf (stdout,
-	     "(process:%u): %s%s: ",
-	     (guint) getpid (),
-	     query1,
-	     query3);
-  fflush (stdout);
-  
-#ifndef NATIVE_WIN32
-  if (isatty(0) && isatty(1))
-    fgets (buf, 8, stdin); 
-  else
-    strcpy (buf, "E\n");
-#else
-  fgets (buf, 8, stdin); 
-#endif
-
-  if ((buf[0] == 'E' || buf[0] == 'e')
-      && buf[1] == '\n')
-    _exit (0);
-  else if ((buf[0] == 'P' || buf[0] == 'p')
-	   && buf[1] == '\n')
-    return;
-  else if (prg_name
-	   && (buf[0] == 'S' || buf[0] == 's')
-	   && buf[1] == '\n')
-    {
-      g_on_error_stack_trace (prg_name);
-      goto retry;
-    }
-  else if ((buf[0] == 'H' || buf[0] == 'h')
-	   && buf[1] == '\n')
-    {
-      while (glib_on_error_halt)
-	;
-      glib_on_error_halt = TRUE;
-      return;
-    }
-  else
-    goto retry;
-}
-
-void
-g_on_error_stack_trace (const gchar *prg_name)
-{
-#ifndef NATIVE_WIN32
-  pid_t pid;
-  gchar buf[16];
-  gchar *args[4] = { "gdb", NULL, NULL, NULL };
-
-  if (!prg_name)
-    return;
-
-  sprintf (buf, "%u", (guint) getpid ());
-
-  args[1] = (gchar*) prg_name;
-  args[2] = buf;
-
-  pid = fork ();
-  if (pid == 0)
-    {
-      stack_trace (args);
-      _exit (0);
-    }
-  else if (pid == (pid_t) -1)
-    {
-      perror ("unable to fork gdb");
-      return;
-    }
-  
-  while (glib_on_error_halt)
-    ;
-  glib_on_error_halt = TRUE;
-#else
-  abort ();
-#endif
-}
-
-static gboolean stack_trace_done = FALSE;
-
-static void
-stack_trace_sigchld (int signum)
-{
-  stack_trace_done = TRUE;
-}
-
-static void
-stack_trace (char **args)
-{
-#ifndef NATIVE_WIN32
-  pid_t pid;
-  int in_fd[2];
-  int out_fd[2];
-  SELECT_MASK fdset;
-  SELECT_MASK readset;
-  struct timeval tv;
-  int sel, index, state;
-  char buffer[256];
-  char c;
-
-  stack_trace_done = FALSE;
-  signal (SIGCHLD, stack_trace_sigchld);
-
-  if ((pipe (in_fd) == -1) || (pipe (out_fd) == -1))
-    {
-      perror ("unable to open pipe");
-      _exit (0);
-    }
-
-  pid = fork ();
-  if (pid == 0)
-    {
-      close (0); dup (in_fd[0]);   /* set the stdin to the in pipe */
-      close (1); dup (out_fd[1]);  /* set the stdout to the out pipe */
-      close (2); dup (out_fd[1]);  /* set the stderr to the out pipe */
-
-      execvp (args[0], args);      /* exec gdb */
-      perror ("exec failed");
-      _exit (0);
-    }
-  else if (pid == (pid_t) -1)
-    {
-      perror ("unable to fork");
-      _exit (0);
-    }
-
-  FD_ZERO (&fdset);
-  FD_SET (out_fd[0], &fdset);
-
-  write (in_fd[1], "backtrace\n", 10);
-  write (in_fd[1], "p x = 0\n", 8);
-  write (in_fd[1], "quit\n", 5);
-
-  index = 0;
-  state = 0;
-
-  while (1)
-    {
-      readset = fdset;
-      tv.tv_sec = 1;
-      tv.tv_usec = 0;
-
-      sel = select (FD_SETSIZE, &readset, NULL, NULL, &tv);
-      if (sel == -1)
-        break;
-
-      if ((sel > 0) && (FD_ISSET (out_fd[0], &readset)))
-        {
-          if (read (out_fd[0], &c, 1))
-            {
-              switch (state)
-                {
-                case 0:
-                  if (c == '#')
-                    {
-                      state = 1;
-                      index = 0;
-                      buffer[index++] = c;
-                    }
-                  break;
-                case 1:
-                  buffer[index++] = c;
-                  if ((c == '\n') || (c == '\r'))
-                    {
-                      buffer[index] = 0;
-                      fprintf (stdout, "%s", buffer);
-                      state = 0;
-                      index = 0;
-                    }
-                  break;
-                default:
-                  break;
-                }
-            }
-        }
-      else if (stack_trace_done)
-        break;
-    }
-
-  close (in_fd[0]);
-  close (in_fd[1]);
-  close (out_fd[0]);
-  close (out_fd[1]);
-  _exit (0);
-#else
-  abort ();
-#endif
-}
diff --git a/glib/ghash.c b/glib/ghash.c
deleted file mode 100644
index 331a1ab..0000000
--- a/glib/ghash.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-
-#define HASH_TABLE_MIN_SIZE 11
-#define HASH_TABLE_MAX_SIZE 13845163
-
-
-typedef struct _GHashNode      GHashNode;
-
-struct _GHashNode
-{
-  gpointer key;
-  gpointer value;
-  GHashNode *next;
-};
-
-struct _GHashTable
-{
-  gint size;
-  gint nnodes;
-  guint frozen;
-  GHashNode **nodes;
-  GHashFunc hash_func;
-  GCompareFunc key_compare_func;
-};
-
-
-static void		g_hash_table_resize	 (GHashTable	*hash_table);
-static GHashNode**	g_hash_table_lookup_node (GHashTable	*hash_table,
-						  gconstpointer	 key);
-static GHashNode*	g_hash_node_new		 (gpointer	 key,
-						  gpointer	 value);
-static void		g_hash_node_destroy	 (GHashNode	*hash_node);
-static void		g_hash_nodes_destroy	 (GHashNode	*hash_node);
-
-
-G_LOCK_DEFINE_STATIC (g_hash_global);
-
-static GMemChunk *node_mem_chunk = NULL;
-static GHashNode *node_free_list = NULL;
-
-
-GHashTable*
-g_hash_table_new (GHashFunc    hash_func,
-		  GCompareFunc key_compare_func)
-{
-  GHashTable *hash_table;
-  guint i;
-  
-  hash_table = g_new (GHashTable, 1);
-  hash_table->size = HASH_TABLE_MIN_SIZE;
-  hash_table->nnodes = 0;
-  hash_table->frozen = FALSE;
-  hash_table->hash_func = hash_func ? hash_func : g_direct_hash;
-  hash_table->key_compare_func = key_compare_func;
-  hash_table->nodes = g_new (GHashNode*, hash_table->size);
-  
-  for (i = 0; i < hash_table->size; i++)
-    hash_table->nodes[i] = NULL;
-  
-  return hash_table;
-}
-
-void
-g_hash_table_destroy (GHashTable *hash_table)
-{
-  guint i;
-  
-  g_return_if_fail (hash_table != NULL);
-  
-  for (i = 0; i < hash_table->size; i++)
-    g_hash_nodes_destroy (hash_table->nodes[i]);
-  
-  g_free (hash_table->nodes);
-  g_free (hash_table);
-}
-
-static inline GHashNode**
-g_hash_table_lookup_node (GHashTable	*hash_table,
-			  gconstpointer	 key)
-{
-  GHashNode **node;
-  
-  node = &hash_table->nodes
-    [(* hash_table->hash_func) (key) % hash_table->size];
-  
-  /* Hash table lookup needs to be fast.
-   *  We therefore remove the extra conditional of testing
-   *  whether to call the key_compare_func or not from
-   *  the inner loop.
-   */
-  if (hash_table->key_compare_func)
-    while (*node && !(*hash_table->key_compare_func) ((*node)->key, key))
-      node = &(*node)->next;
-  else
-    while (*node && (*node)->key != key)
-      node = &(*node)->next;
-  
-  return node;
-}
-
-gpointer
-g_hash_table_lookup (GHashTable	  *hash_table,
-		     gconstpointer key)
-{
-  GHashNode *node;
-  
-  g_return_val_if_fail (hash_table != NULL, NULL);
-  
-  node = *g_hash_table_lookup_node (hash_table, key);
-  
-  return node ? node->value : NULL;
-}
-
-void
-g_hash_table_insert (GHashTable *hash_table,
-		     gpointer	 key,
-		     gpointer	 value)
-{
-  GHashNode **node;
-  
-  g_return_if_fail (hash_table != NULL);
-  
-  node = g_hash_table_lookup_node (hash_table, key);
-  
-  if (*node)
-    {
-      /* do not reset node->key in this place, keeping
-       * the old key might be intended.
-       * a g_hash_table_remove/g_hash_table_insert pair
-       * can be used otherwise.
-       *
-       * node->key = key; */
-      (*node)->value = value;
-    }
-  else
-    {
-      *node = g_hash_node_new (key, value);
-      hash_table->nnodes++;
-      if (!hash_table->frozen)
-	g_hash_table_resize (hash_table);
-    }
-}
-
-void
-g_hash_table_remove (GHashTable	     *hash_table,
-		     gconstpointer    key)
-{
-  GHashNode **node, *dest;
-  
-  g_return_if_fail (hash_table != NULL);
-  
-  node = g_hash_table_lookup_node (hash_table, key);
-
-  if (*node)
-    {
-      dest = *node;
-      (*node) = dest->next;
-      g_hash_node_destroy (dest);
-      hash_table->nnodes--;
-  
-      if (!hash_table->frozen)
-        g_hash_table_resize (hash_table);
-    }
-}
-
-gboolean
-g_hash_table_lookup_extended (GHashTable	*hash_table,
-			      gconstpointer	 lookup_key,
-			      gpointer		*orig_key,
-			      gpointer		*value)
-{
-  GHashNode *node;
-  
-  g_return_val_if_fail (hash_table != NULL, FALSE);
-  
-  node = *g_hash_table_lookup_node (hash_table, lookup_key);
-  
-  if (node)
-    {
-      if (orig_key)
-	*orig_key = node->key;
-      if (value)
-	*value = node->value;
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-void
-g_hash_table_freeze (GHashTable *hash_table)
-{
-  g_return_if_fail (hash_table != NULL);
-  
-  hash_table->frozen++;
-}
-
-void
-g_hash_table_thaw (GHashTable *hash_table)
-{
-  g_return_if_fail (hash_table != NULL);
-  
-  if (hash_table->frozen)
-    if (!(--hash_table->frozen))
-      g_hash_table_resize (hash_table);
-}
-
-guint
-g_hash_table_foreach_remove (GHashTable	*hash_table,
-			     GHRFunc	 func,
-			     gpointer	 user_data)
-{
-  GHashNode *node, *prev;
-  guint i;
-  guint deleted = 0;
-  
-  g_return_val_if_fail (hash_table != NULL, 0);
-  g_return_val_if_fail (func != NULL, 0);
-  
-  for (i = 0; i < hash_table->size; i++)
-    {
-    restart:
-      
-      prev = NULL;
-      
-      for (node = hash_table->nodes[i]; node; prev = node, node = node->next)
-	{
-	  if ((* func) (node->key, node->value, user_data))
-	    {
-	      deleted += 1;
-	      
-	      hash_table->nnodes -= 1;
-	      
-	      if (prev)
-		{
-		  prev->next = node->next;
-		  g_hash_node_destroy (node);
-		  node = prev;
-		}
-	      else
-		{
-		  hash_table->nodes[i] = node->next;
-		  g_hash_node_destroy (node);
-		  goto restart;
-		}
-	    }
-	}
-    }
-  
-  if (!hash_table->frozen)
-    g_hash_table_resize (hash_table);
-  
-  return deleted;
-}
-
-void
-g_hash_table_foreach (GHashTable *hash_table,
-		      GHFunc	  func,
-		      gpointer	  user_data)
-{
-  GHashNode *node;
-  gint i;
-  
-  g_return_if_fail (hash_table != NULL);
-  g_return_if_fail (func != NULL);
-  
-  for (i = 0; i < hash_table->size; i++)
-    for (node = hash_table->nodes[i]; node; node = node->next)
-      (* func) (node->key, node->value, user_data);
-}
-
-/* Returns the number of elements contained in the hash table. */
-guint
-g_hash_table_size (GHashTable *hash_table)
-{
-  g_return_val_if_fail (hash_table != NULL, 0);
-  
-  return hash_table->nnodes;
-}
-
-static void
-g_hash_table_resize (GHashTable *hash_table)
-{
-  GHashNode **new_nodes;
-  GHashNode *node;
-  GHashNode *next;
-  gfloat nodes_per_list;
-  guint hash_val;
-  gint new_size;
-  gint i;
-  
-  nodes_per_list = (gfloat) hash_table->nnodes / (gfloat) hash_table->size;
-  
-  if ((nodes_per_list > 0.3 || hash_table->size <= HASH_TABLE_MIN_SIZE) &&
-      (nodes_per_list < 3.0 || hash_table->size >= HASH_TABLE_MAX_SIZE))
-    return;
-  
-  new_size = CLAMP(g_spaced_primes_closest (hash_table->nnodes),
-		   HASH_TABLE_MIN_SIZE,
-		   HASH_TABLE_MAX_SIZE);
-  new_nodes = g_new0 (GHashNode*, new_size);
-  
-  for (i = 0; i < hash_table->size; i++)
-    for (node = hash_table->nodes[i]; node; node = next)
-      {
-	next = node->next;
-
-	hash_val = (* hash_table->hash_func) (node->key) % new_size;
-
-	node->next = new_nodes[hash_val];
-	new_nodes[hash_val] = node;
-      }
-  
-  g_free (hash_table->nodes);
-  hash_table->nodes = new_nodes;
-  hash_table->size = new_size;
-}
-
-static GHashNode*
-g_hash_node_new (gpointer key,
-		 gpointer value)
-{
-  GHashNode *hash_node;
-  
-  G_LOCK (g_hash_global);
-  if (node_free_list)
-    {
-      hash_node = node_free_list;
-      node_free_list = node_free_list->next;
-    }
-  else
-    {
-      if (!node_mem_chunk)
-	node_mem_chunk = g_mem_chunk_new ("hash node mem chunk",
-					  sizeof (GHashNode),
-					  1024, G_ALLOC_ONLY);
-      
-      hash_node = g_chunk_new (GHashNode, node_mem_chunk);
-    }
-  G_UNLOCK (g_hash_global);
-  
-  hash_node->key = key;
-  hash_node->value = value;
-  hash_node->next = NULL;
-  
-  return hash_node;
-}
-
-static void
-g_hash_node_destroy (GHashNode *hash_node)
-{
-  G_LOCK (g_hash_global);
-  hash_node->next = node_free_list;
-  node_free_list = hash_node;
-  G_UNLOCK (g_hash_global);
-}
-
-static void
-g_hash_nodes_destroy (GHashNode *hash_node)
-{
-  if (hash_node)
-    {
-      GHashNode *node = hash_node;
-  
-      while (node->next)
-        node = node->next;
-  
-      G_LOCK (g_hash_global);
-      node->next = node_free_list;
-      node_free_list = hash_node;
-      G_UNLOCK (g_hash_global);
-    }
-}
diff --git a/glib/ghook.c b/glib/ghook.c
deleted file mode 100644
index 09e8883..0000000
--- a/glib/ghook.c
+++ /dev/null
@@ -1,633 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * GHook: Callback maintenance functions
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include	"glib.h"
-
-
-/* --- defines --- */
-#define	G_HOOKS_PREALLOC	(16)
-
-
-/* --- functions --- */
-void
-g_hook_list_init (GHookList *hook_list,
-		  guint	     hook_size)
-{
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_size >= sizeof (GHook));
-  
-  hook_list->seq_id = 1;
-  hook_list->hook_size = hook_size;
-  hook_list->is_setup = TRUE;
-  hook_list->hooks = NULL;
-  hook_list->hook_memchunk = g_mem_chunk_new ("GHook Memchunk",
-					      hook_size,
-					      hook_size * G_HOOKS_PREALLOC,
-					      G_ALLOC_AND_FREE);
-  hook_list->hook_free = NULL;
-  hook_list->hook_destroy = NULL;
-}
-
-void
-g_hook_list_clear (GHookList *hook_list)
-{
-  g_return_if_fail (hook_list != NULL);
-  
-  if (hook_list->is_setup)
-    {
-      GHook *hook;
-      
-      hook_list->is_setup = FALSE;
-      
-      hook = hook_list->hooks;
-      if (!hook)
-	{
-	  g_mem_chunk_destroy (hook_list->hook_memchunk);
-	  hook_list->hook_memchunk = NULL;
-	}
-      else
-	do
-	  {
-	    GHook *tmp;
-	    
-	    g_hook_ref (hook_list, hook);
-	    g_hook_destroy_link (hook_list, hook);
-	    tmp = hook->next;
-	    g_hook_unref (hook_list, hook);
-	    hook = tmp;
-	  }
-	while (hook);
-    }
-}
-
-GHook*
-g_hook_alloc (GHookList *hook_list)
-{
-  GHook *hook;
-  
-  g_return_val_if_fail (hook_list != NULL, NULL);
-  g_return_val_if_fail (hook_list->is_setup, NULL);
-  
-  hook = g_chunk_new0 (GHook, hook_list->hook_memchunk);
-  hook->data = NULL;
-  hook->next = NULL;
-  hook->prev = NULL;
-  hook->flags = G_HOOK_FLAG_ACTIVE;
-  hook->ref_count = 0;
-  hook->hook_id = 0;
-  hook->func = NULL;
-  hook->destroy = NULL;
-  
-  return hook;
-}
-
-void
-g_hook_free (GHookList *hook_list,
-	     GHook     *hook)
-{
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->is_setup);
-  g_return_if_fail (hook != NULL);
-  g_return_if_fail (G_HOOK_IS_UNLINKED (hook));
-
-  if (hook_list->hook_free)
-    hook_list->hook_free (hook_list, hook);
-  
-  g_chunk_free (hook, hook_list->hook_memchunk);
-}
-
-void
-g_hook_destroy_link (GHookList *hook_list,
-		     GHook     *hook)
-{
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook != NULL);
-  
-  if (hook->hook_id)
-    {
-      hook->hook_id = 0;
-      hook->flags &= ~G_HOOK_FLAG_ACTIVE;
-      if (hook_list->hook_destroy)
-	{
-	  if (hook_list->hook_destroy != G_HOOK_DEFERRED_DESTROY)
-	    hook_list->hook_destroy (hook_list, hook);
-	}
-      else if (hook->destroy)
-	{
-	  hook->destroy (hook->data);
-	  hook->data = NULL;
-	  hook->func = NULL;
-	  hook->destroy = NULL;
-	}
-      g_hook_unref (hook_list, hook); /* counterpart to g_hook_insert_before */
-    }
-}
-
-gboolean
-g_hook_destroy (GHookList   *hook_list,
-		guint	     hook_id)
-{
-  GHook *hook;
-  
-  g_return_val_if_fail (hook_list != NULL, FALSE);
-  g_return_val_if_fail (hook_id > 0, FALSE);
-  
-  hook = g_hook_get (hook_list, hook_id);
-  if (hook)
-    {
-      g_hook_destroy_link (hook_list, hook);
-      return TRUE;
-    }
-  
-  return FALSE;
-}
-
-void
-g_hook_unref (GHookList *hook_list,
-	      GHook	*hook)
-{
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->hook_memchunk != NULL);
-  g_return_if_fail (hook != NULL);
-  g_return_if_fail (hook->ref_count > 0);
-  
-  hook->ref_count--;
-  if (!hook->ref_count)
-    {
-      g_return_if_fail (hook->hook_id == 0);
-      g_return_if_fail (!G_HOOK_IN_CALL (hook));
-      
-      if (hook->prev)
-	hook->prev->next = hook->next;
-      else
-	hook_list->hooks = hook->next;
-      if (hook->next)
-	{
-	  hook->next->prev = hook->prev;
-	  hook->next = NULL;
-	}
-      hook->prev = NULL;
-
-      if (!hook_list->is_setup)
-	{
-	  hook_list->is_setup = TRUE;
-	  g_hook_free (hook_list, hook);
-	  hook_list->is_setup = FALSE;
-      
-	  if (!hook_list->hooks)
-	    {
-	      g_mem_chunk_destroy (hook_list->hook_memchunk);
-	      hook_list->hook_memchunk = NULL;
-	    }
-	}
-      else
-	g_hook_free (hook_list, hook);
-    }
-}
-
-void
-g_hook_ref (GHookList *hook_list,
-	    GHook     *hook)
-{
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook != NULL);
-  g_return_if_fail (hook->ref_count > 0);
-  
-  hook->ref_count++;
-}
-
-void
-g_hook_prepend (GHookList *hook_list,
-		GHook	  *hook)
-{
-  g_return_if_fail (hook_list != NULL);
-  
-  g_hook_insert_before (hook_list, hook_list->hooks, hook);
-}
-
-void
-g_hook_insert_before (GHookList *hook_list,
-		      GHook	*sibling,
-		      GHook	*hook)
-{
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->is_setup);
-  g_return_if_fail (hook != NULL);
-  g_return_if_fail (G_HOOK_IS_UNLINKED (hook));
-  g_return_if_fail (hook->func != NULL);
-  
-  hook->hook_id = hook_list->seq_id++;
-  hook->ref_count = 1; /* counterpart to g_hook_destroy_link */
-  
-  if (sibling)
-    {
-      if (sibling->prev)
-	{
-	  hook->prev = sibling->prev;
-	  hook->prev->next = hook;
-	  hook->next = sibling;
-	  sibling->prev = hook;
-	}
-      else
-	{
-	  hook_list->hooks = hook;
-	  hook->next = sibling;
-	  sibling->prev = hook;
-	}
-    }
-  else
-    {
-      if (hook_list->hooks)
-	{
-	  sibling = hook_list->hooks;
-	  while (sibling->next)
-	    sibling = sibling->next;
-	  hook->prev = sibling;
-	  sibling->next = hook;
-	}
-      else
-	hook_list->hooks = hook;
-    }
-}
-
-void
-g_hook_list_invoke (GHookList *hook_list,
-		    gboolean   may_recurse)
-{
-  GHook *hook;
-  
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->is_setup);
-
-  hook = g_hook_first_valid (hook_list, may_recurse);
-  while (hook)
-    {
-      GHookFunc func;
-      gboolean was_in_call;
-      
-      func = (GHookFunc) hook->func;
-      
-      was_in_call = G_HOOK_IN_CALL (hook);
-      hook->flags |= G_HOOK_FLAG_IN_CALL;
-      func (hook->data);
-      if (!was_in_call)
-	hook->flags &= ~G_HOOK_FLAG_IN_CALL;
-      
-      hook = g_hook_next_valid (hook_list, hook, may_recurse);
-    }
-}
-
-void
-g_hook_list_invoke_check (GHookList *hook_list,
-			  gboolean   may_recurse)
-{
-  GHook *hook;
-  
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->is_setup);
-  
-  hook = g_hook_first_valid (hook_list, may_recurse);
-  while (hook)
-    {
-      GHookCheckFunc func;
-      gboolean was_in_call;
-      gboolean need_destroy;
-      
-      func = (GHookCheckFunc) hook->func;
-      
-      was_in_call = G_HOOK_IN_CALL (hook);
-      hook->flags |= G_HOOK_FLAG_IN_CALL;
-      need_destroy = !func (hook->data);
-      if (!was_in_call)
-	hook->flags &= ~G_HOOK_FLAG_IN_CALL;
-      if (need_destroy)
-	g_hook_destroy_link (hook_list, hook);
-      
-      hook = g_hook_next_valid (hook_list, hook, may_recurse);
-    }
-}
-
-void
-g_hook_list_marshal_check (GHookList	       *hook_list,
-			   gboolean		may_recurse,
-			   GHookCheckMarshaller marshaller,
-			   gpointer		data)
-{
-  GHook *hook;
-  
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->is_setup);
-  g_return_if_fail (marshaller != NULL);
-  
-  hook = g_hook_first_valid (hook_list, may_recurse);
-  while (hook)
-    {
-      gboolean was_in_call;
-      gboolean need_destroy;
-      
-      was_in_call = G_HOOK_IN_CALL (hook);
-      hook->flags |= G_HOOK_FLAG_IN_CALL;
-      need_destroy = !marshaller (hook, data);
-      if (!was_in_call)
-	hook->flags &= ~G_HOOK_FLAG_IN_CALL;
-      if (need_destroy)
-	g_hook_destroy_link (hook_list, hook);
-      
-      hook = g_hook_next_valid (hook_list, hook, may_recurse);
-    }
-}
-
-void
-g_hook_list_marshal (GHookList		     *hook_list,
-		     gboolean		      may_recurse,
-		     GHookMarshaller	      marshaller,
-		     gpointer		      data)
-{
-  GHook *hook;
-  
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->is_setup);
-  g_return_if_fail (marshaller != NULL);
-  
-  hook = g_hook_first_valid (hook_list, may_recurse);
-  while (hook)
-    {
-      gboolean was_in_call;
-      
-      was_in_call = G_HOOK_IN_CALL (hook);
-      hook->flags |= G_HOOK_FLAG_IN_CALL;
-      marshaller (hook, data);
-      if (!was_in_call)
-	hook->flags &= ~G_HOOK_FLAG_IN_CALL;
-      
-      hook = g_hook_next_valid (hook_list, hook, may_recurse);
-    }
-}
-
-GHook*
-g_hook_first_valid (GHookList *hook_list,
-		    gboolean   may_be_in_call)
-{
-  g_return_val_if_fail (hook_list != NULL, NULL);
-  
-  if (hook_list->is_setup)
-    {
-      GHook *hook;
-      
-      hook = hook_list->hooks;
-      if (hook)
-	{
-	  g_hook_ref (hook_list, hook);
-	  if (G_HOOK_IS_VALID (hook) && (may_be_in_call || !G_HOOK_IN_CALL (hook)))
-	    return hook;
-	  else
-	    return g_hook_next_valid (hook_list, hook, may_be_in_call);
-	}
-    }
-  
-  return NULL;
-}
-
-GHook*
-g_hook_next_valid (GHookList *hook_list,
-		   GHook     *hook,
-		   gboolean   may_be_in_call)
-{
-  GHook *ohook = hook;
-
-  g_return_val_if_fail (hook_list != NULL, NULL);
-
-  if (!hook)
-    return NULL;
-  
-  hook = hook->next;
-  while (hook)
-    {
-      if (G_HOOK_IS_VALID (hook) && (may_be_in_call || !G_HOOK_IN_CALL (hook)))
-	{
-	  g_hook_ref (hook_list, hook);
-	  g_hook_unref (hook_list, ohook);
-	  
-	  return hook;
-	}
-      hook = hook->next;
-    }
-  g_hook_unref (hook_list, ohook);
-
-  return NULL;
-}
-
-GHook*
-g_hook_get (GHookList *hook_list,
-	    guint      hook_id)
-{
-  GHook *hook;
-  
-  g_return_val_if_fail (hook_list != NULL, NULL);
-  g_return_val_if_fail (hook_id > 0, NULL);
-  
-  hook = hook_list->hooks;
-  while (hook)
-    {
-      if (hook->hook_id == hook_id)
-	return hook;
-      hook = hook->next;
-    }
-  
-  return NULL;
-}
-
-GHook*
-g_hook_find (GHookList	  *hook_list,
-	     gboolean	   need_valids,
-	     GHookFindFunc func,
-	     gpointer	   data)
-{
-  GHook *hook;
-  
-  g_return_val_if_fail (hook_list != NULL, NULL);
-  g_return_val_if_fail (func != NULL, NULL);
-  
-  hook = hook_list->hooks;
-  while (hook)
-    {
-      GHook *tmp;
-
-      /* test only non-destroyed hooks */
-      if (!hook->hook_id)
-	{
-	  hook = hook->next;
-	  continue;
-	}
-      
-      g_hook_ref (hook_list, hook);
-      
-      if (func (hook, data) && hook->hook_id && (!need_valids || G_HOOK_ACTIVE (hook)))
-	{
-	  g_hook_unref (hook_list, hook);
-	  
-	  return hook;
-	}
-
-      tmp = hook->next;
-      g_hook_unref (hook_list, hook);
-      hook = tmp;
-    }
-  
-  return NULL;
-}
-
-GHook*
-g_hook_find_data (GHookList *hook_list,
-		  gboolean   need_valids,
-		  gpointer   data)
-{
-  GHook *hook;
-  
-  g_return_val_if_fail (hook_list != NULL, NULL);
-  
-  hook = hook_list->hooks;
-  while (hook)
-    {
-      /* test only non-destroyed hooks */
-      if (hook->data == data &&
-	  hook->hook_id &&
-	  (!need_valids || G_HOOK_ACTIVE (hook)))
-	return hook;
-
-      hook = hook->next;
-    }
-  
-  return NULL;
-}
-
-GHook*
-g_hook_find_func (GHookList *hook_list,
-		  gboolean   need_valids,
-		  gpointer   func)
-{
-  GHook *hook;
-  
-  g_return_val_if_fail (hook_list != NULL, NULL);
-  g_return_val_if_fail (func != NULL, NULL);
-  
-  hook = hook_list->hooks;
-  while (hook)
-    {
-      /* test only non-destroyed hooks */
-      if (hook->func == func &&
-	  hook->hook_id &&
-	  (!need_valids || G_HOOK_ACTIVE (hook)))
-	return hook;
-
-      hook = hook->next;
-    }
-  
-  return NULL;
-}
-
-GHook*
-g_hook_find_func_data (GHookList *hook_list,
-		       gboolean	  need_valids,
-		       gpointer	  func,
-		       gpointer	  data)
-{
-  GHook *hook;
-  
-  g_return_val_if_fail (hook_list != NULL, NULL);
-  g_return_val_if_fail (func != NULL, NULL);
-  
-  hook = hook_list->hooks;
-  while (hook)
-    {
-      /* test only non-destroyed hooks */
-      if (hook->data == data &&
-	  hook->func == func &&
-	  hook->hook_id &&
-	  (!need_valids || G_HOOK_ACTIVE (hook)))
-	return hook;
-
-      hook = hook->next;
-    }
-  
-  return NULL;
-}
-
-void
-g_hook_insert_sorted (GHookList	      *hook_list,
-		      GHook	      *hook,
-		      GHookCompareFunc func)
-{
-  GHook *sibling;
-  
-  g_return_if_fail (hook_list != NULL);
-  g_return_if_fail (hook_list->is_setup);
-  g_return_if_fail (hook != NULL);
-  g_return_if_fail (G_HOOK_IS_UNLINKED (hook));
-  g_return_if_fail (hook->func != NULL);
-  g_return_if_fail (func != NULL);
-
-  /* first non-destroyed hook */
-  sibling = hook_list->hooks;
-  while (sibling && !sibling->hook_id)
-    sibling = sibling->next;
-  
-  while (sibling)
-    {
-      GHook *tmp;
-      
-      g_hook_ref (hook_list, sibling);
-      if (func (hook, sibling) <= 0 && sibling->hook_id)
-	{
-	  g_hook_unref (hook_list, sibling);
-	  break;
-	}
-
-      /* next non-destroyed hook */
-      tmp = sibling->next;
-      while (tmp && !tmp->hook_id)
-	tmp = tmp->next;
-
-      g_hook_unref (hook_list, sibling);
-      sibling = tmp;
-    }
-  
-  g_hook_insert_before (hook_list, sibling, hook);
-}
-
-gint
-g_hook_compare_ids (GHook *new_hook,
-		    GHook *sibling)
-{
-  return ((glong) new_hook->hook_id) - ((glong) sibling->hook_id);
-}
diff --git a/glib/giochannel.c b/glib/giochannel.c
deleted file mode 100644
index 8556f0d..0000000
--- a/glib/giochannel.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * giochannel.c: IO Channel abstraction
- * Copyright 1998 Owen Taylor
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "config.h"
-
-#include "glib.h"
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-void
-g_io_channel_init (GIOChannel *channel)
-{
-  channel->channel_flags = 0;
-  channel->ref_count = 1;
-}
-
-
-void 
-g_io_channel_ref (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  channel->ref_count++;
-}
-
-void 
-g_io_channel_unref (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  channel->ref_count--;
-  if (channel->ref_count == 0)
-    channel->funcs->io_free (channel);
-}
-
-GIOError 
-g_io_channel_read (GIOChannel *channel, 
-		   gchar      *buf, 
-		   guint       count,
-		   guint      *bytes_read)
-{
-  g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN);
-
-  return channel->funcs->io_read (channel, buf, count, bytes_read);
-}
-
-GIOError 
-g_io_channel_write (GIOChannel *channel, 
-		    gchar      *buf, 
-		    guint       count,
-		    guint      *bytes_written)
-{
-  g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN);
-
-  return channel->funcs->io_write (channel, buf, count, bytes_written);
-}
-
-GIOError 
-g_io_channel_seek  (GIOChannel   *channel,
-		    gint        offset, 
-		    GSeekType   type)
-{
-  g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN);
-
-  return channel->funcs->io_seek (channel, offset, type);
-}
-     
-void
-g_io_channel_close (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  channel->funcs->io_close (channel);
-}
-
-guint 
-g_io_add_watch_full (GIOChannel    *channel,
-		     gint           priority,
-		     GIOCondition   condition,
-		     GIOFunc        func,
-		     gpointer       user_data,
-		     GDestroyNotify notify)
-{
-  g_return_val_if_fail (channel != NULL, 0);
-
-  return channel->funcs->io_add_watch (channel, priority, condition,
-				       func, user_data, notify);
-}
-
-guint 
-g_io_add_watch (GIOChannel    *channel,
-		GIOCondition   condition,
-		GIOFunc        func,
-		gpointer       user_data)
-{
-  return g_io_add_watch_full (channel, 0, condition, func, user_data, NULL);
-}
diff --git a/glib/giounix.c b/glib/giounix.c
deleted file mode 100644
index 1085275..0000000
--- a/glib/giounix.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * giounix.c: IO Channels using unix file descriptors
- * Copyright 1998 Owen Taylor
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-#include <sys/types.h>
-#include <unistd.h>
-#include <errno.h>
-
-/*
- * Unix IO Channels
- */
-
-typedef struct _GIOUnixChannel GIOUnixChannel;
-typedef struct _GIOUnixWatch GIOUnixWatch;
-
-struct _GIOUnixChannel {
-  GIOChannel channel;
-  gint fd;
-};
-
-struct _GIOUnixWatch {
-  GPollFD       pollfd;
-  GIOChannel   *channel;
-  GIOCondition  condition;
-  GIOFunc       callback;
-};
-
-
-static GIOError g_io_unix_read (GIOChannel *channel, 
-		       gchar     *buf, 
-		       guint      count,
-		       guint     *bytes_written);
-		       
-static GIOError g_io_unix_write(GIOChannel *channel, 
-				gchar     *buf, 
-				guint      count,
-				guint     *bytes_written);
-static GIOError g_io_unix_seek (GIOChannel *channel,
-				gint      offset, 
-				GSeekType type);
-static void g_io_unix_close    (GIOChannel *channel);
-static void g_io_unix_free     (GIOChannel *channel);
-static guint  g_io_unix_add_watch (GIOChannel      *channel,
-				   gint           priority,
-				   GIOCondition   condition,
-				   GIOFunc        func,
-				   gpointer       user_data,
-				   GDestroyNotify notify);
-static gboolean g_io_unix_prepare  (gpointer source_data, 
-				    GTimeVal *current_time,
-				    gint *timeout,
-				    gpointer user_data);
-static gboolean g_io_unix_check    (gpointer source_data,
-				    GTimeVal *current_time,
-				    gpointer user_data);
-static gboolean g_io_unix_dispatch (gpointer source_data,
-				    GTimeVal *current_time,
-				    gpointer user_data);
-static void g_io_unix_destroy  (gpointer source_data);
-
-GSourceFuncs unix_watch_funcs = {
-  g_io_unix_prepare,
-  g_io_unix_check,
-  g_io_unix_dispatch,
-  g_io_unix_destroy
-};
-
-GIOFuncs unix_channel_funcs = {
-  g_io_unix_read,
-  g_io_unix_write,
-  g_io_unix_seek,
-  g_io_unix_close,
-  g_io_unix_add_watch,
-  g_io_unix_free,
-};
-
-static gboolean 
-g_io_unix_prepare  (gpointer source_data, 
-		    GTimeVal *current_time,
-		    gint     *timeout,
-		    gpointer user_data)
-{
-  *timeout = -1;
-  return FALSE;
-}
-
-static gboolean 
-g_io_unix_check    (gpointer source_data,
-		    GTimeVal *current_time,
-		    gpointer user_data)
-{
-  GIOUnixWatch *data = source_data;
-
-  return (data->pollfd.revents & data->condition);
-}
-
-static gboolean
-g_io_unix_dispatch (gpointer source_data, 
-		    GTimeVal *current_time,
-		    gpointer user_data)
-
-{
-  GIOUnixWatch *data = source_data;
-
-  return (*data->callback)(data->channel,
-			   data->pollfd.revents & data->condition,
-			   user_data);
-}
-
-static void 
-g_io_unix_destroy (gpointer source_data)
-{
-  GIOUnixWatch *data = source_data;
-
-  g_main_remove_poll (&data->pollfd);
-  g_io_channel_unref (data->channel);
-  g_free (data);
-}
-
-static GIOError 
-g_io_unix_read (GIOChannel *channel, 
-		gchar     *buf, 
-		guint      count,
-		guint     *bytes_read)
-{
-  GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel;
-  gint result;
-
-  result = read (unix_channel->fd, buf, count);
-
-  if (result < 0)
-    {
-      *bytes_read = 0;
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	case EAGAIN:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      *bytes_read = result;
-      return G_IO_ERROR_NONE;
-    }
-}
-		       
-static GIOError 
-g_io_unix_write(GIOChannel *channel, 
-		gchar     *buf, 
-		guint      count,
-		guint     *bytes_written)
-{
-  GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel;
-  gint result;
-
-  result = write (unix_channel->fd, buf, count);
-
-  if (result < 0)
-    {
-      *bytes_written = 0;
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	case EAGAIN:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      *bytes_written = result;
-      return G_IO_ERROR_NONE;
-    }
-}
-
-static GIOError 
-g_io_unix_seek (GIOChannel *channel,
-		gint      offset, 
-		GSeekType type)
-{
-  GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel;
-  int whence;
-  off_t result;
-
-  switch (type)
-    {
-    case G_SEEK_SET:
-      whence = SEEK_SET;
-      break;
-    case G_SEEK_CUR:
-      whence = SEEK_CUR;
-      break;
-    case G_SEEK_END:
-      whence = SEEK_END;
-      break;
-    default:
-      g_warning ("g_io_unix_seek: unknown seek type");
-      return G_IO_ERROR_UNKNOWN;
-    }
-
-  result = lseek (unix_channel->fd, offset, whence);
-
-  if (result < 0)
-    {
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    return G_IO_ERROR_NONE;
-}
-
-
-static void 
-g_io_unix_close (GIOChannel *channel)
-{
-  GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel;
-
-  close (unix_channel->fd);
-}
-
-static void 
-g_io_unix_free (GIOChannel *channel)
-{
-  GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel;
-
-  g_free (unix_channel);
-}
-
-static guint 
-g_io_unix_add_watch (GIOChannel    *channel,
-		     gint           priority,
-		     GIOCondition   condition,
-		     GIOFunc        func,
-		     gpointer       user_data,
-		     GDestroyNotify notify)
-{
-  GIOUnixWatch *watch = g_new (GIOUnixWatch, 1);
-  GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel;
-  
-  watch->channel = channel;
-  g_io_channel_ref (channel);
-
-  watch->callback = func;
-  watch->condition = condition;
-
-  watch->pollfd.fd = unix_channel->fd;
-  watch->pollfd.events = condition;
-
-  g_main_add_poll (&watch->pollfd, priority);
-
-  return g_source_add (priority, TRUE, &unix_watch_funcs, watch, user_data, notify);
-}
-
-GIOChannel *
-g_io_channel_unix_new (gint fd)
-{
-  GIOUnixChannel *unix_channel = g_new (GIOUnixChannel, 1);
-  GIOChannel *channel = (GIOChannel *)unix_channel;
-
-  g_io_channel_init (channel);
-  channel->funcs = &unix_channel_funcs;
-
-  unix_channel->fd = fd;
-  return channel;
-}
-
-gint
-g_io_channel_unix_get_fd (GIOChannel *channel)
-{
-  GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel;
-  return unix_channel->fd;
-}
diff --git a/glib/giowin32.c b/glib/giowin32.c
deleted file mode 100644
index d5e467e..0000000
--- a/glib/giowin32.c
+++ /dev/null
@@ -1,1035 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * giowin32.c: IO Channels for Win32.
- * Copyright 1998 Owen Taylor and Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-
-#include "config.h"
-#include "glib.h"
-#include <windows.h>
-#include <winsock.h>		/* Not everybody has winsock2 */
-#include <fcntl.h>
-#include <io.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#include <stdio.h>
-
-typedef struct _GIOWin32Channel GIOWin32Channel;
-typedef struct _GIOWin32Watch GIOWin32Watch;
-
-guint g_pipe_readable_msg;
-
-typedef enum {
-  G_IO_WINDOWS_MESSAGES,	/* Windows messages */
-  G_IO_FILE_DESC,		/* Unix-like file descriptors from _open*/
-  G_IO_PIPE,			/* pipe, with windows messages for signalling */
-  G_IO_STREAM_SOCKET		/* Stream sockets */
-} GIOWin32ChannelType;
-
-struct _GIOWin32Channel {
-  GIOChannel channel;
-  gint fd;			/* Either a Unix-like file handle as provided
-				 * by the Microsoft C runtime, or a SOCKET
-				 * as provided by WinSock.
-				 */
-  GIOWin32ChannelType type;
-
-  /* This is used by G_IO_WINDOWS_MESSAGES channels */
-  HWND hwnd;			/* handle of window, or NULL */
-
-  /* This is used by G_IO_PIPE channels */
-  guint peer;			/* thread id of reader */
-  guint peer_fd;		/* fd in the reader */
-  guint offset;			/* counter of accumulated bytes */
-  guint need_wakeups;		/* in output channels whether the
-				 * reader needs wakeups
-				 */
-};
-
-struct _GIOWin32Watch {
-  GPollFD       pollfd;
-  GIOChannel   *channel;
-  GIOCondition  condition;
-  GIOFunc       callback;
-};
-
-static gboolean g_io_win32_msg_prepare  (gpointer  source_data, 
-					 GTimeVal *current_time,
-					 gint     *timeout);
-static gboolean g_io_win32_msg_check    (gpointer  source_data,
-					 GTimeVal *current_time);
-static gboolean g_io_win32_msg_dispatch (gpointer  source_data,
-					 GTimeVal *current_time,
-					 gpointer  user_data);
-
-static gboolean g_io_win32_fd_prepare  (gpointer  source_data, 
-					GTimeVal *current_time,
-					gint     *timeout);
-static gboolean g_io_win32_fd_check    (gpointer  source_data,
-					GTimeVal *current_time);
-static gboolean g_io_win32_fd_dispatch (gpointer  source_data,
-					GTimeVal *current_time,
-					gpointer  user_data);
-
-static gboolean g_io_win32_pipe_prepare  (gpointer  source_data, 
-					  GTimeVal *current_time,
-					  gint     *timeout);
-static gboolean g_io_win32_pipe_check    (gpointer  source_data,
-					  GTimeVal *current_time);
-static gboolean g_io_win32_pipe_dispatch (gpointer  source_data,
-					  GTimeVal *current_time,
-					  gpointer  user_data);
-static void g_io_win32_pipe_destroy	 (gpointer source_data);
-
-static gboolean g_io_win32_sock_prepare  (gpointer  source_data, 
-					  GTimeVal *current_time,
-					  gint     *timeout);
-static gboolean g_io_win32_sock_check    (gpointer  source_data,
-					  GTimeVal *current_time);
-static gboolean g_io_win32_sock_dispatch (gpointer  source_data,
-					  GTimeVal *current_time,
-					  gpointer  user_data);
-
-static void g_io_win32_destroy (gpointer source_data);
-
-static GIOError g_io_win32_msg_read (GIOChannel *channel, 
-				     gchar      *buf, 
-				     guint       count,
-				     guint      *bytes_written);
-
-static GIOError g_io_win32_msg_write(GIOChannel *channel, 
-				     gchar      *buf, 
-				     guint       count,
-				     guint      *bytes_written);
-static GIOError g_io_win32_msg_seek (GIOChannel *channel,
-				     gint        offset, 
-				     GSeekType   type);
-static void g_io_win32_msg_close    (GIOChannel *channel);
-static guint g_io_win32_msg_add_watch (GIOChannel      *channel,
-				       gint             priority,
-				       GIOCondition     condition,
-				       GIOFunc          func,
-				       gpointer         user_data,
-				       GDestroyNotify   notify);
-
-static GIOError g_io_win32_fd_read (GIOChannel *channel, 
-				    gchar      *buf, 
-				    guint       count,
-				    guint      *bytes_written);
-static GIOError g_io_win32_fd_write(GIOChannel *channel, 
-				    gchar      *buf, 
-				    guint       count,
-				    guint      *bytes_written);
-static GIOError g_io_win32_fd_seek (GIOChannel *channel,
-				    gint        offset, 
-				    GSeekType   type);
-static void g_io_win32_fd_close (GIOChannel *channel);
-
-static void g_io_win32_free (GIOChannel *channel);
-
-static guint g_io_win32_fd_add_watch (GIOChannel      *channel,
-				      gint             priority,
-				      GIOCondition     condition,
-				      GIOFunc          func,
-				      gpointer         user_data,
-				      GDestroyNotify   notify);
-
-static GIOError g_io_win32_no_seek (GIOChannel *channel,
-				    gint        offset, 
-				    GSeekType   type);
-
-static GIOError g_io_win32_pipe_read (GIOChannel *channel, 
-				      gchar      *buf, 
-				      guint       count,
-				      guint      *bytes_written);
-static GIOError g_io_win32_pipe_write (GIOChannel *channel, 
-				       gchar      *buf, 
-				       guint       count,
-				       guint      *bytes_written);
-static void g_io_win32_pipe_close    (GIOChannel *channel);
-static guint g_io_win32_pipe_add_watch (GIOChannel      *channel,
-					gint             priority,
-					GIOCondition     condition,
-					GIOFunc          func,
-					gpointer         user_data,
-					GDestroyNotify   notify);
-static void g_io_win32_pipe_free (GIOChannel *channel);
-
-static GIOError g_io_win32_sock_read (GIOChannel *channel, 
-				      gchar      *buf, 
-				      guint       count,
-				      guint      *bytes_written);
-static GIOError g_io_win32_sock_write(GIOChannel *channel, 
-				      gchar      *buf, 
-				      guint       count,
-				      guint      *bytes_written);
-static void g_io_win32_sock_close    (GIOChannel *channel);
-static guint g_io_win32_sock_add_watch (GIOChannel      *channel,
-					gint             priority,
-					GIOCondition     condition,
-					GIOFunc          func,
-					gpointer         user_data,
-					GDestroyNotify   notify);
-
-GSourceFuncs win32_watch_msg_funcs = {
-  g_io_win32_msg_prepare,
-  g_io_win32_msg_check,
-  g_io_win32_msg_dispatch,
-  g_io_win32_destroy
-};
-
-GSourceFuncs win32_watch_fd_funcs = {
-  g_io_win32_fd_prepare,
-  g_io_win32_fd_check,
-  g_io_win32_fd_dispatch,
-  g_io_win32_destroy
-};
-
-GSourceFuncs win32_watch_pipe_funcs = {
-  g_io_win32_pipe_prepare,
-  g_io_win32_pipe_check,
-  g_io_win32_pipe_dispatch,
-  g_io_win32_pipe_destroy
-};
-
-GSourceFuncs win32_watch_sock_funcs = {
-  g_io_win32_sock_prepare,
-  g_io_win32_sock_check,
-  g_io_win32_sock_dispatch,
-  g_io_win32_destroy
-};
-
-GIOFuncs win32_channel_msg_funcs = {
-  g_io_win32_msg_read,
-  g_io_win32_msg_write,
-  g_io_win32_no_seek,
-  g_io_win32_msg_close,
-  g_io_win32_msg_add_watch,
-  g_io_win32_free
-};
-
-GIOFuncs win32_channel_fd_funcs = {
-  g_io_win32_fd_read,
-  g_io_win32_fd_write,
-  g_io_win32_fd_seek,
-  g_io_win32_fd_close,
-  g_io_win32_fd_add_watch,
-  g_io_win32_free
-};
-
-GIOFuncs win32_channel_pipe_funcs = {
-  g_io_win32_pipe_read,
-  g_io_win32_pipe_write,
-  g_io_win32_no_seek,
-  g_io_win32_pipe_close,
-  g_io_win32_pipe_add_watch,
-  g_io_win32_pipe_free
-};
-
-GIOFuncs win32_channel_sock_funcs = {
-  g_io_win32_sock_read,
-  g_io_win32_sock_write,
-  g_io_win32_no_seek,
-  g_io_win32_sock_close,
-  g_io_win32_sock_add_watch,
-  g_io_win32_free
-};
-
-#define N_WATCHED_PIPES 4
-
-static struct {
-  gint fd;
-  GIOWin32Watch *watch;
-  GIOWin32Channel *channel;
-  gpointer user_data;
-} watched_pipes[N_WATCHED_PIPES];
-
-static gint n_watched_pipes = 0;
-
-static gboolean
-g_io_win32_msg_prepare  (gpointer source_data, 
-			 GTimeVal *current_time,
-			 gint    *timeout)
-{
-  GIOWin32Watch *data = source_data;
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) data->channel;
-  MSG msg;
-
-  *timeout = -1;
-
-  return PeekMessage (&msg, win32_channel->hwnd, 0, 0, PM_NOREMOVE) == TRUE;
-}
-
-static gboolean 
-g_io_win32_msg_check    (gpointer source_data,
-			 GTimeVal *current_time)
-{
-  GIOWin32Watch *data = source_data;
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) data->channel;
-  MSG msg;
-
-  return PeekMessage (&msg, win32_channel->hwnd, 0, 0, PM_NOREMOVE) == TRUE;
-}
-
-static gboolean
-g_io_win32_msg_dispatch (gpointer source_data, 
-			 GTimeVal *current_time,
-			 gpointer user_data)
-
-{
-  GIOWin32Watch *data = source_data;
-
-  return (*data->callback)(data->channel,
-			   data->pollfd.revents & data->condition,
-			   user_data);
-}
-
-static void
-g_io_win32_destroy (gpointer source_data)
-{
-  GIOWin32Watch *data = source_data;
-
-  g_main_remove_poll (&data->pollfd);
-  g_io_channel_unref (data->channel);
-  g_free (data);
-}
-
-static gboolean
-g_io_win32_fd_prepare  (gpointer source_data, 
-			GTimeVal *current_time,
-			gint    *timeout)
-{
-  *timeout = -1;
-
-  return FALSE;
-}
-
-static gboolean 
-g_io_win32_fd_check    (gpointer source_data,
-			GTimeVal *current_time)
-{
-  GIOWin32Watch *data = source_data;
-
-  return (data->pollfd.revents & data->condition);
-}
-
-static gboolean
-g_io_win32_fd_dispatch (gpointer source_data, 
-			GTimeVal *current_time,
-			gpointer user_data)
-
-{
-  GIOWin32Watch *data = source_data;
-
-  return (*data->callback)(data->channel,
-			   data->pollfd.revents & data->condition,
-			   user_data);
-}
-
-static GIOError
-g_io_win32_msg_read (GIOChannel *channel, 
-		     gchar     *buf, 
-		     guint      count,
-		     guint     *bytes_read)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  MSG msg;			/* In case of alignment problems */
-
-  if (count < sizeof (MSG))
-    return G_IO_ERROR_INVAL;
-  
-  if (!PeekMessage (&msg, win32_channel->hwnd, 0, 0, PM_REMOVE))
-    return G_IO_ERROR_AGAIN;
-
-  memmove (buf, &msg, sizeof (MSG));
-  *bytes_read = sizeof (MSG);
-  return G_IO_ERROR_NONE;
-}
-		       
-static GIOError 
-g_io_win32_msg_write(GIOChannel *channel, 
-		     gchar     *buf, 
-		     guint      count,
-		     guint     *bytes_written)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  MSG msg;
-  gint result;
-
-  if (count != sizeof (MSG))
-    return G_IO_ERROR_INVAL;
-
-  /* In case of alignment problems */
-  memmove (&msg, buf, sizeof (MSG));
-  if (!PostMessage (win32_channel->hwnd, msg.message, msg.wParam, msg.lParam))
-    return G_IO_ERROR_UNKNOWN;
-
-  *bytes_written = sizeof (MSG);
-  return G_IO_ERROR_NONE; 
-}
-
-static GIOError 
-g_io_win32_no_seek (GIOChannel *channel,
-		    gint      offset, 
-		    GSeekType type)
-{
-  g_warning ("g_io_win32_no_seek: unseekable IO channel type");
-  return G_IO_ERROR_UNKNOWN;
-}
-
-
-static void 
-g_io_win32_msg_close (GIOChannel *channel)
-{
-  /* Nothing to be done. Or should we set hwnd to some invalid value? */
-}
-
-static void 
-g_io_win32_free (GIOChannel *channel)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-
-  g_free (win32_channel);
-}
-
-static guint 
-g_io_win32_msg_add_watch (GIOChannel    *channel,
-			  gint           priority,
-			  GIOCondition   condition,
-			  GIOFunc        func,
-			  gpointer       user_data,
-			  GDestroyNotify notify)
-{
-  GIOWin32Watch *watch = g_new (GIOWin32Watch, 1);
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  
-  watch->channel = channel;
-  g_io_channel_ref (channel);
-
-  watch->callback = func;
-  watch->condition = condition;
-
-  watch->pollfd.fd = G_WIN32_MSG_HANDLE;
-  watch->pollfd.events = condition;
-
-  g_main_add_poll (&watch->pollfd, priority);
-
-  return g_source_add (priority, TRUE, &win32_watch_msg_funcs,
-		       watch, user_data, notify);
-}
-
-static gboolean
-g_io_win32_pipe_prepare  (gpointer source_data, 
-			  GTimeVal *current_time,
-			  gint    *timeout)
-{
-  *timeout = -1;
-
-  return FALSE;
-}
-
-static gboolean 
-g_io_win32_pipe_check    (gpointer source_data,
-			  GTimeVal *current_time)
-{
-  GIOWin32Watch *data = source_data;
-  return FALSE;
-}
-
-static gboolean
-g_io_win32_pipe_dispatch (gpointer source_data, 
-			  GTimeVal *current_time,
-			  gpointer user_data)
-
-{
-  GIOWin32Watch *data = source_data;
-
-  return (*data->callback)(data->channel,
-			   data->pollfd.revents & data->condition,
-			   user_data);
-}
-
-static void
-g_io_win32_pipe_destroy (gpointer source_data)
-{
-  GIOWin32Watch *data = source_data;
-
-  g_io_channel_unref (data->channel);
-  g_free (data);
-}
-
-static gboolean
-g_io_win32_sock_prepare  (gpointer source_data, 
-			GTimeVal *current_time,
-			gint    *timeout)
-{
-  *timeout = -1;
-
-  return FALSE;
-}
-
-static gboolean 
-g_io_win32_sock_check    (gpointer source_data,
-			GTimeVal *current_time)
-{
-  GIOWin32Watch *data = source_data;
-
-  return (data->pollfd.revents & data->condition);
-}
-
-static gboolean
-g_io_win32_sock_dispatch (gpointer source_data, 
-			GTimeVal *current_time,
-			gpointer user_data)
-
-{
-  GIOWin32Watch *data = source_data;
-
-  return (*data->callback)(data->channel,
-			   data->pollfd.revents & data->condition,
-			   user_data);
-}
-
-static GIOError
-g_io_win32_fd_read (GIOChannel *channel, 
-		    gchar     *buf, 
-		    guint      count,
-		    guint     *bytes_read)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  gint result;
-
-  result = read (win32_channel->fd, buf, count);
-  if (result < 0)
-    {
-      *bytes_read = 0;
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	case EAGAIN:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      *bytes_read = result;
-      return G_IO_ERROR_NONE;
-    }
-}
-		       
-static GIOError 
-g_io_win32_fd_write(GIOChannel *channel, 
-		    gchar     *buf, 
-		    guint      count,
-		    guint     *bytes_written)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  gint result;
-
-  result = write (win32_channel->fd, buf, count);
-      
-  if (result < 0)
-    {
-      *bytes_written = 0;
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	case EAGAIN:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      *bytes_written = result;
-      return G_IO_ERROR_NONE;
-    }
-}
-
-static GIOError 
-g_io_win32_fd_seek (GIOChannel *channel,
-		    gint      offset, 
-		    GSeekType type)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  int whence;
-  off_t result;
-
-  switch (type)
-    {
-    case G_SEEK_SET:
-      whence = SEEK_SET;
-      break;
-    case G_SEEK_CUR:
-      whence = SEEK_CUR;
-      break;
-    case G_SEEK_END:
-      whence = SEEK_END;
-      break;
-    default:
-      g_warning ("g_io_win32_fd_seek: unknown seek type");
-      return G_IO_ERROR_UNKNOWN;
-    }
-  
-  result = lseek (win32_channel->fd, offset, whence);
-  
-  if (result < 0)
-    {
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    return G_IO_ERROR_NONE;
-}
-
-static void 
-g_io_win32_fd_close (GIOChannel *channel)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-
-  close (win32_channel->fd);
-  return;
-}
-
-static guint 
-g_io_win32_fd_add_watch (GIOChannel    *channel,
-			 gint           priority,
-			 GIOCondition   condition,
-			 GIOFunc        func,
-			 gpointer       user_data,
-			 GDestroyNotify notify)
-{
-  GIOWin32Watch *watch = g_new (GIOWin32Watch, 1);
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  
-  watch->channel = channel;
-  g_io_channel_ref (channel);
-
-  watch->callback = func;
-  watch->condition = condition;
-
-  /* This probably does not work, except for CONIN$. */
-  watch->pollfd.fd = _get_osfhandle (win32_channel->fd);
-  watch->pollfd.events = condition;
-
-  g_main_add_poll (&watch->pollfd, priority);
-
-  return g_source_add (priority, TRUE, &win32_watch_fd_funcs,
-		       watch, user_data, notify);
-}
-
-static GIOError
-g_io_win32_pipe_read (GIOChannel *channel, 
-		      gchar     *buf, 
-		      guint      count,
-		      guint     *bytes_read)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  HANDLE handle;
-  DWORD avail;
-  gint result;
-
-  handle = (HANDLE) _get_osfhandle (win32_channel->fd);
-  if (!PeekNamedPipe (handle, NULL, 0, NULL, &avail, NULL))
-    {
-      return G_IO_ERROR_UNKNOWN;
-    }
-
-  count = MIN (count, avail);
-
-  count = MAX (count, 1);	/* Must read at least one byte, or
-				 * caller will think it's EOF.
-				 */
-  /* g_print ("g_io_win32_pipe_read: %d %d\n", win32_channel->fd, count); */
-  if (count == 0)
-    result = 0;
-  else
-    result = read (win32_channel->fd, buf, count);
-  if (result < 0)
-    {
-      *bytes_read = 0;
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	case EAGAIN:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      *bytes_read = result;
-      win32_channel->offset += result;
-      /* g_print ("=%d (%d)\n", result, win32_channel->offset); */
-      return G_IO_ERROR_NONE;
-    }
-}
-		       
-static GIOError 
-g_io_win32_pipe_write(GIOChannel *channel, 
-		      gchar     *buf, 
-		      guint      count,
-		      guint     *bytes_written)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  LONG prevcnt;
-  gint result;
-
-  /* g_print ("g_io_win32_pipe_write: %d %d\n", win32_channel->fd, count); */
-  result = write (win32_channel->fd, buf, count);
-  if (result < 0)
-    {
-      *bytes_written = 0;
-      switch (errno)
-	{
-	case EINVAL:
-	  return G_IO_ERROR_INVAL;
-	case EAGAIN:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      if (g_pipe_readable_msg == 0)
-	g_pipe_readable_msg = RegisterWindowMessage ("g-pipe-readable");
-
-      win32_channel->offset += result;
-      /* g_print ("=%d (%d)\n", result, win32_channel->offset); */
-      if (win32_channel->need_wakeups)
-	{
-	  PostThreadMessage (win32_channel->peer,
-			     g_pipe_readable_msg,
-			     win32_channel->peer_fd,
-			     win32_channel->offset);
-	}
-      *bytes_written = result;
-      return G_IO_ERROR_NONE;
-    }
-}
-
-static void 
-g_io_win32_pipe_close (GIOChannel *channel)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-
-  /* g_print ("g_io_win32_pipe_close: %#x %d\n", channel, win32_channel->fd); */
-
-  close (win32_channel->fd);
-  return;
-}
-
-static guint 
-g_io_win32_pipe_add_watch (GIOChannel    *channel,
-			   gint           priority,
-			   GIOCondition   condition,
-			   GIOFunc        func,
-			   gpointer       user_data,
-			   GDestroyNotify notify)
-{
-  GIOWin32Watch *watch = g_new (GIOWin32Watch, 1);
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  gint i;
-  
-  /* g_print ("g_io_win32_pipe_add_watch: %d\n", win32_channel->fd); */
-
-  watch->channel = channel;
-  g_io_channel_ref (channel);
-
-  watch->callback = func;
-  watch->condition = condition;
-
-  watch->pollfd.fd = win32_channel->fd;
-  watch->pollfd.events = condition;
-
-  for (i = 0; i < n_watched_pipes; i++)
-    if (watched_pipes[i].fd == -1)
-      break;
-  if (i == N_WATCHED_PIPES)
-    g_error ("Too many watched pipes");
-  else
-    {
-      watched_pipes[i].fd = win32_channel->fd;
-      watched_pipes[i].watch = watch;
-      watched_pipes[i].channel = win32_channel;
-      watched_pipes[i].user_data = user_data;
-      n_watched_pipes = MAX (i + 1, n_watched_pipes);
-    }
-  return g_source_add (priority, FALSE, &win32_watch_pipe_funcs, watch, user_data, notify);
-}
-
-static void
-g_io_win32_pipe_free (GIOChannel *channel)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  gint i;
-
-  /* g_print ("g_io_win32_pipe_free: %#x %#x\n", channel, channel->channel_data); */
-
-  for (i = 0; i < n_watched_pipes; i++)
-    if (watched_pipes[i].fd == win32_channel->fd)
-      {
-	watched_pipes[i].fd = -1;
-	break;
-      }
-  g_io_win32_free (channel);
-}
-
-static GIOError 
-g_io_win32_sock_read (GIOChannel *channel, 
-		      gchar      *buf, 
-		      guint       count,
-		      guint      *bytes_read)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  gint result;
-
-  result = recv (win32_channel->fd, buf, count, 0);
-  if (result == SOCKET_ERROR)
-    {
-      *bytes_read = 0;
-      switch (WSAGetLastError ())
-	{
-	case WSAEINVAL:
-	  return G_IO_ERROR_INVAL;
-	case WSAEWOULDBLOCK:
-	case WSAEINTR:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      *bytes_read = result;
-      return G_IO_ERROR_NONE;
-    }
-}
-		       
-static GIOError 
-g_io_win32_sock_write(GIOChannel *channel, 
-		      gchar      *buf, 
-		      guint       count,
-		      guint      *bytes_written)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  gint result;
-
-  result = send (win32_channel->fd, buf, count, 0);
-      
-  if (result == SOCKET_ERROR)
-    {
-      *bytes_written = 0;
-      switch (WSAGetLastError ())
-	{
-	case WSAEINVAL:
-	  return G_IO_ERROR_INVAL;
-	case WSAEWOULDBLOCK:
-	case WSAEINTR:
-	  return G_IO_ERROR_AGAIN;
-	default:
-	  return G_IO_ERROR_UNKNOWN;
-	}
-    }
-  else
-    {
-      *bytes_written = result;
-      return G_IO_ERROR_NONE;
-    }
-}
-
-static void 
-g_io_win32_sock_close (GIOChannel *channel)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-
-  closesocket (win32_channel->fd);
-  return;
-}
-
-static guint 
-g_io_win32_sock_add_watch (GIOChannel    *channel,
-			   gint           priority,
-			   GIOCondition   condition,
-			   GIOFunc        func,
-			   gpointer       user_data,
-			   GDestroyNotify notify)
-{
-  GIOWin32Watch *watch = g_new (GIOWin32Watch, 1);
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-  
-  watch->channel = channel;
-  g_io_channel_ref (channel);
-
-  watch->callback = func;
-  watch->condition = condition;
-
-  watch->pollfd.fd = win32_channel->fd;
-  watch->pollfd.events = condition;
-
-  g_main_add_poll (&watch->pollfd, priority);
-
-  return g_source_add (priority, TRUE, &win32_watch_sock_funcs, watch, user_data, notify);
-}
-
-GIOChannel *
-g_io_channel_win32_new_messages (guint hwnd)
-{
-  GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1);
-  GIOChannel *channel = (GIOChannel *) win32_channel;
-
-  g_io_channel_init (channel);
-  channel->funcs = &win32_channel_msg_funcs;
-  win32_channel->fd = -1;
-  win32_channel->type = G_IO_WINDOWS_MESSAGES;
-  win32_channel->hwnd = (HWND) hwnd;
-
-  return channel;
-}
-
-GIOChannel *
-g_io_channel_unix_new (gint fd)
-{
-  GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1);
-  GIOChannel *channel = (GIOChannel *) win32_channel;
-
-  g_io_channel_init (channel);
-  channel->funcs = &win32_channel_fd_funcs;
-  win32_channel->fd = fd;
-  win32_channel->type = G_IO_FILE_DESC;
-
-  return channel;
-}
-
-gint
-g_io_channel_unix_get_fd (GIOChannel *channel)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-
-  return win32_channel->fd;
-}
-
-GIOChannel *
-g_io_channel_win32_new_pipe_with_wakeups (int   fd,
-					  guint peer,
-					  int   peer_fd)
-{
-  GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1);
-  GIOChannel *channel = (GIOChannel *) win32_channel;
-
-  /* g_print ("g_io_channel_win32_new_pipe_with_wakeups %d %#x %d\n", fd, peer, peer_fd); */
-
-  g_io_channel_init (channel);
-  channel->funcs = &win32_channel_pipe_funcs;
-  win32_channel->fd = fd;
-  win32_channel->type = G_IO_PIPE;
-  win32_channel->peer = peer;
-  win32_channel->peer_fd = peer_fd;
-  win32_channel->offset = 0;
-  win32_channel->need_wakeups = TRUE;
-
-  return channel;
-}
-
-GIOChannel *
-g_io_channel_win32_new_pipe (int fd)
-{
-  GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1);
-  GIOChannel *channel = (GIOChannel *) win32_channel;
-
-  g_io_channel_init (channel);
-  channel->funcs = &win32_channel_pipe_funcs;
-  win32_channel->fd = fd;
-  win32_channel->type = G_IO_PIPE;
-  win32_channel->offset = 0;
-  win32_channel->need_wakeups = FALSE;
-
-  return channel;
-}
-
-GIOChannel *
-g_io_channel_win32_new_stream_socket (int socket)
-{
-  GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1);
-  GIOChannel *channel = (GIOChannel *) win32_channel;
-
-  g_io_channel_init (channel);
-  channel->funcs = &win32_channel_sock_funcs;
-  win32_channel->fd = socket;
-  win32_channel->type = G_IO_STREAM_SOCKET;
-
-  return channel;
-}
-
-gint
-g_io_channel_win32_get_fd (GIOChannel *channel)
-{
-  return g_io_channel_unix_get_fd (channel);
-}
-
-void
-g_io_channel_win32_pipe_request_wakeups (GIOChannel *channel,
-					 guint       peer,
-					 int         peer_fd)
-{
-  GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel;
-
-  win32_channel->peer = peer;
-  win32_channel->peer_fd = peer_fd;
-  win32_channel->need_wakeups = TRUE;
-}
-
-void
-g_io_channel_win32_pipe_readable (gint  fd,
-				  guint offset)
-{
-  gint i;
-
-  for (i = 0; i < n_watched_pipes; i++)
-    if (watched_pipes[i].fd == fd)
-      {
-	if (watched_pipes[i].channel->offset < offset)
-	  (*watched_pipes[i].watch->callback) (watched_pipes[i].watch->channel,
-					       G_IO_IN,
-					       watched_pipes[i].user_data);
-	break;
-      }
-}
diff --git a/glib/glib-config.in b/glib/glib-config.in
deleted file mode 100644
index c36b667..0000000
--- a/glib/glib-config.in
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-exec_prefix_set=no
-
-usage()
-{
-	cat <<EOF
-Usage: glib-config [OPTIONS] [LIBRARIES]
-Options:
-	[--prefix[=DIR]]
-	[--exec-prefix[=DIR]]
-	[--version]
-	[--libs]
-	[--cflags]
-Libraries:
-	glib
-	gmodule
-	gthread
-EOF
-	exit $1
-}
-
-if test $# -eq 0; then
-	usage 1 1>&2
-fi
-
-lib_glib=yes
-
-while test $# -gt 0; do
-  case "$1" in
-  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  case $1 in
-    --prefix=*)
-      prefix=$optarg
-      if test $exec_prefix_set = no ; then
-        exec_prefix=$optarg
-      fi
-      ;;
-    --prefix)
-      echo_prefix=yes
-      ;;
-    --exec-prefix=*)
-      exec_prefix=$optarg
-      exec_prefix_set=yes
-      ;;
-    --exec-prefix)
-      echo_exec_prefix=yes
-      ;;
-    --version)
-      echo @GLIB_VERSION@
-      exit 0
-      ;;
-    --cflags)
-      if test "@includedir@" != /usr/include ; then
-        includes="-I@includedir@"
-      fi
-      echo_cflags=yes
-      ;;
-    --libs)
-      echo_libs=yes
-      ;;
-    glib)
-      lib_glib=yes
-      ;;
-    gmodule)
-      lib_gmodule=yes
-      ;;
-    gthread)
-      lib_gthread=yes
-      ;;
-    *)
-      usage 1 1>&2
-      ;;
-  esac
-  shift
-done
-
-if test "$echo_prefix" = "yes"; then
-	echo $prefix
-fi
-if test "$echo_exec_prefix" = "yes"; then
-	echo $exec_prefix
-fi
-if test "$echo_cflags" = "yes"; then
-	cflags=""
-	if test "$lib_gthread" = "yes"; then
-		cflags="$cflags @G_THREAD_CFLAGS@"
-	fi
-	echo -I@libdir@/glib/include $includes $cflags
-fi
-if test "$echo_libs" = "yes"; then
-	libsp=""
-	libsa=""
-	if test "$lib_glib" = "yes"; then
-		libsp="$libsp -lglib"
-	fi
-	if test "$lib_gthread" = "yes"; then
-		libsp="-lgthread $libsp"
-		libsa="$libsa @G_THREAD_LIBS@"
-	fi
-	if test "$lib_gmodule" = "yes"; then
-		libsp="@G_MODULE_LDFLAGS@ -lgmodule $libsp"
-		libsa="$libsa @G_MODULE_LIBS@"
-	fi
-	echo -L@libdir@ $libsp $libsa
-fi
diff --git a/glib/glib.def b/glib/glib.def
deleted file mode 100644
index d513748..0000000
--- a/glib/glib.def
+++ /dev/null
@@ -1,398 +0,0 @@
-EXPORTS
-	g_array_append_vals
-	g_array_free
-	g_array_insert_vals
-	g_array_new
-	g_array_prepend_vals
-	g_array_remove_index
-	g_array_remove_index_fast
-	g_array_set_size
-	g_atexit
-	g_basename
-	g_bit_nth_lsf
-	g_bit_nth_msf
-	g_bit_storage
-	g_blow_chunks
-	g_byte_array_append
-	g_byte_array_free
-	g_byte_array_new
-	g_byte_array_prepend
-	g_byte_array_remove_index
-	g_byte_array_remove_index_fast
-	g_byte_array_set_size
-	g_cache_destroy
-	g_cache_insert
-	g_cache_key_foreach
-	g_cache_new
-	g_cache_remove
-	g_cache_value_foreach
-	g_completion_add_items
-	g_completion_clear_items
-	g_completion_complete
-	g_completion_free
-	g_completion_new
-	g_completion_remove_items
-	g_datalist_clear
-	g_datalist_foreach
-	g_datalist_id_get_data
-	g_datalist_id_remove_no_notify
-	g_datalist_id_set_data_full
-	g_datalist_init
-	g_dataset_destroy
-	g_dataset_foreach
-	g_dataset_id_get_data
-	g_dataset_id_remove_no_notify
-	g_dataset_id_set_data_full
-	g_date_add_days
-	g_date_add_months
-	g_date_add_years
-	g_date_clear
-	g_date_compare
-	g_date_day
-	g_date_day_of_year
-	g_date_days_in_month
-	g_date_free
-	g_date_is_first_of_month
-	g_date_is_last_of_month
-	g_date_is_leap_year
-	g_date_julian
-	g_date_julian
-	g_date_monday_week_of_year
-	g_date_monday_weeks_in_year
-	g_date_new
-	g_date_new_dmy
-	g_date_new_julian
-	g_date_month
-	g_date_set_day
-	g_date_set_dmy
-	g_date_set_julian
-	g_date_set_month
-	g_date_set_parse
-	g_date_set_time
-	g_date_set_year
-	g_date_strftime
-	g_date_subtract_days
-	g_date_subtract_months
-	g_date_subtract_years
-	g_date_sunday_week_of_year
-	g_date_sunday_weeks_in_year
-	g_date_to_struct_tm
-	g_date_valid
-	g_date_valid_day
-	g_date_valid_dmy
-	g_date_valid_julian
-	g_date_valid_month
-	g_date_valid_weekday
-	g_date_valid_year
-	g_date_weekday
-	g_date_year
-	g_direct_equal
-	g_direct_hash
-	g_dirname
-	g_free
-	g_get_current_dir
-	g_get_current_time
-	g_get_home_dir
-	g_get_prgname
-	g_get_real_name
-	g_get_tmp_dir
-	g_get_user_name
-	g_getenv
-	g_hash_table_destroy
-	g_hash_table_foreach
-	g_hash_table_foreach_remove
-	g_hash_table_freeze
-	g_hash_table_insert
-	g_hash_table_lookup
-	g_hash_table_lookup_extended
-	g_hash_table_new
-	g_hash_table_remove
-	g_hash_table_size
-	g_hash_table_thaw
-	g_hook_alloc
-	g_hook_compare_ids
-	g_hook_destroy
-	g_hook_destroy_link
-	g_hook_find
-	g_hook_find_data
-	g_hook_find_func
-	g_hook_find_func_data
-	g_hook_first_valid
-	g_hook_free
-	g_hook_get
-	g_hook_insert_before
-	g_hook_insert_sorted
-	g_hook_list_init
-	g_hook_list_invoke
-	g_hook_list_invoke_check
-	g_hook_list_marshal
-	g_hook_list_marshal_check
-	g_hook_list_clear
-	g_hook_next_valid
-	g_hook_prepend
-	g_hook_ref
-	g_hook_unref
-	g_idle_add
-	g_idle_add_full
-	g_idle_remove_by_data
-	g_int_equal
-	g_int_hash
-	g_io_add_watch
-	g_io_add_watch_full
-	g_io_channel_close
-	g_io_channel_init
-	g_io_channel_read
-	g_io_channel_ref
-	g_io_channel_seek
-	g_io_channel_unix_get_fd
-	g_io_channel_unix_new
-	g_io_channel_unref
-	g_io_channel_win32_get_fd
-	g_io_channel_win32_new_messages
-	g_io_channel_win32_new_pipe
-	g_io_channel_win32_new_pipe_with_wakeups
-	g_io_channel_win32_new_stream_socket
-	g_io_channel_win32_pipe_readable
-	g_io_channel_win32_pipe_request_wakeups
-	g_io_channel_write
-	g_list_alloc
-	g_list_append
-	g_list_concat
-	g_list_copy
-	g_list_find
-	g_list_find_custom
-	g_list_first
-	g_list_foreach
-	g_list_free
-	g_list_free_1
-	g_list_index
-	g_list_insert
-	g_list_insert_sorted
-	g_list_last
-	g_list_length
-	g_list_nth
-	g_list_nth_data
-	g_list_position
-	g_list_prepend
-	g_list_remove
-	g_list_remove_link
-	g_list_reverse
-	g_list_sort
-	g_log
-	g_log_default_handler
-	g_log_remove_handler
-	g_log_set_always_fatal
-	g_log_set_fatal_mask
-	g_log_set_handler
-	g_logv
-	g_main_add_poll
-	g_main_destroy
-	g_main_is_running
-	g_main_iteration
-	g_main_new
-	g_main_pending
-	g_main_remove_poll
-	g_main_quit
-	g_main_run
-	g_main_set_poll_func
-	g_malloc
-	g_malloc0
-	g_mem_check
-	g_mem_chunk_alloc
-	g_mem_chunk_alloc0
-	g_mem_chunk_clean
-	g_mem_chunk_destroy
-	g_mem_chunk_free
-	g_mem_chunk_info
-	g_mem_chunk_new
-	g_mem_chunk_print
-	g_mem_chunk_reset
-	g_mem_init
-	g_mem_profile
-	g_memdup
-	g_messages_init
-	g_mutex_init
-	g_node_child_index
-	g_node_child_position
-	g_node_children_foreach
-	g_node_depth
-	g_node_destroy
-	g_node_find
-	g_node_find_child
-	g_node_first_sibling
-	g_node_get_root
-	g_node_insert
-	g_node_insert_before
-	g_node_is_ancestor
-	g_node_last_child
-	g_node_last_sibling
-	g_node_max_height
-	g_node_n_children
-	g_node_n_nodes
-	g_node_new
-	g_node_nth_child
-	g_node_prepend
-	g_node_reverse_children
-	g_node_traverse
-	g_node_unlink
-	g_on_error_query
-	g_on_error_stack_trace
-	g_parse_debug_string
-	g_path_is_absolute
-	g_path_skip_root
-	g_pipe_readable_msg
-	g_print
-	g_printerr
-	g_printf_string_upper_bound
-	g_ptr_array_add
-	g_ptr_array_free
-	g_ptr_array_new
-	g_ptr_array_remove
-	g_ptr_array_remove_fast
-	g_ptr_array_remove_index
-	g_ptr_array_remove_index_fast
-	g_ptr_array_set_size
-	g_quark_from_static_string
-	g_quark_from_string
-	g_quark_to_string
-	g_quark_try_string
-	g_realloc
-	g_relation_count
-	g_relation_delete
-	g_relation_destroy
-	g_relation_exists
-	g_relation_index
-	g_relation_insert
-	g_relation_new
-	g_relation_print
-	g_relation_select
-	g_scanner_cur_line
-	g_scanner_cur_position
-	g_scanner_cur_token
-	g_scanner_cur_value
-	g_scanner_destroy
-	g_scanner_eof
-	g_scanner_error
-	g_scanner_freeze_symbol_table
-	g_scanner_get_next_token
-	g_scanner_input_file
-	g_scanner_input_text
-	g_scanner_lookup_symbol
-	g_scanner_new
-	g_scanner_peek_next_token
-	g_scanner_scope_add_symbol
-	g_scanner_scope_foreach_symbol
-	g_scanner_scope_lookup_symbol
-	g_scanner_scope_remove_symbol
-	g_scanner_set_scope
-	g_scanner_stat_mode
-	g_scanner_sync_file_offset
-	g_scanner_thaw_symbol_table
-	g_scanner_unexp_token
-	g_scanner_warn
-	g_set_error_handler
-	g_set_message_handler
-	g_set_prgname
-	g_set_print_handler
-	g_set_printerr_handler
-	g_set_warning_handler
-	g_slist_alloc
-	g_slist_append
-	g_slist_concat
-	g_slist_copy
-	g_slist_find
-	g_slist_find_custom
-	g_slist_foreach
-	g_slist_free
-	g_slist_free_1
-	g_slist_index
-	g_slist_insert
-	g_slist_insert_sorted
-	g_slist_last
-	g_slist_length
-	g_slist_nth
-	g_slist_nth_data
-	g_slist_position
-	g_slist_prepend
-	g_slist_remove
-	g_slist_remove_link
-	g_slist_reverse
-	g_slist_sort
-	g_snprintf
-	g_source_add
-	g_source_remove
-	g_source_remove_by_source_data
-	g_source_remove_by_user_data
-	g_static_mutex_get_mutex_impl
-	g_static_private_get
-	g_static_private_set
-	g_str_equal
-	g_str_hash
-	g_strcasecmp
-	g_strconcat
-	g_strdelimit
-	g_strdown
-	g_strdup
-	g_strdup_printf
-	g_strdup_vprintf
-	g_strerror
-	g_strfreev
-	g_string_append
-	g_string_append_c
-	g_string_assign
-	g_string_chunk_free
-	g_string_chunk_insert
-	g_string_chunk_insert_const
-	g_string_chunk_new
-	g_string_down
-	g_string_erase
-	g_string_free
-	g_string_insert
-	g_string_insert_c
-	g_string_new
-	g_string_prepend
-	g_string_prepend_c
-	g_string_sized_new
-	g_string_sprintf
-	g_string_sprintfa
-	g_string_truncate
-	g_string_up
-	g_strjoinv
-	g_strescape
-	g_strndup
-	g_strnfill
-	g_strreverse
-	g_strsignal
-	g_strsplit
-	g_strtod
-	g_strup
-	g_timeout_add
-	g_timeout_add_full
-	g_timer_destroy
-	g_timer_elapsed
-	g_timer_new
-	g_timer_reset
-	g_timer_start
-	g_timer_stop
-	g_tree_destroy
-	g_tree_height
-	g_tree_insert
-	g_tree_lookup
-	g_tree_new
-	g_tree_nnodes
-	g_tree_remove
-	g_tree_search
-	g_tree_traverse
-	g_tuples_destroy
-	g_tuples_index
-	g_vsnprintf
-	glib_binary_age
-	glib_interface_age
-	glib_major_version
-	glib_micro_version
-	glib_minor_version
-	gwin_ftruncate
-	gwin_opendir
-	gwin_readdir
-	gwin_rewinddir
-	gwin_closedir
diff --git a/glib/glib.h b/glib/glib.h
deleted file mode 100644
index 5f55d1f..0000000
--- a/glib/glib.h
+++ /dev/null
@@ -1,2808 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#ifndef __G_LIB_H__
-#define __G_LIB_H__
-
-/* system specific config file glibconfig.h provides definitions for
- * the extrema of many of the standard types. These are:
- *
- *  G_MINSHORT, G_MAXSHORT
- *  G_MININT, G_MAXINT
- *  G_MINLONG, G_MAXLONG
- *  G_MINFLOAT, G_MAXFLOAT
- *  G_MINDOUBLE, G_MAXDOUBLE
- *
- * It also provides the following typedefs:
- *
- *  gint8, guint8
- *  gint16, guint16
- *  gint32, guint32
- *  gint64, guint64
- *
- * It defines the G_BYTE_ORDER symbol to one of G_*_ENDIAN (see later in
- * this file). 
- *
- * And it provides a way to store and retrieve a `gint' in/from a `gpointer'.
- * This is useful to pass an integer instead of a pointer to a callback.
- *
- *  GINT_TO_POINTER(i), GUINT_TO_POINTER(i)
- *  GPOINTER_TO_INT(p), GPOINTER_TO_UINT(p)
- *
- * Finally, it provide the following wrappers to STDC functions:
- *
- *  g_ATEXIT
- *    To register hooks which are executed on exit().
- *    Usually a wrapper for STDC atexit.
- *
- *  void *g_memmove(void *dest, const void *src, guint count);
- *    A wrapper for STDC memmove, or an implementation, if memmove doesn't
- *    exist.  The prototype looks like the above, give or take a const,
- *    or size_t.
- */
-#include <glibconfig.h>
-
-/* include varargs functions for assertment macros
- */
-#include <stdarg.h>
-
-/* optionally feature DMALLOC memory allocation debugger
- */
-#ifdef USE_DMALLOC
-#include "dmalloc.h"
-#endif
-
-
-#ifdef NATIVE_WIN32
-
-/* On native Win32, directory separator is the backslash, and search path
- * separator is the semicolon.
- */
-#define G_DIR_SEPARATOR '\\'
-#define G_DIR_SEPARATOR_S "\\"
-#define G_SEARCHPATH_SEPARATOR ';'
-#define G_SEARCHPATH_SEPARATOR_S ";"
-
-#else  /* !NATIVE_WIN32 */
-
-#ifndef __EMX__
-/* Unix */
-
-#define G_DIR_SEPARATOR '/'
-#define G_DIR_SEPARATOR_S "/"
-#define G_SEARCHPATH_SEPARATOR ':'
-#define G_SEARCHPATH_SEPARATOR_S ":"
-
-#else
-/* EMX/OS2 */
-
-#define G_DIR_SEPARATOR '/'
-#define G_DIR_SEPARATOR_S "/"
-#define G_SEARCHPATH_SEPARATOR ';'
-#define G_SEARCHPATH_SEPARATOR_S ";"
-
-#endif
-
-#endif /* !NATIVE_WIN32 */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/* Provide definitions for some commonly used macros.
- *  Some of them are only provided if they haven't already
- *  been defined. It is assumed that if they are already
- *  defined then the current definition is correct.
- */
-#ifndef	NULL
-#define	NULL	((void*) 0)
-#endif
-
-#ifndef	FALSE
-#define	FALSE	(0)
-#endif
-
-#ifndef	TRUE
-#define	TRUE	(!FALSE)
-#endif
-
-#undef	MAX
-#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
-
-#undef	MIN
-#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
-
-#undef	ABS
-#define ABS(a)	   (((a) < 0) ? -(a) : (a))
-
-#undef	CLAMP
-#define CLAMP(x, low, high)  (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
-
-
-/* Define G_VA_COPY() to do the right thing for copying va_list variables.
- * glibconfig.h may have already defined G_VA_COPY as va_copy or __va_copy.
- */
-#if !defined (G_VA_COPY)
-#  if defined (__GNUC__) && defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32))
-#  define G_VA_COPY(ap1, ap2)	  (*(ap1) = *(ap2))
-#  elif defined (G_VA_COPY_AS_ARRAY)
-#  define G_VA_COPY(ap1, ap2)	  g_memmove ((ap1), (ap2), sizeof (va_list))
-#  else /* va_list is a pointer */
-#  define G_VA_COPY(ap1, ap2)	  ((ap1) = (ap2))
-#  endif /* va_list is a pointer */
-#endif /* !G_VA_COPY */
-
-
-/* Provide convenience macros for handling structure
- * fields through their offsets.
- */
-#define G_STRUCT_OFFSET(struct_type, member)	\
-    ((gulong) ((gchar*) &((struct_type*) 0)->member))
-#define G_STRUCT_MEMBER_P(struct_p, struct_offset)   \
-    ((gpointer) ((gchar*) (struct_p) + (gulong) (struct_offset)))
-#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset)   \
-    (*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
-
-
-/* inlining hassle. for compilers that don't allow the `inline' keyword,
- * mostly because of strict ANSI C compliance or dumbness, we try to fall
- * back to either `__inline__' or `__inline'.
- * we define G_CAN_INLINE, if the compiler seems to be actually
- * *capable* to do function inlining, in which case inline function bodys
- * do make sense. we also define G_INLINE_FUNC to properly export the
- * function prototypes if no inlining can be performed.
- * we special case most of the stuff, so inline functions can have a normal
- * implementation by defining G_INLINE_FUNC to extern and G_CAN_INLINE to 1.
- */
-#ifndef G_INLINE_FUNC
-#  define G_CAN_INLINE 1
-#endif
-#ifdef G_HAVE_INLINE
-#  if defined (__GNUC__) && defined (__STRICT_ANSI__)
-#    undef inline
-#    define inline __inline__
-#  endif
-#else /* !G_HAVE_INLINE */
-#  undef inline
-#  if defined (G_HAVE___INLINE__)
-#    define inline __inline__
-#  else /* !inline && !__inline__ */
-#    if defined (G_HAVE___INLINE)
-#      define inline __inline
-#    else /* !inline && !__inline__ && !__inline */
-#      define inline /* don't inline, then */
-#      ifndef G_INLINE_FUNC
-#	 undef G_CAN_INLINE
-#      endif
-#    endif
-#  endif
-#endif
-#ifndef G_INLINE_FUNC
-#  ifdef __GNUC__
-#    ifdef __OPTIMIZE__
-#      define G_INLINE_FUNC extern inline
-#    else
-#      undef G_CAN_INLINE
-#      define G_INLINE_FUNC extern
-#    endif
-#  else /* !__GNUC__ */
-#    ifdef G_CAN_INLINE
-#      define G_INLINE_FUNC static inline
-#    else
-#      define G_INLINE_FUNC extern
-#    endif
-#  endif /* !__GNUC__ */
-#endif /* !G_INLINE_FUNC */
-
-
-/* Provide simple macro statement wrappers (adapted from Perl):
- *  G_STMT_START { statements; } G_STMT_END;
- *  can be used as a single statement, as in
- *  if (x) G_STMT_START { ... } G_STMT_END; else ...
- *
- *  For gcc we will wrap the statements within `({' and `})' braces.
- *  For SunOS they will be wrapped within `if (1)' and `else (void) 0',
- *  and otherwise within `do' and `while (0)'.
- */
-#if !(defined (G_STMT_START) && defined (G_STMT_END))
-#  if defined (__GNUC__) && !defined (__STRICT_ANSI__) && !defined (__cplusplus)
-#    define G_STMT_START	(void)(
-#    define G_STMT_END		)
-#  else
-#    if (defined (sun) || defined (__sun__))
-#      define G_STMT_START	if (1)
-#      define G_STMT_END	else (void)0
-#    else
-#      define G_STMT_START	do
-#      define G_STMT_END	while (0)
-#    endif
-#  endif
-#endif
-
-
-/* Provide macros to feature the GCC function attribute.
- */
-#if	__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
-#define G_GNUC_PRINTF( format_idx, arg_idx )	\
-  __attribute__((format (printf, format_idx, arg_idx)))
-#define G_GNUC_SCANF( format_idx, arg_idx )	\
-  __attribute__((format (scanf, format_idx, arg_idx)))
-#define G_GNUC_FORMAT( arg_idx )		\
-  __attribute__((format_arg (arg_idx)))
-#define G_GNUC_NORETURN				\
-  __attribute__((noreturn))
-#define G_GNUC_CONST				\
-  __attribute__((const))
-#define G_GNUC_UNUSED				\
-  __attribute__((unused))
-#else	/* !__GNUC__ */
-#define G_GNUC_PRINTF( format_idx, arg_idx )
-#define G_GNUC_SCANF( format_idx, arg_idx )
-#define G_GNUC_FORMAT( arg_idx )
-#define G_GNUC_NORETURN
-#define G_GNUC_CONST
-#define	G_GNUC_UNUSED
-#endif	/* !__GNUC__ */
-
-
-/* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with
- * macros, so we can refer to them as strings unconditionally.
- */
-#ifdef	__GNUC__
-#define	G_GNUC_FUNCTION		__FUNCTION__
-#define	G_GNUC_PRETTY_FUNCTION	__PRETTY_FUNCTION__
-#else	/* !__GNUC__ */
-#define	G_GNUC_FUNCTION		""
-#define	G_GNUC_PRETTY_FUNCTION	""
-#endif	/* !__GNUC__ */
-
-/* we try to provide a usefull equivalent for ATEXIT if it is
- * not defined, but use is actually abandoned. people should
- * use g_atexit() instead.
- */
-#ifndef ATEXIT
-# define ATEXIT(proc)	g_ATEXIT(proc)
-#else
-# define G_NATIVE_ATEXIT
-#endif /* ATEXIT */
-
-/* Hacker macro to place breakpoints for elected machines.
- * Actual use is strongly deprecated of course ;)
- */
-#if defined (__i386__) && defined (__GNUC__) && __GNUC__ >= 2
-#define	G_BREAKPOINT()		G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END
-#elif defined (__alpha__) && defined (__GNUC__) && __GNUC__ >= 2
-#define	G_BREAKPOINT()		G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
-#else	/* !__i386__ && !__alpha__ */
-#define	G_BREAKPOINT()
-#endif	/* __i386__ */
-
-
-/* Provide macros for easily allocating memory. The macros
- *  will cast the allocated memory to the specified type
- *  in order to avoid compiler warnings. (Makes the code neater).
- */
-
-#ifdef __DMALLOC_H__
-#  define g_new(type, count)		(ALLOC (type, count))
-#  define g_new0(type, count)		(CALLOC (type, count))
-#  define g_renew(type, mem, count)	(REALLOC (mem, type, count))
-#else /* __DMALLOC_H__ */
-#  define g_new(type, count)	  \
-      ((type *) g_malloc ((unsigned) sizeof (type) * (count)))
-#  define g_new0(type, count)	  \
-      ((type *) g_malloc0 ((unsigned) sizeof (type) * (count)))
-#  define g_renew(type, mem, count)	  \
-      ((type *) g_realloc (mem, (unsigned) sizeof (type) * (count)))
-#endif /* __DMALLOC_H__ */
-
-#define g_mem_chunk_create(type, pre_alloc, alloc_type)	( \
-  g_mem_chunk_new (#type " mem chunks (" #pre_alloc ")", \
-		   sizeof (type), \
-		   sizeof (type) * (pre_alloc), \
-		   (alloc_type)) \
-)
-#define g_chunk_new(type, chunk)	( \
-  (type *) g_mem_chunk_alloc (chunk) \
-)
-#define g_chunk_new0(type, chunk)	( \
-  (type *) g_mem_chunk_alloc0 (chunk) \
-)
-#define g_chunk_free(mem, mem_chunk)	G_STMT_START { \
-  g_mem_chunk_free ((mem_chunk), (mem)); \
-} G_STMT_END
-
-
-#define g_string(x) #x
-
-
-/* Provide macros for error handling. The "assert" macros will
- *  exit on failure. The "return" macros will exit the current
- *  function. Two different definitions are given for the macros
- *  if G_DISABLE_ASSERT is not defined, in order to support gcc's
- *  __PRETTY_FUNCTION__ capability.
- */
-
-#ifdef G_DISABLE_ASSERT
-
-#define g_assert(expr)
-#define g_assert_not_reached()
-
-#else /* !G_DISABLE_ASSERT */
-
-#ifdef __GNUC__
-
-#define g_assert(expr)			G_STMT_START{		\
-     if (!(expr))						\
-       g_log (G_LOG_DOMAIN,					\
-	      G_LOG_LEVEL_ERROR,				\
-	      "file %s: line %d (%s): assertion failed: (%s)",	\
-	      __FILE__,						\
-	      __LINE__,						\
-	      __PRETTY_FUNCTION__,				\
-	      #expr);			}G_STMT_END
-
-#define g_assert_not_reached()		G_STMT_START{		\
-     g_log (G_LOG_DOMAIN,					\
-	    G_LOG_LEVEL_ERROR,					\
-	    "file %s: line %d (%s): should not be reached",	\
-	    __FILE__,						\
-	    __LINE__,						\
-	    __PRETTY_FUNCTION__);	}G_STMT_END
-
-#else /* !__GNUC__ */
-
-#define g_assert(expr)			G_STMT_START{		\
-     if (!(expr))						\
-       g_log (G_LOG_DOMAIN,					\
-	      G_LOG_LEVEL_ERROR,				\
-	      "file %s: line %d: assertion failed: (%s)",	\
-	      __FILE__,						\
-	      __LINE__,						\
-	      #expr);			}G_STMT_END
-
-#define g_assert_not_reached()		G_STMT_START{	\
-     g_log (G_LOG_DOMAIN,				\
-	    G_LOG_LEVEL_ERROR,				\
-	    "file %s: line %d: should not be reached",	\
-	    __FILE__,					\
-	    __LINE__);		}G_STMT_END
-
-#endif /* __GNUC__ */
-
-#endif /* !G_DISABLE_ASSERT */
-
-
-#ifdef G_DISABLE_CHECKS
-
-#define g_return_if_fail(expr)
-#define g_return_val_if_fail(expr,val)
-
-#else /* !G_DISABLE_CHECKS */
-
-#ifdef __GNUC__
-
-#define g_return_if_fail(expr)		G_STMT_START{			\
-     if (!(expr))							\
-       {								\
-	 g_log (G_LOG_DOMAIN,						\
-		G_LOG_LEVEL_CRITICAL,					\
-		"file %s: line %d (%s): assertion `%s' failed.",	\
-		__FILE__,						\
-		__LINE__,						\
-		__PRETTY_FUNCTION__,					\
-		#expr);							\
-	 return;							\
-       };				}G_STMT_END
-
-#define g_return_val_if_fail(expr,val)	G_STMT_START{			\
-     if (!(expr))							\
-       {								\
-	 g_log (G_LOG_DOMAIN,						\
-		G_LOG_LEVEL_CRITICAL,					\
-		"file %s: line %d (%s): assertion `%s' failed.",	\
-		__FILE__,						\
-		__LINE__,						\
-		__PRETTY_FUNCTION__,					\
-		#expr);							\
-	 return val;							\
-       };				}G_STMT_END
-
-#else /* !__GNUC__ */
-
-#define g_return_if_fail(expr)		G_STMT_START{		\
-     if (!(expr))						\
-       {							\
-	 g_log (G_LOG_DOMAIN,					\
-		G_LOG_LEVEL_CRITICAL,				\
-		"file %s: line %d: assertion `%s' failed.",	\
-		__FILE__,					\
-		__LINE__,					\
-		#expr);						\
-	 return;						\
-       };				}G_STMT_END
-
-#define g_return_val_if_fail(expr, val)	G_STMT_START{		\
-     if (!(expr))						\
-       {							\
-	 g_log (G_LOG_DOMAIN,					\
-		G_LOG_LEVEL_CRITICAL,				\
-		"file %s: line %d: assertion `%s' failed.",	\
-		__FILE__,					\
-		__LINE__,					\
-		#expr);						\
-	 return val;						\
-       };				}G_STMT_END
-
-#endif /* !__GNUC__ */
-
-#endif /* !G_DISABLE_CHECKS */
-
-
-/* Provide type definitions for commonly used types.
- *  These are useful because a "gint8" can be adjusted
- *  to be 1 byte (8 bits) on all platforms. Similarly and
- *  more importantly, "gint32" can be adjusted to be
- *  4 bytes (32 bits) on all platforms.
- */
-
-typedef char   gchar;
-typedef short  gshort;
-typedef long   glong;
-typedef int    gint;
-typedef gint   gboolean;
-
-typedef unsigned char	guchar;
-typedef unsigned short	gushort;
-typedef unsigned long	gulong;
-typedef unsigned int	guint;
-
-typedef float	gfloat;
-typedef double	gdouble;
-
-/* HAVE_LONG_DOUBLE doesn't work correctly on all platforms.
- * Since gldouble isn't used anywhere, just disable it for now */
-
-#if 0
-#ifdef HAVE_LONG_DOUBLE
-typedef long double gldouble;
-#else /* HAVE_LONG_DOUBLE */
-typedef double gldouble;
-#endif /* HAVE_LONG_DOUBLE */
-#endif /* 0 */
-
-typedef void* gpointer;
-typedef const void *gconstpointer;
-
-
-typedef gint32	gssize;
-typedef guint32 gsize;
-typedef guint32 GQuark;
-typedef gint32	GTime;
-
-
-/* Portable endian checks and conversions
- *
- * glibconfig.h defines G_BYTE_ORDER which expands to one of
- * the below macros.
- */
-#define G_LITTLE_ENDIAN 1234
-#define G_BIG_ENDIAN    4321
-#define G_PDP_ENDIAN    3412		/* unused, need specific PDP check */	
-
-
-/* Basic bit swapping functions
- */
-#define GUINT16_SWAP_LE_BE_CONSTANT(val)	((guint16) ( \
-    (((guint16) (val) & (guint16) 0x00ffU) << 8) | \
-    (((guint16) (val) & (guint16) 0xff00U) >> 8)))
-#define GUINT32_SWAP_LE_BE_CONSTANT(val)	((guint32) ( \
-    (((guint32) (val) & (guint32) 0x000000ffU) << 24) | \
-    (((guint32) (val) & (guint32) 0x0000ff00U) <<  8) | \
-    (((guint32) (val) & (guint32) 0x00ff0000U) >>  8) | \
-    (((guint32) (val) & (guint32) 0xff000000U) >> 24)))
-
-/* Intel specific stuff for speed
- */
-#if defined (__i386__) && defined (__GNUC__) && __GNUC__ >= 2
-#  define GUINT16_SWAP_LE_BE_X86(val) \
-     (__extension__					\
-      ({ register guint16 __v;				\
-	 if (__builtin_constant_p (val))		\
-	   __v = GUINT16_SWAP_LE_BE_CONSTANT (val);	\
-	 else						\
-	   __asm__ __const__ ("rorw $8, %w0"		\
-			      : "=r" (__v)		\
-			      : "0" ((guint16) (val)));	\
-	__v; }))
-#  define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_X86 (val))
-#  if !defined(__i486__) && !defined(__i586__) \
-      && !defined(__pentium__) && !defined(__i686__) && !defined(__pentiumpro__)
-#     define GUINT32_SWAP_LE_BE_X86(val) \
-        (__extension__						\
-         ({ register guint32 __v;				\
-	    if (__builtin_constant_p (val))			\
-	      __v = GUINT32_SWAP_LE_BE_CONSTANT (val);		\
-	  else							\
-	    __asm__ __const__ ("rorw $8, %w0\n\t"		\
-			       "rorl $16, %0\n\t"		\
-			       "rorw $8, %w0"			\
-			       : "=r" (__v)			\
-			       : "0" ((guint32) (val)));	\
-	__v; }))
-#  else /* 486 and higher has bswap */
-#     define GUINT32_SWAP_LE_BE_X86(val) \
-        (__extension__						\
-         ({ register guint32 __v;				\
-	    if (__builtin_constant_p (val))			\
-	      __v = GUINT32_SWAP_LE_BE_CONSTANT (val);		\
-	  else							\
-	    __asm__ __const__ ("bswap %0"			\
-			       : "=r" (__v)			\
-			       : "0" ((guint32) (val)));	\
-	__v; }))
-#  endif /* processor specific 32-bit stuff */
-#  define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86 (val))
-#else /* !__i386__ */
-#  define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
-#  define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val))
-#endif /* __i386__ */
-
-#ifdef G_HAVE_GINT64
-#  define GUINT64_SWAP_LE_BE_CONSTANT(val)	((guint64) ( \
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0x00000000000000ffU)) << 56) |	\
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0x000000000000ff00U)) << 40) |	\
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0x0000000000ff0000U)) << 24) |	\
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0x00000000ff000000U)) <<  8) |	\
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0x000000ff00000000U)) >>  8) |	\
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0x0000ff0000000000U)) >> 24) |	\
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0x00ff000000000000U)) >> 40) |	\
-      (((guint64) (val) &						\
-	(guint64) G_GINT64_CONSTANT(0xff00000000000000U)) >> 56)))
-#  if defined (__i386__) && defined (__GNUC__) && __GNUC__ >= 2
-#    define GUINT64_SWAP_LE_BE_X86(val) \
-	(__extension__						\
-	 ({ union { guint64 __ll;				\
-		    guint32 __l[2]; } __r;			\
-	    if (__builtin_constant_p (val))			\
-	      __r.__ll = GUINT64_SWAP_LE_BE_CONSTANT (val);	\
-	    else						\
-	      {							\
-	 	union { guint64 __ll;				\
-			guint32 __l[2]; } __w;			\
-		__w.__ll = ((guint64) val);			\
-		__r.__l[0] = GUINT32_SWAP_LE_BE (__w.__l[1]);	\
-		__r.__l[1] = GUINT32_SWAP_LE_BE (__w.__l[0]);	\
-	      }							\
-	  __r.__ll; }))
-#    define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_X86 (val))
-#  else /* !__i386__ */
-#    define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT(val))
-#  endif
-#endif
-
-#define GUINT16_SWAP_LE_PDP(val)	((guint16) (val))
-#define GUINT16_SWAP_BE_PDP(val)	(GUINT16_SWAP_LE_BE (val))
-#define GUINT32_SWAP_LE_PDP(val)	((guint32) ( \
-    (((guint32) (val) & (guint32) 0x0000ffffU) << 16) | \
-    (((guint32) (val) & (guint32) 0xffff0000U) >> 16)))
-#define GUINT32_SWAP_BE_PDP(val)	((guint32) ( \
-    (((guint32) (val) & (guint32) 0x00ff00ffU) << 8) | \
-    (((guint32) (val) & (guint32) 0xff00ff00U) >> 8)))
-
-/* The G*_TO_?E() macros are defined in glibconfig.h.
- * The transformation is symmetric, so the FROM just maps to the TO.
- */
-#define GINT16_FROM_LE(val)	(GINT16_TO_LE (val))
-#define GUINT16_FROM_LE(val)	(GUINT16_TO_LE (val))
-#define GINT16_FROM_BE(val)	(GINT16_TO_BE (val))
-#define GUINT16_FROM_BE(val)	(GUINT16_TO_BE (val))
-#define GINT32_FROM_LE(val)	(GINT32_TO_LE (val))
-#define GUINT32_FROM_LE(val)	(GUINT32_TO_LE (val))
-#define GINT32_FROM_BE(val)	(GINT32_TO_BE (val))
-#define GUINT32_FROM_BE(val)	(GUINT32_TO_BE (val))
-
-#ifdef G_HAVE_GINT64
-#define GINT64_FROM_LE(val)	(GINT64_TO_LE (val))
-#define GUINT64_FROM_LE(val)	(GUINT64_TO_LE (val))
-#define GINT64_FROM_BE(val)	(GINT64_TO_BE (val))
-#define GUINT64_FROM_BE(val)	(GUINT64_TO_BE (val))
-#endif
-
-#define GLONG_FROM_LE(val)	(GLONG_TO_LE (val))
-#define GULONG_FROM_LE(val)	(GULONG_TO_LE (val))
-#define GLONG_FROM_BE(val)	(GLONG_TO_BE (val))
-#define GULONG_FROM_BE(val)	(GULONG_TO_BE (val))
-
-#define GINT_FROM_LE(val)	(GINT_TO_LE (val))
-#define GUINT_FROM_LE(val)	(GUINT_TO_LE (val))
-#define GINT_FROM_BE(val)	(GINT_TO_BE (val))
-#define GUINT_FROM_BE(val)	(GUINT_TO_BE (val))
-
-
-/* Portable versions of host-network order stuff
- */
-#define g_ntohl(val) (GUINT32_FROM_BE (val))
-#define g_ntohs(val) (GUINT16_FROM_BE (val))
-#define g_htonl(val) (GUINT32_TO_BE (val))
-#define g_htons(val) (GUINT16_TO_BE (val))
-
-
-/* Glib version.
- * we prefix variable declarations so they can
- * properly get exported in windows dlls.
- */
-#ifdef NATIVE_WIN32
-#  ifdef GLIB_COMPILATION
-#    define GUTILS_C_VAR __declspec(dllexport)
-#  else /* !GLIB_COMPILATION */
-#    define GUTILS_C_VAR extern __declspec(dllimport)
-#  endif /* !GLIB_COMPILATION */
-#else /* !NATIVE_WIN32 */
-#  define GUTILS_C_VAR extern
-#endif /* !NATIVE_WIN32 */
-
-GUTILS_C_VAR const guint glib_major_version;
-GUTILS_C_VAR const guint glib_minor_version;
-GUTILS_C_VAR const guint glib_micro_version;
-GUTILS_C_VAR const guint glib_interface_age;
-GUTILS_C_VAR const guint glib_binary_age;
-
-#define GLIB_CHECK_VERSION(major,minor,micro)    \
-    (GLIB_MAJOR_VERSION > (major) || \
-     (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION > (minor)) || \
-     (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION == (minor) && \
-      GLIB_MICRO_VERSION >= (micro)))
-
-/* Forward declarations of glib types.
- */
-typedef struct _GAllocator	GAllocator;
-typedef struct _GArray		GArray;
-typedef struct _GByteArray	GByteArray;
-typedef struct _GCache		GCache;
-typedef struct _GCompletion	GCompletion;
-typedef	struct _GData		GData;
-typedef struct _GDebugKey	GDebugKey;
-typedef struct _GHashTable	GHashTable;
-typedef struct _GHook		GHook;
-typedef struct _GHookList	GHookList;
-typedef struct _GList		GList;
-typedef struct _GMemChunk	GMemChunk;
-typedef struct _GNode		GNode;
-typedef struct _GPtrArray	GPtrArray;
-typedef struct _GRelation	GRelation;
-typedef struct _GScanner	GScanner;
-typedef struct _GScannerConfig	GScannerConfig;
-typedef struct _GSList		GSList;
-typedef struct _GString		GString;
-typedef struct _GStringChunk	GStringChunk;
-typedef struct _GTimer		GTimer;
-typedef struct _GTree		GTree;
-typedef struct _GTuples		GTuples;
-typedef union  _GTokenValue	GTokenValue;
-typedef struct _GIOChannel	GIOChannel;
-
-/* Tree traverse flags */
-typedef enum
-{
-  G_TRAVERSE_LEAFS	= 1 << 0,
-  G_TRAVERSE_NON_LEAFS	= 1 << 1,
-  G_TRAVERSE_ALL	= G_TRAVERSE_LEAFS | G_TRAVERSE_NON_LEAFS,
-  G_TRAVERSE_MASK	= 0x03
-} GTraverseFlags;
-
-/* Tree traverse orders */
-typedef enum
-{
-  G_IN_ORDER,
-  G_PRE_ORDER,
-  G_POST_ORDER,
-  G_LEVEL_ORDER
-} GTraverseType;
-
-/* Log level shift offset for user defined
- * log levels (0-7 are used by GLib).
- */
-#define	G_LOG_LEVEL_USER_SHIFT	(8)
-
-/* Glib log levels and flags.
- */
-typedef enum
-{
-  /* log flags */
-  G_LOG_FLAG_RECURSION		= 1 << 0,
-  G_LOG_FLAG_FATAL		= 1 << 1,
-  
-  /* GLib log levels */
-  G_LOG_LEVEL_ERROR		= 1 << 2,	/* always fatal */
-  G_LOG_LEVEL_CRITICAL		= 1 << 3,
-  G_LOG_LEVEL_WARNING		= 1 << 4,
-  G_LOG_LEVEL_MESSAGE		= 1 << 5,
-  G_LOG_LEVEL_INFO		= 1 << 6,
-  G_LOG_LEVEL_DEBUG		= 1 << 7,
-  
-  G_LOG_LEVEL_MASK		= ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
-} GLogLevelFlags;
-
-/* GLib log levels that are considered fatal by default */
-#define	G_LOG_FATAL_MASK	(G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
-
-
-typedef gpointer	(*GCacheNewFunc)	(gpointer	key);
-typedef gpointer	(*GCacheDupFunc)	(gpointer	value);
-typedef void		(*GCacheDestroyFunc)	(gpointer	value);
-typedef gint		(*GCompareFunc)		(gconstpointer	a,
-						 gconstpointer	b);
-typedef gchar*		(*GCompletionFunc)	(gpointer);
-typedef void		(*GDestroyNotify)	(gpointer	data);
-typedef void		(*GDataForeachFunc)	(GQuark		key_id,
-						 gpointer	data,
-						 gpointer	user_data);
-typedef void		(*GFunc)		(gpointer	data,
-						 gpointer	user_data);
-typedef guint		(*GHashFunc)		(gconstpointer	key);
-typedef void		(*GFreeFunc)		(gpointer	data);
-typedef void		(*GHFunc)		(gpointer	key,
-						 gpointer	value,
-						 gpointer	user_data);
-typedef gboolean	(*GHRFunc)		(gpointer	key,
-						 gpointer	value,
-						 gpointer	user_data);
-typedef gint		(*GHookCompareFunc)	(GHook		*new_hook,
-						 GHook		*sibling);
-typedef gboolean	(*GHookFindFunc)	(GHook		*hook,
-						 gpointer	 data);
-typedef void		(*GHookMarshaller)	(GHook		*hook,
-						 gpointer	 data);
-typedef gboolean	(*GHookCheckMarshaller)	(GHook		*hook,
-						 gpointer	 data);
-typedef void		(*GHookFunc)		(gpointer	 data);
-typedef gboolean	(*GHookCheckFunc)	(gpointer	 data);
-typedef void		(*GHookFreeFunc)	(GHookList      *hook_list,
-						 GHook          *hook);
-typedef void		(*GLogFunc)		(const gchar   *log_domain,
-						 GLogLevelFlags	log_level,
-						 const gchar   *message,
-						 gpointer	user_data);
-typedef gboolean	(*GNodeTraverseFunc)	(GNode	       *node,
-						 gpointer	data);
-typedef void		(*GNodeForeachFunc)	(GNode	       *node,
-						 gpointer	data);
-typedef gint		(*GSearchFunc)		(gpointer	key,
-						 gpointer	data);
-typedef void		(*GScannerMsgFunc)	(GScanner      *scanner,
-						 gchar	       *message,
-						 gint		error);
-typedef gint		(*GTraverseFunc)	(gpointer	key,
-						 gpointer	value,
-						 gpointer	data);
-typedef	void		(*GVoidFunc)		(void);
-
-
-struct _GList
-{
-  gpointer data;
-  GList *next;
-  GList *prev;
-};
-
-struct _GSList
-{
-  gpointer data;
-  GSList *next;
-};
-
-struct _GString
-{
-  gchar *str;
-  gint len;
-};
-
-struct _GArray
-{
-  gchar *data;
-  guint len;
-};
-
-struct _GByteArray
-{
-  guint8 *data;
-  guint	  len;
-};
-
-struct _GPtrArray
-{
-  gpointer *pdata;
-  guint	    len;
-};
-
-struct _GTuples
-{
-  guint len;
-};
-
-struct _GDebugKey
-{
-  gchar *key;
-  guint	 value;
-};
-
-
-/* Doubly linked lists
- */
-void   g_list_push_allocator    (GAllocator     *allocator);
-void   g_list_pop_allocator     (void);
-GList* g_list_alloc		(void);
-void   g_list_free		(GList		*list);
-void   g_list_free_1		(GList		*list);
-GList* g_list_append		(GList		*list,
-				 gpointer	 data);
-GList* g_list_prepend		(GList		*list,
-				 gpointer	 data);
-GList* g_list_insert		(GList		*list,
-				 gpointer	 data,
-				 gint		 position);
-GList* g_list_insert_sorted	(GList		*list,
-				 gpointer	 data,
-				 GCompareFunc	 func);
-GList* g_list_concat		(GList		*list1,
-				 GList		*list2);
-GList* g_list_remove		(GList		*list,
-				 gpointer	 data);
-GList* g_list_remove_link	(GList		*list,
-				 GList		*llink);
-GList* g_list_reverse		(GList		*list);
-GList* g_list_copy		(GList		*list);
-GList* g_list_nth		(GList		*list,
-				 guint		 n);
-GList* g_list_find		(GList		*list,
-				 gpointer	 data);
-GList* g_list_find_custom	(GList		*list,
-				 gpointer	 data,
-				 GCompareFunc	 func);
-gint   g_list_position		(GList		*list,
-				 GList		*llink);
-gint   g_list_index		(GList		*list,
-				 gpointer	 data);
-GList* g_list_last		(GList		*list);
-GList* g_list_first		(GList		*list);
-guint  g_list_length		(GList		*list);
-void   g_list_foreach		(GList		*list,
-				 GFunc		 func,
-				 gpointer	 user_data);
-GList* g_list_sort              (GList          *list,
-		                 GCompareFunc    compare_func);
-gpointer g_list_nth_data	(GList		*list,
-				 guint		 n);
-#define g_list_previous(list)	((list) ? (((GList *)(list))->prev) : NULL)
-#define g_list_next(list)	((list) ? (((GList *)(list))->next) : NULL)
-
-
-/* Singly linked lists
- */
-void    g_slist_push_allocator  (GAllocator     *allocator);
-void    g_slist_pop_allocator   (void);
-GSList* g_slist_alloc		(void);
-void	g_slist_free		(GSList		*list);
-void	g_slist_free_1		(GSList		*list);
-GSList* g_slist_append		(GSList		*list,
-				 gpointer	 data);
-GSList* g_slist_prepend		(GSList		*list,
-				 gpointer	 data);
-GSList* g_slist_insert		(GSList		*list,
-				 gpointer	 data,
-				 gint		 position);
-GSList* g_slist_insert_sorted	(GSList		*list,
-				 gpointer	 data,
-				 GCompareFunc	 func);
-GSList* g_slist_concat		(GSList		*list1,
-				 GSList		*list2);
-GSList* g_slist_remove		(GSList		*list,
-				 gpointer	 data);
-GSList* g_slist_remove_link	(GSList		*list,
-				 GSList		*llink);
-GSList* g_slist_reverse		(GSList		*list);
-GSList*	g_slist_copy		(GSList		*list);
-GSList* g_slist_nth		(GSList		*list,
-				 guint		 n);
-GSList* g_slist_find		(GSList		*list,
-				 gpointer	 data);
-GSList* g_slist_find_custom	(GSList		*list,
-				 gpointer	 data,
-				 GCompareFunc	 func);
-gint	g_slist_position	(GSList		*list,
-				 GSList		*llink);
-gint	g_slist_index		(GSList		*list,
-				 gpointer	 data);
-GSList* g_slist_last		(GSList		*list);
-guint	g_slist_length		(GSList		*list);
-void	g_slist_foreach		(GSList		*list,
-				 GFunc		 func,
-				 gpointer	 user_data);
-GSList*  g_slist_sort           (GSList          *list,
-		                 GCompareFunc    compare_func);
-gpointer g_slist_nth_data	(GSList		*list,
-				 guint		 n);
-#define g_slist_next(slist)	((slist) ? (((GSList *)(slist))->next) : NULL)
-
-
-/* Hash tables
- */
-GHashTable* g_hash_table_new		(GHashFunc	 hash_func,
-					 GCompareFunc	 key_compare_func);
-void	    g_hash_table_destroy	(GHashTable	*hash_table);
-void	    g_hash_table_insert		(GHashTable	*hash_table,
-					 gpointer	 key,
-					 gpointer	 value);
-void	    g_hash_table_remove		(GHashTable	*hash_table,
-					 gconstpointer	 key);
-gpointer    g_hash_table_lookup		(GHashTable	*hash_table,
-					 gconstpointer	 key);
-gboolean    g_hash_table_lookup_extended(GHashTable	*hash_table,
-					 gconstpointer	 lookup_key,
-					 gpointer	*orig_key,
-					 gpointer	*value);
-void	    g_hash_table_freeze		(GHashTable	*hash_table);
-void	    g_hash_table_thaw		(GHashTable	*hash_table);
-void	    g_hash_table_foreach	(GHashTable	*hash_table,
-					 GHFunc		 func,
-					 gpointer	 user_data);
-guint	    g_hash_table_foreach_remove	(GHashTable	*hash_table,
-					 GHRFunc	 func,
-					 gpointer	 user_data);
-guint	    g_hash_table_size		(GHashTable	*hash_table);
-
-
-/* Caches
- */
-GCache*	 g_cache_new	       (GCacheNewFunc	   value_new_func,
-				GCacheDestroyFunc  value_destroy_func,
-				GCacheDupFunc	   key_dup_func,
-				GCacheDestroyFunc  key_destroy_func,
-				GHashFunc	   hash_key_func,
-				GHashFunc	   hash_value_func,
-				GCompareFunc	   key_compare_func);
-void	 g_cache_destroy       (GCache		  *cache);
-gpointer g_cache_insert	       (GCache		  *cache,
-				gpointer	   key);
-void	 g_cache_remove	       (GCache		  *cache,
-				gpointer	   value);
-void	 g_cache_key_foreach   (GCache		  *cache,
-				GHFunc		   func,
-				gpointer	   user_data);
-void	 g_cache_value_foreach (GCache		  *cache,
-				GHFunc		   func,
-				gpointer	   user_data);
-
-
-/* Balanced binary trees
- */
-GTree*	 g_tree_new	 (GCompareFunc	 key_compare_func);
-void	 g_tree_destroy	 (GTree		*tree);
-void	 g_tree_insert	 (GTree		*tree,
-			  gpointer	 key,
-			  gpointer	 value);
-void	 g_tree_remove	 (GTree		*tree,
-			  gpointer	 key);
-gpointer g_tree_lookup	 (GTree		*tree,
-			  gpointer	 key);
-void	 g_tree_traverse (GTree		*tree,
-			  GTraverseFunc	 traverse_func,
-			  GTraverseType	 traverse_type,
-			  gpointer	 data);
-gpointer g_tree_search	 (GTree		*tree,
-			  GSearchFunc	 search_func,
-			  gpointer	 data);
-gint	 g_tree_height	 (GTree		*tree);
-gint	 g_tree_nnodes	 (GTree		*tree);
-
-
-
-/* N-way tree implementation
- */
-struct _GNode
-{
-  gpointer data;
-  GNode	  *next;
-  GNode	  *prev;
-  GNode	  *parent;
-  GNode	  *children;
-};
-
-#define	 G_NODE_IS_ROOT(node)	(((GNode*) (node))->parent == NULL && \
-				 ((GNode*) (node))->prev == NULL && \
-				 ((GNode*) (node))->next == NULL)
-#define	 G_NODE_IS_LEAF(node)	(((GNode*) (node))->children == NULL)
-
-void     g_node_push_allocator  (GAllocator       *allocator);
-void     g_node_pop_allocator   (void);
-GNode*	 g_node_new		(gpointer	   data);
-void	 g_node_destroy		(GNode		  *root);
-void	 g_node_unlink		(GNode		  *node);
-GNode*	 g_node_insert		(GNode		  *parent,
-				 gint		   position,
-				 GNode		  *node);
-GNode*	 g_node_insert_before	(GNode		  *parent,
-				 GNode		  *sibling,
-				 GNode		  *node);
-GNode*	 g_node_prepend		(GNode		  *parent,
-				 GNode		  *node);
-guint	 g_node_n_nodes		(GNode		  *root,
-				 GTraverseFlags	   flags);
-GNode*	 g_node_get_root	(GNode		  *node);
-gboolean g_node_is_ancestor	(GNode		  *node,
-				 GNode		  *descendant);
-guint	 g_node_depth		(GNode		  *node);
-GNode*	 g_node_find		(GNode		  *root,
-				 GTraverseType	   order,
-				 GTraverseFlags	   flags,
-				 gpointer	   data);
-
-/* convenience macros */
-#define g_node_append(parent, node)				\
-     g_node_insert_before ((parent), NULL, (node))
-#define	g_node_insert_data(parent, position, data)		\
-     g_node_insert ((parent), (position), g_node_new (data))
-#define	g_node_insert_data_before(parent, sibling, data)	\
-     g_node_insert_before ((parent), (sibling), g_node_new (data))
-#define	g_node_prepend_data(parent, data)			\
-     g_node_prepend ((parent), g_node_new (data))
-#define	g_node_append_data(parent, data)			\
-     g_node_insert_before ((parent), NULL, g_node_new (data))
-
-/* traversal function, assumes that `node' is root
- * (only traverses `node' and its subtree).
- * this function is just a high level interface to
- * low level traversal functions, optimized for speed.
- */
-void	 g_node_traverse	(GNode		  *root,
-				 GTraverseType	   order,
-				 GTraverseFlags	   flags,
-				 gint		   max_depth,
-				 GNodeTraverseFunc func,
-				 gpointer	   data);
-
-/* return the maximum tree height starting with `node', this is an expensive
- * operation, since we need to visit all nodes. this could be shortened by
- * adding `guint height' to struct _GNode, but then again, this is not very
- * often needed, and would make g_node_insert() more time consuming.
- */
-guint	 g_node_max_height	 (GNode *root);
-
-void	 g_node_children_foreach (GNode		  *node,
-				  GTraverseFlags   flags,
-				  GNodeForeachFunc func,
-				  gpointer	   data);
-void	 g_node_reverse_children (GNode		  *node);
-guint	 g_node_n_children	 (GNode		  *node);
-GNode*	 g_node_nth_child	 (GNode		  *node,
-				  guint		   n);
-GNode*	 g_node_last_child	 (GNode		  *node);
-GNode*	 g_node_find_child	 (GNode		  *node,
-				  GTraverseFlags   flags,
-				  gpointer	   data);
-gint	 g_node_child_position	 (GNode		  *node,
-				  GNode		  *child);
-gint	 g_node_child_index	 (GNode		  *node,
-				  gpointer	   data);
-
-GNode*	 g_node_first_sibling	 (GNode		  *node);
-GNode*	 g_node_last_sibling	 (GNode		  *node);
-
-#define	 g_node_prev_sibling(node)	((node) ? \
-					 ((GNode*) (node))->prev : NULL)
-#define	 g_node_next_sibling(node)	((node) ? \
-					 ((GNode*) (node))->next : NULL)
-#define	 g_node_first_child(node)	((node) ? \
-					 ((GNode*) (node))->children : NULL)
-
-
-/* Callback maintenance functions
- */
-#define G_HOOK_FLAG_USER_SHIFT	(4)
-typedef enum
-{
-  G_HOOK_FLAG_ACTIVE	= 1 << 0,
-  G_HOOK_FLAG_IN_CALL	= 1 << 1,
-  G_HOOK_FLAG_MASK	= 0x0f
-} GHookFlagMask;
-
-#define	G_HOOK_DEFERRED_DESTROY	((GHookFreeFunc) 0x01)
-
-struct _GHookList
-{
-  guint		 seq_id;
-  guint		 hook_size;
-  guint		 is_setup : 1;
-  GHook		*hooks;
-  GMemChunk	*hook_memchunk;
-  GHookFreeFunc	 hook_free; /* virtual function */
-  GHookFreeFunc	 hook_destroy; /* virtual function */
-};
-
-struct _GHook
-{
-  gpointer	 data;
-  GHook		*next;
-  GHook		*prev;
-  guint		 ref_count;
-  guint		 hook_id;
-  guint		 flags;
-  gpointer	 func;
-  GDestroyNotify destroy;
-};
-
-#define	G_HOOK_ACTIVE(hook)		((((GHook*) hook)->flags & \
-					  G_HOOK_FLAG_ACTIVE) != 0)
-#define	G_HOOK_IN_CALL(hook)		((((GHook*) hook)->flags & \
-					  G_HOOK_FLAG_IN_CALL) != 0)
-#define G_HOOK_IS_VALID(hook)		(((GHook*) hook)->hook_id != 0 && \
-					 G_HOOK_ACTIVE (hook))
-#define G_HOOK_IS_UNLINKED(hook)	(((GHook*) hook)->next == NULL && \
-					 ((GHook*) hook)->prev == NULL && \
-					 ((GHook*) hook)->hook_id == 0 && \
-					 ((GHook*) hook)->ref_count == 0)
-
-void	 g_hook_list_init		(GHookList		*hook_list,
-					 guint			 hook_size);
-void	 g_hook_list_clear		(GHookList		*hook_list);
-GHook*	 g_hook_alloc			(GHookList		*hook_list);
-void	 g_hook_free			(GHookList		*hook_list,
-					 GHook			*hook);
-void	 g_hook_ref			(GHookList		*hook_list,
-					 GHook			*hook);
-void	 g_hook_unref			(GHookList		*hook_list,
-					 GHook			*hook);
-gboolean g_hook_destroy			(GHookList		*hook_list,
-					 guint			 hook_id);
-void	 g_hook_destroy_link		(GHookList		*hook_list,
-					 GHook			*hook);
-void	 g_hook_prepend			(GHookList		*hook_list,
-					 GHook			*hook);
-void	 g_hook_insert_before		(GHookList		*hook_list,
-					 GHook			*sibling,
-					 GHook			*hook);
-void	 g_hook_insert_sorted		(GHookList		*hook_list,
-					 GHook			*hook,
-					 GHookCompareFunc	 func);
-GHook*	 g_hook_get			(GHookList		*hook_list,
-					 guint			 hook_id);
-GHook*	 g_hook_find			(GHookList		*hook_list,
-					 gboolean		 need_valids,
-					 GHookFindFunc		 func,
-					 gpointer		 data);
-GHook*	 g_hook_find_data		(GHookList		*hook_list,
-					 gboolean		 need_valids,
-					 gpointer		 data);
-GHook*	 g_hook_find_func		(GHookList		*hook_list,
-					 gboolean		 need_valids,
-					 gpointer		 func);
-GHook*	 g_hook_find_func_data		(GHookList		*hook_list,
-					 gboolean		 need_valids,
-					 gpointer		 func,
-					 gpointer		 data);
-/* return the first valid hook, and increment its reference count */
-GHook*	 g_hook_first_valid		(GHookList		*hook_list,
-					 gboolean		 may_be_in_call);
-/* return the next valid hook with incremented reference count, and
- * decrement the reference count of the original hook
- */
-GHook*	 g_hook_next_valid		(GHookList		*hook_list,
-					 GHook			*hook,
-					 gboolean		 may_be_in_call);
-
-/* GHookCompareFunc implementation to insert hooks sorted by their id */
-gint	 g_hook_compare_ids		(GHook			*new_hook,
-					 GHook			*sibling);
-
-/* convenience macros */
-#define	 g_hook_append( hook_list, hook )  \
-     g_hook_insert_before ((hook_list), NULL, (hook))
-
-/* invoke all valid hooks with the (*GHookFunc) signature.
- */
-void	 g_hook_list_invoke		(GHookList		*hook_list,
-					 gboolean		 may_recurse);
-/* invoke all valid hooks with the (*GHookCheckFunc) signature,
- * and destroy the hook if FALSE is returned.
- */
-void	 g_hook_list_invoke_check	(GHookList		*hook_list,
-					 gboolean		 may_recurse);
-/* invoke a marshaller on all valid hooks.
- */
-void	 g_hook_list_marshal		(GHookList		*hook_list,
-					 gboolean		 may_recurse,
-					 GHookMarshaller	 marshaller,
-					 gpointer		 data);
-void	 g_hook_list_marshal_check	(GHookList		*hook_list,
-					 gboolean		 may_recurse,
-					 GHookCheckMarshaller	 marshaller,
-					 gpointer		 data);
-
-
-/* Fatal error handlers.
- * g_on_error_query() will prompt the user to either
- * [E]xit, [H]alt, [P]roceed or show [S]tack trace.
- * g_on_error_stack_trace() invokes gdb, which attaches to the current
- * process and shows a stack trace.
- * These function may cause different actions on non-unix platforms.
- * The prg_name arg is required by gdb to find the executable, if it is
- * passed as NULL, g_on_error_query() will try g_get_prgname().
- */
-void g_on_error_query (const gchar *prg_name);
-void g_on_error_stack_trace (const gchar *prg_name);
-
-
-/* Logging mechanism
- */
-extern	        const gchar		*g_log_domain_glib;
-guint		g_log_set_handler	(const gchar	*log_domain,
-					 GLogLevelFlags	 log_levels,
-					 GLogFunc	 log_func,
-					 gpointer	 user_data);
-void		g_log_remove_handler	(const gchar	*log_domain,
-					 guint		 handler_id);
-void		g_log_default_handler	(const gchar	*log_domain,
-					 GLogLevelFlags	 log_level,
-					 const gchar	*message,
-					 gpointer	 unused_data);
-void		g_log			(const gchar	*log_domain,
-					 GLogLevelFlags	 log_level,
-					 const gchar	*format,
-					 ...) G_GNUC_PRINTF (3, 4);
-void		g_logv			(const gchar	*log_domain,
-					 GLogLevelFlags	 log_level,
-					 const gchar	*format,
-					 va_list	 args);
-GLogLevelFlags	g_log_set_fatal_mask	(const gchar	*log_domain,
-					 GLogLevelFlags	 fatal_mask);
-GLogLevelFlags	g_log_set_always_fatal	(GLogLevelFlags	 fatal_mask);
-#ifndef	G_LOG_DOMAIN
-#define	G_LOG_DOMAIN	((gchar*) 0)
-#endif	/* G_LOG_DOMAIN */
-#ifdef	__GNUC__
-#define	g_error(format, args...)	g_log (G_LOG_DOMAIN, \
-					       G_LOG_LEVEL_ERROR, \
-					       format, ##args)
-#define	g_message(format, args...)	g_log (G_LOG_DOMAIN, \
-					       G_LOG_LEVEL_MESSAGE, \
-					       format, ##args)
-#define	g_warning(format, args...)	g_log (G_LOG_DOMAIN, \
-					       G_LOG_LEVEL_WARNING, \
-					       format, ##args)
-#else	/* !__GNUC__ */
-static void
-g_error (const gchar *format,
-	 ...)
-{
-  va_list args;
-  va_start (args, format);
-  g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
-  va_end (args);
-}
-static void
-g_message (const gchar *format,
-	   ...)
-{
-  va_list args;
-  va_start (args, format);
-  g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format, args);
-  va_end (args);
-}
-static void
-g_warning (const gchar *format,
-	   ...)
-{
-  va_list args;
-  va_start (args, format);
-  g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format, args);
-  va_end (args);
-}
-#endif	/* !__GNUC__ */
-
-typedef void	(*GPrintFunc)		(const gchar	*string);
-void		g_print			(const gchar	*format,
-					 ...) G_GNUC_PRINTF (1, 2);
-GPrintFunc	g_set_print_handler	(GPrintFunc	 func);
-void		g_printerr		(const gchar	*format,
-					 ...) G_GNUC_PRINTF (1, 2);
-GPrintFunc	g_set_printerr_handler	(GPrintFunc	 func);
-
-/* deprecated compatibility functions, use g_log_set_handler() instead */
-typedef void		(*GErrorFunc)		(const gchar *str);
-typedef void		(*GWarningFunc)		(const gchar *str);
-GErrorFunc   g_set_error_handler   (GErrorFunc	 func);
-GWarningFunc g_set_warning_handler (GWarningFunc func);
-GPrintFunc   g_set_message_handler (GPrintFunc func);
-
-
-/* Memory allocation and debugging
- */
-#ifdef USE_DMALLOC
-
-#define g_malloc(size)	     ((gpointer) MALLOC (size))
-#define g_malloc0(size)	     ((gpointer) CALLOC (char, size))
-#define g_realloc(mem,size)  ((gpointer) REALLOC (mem, char, size))
-#define g_free(mem)	     FREE (mem)
-
-#else /* !USE_DMALLOC */
-
-gpointer g_malloc      (gulong	  size);
-gpointer g_malloc0     (gulong	  size);
-gpointer g_realloc     (gpointer  mem,
-			gulong	  size);
-void	 g_free	       (gpointer  mem);
-
-#endif /* !USE_DMALLOC */
-
-void	 g_mem_profile (void);
-void	 g_mem_check   (gpointer  mem);
-
-/* Generic allocators
- */
-GAllocator* g_allocator_new   (const gchar  *name,
-			       guint         n_preallocs);
-void        g_allocator_free  (GAllocator   *allocator);
-
-#define	G_ALLOCATOR_LIST	(1)
-#define	G_ALLOCATOR_SLIST	(2)
-#define	G_ALLOCATOR_NODE	(3)
-
-
-/* "g_mem_chunk_new" creates a new memory chunk.
- * Memory chunks are used to allocate pieces of memory which are
- *  always the same size. Lists are a good example of such a data type.
- * The memory chunk allocates and frees blocks of memory as needed.
- *  Just be sure to call "g_mem_chunk_free" and not "g_free" on data
- *  allocated in a mem chunk. ("g_free" will most likely cause a seg
- *  fault...somewhere).
- *
- * Oh yeah, GMemChunk is an opaque data type. (You don't really
- *  want to know what's going on inside do you?)
- */
-
-/* ALLOC_ONLY MemChunk's can only allocate memory. The free operation
- *  is interpreted as a no op. ALLOC_ONLY MemChunk's save 4 bytes per
- *  atom. (They are also useful for lists which use MemChunk to allocate
- *  memory but are also part of the MemChunk implementation).
- * ALLOC_AND_FREE MemChunk's can allocate and free memory.
- */
-
-#define G_ALLOC_ONLY	  1
-#define G_ALLOC_AND_FREE  2
-
-GMemChunk* g_mem_chunk_new     (gchar	  *name,
-				gint	   atom_size,
-				gulong	   area_size,
-				gint	   type);
-void	   g_mem_chunk_destroy (GMemChunk *mem_chunk);
-gpointer   g_mem_chunk_alloc   (GMemChunk *mem_chunk);
-gpointer   g_mem_chunk_alloc0  (GMemChunk *mem_chunk);
-void	   g_mem_chunk_free    (GMemChunk *mem_chunk,
-				gpointer   mem);
-void	   g_mem_chunk_clean   (GMemChunk *mem_chunk);
-void	   g_mem_chunk_reset   (GMemChunk *mem_chunk);
-void	   g_mem_chunk_print   (GMemChunk *mem_chunk);
-void	   g_mem_chunk_info    (void);
-
-/* Ah yes...we have a "g_blow_chunks" function.
- * "g_blow_chunks" simply compresses all the chunks. This operation
- *  consists of freeing every memory area that should be freed (but
- *  which we haven't gotten around to doing yet). And, no,
- *  "g_blow_chunks" doesn't follow the naming scheme, but it is a
- *  much better name than "g_mem_chunk_clean_all" or something
- *  similar.
- */
-void g_blow_chunks (void);
-
-
-/* Timer
- */
-GTimer* g_timer_new	(void);
-void	g_timer_destroy (GTimer	 *timer);
-void	g_timer_start	(GTimer	 *timer);
-void	g_timer_stop	(GTimer	 *timer);
-void	g_timer_reset	(GTimer	 *timer);
-gdouble g_timer_elapsed (GTimer	 *timer,
-			 gulong	 *microseconds);
-
-
-/* String utility functions that modify a string argument or
- * return a constant string that must not be freed.
- */
-#define	 G_STR_DELIMITERS	"_-|> <."
-gchar*	 g_strdelimit		(gchar	     *string,
-				 const gchar *delimiters,
-				 gchar	      new_delimiter);
-gdouble	 g_strtod		(const gchar *nptr,
-				 gchar	    **endptr);
-gchar*	 g_strerror		(gint	      errnum);
-gchar*	 g_strsignal		(gint	      signum);
-gint	 g_strcasecmp		(const gchar *s1,
-				 const gchar *s2);
-gint	 g_strncasecmp		(const gchar *s1,
-				 const gchar *s2,
-				 guint 	      n);
-void	 g_strdown		(gchar	     *string);
-void	 g_strup		(gchar	     *string);
-void	 g_strreverse		(gchar	     *string);
-/* removes leading spaces */
-gchar*   g_strchug              (gchar        *string);
-/* removes trailing spaces */
-gchar*  g_strchomp              (gchar        *string);
-/* removes leading & trailing spaces */
-#define g_strstrip( string )	g_strchomp (g_strchug (string))
-
-/* String utility functions that return a newly allocated string which
- * ought to be freed from the caller at some point.
- */
-gchar*	 g_strdup		(const gchar *str);
-gchar*	 g_strdup_printf	(const gchar *format,
-				 ...) G_GNUC_PRINTF (1, 2);
-gchar*	 g_strdup_vprintf	(const gchar *format,
-				 va_list      args);
-gchar*	 g_strndup		(const gchar *str,
-				 guint	      n);
-gchar*	 g_strnfill		(guint	      length,
-				 gchar	      fill_char);
-gchar*	 g_strconcat		(const gchar *string1,
-				 ...); /* NULL terminated */
-gchar*   g_strjoin		(const gchar  *separator,
-				 ...); /* NULL terminated */
-gchar*	 g_strescape		(gchar	      *string);
-gpointer g_memdup		(gconstpointer mem,
-				 guint	       byte_size);
-
-/* NULL terminated string arrays.
- * g_strsplit() splits up string into max_tokens tokens at delim and
- * returns a newly allocated string array.
- * g_strjoinv() concatenates all of str_array's strings, sliding in an
- * optional separator, the returned string is newly allocated.
- * g_strfreev() frees the array itself and all of its strings.
- */
-gchar**	 g_strsplit		(const gchar  *string,
-				 const gchar  *delimiter,
-				 gint          max_tokens);
-gchar*   g_strjoinv		(const gchar  *separator,
-				 gchar       **str_array);
-void     g_strfreev		(gchar       **str_array);
-
-
-
-/* calculate a string size, guarranteed to fit format + args.
- */
-guint	g_printf_string_upper_bound (const gchar* format,
-				     va_list	  args);
-
-
-/* Retrive static string info
- */
-gchar*	g_get_user_name		(void);
-gchar*	g_get_real_name		(void);
-gchar*	g_get_home_dir		(void);
-gchar*	g_get_tmp_dir		(void);
-gchar*	g_get_prgname		(void);
-void	g_set_prgname		(const gchar *prgname);
-
-
-/* Miscellaneous utility functions
- */
-guint	g_parse_debug_string	(const gchar *string,
-				 GDebugKey   *keys,
-				 guint	      nkeys);
-gint	g_snprintf		(gchar	     *string,
-				 gulong	      n,
-				 gchar const *format,
-				 ...) G_GNUC_PRINTF (3, 4);
-gint	g_vsnprintf		(gchar	     *string,
-				 gulong	      n,
-				 gchar const *format,
-				 va_list      args);
-gchar*	g_basename		(const gchar *file_name);
-/* Check if a file name is an absolute path */
-gboolean g_path_is_absolute	(const gchar *file_name);
-/* In case of absolute paths, skip the root part */
-gchar*  g_path_skip_root	(gchar       *file_name);
-
-/* strings are newly allocated with g_malloc() */
-gchar*	g_dirname		(const gchar *file_name);
-gchar*	g_get_current_dir	(void);
-gchar*  g_getenv		(const gchar *variable);
-
-
-/* we use a GLib function as a replacement for ATEXIT, so
- * the programmer is not required to check the return value
- * (if there is any in the implementation) and doesn't encounter
- * missing include files.
- */
-void	g_atexit		(GVoidFunc    func);
-
-
-/* Bit tests
- */
-G_INLINE_FUNC gint	g_bit_nth_lsf (guint32 mask,
-				       gint    nth_bit);
-#ifdef	G_CAN_INLINE
-G_INLINE_FUNC gint
-g_bit_nth_lsf (guint32 mask,
-	       gint    nth_bit)
-{
-  do
-    {
-      nth_bit++;
-      if (mask & (1 << (guint) nth_bit))
-	return nth_bit;
-    }
-  while (nth_bit < 32);
-  return -1;
-}
-#endif	/* G_CAN_INLINE */
-
-G_INLINE_FUNC gint	g_bit_nth_msf (guint32 mask,
-				       gint    nth_bit);
-#ifdef G_CAN_INLINE
-G_INLINE_FUNC gint
-g_bit_nth_msf (guint32 mask,
-	       gint    nth_bit)
-{
-  if (nth_bit < 0)
-    nth_bit = 32;
-  do
-    {
-      nth_bit--;
-      if (mask & (1 << (guint) nth_bit))
-	return nth_bit;
-    }
-  while (nth_bit > 0);
-  return -1;
-}
-#endif	/* G_CAN_INLINE */
-
-G_INLINE_FUNC guint	g_bit_storage (guint number);
-#ifdef G_CAN_INLINE
-G_INLINE_FUNC guint
-g_bit_storage (guint number)
-{
-  register guint n_bits = 0;
-  
-  do
-    {
-      n_bits++;
-      number >>= 1;
-    }
-  while (number);
-  return n_bits;
-}
-#endif	/* G_CAN_INLINE */
-
-/* String Chunks
- */
-GStringChunk* g_string_chunk_new	   (gint size);
-void	      g_string_chunk_free	   (GStringChunk *chunk);
-gchar*	      g_string_chunk_insert	   (GStringChunk *chunk,
-					    const gchar	 *string);
-gchar*	      g_string_chunk_insert_const  (GStringChunk *chunk,
-					    const gchar	 *string);
-
-
-/* Strings
- */
-GString* g_string_new	    (const gchar *init);
-GString* g_string_sized_new (guint	  dfl_size);
-void	 g_string_free	    (GString	 *string,
-			     gint	  free_segment);
-GString* g_string_assign    (GString	 *lval,
-			     const gchar *rval);
-GString* g_string_truncate  (GString	 *string,
-			     gint	  len);
-GString* g_string_append    (GString	 *string,
-			     const gchar *val);
-GString* g_string_append_c  (GString	 *string,
-			     gchar	  c);
-GString* g_string_prepend   (GString	 *string,
-			     const gchar *val);
-GString* g_string_prepend_c (GString	 *string,
-			     gchar	  c);
-GString* g_string_insert    (GString	 *string,
-			     gint	  pos,
-			     const gchar *val);
-GString* g_string_insert_c  (GString	 *string,
-			     gint	  pos,
-			     gchar	  c);
-GString* g_string_erase	    (GString	 *string,
-			     gint	  pos,
-			     gint	  len);
-GString* g_string_down	    (GString	 *string);
-GString* g_string_up	    (GString	 *string);
-void	 g_string_sprintf   (GString	 *string,
-			     const gchar *format,
-			     ...) G_GNUC_PRINTF (2, 3);
-void	 g_string_sprintfa  (GString	 *string,
-			     const gchar *format,
-			     ...) G_GNUC_PRINTF (2, 3);
-
-
-/* Resizable arrays, remove fills any cleared spot and shortens the
- * array, while preserving the order. remove_fast will distort the
- * order by moving the last element to the position of the removed 
- */
-
-#define g_array_append_val(a,v)	  g_array_append_vals (a, &v, 1)
-#define g_array_prepend_val(a,v)  g_array_prepend_vals (a, &v, 1)
-#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &v, 1)
-#define g_array_index(a,t,i)      (((t*) (a)->data) [(i)])
-
-GArray* g_array_new	          (gboolean	    zero_terminated,
-				   gboolean	    clear,
-				   guint	    element_size);
-void	g_array_free	          (GArray	   *array,
-				   gboolean	    free_segment);
-GArray* g_array_append_vals       (GArray	   *array,
-				   gconstpointer    data,
-				   guint	    len);
-GArray* g_array_prepend_vals      (GArray	   *array,
-				   gconstpointer    data,
-				   guint	    len);
-GArray* g_array_insert_vals       (GArray          *array,
-				   guint            index,
-				   gconstpointer    data,
-				   guint            len);
-GArray* g_array_set_size          (GArray	   *array,
-				   guint	    length);
-GArray* g_array_remove_index	  (GArray	   *array,
-				   guint	    index);
-GArray* g_array_remove_index_fast (GArray	   *array,
-				   guint	    index);
-
-/* Resizable pointer array.  This interface is much less complicated
- * than the above.  Add appends appends a pointer.  Remove fills any
- * cleared spot and shortens the array. remove_fast will again distort
- * order.  
- */
-#define	    g_ptr_array_index(array,index) (array->pdata)[index]
-GPtrArray*  g_ptr_array_new		   (void);
-void	    g_ptr_array_free		   (GPtrArray	*array,
-					    gboolean	 free_seg);
-void	    g_ptr_array_set_size	   (GPtrArray	*array,
-					    gint	 length);
-gpointer    g_ptr_array_remove_index	   (GPtrArray	*array,
-					    guint	 index);
-gpointer    g_ptr_array_remove_index_fast  (GPtrArray	*array,
-					    guint	 index);
-gboolean    g_ptr_array_remove		   (GPtrArray	*array,
-					    gpointer	 data);
-gboolean    g_ptr_array_remove_fast        (GPtrArray	*array,
-					    gpointer	 data);
-void	    g_ptr_array_add		   (GPtrArray	*array,
-					    gpointer	 data);
-
-/* Byte arrays, an array of guint8.  Implemented as a GArray,
- * but type-safe.
- */
-
-GByteArray* g_byte_array_new	           (void);
-void	    g_byte_array_free	           (GByteArray	 *array,
-					    gboolean	  free_segment);
-GByteArray* g_byte_array_append	           (GByteArray	 *array,
-					    const guint8 *data,
-					    guint	  len);
-GByteArray* g_byte_array_prepend           (GByteArray	 *array,
-					    const guint8 *data,
-					    guint	  len);
-GByteArray* g_byte_array_set_size          (GByteArray	 *array,
-					    guint	  length);
-GByteArray* g_byte_array_remove_index	   (GByteArray	 *array,
-					    guint	  index);
-GByteArray* g_byte_array_remove_index_fast (GByteArray	 *array,
-					    guint	  index);
-
-
-/* Hash Functions
- */
-gint  g_str_equal (gconstpointer   v,
-		   gconstpointer   v2);
-guint g_str_hash  (gconstpointer   v);
-
-gint  g_int_equal (gconstpointer   v,
-		   gconstpointer   v2);
-guint g_int_hash  (gconstpointer   v);
-
-/* This "hash" function will just return the key's adress as an
- * unsigned integer. Useful for hashing on plain adresses or
- * simple integer values.
- * passing NULL into g_hash_table_new() as GHashFunc has the
- * same effect as passing g_direct_hash().
- */
-guint g_direct_hash  (gconstpointer v);
-gint  g_direct_equal (gconstpointer v,
-		      gconstpointer v2);
-
-
-/* Quarks (string<->id association)
- */
-GQuark	  g_quark_try_string		(const gchar	*string);
-GQuark	  g_quark_from_static_string	(const gchar	*string);
-GQuark	  g_quark_from_string		(const gchar	*string);
-gchar*	  g_quark_to_string		(GQuark		 quark);
-
-
-/* Keyed Data List
- * NOTE: these functions are scheduled for a rename in GLib 1.3
- */
-void	  g_datalist_init		 (GData		 **datalist);
-void	  g_datalist_clear		 (GData		 **datalist);
-gpointer  g_datalist_id_get_data	 (GData		 **datalist,
-					  GQuark	   key_id);
-void	  g_datalist_id_set_data_full	 (GData		 **datalist,
-					  GQuark	   key_id,
-					  gpointer	   data,
-					  GDestroyNotify   destroy_func);
-void	  g_datalist_id_remove_no_notify (GData		 **datalist,
-					  GQuark	   key_id);
-void	  g_datalist_foreach		 (GData		 **datalist,
-					  GDataForeachFunc func,
-					  gpointer	   user_data);
-#define	  g_datalist_id_set_data(dl, q, d)	\
-     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
-#define	  g_datalist_id_remove_data(dl, q)	\
-     g_datalist_id_set_data ((dl), (q), NULL)
-#define	  g_datalist_get_data(dl, k)		\
-     (g_datalist_id_get_data ((dl), g_quark_try_string (k)))
-#define	  g_datalist_set_data_full(dl, k, d, f)	\
-     g_datalist_id_set_data_full ((dl), g_quark_from_string (k), (d), (f))
-#define	  g_datalist_remove_no_notify(dl, k)	\
-     g_datalist_id_remove_no_notify ((dl), g_quark_try_string (k))
-#define	  g_datalist_set_data(dl, k, d)		\
-     g_datalist_set_data_full ((dl), (k), (d), NULL)
-#define	  g_datalist_remove_data(dl, k)		\
-     g_datalist_id_set_data ((dl), g_quark_try_string (k), NULL)
-
-
-/* Location Associated Keyed Data
- * NOTE: these functions are scheduled for a rename in GLib 1.3
- */
-void	  g_dataset_destroy		(gconstpointer	  dataset_location);
-gpointer  g_dataset_id_get_data		(gconstpointer	  dataset_location,
-					 GQuark		  key_id);
-void	  g_dataset_id_set_data_full	(gconstpointer	  dataset_location,
-					 GQuark		  key_id,
-					 gpointer	  data,
-					 GDestroyNotify	  destroy_func);
-void	  g_dataset_id_remove_no_notify	(gconstpointer	  dataset_location,
-					 GQuark		  key_id);
-void	  g_dataset_foreach		(gconstpointer	  dataset_location,
-					 GDataForeachFunc func,
-					 gpointer	  user_data);
-#define	  g_dataset_id_set_data(l, k, d)	\
-     g_dataset_id_set_data_full ((l), (k), (d), NULL)
-#define	  g_dataset_id_remove_data(l, k)	\
-     g_dataset_id_set_data ((l), (k), NULL)
-#define	  g_dataset_get_data(l, k)		\
-     (g_dataset_id_get_data ((l), g_quark_try_string (k)))
-#define	  g_dataset_set_data_full(l, k, d, f)	\
-     g_dataset_id_set_data_full ((l), g_quark_from_string (k), (d), (f))
-#define	  g_dataset_remove_no_notify(l, k)	\
-     g_dataset_id_remove_no_notify ((l), g_quark_try_string (k))
-#define	  g_dataset_set_data(l, k, d)		\
-     g_dataset_set_data_full ((l), (k), (d), NULL)
-#define	  g_dataset_remove_data(l, k)		\
-     g_dataset_id_set_data ((l), g_quark_try_string (k), NULL)
-
-
-/* GScanner: Flexible lexical scanner for general purpose.
- */
-
-/* Character sets */
-#define G_CSET_A_2_Z	"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-#define G_CSET_a_2_z	"abcdefghijklmnopqrstuvwxyz"
-#define G_CSET_LATINC	"\300\301\302\303\304\305\306"\
-			"\307\310\311\312\313\314\315\316\317\320"\
-			"\321\322\323\324\325\326"\
-			"\330\331\332\333\334\335\336"
-#define G_CSET_LATINS	"\337\340\341\342\343\344\345\346"\
-			"\347\350\351\352\353\354\355\356\357\360"\
-			"\361\362\363\364\365\366"\
-			"\370\371\372\373\374\375\376\377"
-
-/* Error types */
-typedef enum
-{
-  G_ERR_UNKNOWN,
-  G_ERR_UNEXP_EOF,
-  G_ERR_UNEXP_EOF_IN_STRING,
-  G_ERR_UNEXP_EOF_IN_COMMENT,
-  G_ERR_NON_DIGIT_IN_CONST,
-  G_ERR_DIGIT_RADIX,
-  G_ERR_FLOAT_RADIX,
-  G_ERR_FLOAT_MALFORMED
-} GErrorType;
-
-/* Token types */
-typedef enum
-{
-  G_TOKEN_EOF			=   0,
-  
-  G_TOKEN_LEFT_PAREN		= '(',
-  G_TOKEN_RIGHT_PAREN		= ')',
-  G_TOKEN_LEFT_CURLY		= '{',
-  G_TOKEN_RIGHT_CURLY		= '}',
-  G_TOKEN_LEFT_BRACE		= '[',
-  G_TOKEN_RIGHT_BRACE		= ']',
-  G_TOKEN_EQUAL_SIGN		= '=',
-  G_TOKEN_COMMA			= ',',
-  
-  G_TOKEN_NONE			= 256,
-  
-  G_TOKEN_ERROR,
-  
-  G_TOKEN_CHAR,
-  G_TOKEN_BINARY,
-  G_TOKEN_OCTAL,
-  G_TOKEN_INT,
-  G_TOKEN_HEX,
-  G_TOKEN_FLOAT,
-  G_TOKEN_STRING,
-  
-  G_TOKEN_SYMBOL,
-  G_TOKEN_IDENTIFIER,
-  G_TOKEN_IDENTIFIER_NULL,
-  
-  G_TOKEN_COMMENT_SINGLE,
-  G_TOKEN_COMMENT_MULTI,
-  G_TOKEN_LAST
-} GTokenType;
-
-union	_GTokenValue
-{
-  gpointer	v_symbol;
-  gchar		*v_identifier;
-  gulong	v_binary;
-  gulong	v_octal;
-  gulong	v_int;
-  gdouble	v_float;
-  gulong	v_hex;
-  gchar		*v_string;
-  gchar		*v_comment;
-  guchar	v_char;
-  guint		v_error;
-};
-
-struct	_GScannerConfig
-{
-  /* Character sets
-   */
-  gchar		*cset_skip_characters;		/* default: " \t\n" */
-  gchar		*cset_identifier_first;
-  gchar		*cset_identifier_nth;
-  gchar		*cpair_comment_single;		/* default: "#\n" */
-  
-  /* Should symbol lookup work case sensitive?
-   */
-  guint		case_sensitive : 1;
-  
-  /* Boolean values to be adjusted "on the fly"
-   * to configure scanning behaviour.
-   */
-  guint		skip_comment_multi : 1;		/* C like comment */
-  guint		skip_comment_single : 1;	/* single line comment */
-  guint		scan_comment_multi : 1;		/* scan multi line comments? */
-  guint		scan_identifier : 1;
-  guint		scan_identifier_1char : 1;
-  guint		scan_identifier_NULL : 1;
-  guint		scan_symbols : 1;
-  guint		scan_binary : 1;
-  guint		scan_octal : 1;
-  guint		scan_float : 1;
-  guint		scan_hex : 1;			/* `0x0ff0' */
-  guint		scan_hex_dollar : 1;		/* `$0ff0' */
-  guint		scan_string_sq : 1;		/* string: 'anything' */
-  guint		scan_string_dq : 1;		/* string: "\\-escapes!\n" */
-  guint		numbers_2_int : 1;		/* bin, octal, hex => int */
-  guint		int_2_float : 1;		/* int => G_TOKEN_FLOAT? */
-  guint		identifier_2_string : 1;
-  guint		char_2_token : 1;		/* return G_TOKEN_CHAR? */
-  guint		symbol_2_token : 1;
-  guint		scope_0_fallback : 1;		/* try scope 0 on lookups? */
-};
-
-struct	_GScanner
-{
-  /* unused fields */
-  gpointer		user_data;
-  guint			max_parse_errors;
-  
-  /* g_scanner_error() increments this field */
-  guint			parse_errors;
-  
-  /* name of input stream, featured by the default message handler */
-  const gchar		*input_name;
-  
-  /* data pointer for derived structures */
-  gpointer		derived_data;
-  
-  /* link into the scanner configuration */
-  GScannerConfig	*config;
-  
-  /* fields filled in after g_scanner_get_next_token() */
-  GTokenType		token;
-  GTokenValue		value;
-  guint			line;
-  guint			position;
-  
-  /* fields filled in after g_scanner_peek_next_token() */
-  GTokenType		next_token;
-  GTokenValue		next_value;
-  guint			next_line;
-  guint			next_position;
-  
-  /* to be considered private */
-  GHashTable		*symbol_table;
-  gint			input_fd;
-  const gchar		*text;
-  const gchar		*text_end;
-  gchar			*buffer;
-  guint			scope_id;
-  
-  /* handler function for _warn and _error */
-  GScannerMsgFunc	msg_handler;
-};
-
-GScanner*	g_scanner_new			(GScannerConfig *config_templ);
-void		g_scanner_destroy		(GScanner	*scanner);
-void		g_scanner_input_file		(GScanner	*scanner,
-						 gint		input_fd);
-void		g_scanner_sync_file_offset	(GScanner	*scanner);
-void		g_scanner_input_text		(GScanner	*scanner,
-						 const	gchar	*text,
-						 guint		text_len);
-GTokenType	g_scanner_get_next_token	(GScanner	*scanner);
-GTokenType	g_scanner_peek_next_token	(GScanner	*scanner);
-GTokenType	g_scanner_cur_token		(GScanner	*scanner);
-GTokenValue	g_scanner_cur_value		(GScanner	*scanner);
-guint		g_scanner_cur_line		(GScanner	*scanner);
-guint		g_scanner_cur_position		(GScanner	*scanner);
-gboolean	g_scanner_eof			(GScanner	*scanner);
-guint		g_scanner_set_scope		(GScanner	*scanner,
-						 guint		 scope_id);
-void		g_scanner_scope_add_symbol	(GScanner	*scanner,
-						 guint		 scope_id,
-						 const gchar	*symbol,
-						 gpointer	value);
-void		g_scanner_scope_remove_symbol	(GScanner	*scanner,
-						 guint		 scope_id,
-						 const gchar	*symbol);
-gpointer	g_scanner_scope_lookup_symbol	(GScanner	*scanner,
-						 guint		 scope_id,
-						 const gchar	*symbol);
-void		g_scanner_scope_foreach_symbol	(GScanner	*scanner,
-						 guint		 scope_id,
-						 GHFunc		 func,
-						 gpointer	 user_data);
-gpointer	g_scanner_lookup_symbol		(GScanner	*scanner,
-						 const gchar	*symbol);
-void		g_scanner_freeze_symbol_table	(GScanner	*scanner);
-void		g_scanner_thaw_symbol_table	(GScanner	*scanner);
-void		g_scanner_unexp_token		(GScanner	*scanner,
-						 GTokenType	expected_token,
-						 const gchar	*identifier_spec,
-						 const gchar	*symbol_spec,
-						 const gchar	*symbol_name,
-						 const gchar	*message,
-						 gint		 is_error);
-void		g_scanner_error			(GScanner	*scanner,
-						 const gchar	*format,
-						 ...) G_GNUC_PRINTF (2,3);
-void		g_scanner_warn			(GScanner	*scanner,
-						 const gchar	*format,
-						 ...) G_GNUC_PRINTF (2,3);
-gint		g_scanner_stat_mode		(const gchar	*filename);
-/* keep downward source compatibility */
-#define		g_scanner_add_symbol( scanner, symbol, value )	G_STMT_START { \
-  g_scanner_scope_add_symbol ((scanner), 0, (symbol), (value)); \
-} G_STMT_END
-#define		g_scanner_remove_symbol( scanner, symbol )	G_STMT_START { \
-  g_scanner_scope_remove_symbol ((scanner), 0, (symbol)); \
-} G_STMT_END
-#define		g_scanner_foreach_symbol( scanner, func, data )	G_STMT_START { \
-  g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \
-} G_STMT_END
-
-
-/* GCompletion
- */
-
-struct _GCompletion
-{
-  GList* items;
-  GCompletionFunc func;
-  
-  gchar* prefix;
-  GList* cache;
-};
-
-GCompletion* g_completion_new	       (GCompletionFunc func);
-void	     g_completion_add_items    (GCompletion*	cmp,
-					GList*		items);
-void	     g_completion_remove_items (GCompletion*	cmp,
-					GList*		items);
-void	     g_completion_clear_items  (GCompletion*	cmp);
-GList*	     g_completion_complete     (GCompletion*	cmp,
-					gchar*		prefix,
-					gchar**		new_prefix);
-void	     g_completion_free	       (GCompletion*	cmp);
-
-
-/* GDate
- *
- * Date calculations (not time for now, to be resolved). These are a
- * mutant combination of Steffen Beyer's DateCalc routines
- * (http://www.perl.com/CPAN/authors/id/STBEY/) and Jon Trowbridge's
- * date routines (written for in-house software).  Written by Havoc
- * Pennington <hp@pobox.com> 
- */
-
-typedef guint16 GDateYear;
-typedef guint8  GDateDay;   /* day of the month */
-typedef struct _GDate GDate;
-/* make struct tm known without having to include time.h */
-struct tm;
-
-/* enum used to specify order of appearance in parsed date strings */
-typedef enum
-{
-  G_DATE_DAY   = 0,
-  G_DATE_MONTH = 1,
-  G_DATE_YEAR  = 2
-} GDateDMY;
-
-/* actual week and month values */
-typedef enum
-{
-  G_DATE_BAD_WEEKDAY  = 0,
-  G_DATE_MONDAY       = 1,
-  G_DATE_TUESDAY      = 2,
-  G_DATE_WEDNESDAY    = 3,
-  G_DATE_THURSDAY     = 4,
-  G_DATE_FRIDAY       = 5,
-  G_DATE_SATURDAY     = 6,
-  G_DATE_SUNDAY       = 7
-} GDateWeekday;
-typedef enum
-{
-  G_DATE_BAD_MONTH = 0,
-  G_DATE_JANUARY   = 1,
-  G_DATE_FEBRUARY  = 2,
-  G_DATE_MARCH     = 3,
-  G_DATE_APRIL     = 4,
-  G_DATE_MAY       = 5,
-  G_DATE_JUNE      = 6,
-  G_DATE_JULY      = 7,
-  G_DATE_AUGUST    = 8,
-  G_DATE_SEPTEMBER = 9,
-  G_DATE_OCTOBER   = 10,
-  G_DATE_NOVEMBER  = 11,
-  G_DATE_DECEMBER  = 12
-} GDateMonth;
-
-#define G_DATE_BAD_JULIAN 0U
-#define G_DATE_BAD_DAY    0U
-#define G_DATE_BAD_YEAR   0U
-
-/* Note: directly manipulating structs is generally a bad idea, but
- * in this case it's an *incredibly* bad idea, because all or part
- * of this struct can be invalid at any given time. Use the functions,
- * or you will get hosed, I promise.
- */
-struct _GDate
-{ 
-  guint julian_days : 32; /* julian days representation - we use a
-                           *  bitfield hoping that 64 bit platforms
-                           *  will pack this whole struct in one big
-                           *  int 
-                           */
-
-  guint julian : 1;    /* julian is valid */
-  guint dmy    : 1;    /* dmy is valid */
-
-  /* DMY representation */
-  guint day    : 6;  
-  guint month  : 4; 
-  guint year   : 16; 
-};
-
-/* g_date_new() returns an invalid date, you then have to _set() stuff 
- * to get a usable object. You can also allocate a GDate statically,
- * then call g_date_clear() to initialize.
- */
-GDate*       g_date_new                   (void);
-GDate*       g_date_new_dmy               (GDateDay     day, 
-                                           GDateMonth   month, 
-                                           GDateYear    year);
-GDate*       g_date_new_julian            (guint32      julian_day);
-void         g_date_free                  (GDate       *date);
-
-/* check g_date_valid() after doing an operation that might fail, like
- * _parse.  Almost all g_date operations are undefined on invalid
- * dates (the exceptions are the mutators, since you need those to
- * return to validity).  
- */
-gboolean     g_date_valid                 (GDate       *date);
-gboolean     g_date_valid_day             (GDateDay     day);
-gboolean     g_date_valid_month           (GDateMonth   month);
-gboolean     g_date_valid_year            (GDateYear    year);
-gboolean     g_date_valid_weekday         (GDateWeekday weekday);
-gboolean     g_date_valid_julian          (guint32      julian_date);
-gboolean     g_date_valid_dmy             (GDateDay     day,
-                                           GDateMonth   month,
-                                           GDateYear    year);
-
-GDateWeekday g_date_weekday               (GDate       *date);
-GDateMonth   g_date_month                 (GDate       *date);
-GDateYear    g_date_year                  (GDate       *date);
-GDateDay     g_date_day                   (GDate       *date);
-guint32      g_date_julian                (GDate       *date);
-guint        g_date_day_of_year           (GDate       *date);
-
-/* First monday/sunday is the start of week 1; if we haven't reached
- * that day, return 0. These are not ISO weeks of the year; that
- * routine needs to be added.
- * these functions return the number of weeks, starting on the
- * corrsponding day
- */
-guint        g_date_monday_week_of_year   (GDate      *date);
-guint        g_date_sunday_week_of_year   (GDate      *date);
-
-/* If you create a static date struct you need to clear it to get it
- * in a sane state before use. You can clear a whole array at
- * once with the ndates argument.
- */
-void         g_date_clear                 (GDate       *date, 
-                                           guint        n_dates);
-
-/* The parse routine is meant for dates typed in by a user, so it
- * permits many formats but tries to catch common typos. If your data
- * needs to be strictly validated, it is not an appropriate function.
- */
-void         g_date_set_parse             (GDate       *date,
-                                           const gchar *str);
-void         g_date_set_time              (GDate       *date, 
-                                           GTime        time);
-void         g_date_set_month             (GDate       *date, 
-                                           GDateMonth   month);
-void         g_date_set_day               (GDate       *date, 
-                                           GDateDay     day);
-void         g_date_set_year              (GDate       *date,
-                                           GDateYear    year);
-void         g_date_set_dmy               (GDate       *date,
-                                           GDateDay     day,
-                                           GDateMonth   month,
-                                           GDateYear    y);
-void         g_date_set_julian            (GDate       *date,
-                                           guint32      julian_date);
-gboolean     g_date_is_first_of_month     (GDate       *date);
-gboolean     g_date_is_last_of_month      (GDate       *date);
-
-/* To go forward by some number of weeks just go forward weeks*7 days */
-void         g_date_add_days              (GDate       *date, 
-                                           guint        n_days);
-void         g_date_subtract_days         (GDate       *date, 
-                                           guint        n_days);
-
-/* If you add/sub months while day > 28, the day might change */
-void         g_date_add_months            (GDate       *date,
-                                           guint        n_months);
-void         g_date_subtract_months       (GDate       *date,
-                                           guint        n_months);
-
-/* If it's feb 29, changing years can move you to the 28th */
-void         g_date_add_years             (GDate       *date,
-                                           guint        n_years);
-void         g_date_subtract_years        (GDate       *date,
-                                           guint        n_years);
-gboolean     g_date_is_leap_year          (GDateYear    year);
-guint8       g_date_days_in_month         (GDateMonth   month, 
-                                           GDateYear    year);
-guint8       g_date_monday_weeks_in_year  (GDateYear    year);
-guint8       g_date_sunday_weeks_in_year  (GDateYear    year);
-
-/* qsort-friendly (with a cast...) */
-gint         g_date_compare               (GDate       *lhs,
-                                           GDate       *rhs);
-void         g_date_to_struct_tm          (GDate       *date,
-                                           struct tm   *tm);
-
-/* Just like strftime() except you can only use date-related formats.
- *   Using a time format is undefined.
- */
-gsize        g_date_strftime              (gchar       *s,
-                                           gsize        slen,
-                                           const gchar *format,
-                                           GDate       *date);
-
-
-/* GRelation
- *
- * Indexed Relations.  Imagine a really simple table in a
- * database.  Relations are not ordered.  This data type is meant for
- * maintaining a N-way mapping.
- *
- * g_relation_new() creates a relation with FIELDS fields
- *
- * g_relation_destroy() frees all resources
- * g_tuples_destroy() frees the result of g_relation_select()
- *
- * g_relation_index() indexes relation FIELD with the provided
- *   equality and hash functions.  this must be done before any
- *   calls to insert are made.
- *
- * g_relation_insert() inserts a new tuple.  you are expected to
- *   provide the right number of fields.
- *
- * g_relation_delete() deletes all relations with KEY in FIELD
- * g_relation_select() returns ...
- * g_relation_count() counts ...
- */
-
-GRelation* g_relation_new     (gint	    fields);
-void	   g_relation_destroy (GRelation   *relation);
-void	   g_relation_index   (GRelation   *relation,
-			       gint	    field,
-			       GHashFunc    hash_func,
-			       GCompareFunc key_compare_func);
-void	   g_relation_insert  (GRelation   *relation,
-			       ...);
-gint	   g_relation_delete  (GRelation   *relation,
-			       gconstpointer  key,
-			       gint	    field);
-GTuples*   g_relation_select  (GRelation   *relation,
-			       gconstpointer  key,
-			       gint	    field);
-gint	   g_relation_count   (GRelation   *relation,
-			       gconstpointer  key,
-			       gint	    field);
-gboolean   g_relation_exists  (GRelation   *relation,
-			       ...);
-void	   g_relation_print   (GRelation   *relation);
-
-void	   g_tuples_destroy   (GTuples	   *tuples);
-gpointer   g_tuples_index     (GTuples	   *tuples,
-			       gint	    index,
-			       gint	    field);
-
-
-/* Prime numbers.
- */
-
-/* This function returns prime numbers spaced by approximately 1.5-2.0
- * and is for use in resizing data structures which prefer
- * prime-valued sizes.	The closest spaced prime function returns the
- * next largest prime, or the highest it knows about which is about
- * MAXINT/4.
- */
-guint	   g_spaced_primes_closest (guint num);
-
-
-/* GIOChannel
- */
-
-typedef struct _GIOFuncs GIOFuncs;
-typedef enum
-{
-  G_IO_ERROR_NONE,
-  G_IO_ERROR_AGAIN,
-  G_IO_ERROR_INVAL,
-  G_IO_ERROR_UNKNOWN
-} GIOError;
-typedef enum
-{
-  G_SEEK_CUR,
-  G_SEEK_SET,
-  G_SEEK_END
-} GSeekType;
-typedef enum
-{
-  G_IO_IN	GLIB_SYSDEF_POLLIN,
-  G_IO_OUT	GLIB_SYSDEF_POLLOUT,
-  G_IO_PRI	GLIB_SYSDEF_POLLPRI,
-  G_IO_ERR	GLIB_SYSDEF_POLLERR,
-  G_IO_HUP	GLIB_SYSDEF_POLLHUP,
-  G_IO_NVAL	GLIB_SYSDEF_POLLNVAL
-} GIOCondition;
-
-struct _GIOChannel
-{
-  guint channel_flags;
-  guint ref_count;
-  GIOFuncs *funcs;
-};
-
-typedef gboolean (*GIOFunc) (GIOChannel   *source,
-			     GIOCondition  condition,
-			     gpointer      data);
-struct _GIOFuncs
-{
-  GIOError (*io_read)   (GIOChannel 	*channel, 
-		         gchar      	*buf, 
-		         guint      	 count,
-			 guint      	*bytes_read);
-  GIOError (*io_write)  (GIOChannel 	*channel, 
-		 	 gchar      	*buf, 
-			 guint      	 count,
-			 guint      	*bytes_written);
-  GIOError (*io_seek)   (GIOChannel   	*channel, 
-		 	 gint       	 offset, 
-		  	 GSeekType  	 type);
-  void (*io_close)      (GIOChannel	*channel);
-  guint (*io_add_watch) (GIOChannel     *channel,
-			 gint            priority,
-			 GIOCondition    condition,
-			 GIOFunc         func,
-			 gpointer        user_data,
-			 GDestroyNotify  notify);
-  void (*io_free)       (GIOChannel	*channel);
-};
-
-void        g_io_channel_init   (GIOChannel    *channel);
-void        g_io_channel_ref    (GIOChannel    *channel);
-void        g_io_channel_unref  (GIOChannel    *channel);
-GIOError    g_io_channel_read   (GIOChannel    *channel, 
-			         gchar         *buf, 
-			         guint          count,
-			         guint         *bytes_read);
-GIOError  g_io_channel_write    (GIOChannel    *channel, 
-			         gchar         *buf, 
-			         guint          count,
-			         guint         *bytes_written);
-GIOError  g_io_channel_seek     (GIOChannel    *channel,
-			         gint           offset, 
-			         GSeekType      type);
-void      g_io_channel_close    (GIOChannel    *channel);
-guint     g_io_add_watch_full   (GIOChannel    *channel,
-			         gint           priority,
-			         GIOCondition   condition,
-			         GIOFunc        func,
-			         gpointer       user_data,
-			         GDestroyNotify notify);
-guint    g_io_add_watch         (GIOChannel    *channel,
-			         GIOCondition   condition,
-			         GIOFunc        func,
-			         gpointer       user_data);
-
-
-/* Main loop
- */
-typedef struct _GTimeVal	GTimeVal;
-typedef struct _GSourceFuncs	GSourceFuncs;
-typedef struct _GMainLoop	GMainLoop;	/* Opaque */
-
-struct _GTimeVal
-{
-  glong tv_sec;
-  glong tv_usec;
-};
-struct _GSourceFuncs
-{
-  gboolean (*prepare)  (gpointer  source_data, 
-			GTimeVal *current_time,
-			gint     *timeout,
-			gpointer  user_data);
-  gboolean (*check)    (gpointer  source_data,
-			GTimeVal *current_time,
-			gpointer  user_data);
-  gboolean (*dispatch) (gpointer  source_data, 
-			GTimeVal *dispatch_time,
-			gpointer  user_data);
-  GDestroyNotify destroy;
-};
-
-/* Standard priorities */
-
-#define G_PRIORITY_HIGH            -100
-#define G_PRIORITY_DEFAULT          0
-#define G_PRIORITY_HIGH_IDLE        100
-#define G_PRIORITY_DEFAULT_IDLE     200
-#define G_PRIORITY_LOW	            300
-
-typedef gboolean (*GSourceFunc) (gpointer data);
-
-/* Hooks for adding to the main loop */
-guint    g_source_add                        (gint           priority, 
-					      gboolean       can_recurse,
-					      GSourceFuncs  *funcs,
-					      gpointer       source_data, 
-					      gpointer       user_data,
-					      GDestroyNotify notify);
-gboolean g_source_remove                     (guint          tag);
-gboolean g_source_remove_by_user_data        (gpointer       user_data);
-gboolean g_source_remove_by_source_data      (gpointer       source_data);
-gboolean g_source_remove_by_funcs_user_data  (GSourceFuncs  *funcs,
-					      gpointer       user_data);
-
-void g_get_current_time		        (GTimeVal	*result);
-
-/* Running the main loop */
-GMainLoop*	g_main_new		(gboolean	 is_running);
-void		g_main_run		(GMainLoop	*loop);
-void		g_main_quit		(GMainLoop	*loop);
-void		g_main_destroy		(GMainLoop	*loop);
-gboolean	g_main_is_running	(GMainLoop	*loop);
-
-/* Run a single iteration of the mainloop. If block is FALSE,
- * will never block
- */
-gboolean	g_main_iteration	(gboolean	may_block);
-
-/* See if any events are pending */
-gboolean	g_main_pending		(void);
-
-/* Idles and timeouts */
-guint		g_timeout_add_full	(gint           priority,
-					 guint          interval, 
-					 GSourceFunc    function,
-					 gpointer       data,
-					 GDestroyNotify notify);
-guint		g_timeout_add		(guint          interval,
-					 GSourceFunc    function,
-					 gpointer       data);
-guint		g_idle_add	   	(GSourceFunc	function,
-					 gpointer	data);
-guint	   	g_idle_add_full		(gint   	priority,
-					 GSourceFunc	function,
-					 gpointer	data,
-					 GDestroyNotify destroy);
-gboolean	g_idle_remove_by_data	(gpointer	data);
-
-/* GPollFD
- *
- * System-specific IO and main loop calls
- *
- * On Win32, the fd in a GPollFD should be Win32 HANDLE (*not* a file
- * descriptor as provided by the C runtime) that can be used by
- * MsgWaitForMultipleObjects. This does *not* include file handles
- * from CreateFile, SOCKETs, nor pipe handles. (But you can use
- * WSAEventSelect to signal events when a SOCKET is readable).
- *
- * On Win32, fd can also be the special value G_WIN32_MSG_HANDLE to
- * indicate polling for messages. These message queue GPollFDs should
- * be added with the g_main_poll_win32_msg_add function.
- *
- * But note that G_WIN32_MSG_HANDLE GPollFDs should not be used by GDK
- * (GTK) programs, as GDK itself wants to read messages and convert them
- * to GDK events.
- *
- * So, unless you really know what you are doing, it's best not to try
- * to use the main loop polling stuff for your own needs on
- * Win32. It's really only written for the GIMP's needs so
- * far.
- */
-
-typedef struct _GPollFD GPollFD;
-typedef gint	(*GPollFunc)	(GPollFD *ufds,
-				 guint	  nfsd,
-				 gint     timeout);
-struct _GPollFD
-{
-  gint		fd;
-  gushort 	events;
-  gushort 	revents;
-};
-
-void        g_main_add_poll          (GPollFD    *fd,
-				      gint        priority);
-void        g_main_remove_poll       (GPollFD    *fd);
-void        g_main_set_poll_func     (GPollFunc   func);
-
-/* On Unix, IO channels created with this function for any file
- * descriptor or socket.
- *
- * On Win32, use this only for plain files opened with the MSVCRT (the
- * Microsoft run-time C library) _open(), including file descriptors
- * 0, 1 and 2 (corresponding to stdin, stdout and stderr).
- * Actually, don't do even that, this code isn't done yet.
- *
- * The term file descriptor as used in the context of Win32 refers to
- * the emulated Unix-like file descriptors MSVCRT provides.
- */
-GIOChannel* g_io_channel_unix_new    (int         fd);
-gint        g_io_channel_unix_get_fd (GIOChannel *channel);
-
-#ifdef NATIVE_WIN32
-
-GUTILS_C_VAR guint g_pipe_readable_msg;
-
-#define G_WIN32_MSG_HANDLE 19981206
-
-/* This is used to add polling for Windows messages. GDK (GTk+) programs
- * should *not* use this. (In fact, I can't think of any program that
- * would want to use this, but it's here just for completeness's sake.
- */
-void        g_main_poll_win32_msg_add(gint        priority,
-				      GPollFD    *fd,
-				      guint       hwnd);
-
-/* An IO channel for Windows messages for window handle hwnd. */
-GIOChannel *g_io_channel_win32_new_messages (guint hwnd);
-
-/* An IO channel for an anonymous pipe as returned from the MSVCRT
- * _pipe(), with no mechanism for the writer to tell the reader when
- * there is data in the pipe.
- *
- * This is not really implemented yet.
- */
-GIOChannel *g_io_channel_win32_new_pipe (int fd);
-
-/* An IO channel for a pipe as returned from the MSVCRT _pipe(), with
- * Windows user messages used to signal data in the pipe for the
- * reader.
- *
- * fd is the file descriptor. For the write end, peer is the thread id
- * of the reader, and peer_fd is his file descriptor for the read end
- * of the pipe.
- *
- * This is used by the GIMP, and works.
- */
-GIOChannel *g_io_channel_win32_new_pipe_with_wakeups (int   fd,
-						      guint peer,
-						      int   peer_fd);
-
-void        g_io_channel_win32_pipe_request_wakeups (GIOChannel *channel,
-						     guint       peer,
-						     int         peer_fd);
-
-void        g_io_channel_win32_pipe_readable (int   fd,
-					      guint offset);
-
-/* Get the C runtime file descriptor of a channel. */
-gint        g_io_channel_win32_get_fd (GIOChannel *channel);
-
-/* An IO channel for a SOCK_STREAM winsock socket. The parameter is
- * actually a SOCKET.
- */
-GIOChannel *g_io_channel_win32_new_stream_socket (int socket);
-
-#endif
-
-/* Windows emulation stubs for common Unix functions
- */
-#ifdef NATIVE_WIN32
-#  define MAXPATHLEN 1024
-#  ifdef _MSC_VER
-typedef int pid_t;
-
-/* These POSIXish functions are available in the Microsoft C library
- * prefixed with underscore (which of course technically speaking is
- * the Right Thing, as they are non-ANSI. Not that being non-ANSI
- * prevents Microsoft from practically requiring you to include
- * <windows.h> every now and then...).
- *
- * You still need to include the appropriate headers to get the
- * prototypes, <io.h> or <direct.h>.
- *
- * For some functions, we provide emulators in glib, which are prefixed
- * with gwin_.
- */
-#    define getcwd		_getcwd
-#    define getpid		_getpid
-#    define access		_access
-#    define open		_open
-#    define read		_read
-#    define write		_write
-#    define lseek		_lseek
-#    define close		_close
-#    define pipe(phandles)	_pipe (phandles, 4096, _O_BINARY)
-#    define popen		_popen
-#    define pclose		_pclose
-#    define fdopen		_fdopen
-#    define ftruncate(fd, size)	gwin_ftruncate (fd, size)
-#    define opendir		gwin_opendir
-#    define readdir		gwin_readdir
-#    define rewinddir		gwin_rewinddir
-#    define closedir		gwin_closedir
-#    define NAME_MAX 255
-struct DIR
-{
-  gchar    *dir_name;
-  gboolean  just_opened;
-  guint     find_file_handle;
-  gpointer  find_file_data;
-};
-typedef struct DIR DIR;
-struct dirent
-{
-  gchar  d_name[NAME_MAX + 1];
-};
-/* emulation functions */
-extern int	gwin_ftruncate	(gint		 f,
-				 guint		 size);
-DIR*		gwin_opendir	(const gchar	*dirname);
-struct dirent*	gwin_readdir  	(DIR		*dir);
-void		gwin_rewinddir 	(DIR		*dir);
-gint		gwin_closedir  	(DIR		*dir);
-#  endif /* _MSC_VER */
-#endif	 /* NATIVE_WIN32 */
-
-
-/* GLib Thread support
- */
-typedef struct _GMutex		GMutex;
-typedef struct _GCond		GCond;
-typedef struct _GPrivate	GPrivate;
-typedef struct _GStaticPrivate	GStaticPrivate;
-typedef struct _GThreadFunctions GThreadFunctions;
-struct _GThreadFunctions
-{
-  GMutex*  (*mutex_new)       (void);
-  void     (*mutex_lock)      (GMutex		*mutex);
-  gboolean (*mutex_trylock)   (GMutex		*mutex);
-  void     (*mutex_unlock)    (GMutex		*mutex);
-  void     (*mutex_free)      (GMutex		*mutex);
-  GCond*   (*cond_new)        (void);
-  void     (*cond_signal)     (GCond		*cond);
-  void     (*cond_broadcast)  (GCond		*cond);
-  void     (*cond_wait)       (GCond		*cond,
-			       GMutex		*mutex);
-  gboolean (*cond_timed_wait) (GCond		*cond,
-			       GMutex		*mutex, 
-			       GTimeVal 	*end_time);
-  void      (*cond_free)      (GCond		*cond);
-  GPrivate* (*private_new)    (GDestroyNotify	 destructor);
-  gpointer  (*private_get)    (GPrivate		*private_key);
-  void      (*private_set)    (GPrivate		*private_key,
-			       gpointer		 data);
-};
-
-GUTILS_C_VAR GThreadFunctions	g_thread_functions_for_glib_use;
-GUTILS_C_VAR gboolean		g_thread_use_default_impl;
-GUTILS_C_VAR gboolean		g_threads_got_initialized;
-
-/* initializes the mutex/cond/private implementation for glib, might
- * only be called once, and must not be called directly or indirectly
- * from another glib-function, e.g. as a callback.
- */
-void   g_thread_init   (GThreadFunctions       *vtable);
-
-/* internal function for fallback static mutex implementation */
-GMutex*	g_static_mutex_get_mutex_impl	(GMutex	**mutex);
-
-/* shorthands for conditional and unconditional function calls */
-#define G_THREAD_UF(name, arglist) \
-    (*g_thread_functions_for_glib_use . name) arglist
-#define G_THREAD_CF(name, fail, arg) \
-    (g_thread_supported () ? G_THREAD_UF (name, arg) : (fail))
-/* keep in mind, all those mutexes and static mutexes are not 
- * recursive in general, don't rely on that
- */
-#define	g_thread_supported()	(g_threads_got_initialized)
-#define g_mutex_new()            G_THREAD_UF (mutex_new,      ())
-#define g_mutex_lock(mutex)      G_THREAD_CF (mutex_lock,     (void)0, (mutex))
-#define g_mutex_trylock(mutex)   G_THREAD_CF (mutex_trylock,  TRUE,    (mutex))
-#define g_mutex_unlock(mutex)    G_THREAD_CF (mutex_unlock,   (void)0, (mutex))
-#define g_mutex_free(mutex)      G_THREAD_CF (mutex_free,     (void)0, (mutex))
-#define g_cond_new()             G_THREAD_UF (cond_new,       ())
-#define g_cond_signal(cond)      G_THREAD_CF (cond_signal,    (void)0, (cond))
-#define g_cond_broadcast(cond)   G_THREAD_CF (cond_broadcast, (void)0, (cond))
-#define g_cond_wait(cond, mutex) G_THREAD_CF (cond_wait,      (void)0, (cond, \
-                                                                        mutex))
-#define g_cond_free(cond)        G_THREAD_CF (cond_free,      (void)0, (cond))
-#define g_cond_timed_wait(cond, mutex, abs_time) G_THREAD_CF (cond_timed_wait, \
-                                                              TRUE, \
-                                                              (cond, mutex, \
-							       abs_time))
-#define g_private_new(destructor)	  G_THREAD_UF (private_new, (destructor))
-#define g_private_get(private_key)	  G_THREAD_CF (private_get, \
-                                                       ((gpointer)private_key), \
-                                                       (private_key))
-#define g_private_set(private_key, value) G_THREAD_CF (private_set, \
-                                                       (void) (private_key = \
-                                                        (GPrivate*) (value)), \
-                                                       (private_key, value))
-/* GStaticMutexes can be statically initialized with the value
- * G_STATIC_MUTEX_INIT, and then they can directly be used, that is
- * much easier, than having to explicitly allocate the mutex before
- * use
- */
-#define g_static_mutex_lock(mutex) \
-    g_mutex_lock (g_static_mutex_get_mutex (mutex))
-#define g_static_mutex_trylock(mutex) \
-    g_mutex_trylock (g_static_mutex_get_mutex (mutex))
-#define g_static_mutex_unlock(mutex) \
-    g_mutex_unlock (g_static_mutex_get_mutex (mutex)) 
-struct _GStaticPrivate
-{
-  guint index;
-};
-#define G_STATIC_PRIVATE_INIT { 0 }
-gpointer g_static_private_get (GStaticPrivate	*private_key);
-void     g_static_private_set (GStaticPrivate	*private_key, 
-			       gpointer        	 data,
-			       GDestroyNotify    notify);
-
-/* these are some convenience macros that expand to nothing if GLib
- * was configured with --disable-threads. for using StaticMutexes,
- * you define them with G_LOCK_DEFINE_STATIC (name) or G_LOCK_DEFINE (name)
- * if you need to export the mutex. With G_LOCK_EXTERN (name) you can
- * declare such an globally defined lock. name is a unique identifier
- * for the protected varibale or code portion. locking, testing and
- * unlocking of such mutexes can be done with G_LOCK(), G_UNLOCK() and
- * G_TRYLOCK() respectively.  
- */
-extern void glib_dummy_decl (void);
-#define G_LOCK_NAME(name)		(g__ ## name ## _lock)
-#ifdef	G_THREADS_ENABLED
-#  define G_LOCK_DEFINE_STATIC(name)	static G_LOCK_DEFINE (name)
-#  define G_LOCK_DEFINE(name)		\
-    GStaticMutex G_LOCK_NAME (name) = G_STATIC_MUTEX_INIT 
-#  define G_LOCK_EXTERN(name)		extern GStaticMutex G_LOCK_NAME (name)
-
-#  ifdef G_DEBUG_LOCKS
-#    define G_LOCK(name)		G_STMT_START{		  \
-        g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,			  \
-	       "file %s: line %d (%s): locking: %s ",	          \
-	       __FILE__,	__LINE__, G_GNUC_PRETTY_FUNCTION, \
-               #name);                                            \
-        g_static_mutex_lock (&G_LOCK_NAME (name));                \
-     }G_STMT_END
-#    define G_UNLOCK(name)		G_STMT_START{		  \
-        g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,			  \
-	       "file %s: line %d (%s): unlocking: %s ",	          \
-	       __FILE__,	__LINE__, G_GNUC_PRETTY_FUNCTION, \
-               #name);                                            \
-       g_static_mutex_unlock (&G_LOCK_NAME (name));               \
-     }G_STMT_END
-#    define G_TRYLOCK(name)		G_STMT_START{		  \
-        g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,			  \
-	       "file %s: line %d (%s): try locking: %s ",         \
-	       __FILE__,	__LINE__, G_GNUC_PRETTY_FUNCTION, \
-               #name);                                            \
-     }G_STMT_END,	g_static_mutex_trylock (&G_LOCK_NAME (name))
-#  else	 /* !G_DEBUG_LOCKS */
-#    define G_LOCK(name) g_static_mutex_lock	   (&G_LOCK_NAME (name)) 
-#    define G_UNLOCK(name) g_static_mutex_unlock   (&G_LOCK_NAME (name))
-#    define G_TRYLOCK(name) g_static_mutex_trylock (&G_LOCK_NAME (name))
-#  endif /* !G_DEBUG_LOCKS */
-#else	/* !G_THREADS_ENABLED */
-#  define G_LOCK_DEFINE_STATIC(name)	extern void glib_dummy_decl (void)
-#  define G_LOCK_DEFINE(name)		extern void glib_dummy_decl (void)
-#  define G_LOCK_EXTERN(name)		extern void glib_dummy_decl (void)
-#  define G_LOCK(name)
-#  define G_UNLOCK(name)
-#  define G_TRYLOCK(name)		(FALSE)
-#endif	/* !G_THREADS_ENABLED */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __G_LIB_H__ */
diff --git a/glib/glib.m4 b/glib/glib.m4
deleted file mode 100644
index b8094bb..0000000
--- a/glib/glib.m4
+++ /dev/null
@@ -1,196 +0,0 @@
-# Configure paths for GLIB
-# Owen Taylor     97-11-3
-
-dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
-dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
-dnl gthread is specified in MODULES, pass to glib-config
-dnl
-AC_DEFUN(AM_PATH_GLIB,
-[dnl 
-dnl Get the cflags and libraries from the glib-config script
-dnl
-AC_ARG_WITH(glib-prefix,[  --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)],
-            glib_config_prefix="$withval", glib_config_prefix="")
-AC_ARG_WITH(glib-exec-prefix,[  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
-            glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
-AC_ARG_ENABLE(glibtest, [  --disable-glibtest       Do not try to compile and run a test GLIB program],
-		    , enable_glibtest=yes)
-
-  if test x$glib_config_exec_prefix != x ; then
-     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
-     if test x${GLIB_CONFIG+set} != xset ; then
-        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
-     fi
-  fi
-  if test x$glib_config_prefix != x ; then
-     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
-     if test x${GLIB_CONFIG+set} != xset ; then
-        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
-     fi
-  fi
-
-  for module in . $4
-  do
-      case "$module" in
-         gmodule) 
-             glib_config_args="$glib_config_args gmodule"
-         ;;
-         gthread) 
-             glib_config_args="$glib_config_args gthread"
-         ;;
-      esac
-  done
-
-  AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
-  min_glib_version=ifelse([$1], ,0.99.7,$1)
-  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
-  no_glib=""
-  if test "$GLIB_CONFIG" = "no" ; then
-    no_glib=yes
-  else
-    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
-    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
-    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-    if test "x$enable_glibtest" = "xyes" ; then
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $GLIB_CFLAGS"
-      LIBS="$GLIB_LIBS $LIBS"
-dnl
-dnl Now check if the installed GLIB is sufficiently new. (Also sanity
-dnl checks the results of glib-config to some extent
-dnl
-      rm -f conf.glibtest
-      AC_TRY_RUN([
-#include <glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int 
-main ()
-{
-  int major, minor, micro;
-  char *tmp_version;
-
-  system ("touch conf.glibtest");
-
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_glib_version");
-  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_glib_version");
-     exit(1);
-   }
-
-  if ((glib_major_version != $glib_config_major_version) ||
-      (glib_minor_version != $glib_config_minor_version) ||
-      (glib_micro_version != $glib_config_micro_version))
-    {
-      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
-             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
-             glib_major_version, glib_minor_version, glib_micro_version);
-      printf ("*** was found! If glib-config was correct, then it is best\n");
-      printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
-      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
-      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
-      printf("*** required on your system.\n");
-      printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
-      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
-      printf("*** before re-running configure\n");
-    } 
-  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
-	   (glib_minor_version != GLIB_MINOR_VERSION) ||
-           (glib_micro_version != GLIB_MICRO_VERSION))
-    {
-      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
-	     GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
-      printf("*** library (version %d.%d.%d)\n",
-	     glib_major_version, glib_minor_version, glib_micro_version);
-    }
-  else
-    {
-      if ((glib_major_version > major) ||
-        ((glib_major_version == major) && (glib_minor_version > minor)) ||
-        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
-      {
-        return 0;
-       }
-     else
-      {
-        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
-               glib_major_version, glib_minor_version, glib_micro_version);
-        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
-	       major, minor, micro);
-        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
-        printf("***\n");
-        printf("*** If you have already installed a sufficiently new version, this error\n");
-        printf("*** probably means that the wrong copy of the glib-config shell script is\n");
-        printf("*** being found. The easiest way to fix this is to remove the old version\n");
-        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
-        printf("*** correct copy of glib-config. (In this case, you will have to\n");
-        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
-        printf("*** so that the correct libraries are found at run-time))\n");
-      }
-    }
-  return 1;
-}
-],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-     fi
-  fi
-  if test "x$no_glib" = x ; then
-     AC_MSG_RESULT(yes)
-     ifelse([$2], , :, [$2])     
-  else
-     AC_MSG_RESULT(no)
-     if test "$GLIB_CONFIG" = "no" ; then
-       echo "*** The glib-config script installed by GLIB could not be found"
-       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
-       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
-       echo "*** full path to glib-config."
-     else
-       if test -f conf.glibtest ; then
-        :
-       else
-          echo "*** Could not run GLIB test program, checking why..."
-          CFLAGS="$CFLAGS $GLIB_CFLAGS"
-          LIBS="$LIBS $GLIB_LIBS"
-          AC_TRY_LINK([
-#include <glib.h>
-#include <stdio.h>
-],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
-        [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
-          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
-          echo "***"
-          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
-          echo "*** came with the system with the command"
-          echo "***"
-          echo "***    rpm --erase --nodeps gtk gtk-devel" ],
-        [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
-          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
-          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-       fi
-     fi
-     GLIB_CFLAGS=""
-     GLIB_LIBS=""
-     ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(GLIB_CFLAGS)
-  AC_SUBST(GLIB_LIBS)
-  rm -f conf.glibtest
-])
diff --git a/glib/glib.spec b/glib/glib.spec
deleted file mode 100644
index de08fb1..0000000
--- a/glib/glib.spec
+++ /dev/null
@@ -1,91 +0,0 @@
-# Note that this is NOT a relocatable package
-%define ver      1.2.8
-%define  RELEASE 1
-%define  rel     %{?CUSTOM_RELEASE} %{!?CUSTOM_RELEASE:%RELEASE}
-%define prefix   /usr
-
-Summary: Handy library of utility functions
-Name: glib
-Version: %ver
-Release: %rel
-Copyright: LGPL
-Group: Libraries
-Source: ftp://ftp.gimp.org/pub/gtk/v1.1/glib-%{ver}.tar.gz
-BuildRoot: /var/tmp/glib-%{PACKAGE_VERSION}-root
-URL: http://www.gtk.org
-Docdir: %{prefix}/doc
-
-%description
-Handy library of utility functions.  Development libs and headers
-are in glib-devel.
-
-%package devel
-Summary: GIMP Toolkit and GIMP Drawing Kit support library
-Group: X11/Libraries
-
-%description devel
-Static libraries and header files for the support library for the GIMP's X
-libraries, which are available as public libraries.  GLIB includes generally
-useful data structures.
-
-
-%changelog
-
-* Thu Feb 11 1999 Michael Fulbright <drmike@redhat.com>
-- added libgthread to file list
-
-* Fri Feb 05 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.15
-
-* Wed Feb 03 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.14
-
-* Mon Jan 18 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.13
-
-* Wed Jan 06 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.12
-
-* Wed Dec 16 1998 Michael Fulbright <drmike@redhat.com>
-- updated in preparation for the GNOME freeze
-
-* Mon Apr 13 1998 Marc Ewing <marc@redhat.com>
-- Split out glib package
-
-%prep
-%setup
-
-%build
-CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-make prefix=$RPM_BUILD_ROOT%{prefix} install
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%files
-%defattr(-, root, root)
-
-%doc AUTHORS COPYING ChangeLog NEWS README
-%{prefix}/lib/libglib-1.2.so.*
-%{prefix}/lib/libgthread-1.2.so.*
-%{prefix}/lib/libgmodule-1.2.so.*
-
-%files devel
-%defattr(-, root, root)
-
-%{prefix}/lib/lib*.so
-%{prefix}/lib/*a
-%{prefix}/lib/glib
-%{prefix}/include/*
-%{prefix}/man/man1/
-%{prefix}/share/aclocal/*
-%{prefix}/bin/*
diff --git a/glib/glib.spec.in b/glib/glib.spec.in
deleted file mode 100644
index 0649c1b..0000000
--- a/glib/glib.spec.in
+++ /dev/null
@@ -1,91 +0,0 @@
-# Note that this is NOT a relocatable package
-%define ver      @VERSION@
-%define  RELEASE 1
-%define  rel     %{?CUSTOM_RELEASE} %{!?CUSTOM_RELEASE:%RELEASE}
-%define prefix   /usr
-
-Summary: Handy library of utility functions
-Name: glib
-Version: %ver
-Release: %rel
-Copyright: LGPL
-Group: Libraries
-Source: ftp://ftp.gimp.org/pub/gtk/v1.1/glib-%{ver}.tar.gz
-BuildRoot: /var/tmp/glib-%{PACKAGE_VERSION}-root
-URL: http://www.gtk.org
-Docdir: %{prefix}/doc
-
-%description
-Handy library of utility functions.  Development libs and headers
-are in glib-devel.
-
-%package devel
-Summary: GIMP Toolkit and GIMP Drawing Kit support library
-Group: X11/Libraries
-
-%description devel
-Static libraries and header files for the support library for the GIMP's X
-libraries, which are available as public libraries.  GLIB includes generally
-useful data structures.
-
-
-%changelog
-
-* Thu Feb 11 1999 Michael Fulbright <drmike@redhat.com>
-- added libgthread to file list
-
-* Fri Feb 05 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.15
-
-* Wed Feb 03 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.14
-
-* Mon Jan 18 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.13
-
-* Wed Jan 06 1999 Michael Fulbright <drmike@redhat.com>
-- version 1.1.12
-
-* Wed Dec 16 1998 Michael Fulbright <drmike@redhat.com>
-- updated in preparation for the GNOME freeze
-
-* Mon Apr 13 1998 Marc Ewing <marc@redhat.com>
-- Split out glib package
-
-%prep
-%setup
-
-%build
-CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-make prefix=$RPM_BUILD_ROOT%{prefix} install
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%files
-%defattr(-, root, root)
-
-%doc AUTHORS COPYING ChangeLog NEWS README
-%{prefix}/lib/libglib-1.2.so.*
-%{prefix}/lib/libgthread-1.2.so.*
-%{prefix}/lib/libgmodule-1.2.so.*
-
-%files devel
-%defattr(-, root, root)
-
-%{prefix}/lib/lib*.so
-%{prefix}/lib/*a
-%{prefix}/lib/glib
-%{prefix}/include/*
-%{prefix}/man/man1/
-%{prefix}/share/aclocal/*
-%{prefix}/bin/*
diff --git a/glib/glibconfig.h.win32 b/glib/glibconfig.h.win32
deleted file mode 100644
index 1c2588d..0000000
--- a/glib/glibconfig.h.win32
+++ /dev/null
@@ -1,174 +0,0 @@
-/* glibconfig.h.win32 */
-/* Handcrafted for Microsoft C. */
-
-#ifndef GLIBCONFIG_H
-#define GLIBCONFIG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#ifdef _MSC_VER
-/* Make MSVC more pedantic, this is a recommended pragma list
- * from _Win32_Programming_ by Rector and Newcomer.
- */
-#pragma warning(error:4002)
-#pragma warning(error:4003)
-#pragma warning(1:4010)
-#pragma warning(error:4013)
-#pragma warning(1:4016)
-#pragma warning(error:4020)
-#pragma warning(error:4021)
-#pragma warning(error:4027)
-#pragma warning(error:4029)
-#pragma warning(error:4033)
-#pragma warning(error:4035)
-#pragma warning(error:4045)
-#pragma warning(error:4047)
-#pragma warning(error:4049)
-#pragma warning(error:4053)
-#pragma warning(error:4071)
-#pragma warning(disable:4101)
-#pragma warning(error:4150)
-
-#pragma warning(disable:4244)	/* No possible loss of data warnings */
-#pragma warning(disable:4305)   /* No truncation from int to char warnings */
-#endif /* _MSC_VER */
-
-#include <limits.h>
-#include <float.h>
-
-#define G_MINFLOAT	FLT_MIN
-#define G_MAXFLOAT	FLT_MAX
-#define G_MINDOUBLE	DBL_MIN
-#define G_MAXDOUBLE	DBL_MAX
-#define G_MINSHORT	SHRT_MIN
-#define G_MAXSHORT	SHRT_MAX
-#define G_MININT	INT_MIN
-#define G_MAXINT	INT_MAX
-#define G_MINLONG	LONG_MIN
-#define G_MAXLONG	LONG_MAX
-
-typedef signed char gint8;
-typedef unsigned char guint8;
-typedef signed short gint16;
-typedef unsigned short guint16;
-typedef signed int gint32;
-typedef unsigned int guint32;
-
-#define G_HAVE_GINT64 1
-
-typedef __int64 gint64;
-typedef unsigned __int64 guint64;
-
-#define G_GINT64_CONSTANT(val)	(val##i64)
-
-#define GPOINTER_TO_INT(p)	((gint)(p))
-#define GPOINTER_TO_UINT(p)	((guint)(p))
-
-#define GINT_TO_POINTER(i)	((gpointer)(i))
-#define GUINT_TO_POINTER(u)	((gpointer)(u))
-
-#define g_ATEXIT(proc)	(atexit (proc))
-
-#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
-
-#define G_HAVE_ALLOCA 1
-#define alloca _alloca
-
-#define GLIB_MAJOR_VERSION 1
-#define GLIB_MINOR_VERSION 2
-#define GLIB_MICRO_VERSION 8
-
-#ifdef	__cplusplus
-#define	G_HAVE_INLINE	1
-#else	/* !__cplusplus */
-#define G_HAVE___INLINE 1
-#endif
-
-#define G_THREADS_ENABLED
-/*
- * The following program can be used to determine the magic values below:
- * #include <stdio.h>
- * #include <pthread.h>
- * main(int argc, char **argv)
- * {
- *   int i;
- *   pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
- *   printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
- *   printf ("PTHREAD_MUTEX_INITIALIZER = ");
- *   for (i = 0; i < sizeof (pthread_mutex_t); i++)
- *     printf ("%u, ", ((unsigned char *) &m)[i]);
- *   printf ("\n");
- *   exit(0);
- * }
- */
-
-#define G_THREADS_IMPL_POSIX
-typedef struct _GStaticMutex GStaticMutex;
-struct _GStaticMutex
-{
-  struct _GMutex *runtime_mutex;
-  union {
-    /* The size of the pad array should be sizeof (pthread_mutext_t) */
-    /* This value corresponds to the 1999-04-07 version of pthreads-win32 */
-    char   pad[4];
-    double dummy_double;
-    void  *dummy_pointer;
-    long   dummy_long;
-  } aligned_pad_u;
-};
-/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
-#define	G_STATIC_MUTEX_INIT	{ NULL, { { 255, 255, 255, 255 } } }
-#define	g_static_mutex_get_mutex(mutex) \
-  (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
-   g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
-
-#define G_BYTE_ORDER G_LITTLE_ENDIAN
-
-#define GINT16_TO_LE(val)	((gint16) (val))
-#define GUINT16_TO_LE(val)	((guint16) (val))
-#define GINT16_TO_BE(val)	((gint16) GUINT16_SWAP_LE_BE (val))
-#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
-
-#define GINT32_TO_LE(val)	((gint32) (val))
-#define GUINT32_TO_LE(val)	((guint32) (val))
-#define GINT32_TO_BE(val)	((gint32) GUINT32_SWAP_LE_BE (val))
-#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
-
-#define GINT64_TO_LE(val)	((gint64) (val))
-#define GUINT64_TO_LE(val)	((guint64) (val))
-#define GINT64_TO_BE(val)	((gint64) GUINT64_SWAP_LE_BE (val))
-#define GUINT64_TO_BE(val)	(GUINT64_SWAP_LE_BE (val))
-
-#define GLONG_TO_LE(val)	((glong) GINT32_TO_LE (val))
-#define GULONG_TO_LE(val)	((gulong) GUINT32_TO_LE (val))
-#define GLONG_TO_BE(val)	((glong) GINT32_TO_BE (val))
-#define GULONG_TO_BE(val)	((gulong) GUINT32_TO_BE (val))
-
-#define GINT_TO_LE(val)		((gint) GINT32_TO_LE (val))
-#define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
-#define GINT_TO_BE(val)		((gint) GINT32_TO_BE (val))
-#define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
-
-#define GLIB_SYSDEF_POLLIN	= 1
-#define GLIB_SYSDEF_POLLOUT	= 4
-#define GLIB_SYSDEF_POLLPRI	= 2
-#define GLIB_SYSDEF_POLLERR	= 8
-#define GLIB_SYSDEF_POLLHUP	= 16
-#define GLIB_SYSDEF_POLLNVAL	= 32
-
-#define G_HAVE_WCHAR_H 1
-#define G_HAVE_WCTYPE_H 1
-
-/* Define if this is Win32, possibly using the Cygwin emulation layer. */
-#define WIN32 1
-
-/* Define if this is Win32 without Cygwin.  */
-#define NATIVE_WIN32 1
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GLIBCONFIG_H */
diff --git a/glib/glibconfig.h.win32.in b/glib/glibconfig.h.win32.in
deleted file mode 100644
index 73fae20..0000000
--- a/glib/glibconfig.h.win32.in
+++ /dev/null
@@ -1,174 +0,0 @@
-/* glibconfig.h.win32 */
-/* Handcrafted for Microsoft C. */
-
-#ifndef GLIBCONFIG_H
-#define GLIBCONFIG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#ifdef _MSC_VER
-/* Make MSVC more pedantic, this is a recommended pragma list
- * from _Win32_Programming_ by Rector and Newcomer.
- */
-#pragma warning(error:4002)
-#pragma warning(error:4003)
-#pragma warning(1:4010)
-#pragma warning(error:4013)
-#pragma warning(1:4016)
-#pragma warning(error:4020)
-#pragma warning(error:4021)
-#pragma warning(error:4027)
-#pragma warning(error:4029)
-#pragma warning(error:4033)
-#pragma warning(error:4035)
-#pragma warning(error:4045)
-#pragma warning(error:4047)
-#pragma warning(error:4049)
-#pragma warning(error:4053)
-#pragma warning(error:4071)
-#pragma warning(disable:4101)
-#pragma warning(error:4150)
-
-#pragma warning(disable:4244)	/* No possible loss of data warnings */
-#pragma warning(disable:4305)   /* No truncation from int to char warnings */
-#endif /* _MSC_VER */
-
-#include <limits.h>
-#include <float.h>
-
-#define G_MINFLOAT	FLT_MIN
-#define G_MAXFLOAT	FLT_MAX
-#define G_MINDOUBLE	DBL_MIN
-#define G_MAXDOUBLE	DBL_MAX
-#define G_MINSHORT	SHRT_MIN
-#define G_MAXSHORT	SHRT_MAX
-#define G_MININT	INT_MIN
-#define G_MAXINT	INT_MAX
-#define G_MINLONG	LONG_MIN
-#define G_MAXLONG	LONG_MAX
-
-typedef signed char gint8;
-typedef unsigned char guint8;
-typedef signed short gint16;
-typedef unsigned short guint16;
-typedef signed int gint32;
-typedef unsigned int guint32;
-
-#define G_HAVE_GINT64 1
-
-typedef __int64 gint64;
-typedef unsigned __int64 guint64;
-
-#define G_GINT64_CONSTANT(val)	(val##i64)
-
-#define GPOINTER_TO_INT(p)	((gint)(p))
-#define GPOINTER_TO_UINT(p)	((guint)(p))
-
-#define GINT_TO_POINTER(i)	((gpointer)(i))
-#define GUINT_TO_POINTER(u)	((gpointer)(u))
-
-#define g_ATEXIT(proc)	(atexit (proc))
-
-#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
-
-#define G_HAVE_ALLOCA 1
-#define alloca _alloca
-
-#define GLIB_MAJOR_VERSION @GLIB_MAJOR_VERSION@
-#define GLIB_MINOR_VERSION @GLIB_MINOR_VERSION@
-#define GLIB_MICRO_VERSION @GLIB_MICRO_VERSION@
-
-#ifdef	__cplusplus
-#define	G_HAVE_INLINE	1
-#else	/* !__cplusplus */
-#define G_HAVE___INLINE 1
-#endif
-
-#define G_THREADS_ENABLED
-/*
- * The following program can be used to determine the magic values below:
- * #include <stdio.h>
- * #include <pthread.h>
- * main(int argc, char **argv)
- * {
- *   int i;
- *   pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
- *   printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
- *   printf ("PTHREAD_MUTEX_INITIALIZER = ");
- *   for (i = 0; i < sizeof (pthread_mutex_t); i++)
- *     printf ("%u, ", ((unsigned char *) &m)[i]);
- *   printf ("\n");
- *   exit(0);
- * }
- */
-
-#define G_THREADS_IMPL_POSIX
-typedef struct _GStaticMutex GStaticMutex;
-struct _GStaticMutex
-{
-  struct _GMutex *runtime_mutex;
-  union {
-    /* The size of the pad array should be sizeof (pthread_mutext_t) */
-    /* This value corresponds to the 1999-04-07 version of pthreads-win32 */
-    char   pad[4];
-    double dummy_double;
-    void  *dummy_pointer;
-    long   dummy_long;
-  } aligned_pad_u;
-};
-/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
-#define	G_STATIC_MUTEX_INIT	{ NULL, { { 255, 255, 255, 255 } } }
-#define	g_static_mutex_get_mutex(mutex) \
-  (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
-   g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
-
-#define G_BYTE_ORDER G_LITTLE_ENDIAN
-
-#define GINT16_TO_LE(val)	((gint16) (val))
-#define GUINT16_TO_LE(val)	((guint16) (val))
-#define GINT16_TO_BE(val)	((gint16) GUINT16_SWAP_LE_BE (val))
-#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
-
-#define GINT32_TO_LE(val)	((gint32) (val))
-#define GUINT32_TO_LE(val)	((guint32) (val))
-#define GINT32_TO_BE(val)	((gint32) GUINT32_SWAP_LE_BE (val))
-#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
-
-#define GINT64_TO_LE(val)	((gint64) (val))
-#define GUINT64_TO_LE(val)	((guint64) (val))
-#define GINT64_TO_BE(val)	((gint64) GUINT64_SWAP_LE_BE (val))
-#define GUINT64_TO_BE(val)	(GUINT64_SWAP_LE_BE (val))
-
-#define GLONG_TO_LE(val)	((glong) GINT32_TO_LE (val))
-#define GULONG_TO_LE(val)	((gulong) GUINT32_TO_LE (val))
-#define GLONG_TO_BE(val)	((glong) GINT32_TO_BE (val))
-#define GULONG_TO_BE(val)	((gulong) GUINT32_TO_BE (val))
-
-#define GINT_TO_LE(val)		((gint) GINT32_TO_LE (val))
-#define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
-#define GINT_TO_BE(val)		((gint) GINT32_TO_BE (val))
-#define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
-
-#define GLIB_SYSDEF_POLLIN	= 1
-#define GLIB_SYSDEF_POLLOUT	= 4
-#define GLIB_SYSDEF_POLLPRI	= 2
-#define GLIB_SYSDEF_POLLERR	= 8
-#define GLIB_SYSDEF_POLLHUP	= 16
-#define GLIB_SYSDEF_POLLNVAL	= 32
-
-#define G_HAVE_WCHAR_H 1
-#define G_HAVE_WCTYPE_H 1
-
-/* Define if this is Win32, possibly using the Cygwin emulation layer. */
-#define WIN32 1
-
-/* Define if this is Win32 without Cygwin.  */
-#define NATIVE_WIN32 1
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GLIBCONFIG_H */
diff --git a/glib/glist.c b/glib/glist.c
deleted file mode 100644
index ca37b8d..0000000
--- a/glib/glist.c
+++ /dev/null
@@ -1,670 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-
-struct _GAllocator /* from gmem.c */
-{
-  gchar         *name;
-  guint16        n_preallocs;
-  guint          is_unused : 1;
-  guint          type : 4;
-  GAllocator    *last;
-  GMemChunk     *mem_chunk;
-  GList		*free_lists; /* implementation specific */
-};
-
-static GAllocator	*current_allocator = NULL;
-G_LOCK_DEFINE_STATIC (current_allocator);
-
-/* HOLDS: current_allocator_lock */
-static void
-g_list_validate_allocator (GAllocator *allocator)
-{
-  g_return_if_fail (allocator != NULL);
-  g_return_if_fail (allocator->is_unused == TRUE);
-
-  if (allocator->type != G_ALLOCATOR_LIST)
-    {
-      allocator->type = G_ALLOCATOR_LIST;
-      if (allocator->mem_chunk)
-	{
-	  g_mem_chunk_destroy (allocator->mem_chunk);
-	  allocator->mem_chunk = NULL;
-	}
-    }
-
-  if (!allocator->mem_chunk)
-    {
-      allocator->mem_chunk = g_mem_chunk_new (allocator->name,
-					      sizeof (GList),
-					      sizeof (GList) * allocator->n_preallocs,
-					      G_ALLOC_ONLY);
-      allocator->free_lists = NULL;
-    }
-
-  allocator->is_unused = FALSE;
-}
-
-void
-g_list_push_allocator(GAllocator *allocator)
-{
-  G_LOCK (current_allocator);
-  g_list_validate_allocator ( allocator );
-  allocator->last = current_allocator;
-  current_allocator = allocator;
-  G_UNLOCK (current_allocator);
-}
-
-void
-g_list_pop_allocator (void)
-{
-  G_LOCK (current_allocator);
-  if (current_allocator)
-    {
-      GAllocator *allocator;
-
-      allocator = current_allocator;
-      current_allocator = allocator->last;
-      allocator->last = NULL;
-      allocator->is_unused = TRUE;
-    }
-  G_UNLOCK (current_allocator);
-}
-
-GList*
-g_list_alloc (void)
-{
-  GList *list;
-
-  G_LOCK (current_allocator);
-  if (!current_allocator)
-    {
-      GAllocator *allocator = g_allocator_new ("GLib default GList allocator",
-					       128);
-      g_list_validate_allocator (allocator);
-      allocator->last = NULL;
-      current_allocator = allocator;
-    }
-  if (!current_allocator->free_lists)
-    {
-      list = g_chunk_new (GList, current_allocator->mem_chunk);
-      list->data = NULL;
-    }
-  else
-    {
-      if (current_allocator->free_lists->data)
-	{
-	  list = current_allocator->free_lists->data;
-	  current_allocator->free_lists->data = list->next;
-	  list->data = NULL;
-	}
-      else
-	{
-	  list = current_allocator->free_lists;
-	  current_allocator->free_lists = list->next;
-	}
-    }
-  G_UNLOCK (current_allocator);
-  list->next = NULL;
-  list->prev = NULL;
-  
-  return list;
-}
-
-void
-g_list_free (GList *list)
-{
-  if (list)
-    {
-      list->data = list->next;  
-      G_LOCK (current_allocator);
-      list->next = current_allocator->free_lists;
-      current_allocator->free_lists = list;
-      G_UNLOCK (current_allocator);
-    }
-}
-
-void
-g_list_free_1 (GList *list)
-{
-  if (list)
-    {
-      list->data = NULL;  
-      G_LOCK (current_allocator);
-      list->next = current_allocator->free_lists;
-      current_allocator->free_lists = list;
-      G_UNLOCK (current_allocator);
-    }
-}
-
-GList*
-g_list_append (GList	*list,
-	       gpointer	 data)
-{
-  GList *new_list;
-  GList *last;
-  
-  new_list = g_list_alloc ();
-  new_list->data = data;
-  
-  if (list)
-    {
-      last = g_list_last (list);
-      /* g_assert (last != NULL); */
-      last->next = new_list;
-      new_list->prev = last;
-
-      return list;
-    }
-  else
-    return new_list;
-}
-
-GList*
-g_list_prepend (GList	 *list,
-		gpointer  data)
-{
-  GList *new_list;
-  
-  new_list = g_list_alloc ();
-  new_list->data = data;
-  
-  if (list)
-    {
-      if (list->prev)
-	{
-	  list->prev->next = new_list;
-	  new_list->prev = list->prev;
-	}
-      list->prev = new_list;
-      new_list->next = list;
-    }
-  
-  return new_list;
-}
-
-GList*
-g_list_insert (GList	*list,
-	       gpointer	 data,
-	       gint	 position)
-{
-  GList *new_list;
-  GList *tmp_list;
-  
-  if (position < 0)
-    return g_list_append (list, data);
-  else if (position == 0)
-    return g_list_prepend (list, data);
-  
-  tmp_list = g_list_nth (list, position);
-  if (!tmp_list)
-    return g_list_append (list, data);
-  
-  new_list = g_list_alloc ();
-  new_list->data = data;
-  
-  if (tmp_list->prev)
-    {
-      tmp_list->prev->next = new_list;
-      new_list->prev = tmp_list->prev;
-    }
-  new_list->next = tmp_list;
-  tmp_list->prev = new_list;
-  
-  if (tmp_list == list)
-    return new_list;
-  else
-    return list;
-}
-
-GList *
-g_list_concat (GList *list1, GList *list2)
-{
-  GList *tmp_list;
-  
-  if (list2)
-    {
-      tmp_list = g_list_last (list1);
-      if (tmp_list)
-	tmp_list->next = list2;
-      else
-	list1 = list2;
-      list2->prev = tmp_list;
-    }
-  
-  return list1;
-}
-
-GList*
-g_list_remove (GList	*list,
-	       gpointer	 data)
-{
-  GList *tmp;
-  
-  tmp = list;
-  while (tmp)
-    {
-      if (tmp->data != data)
-	tmp = tmp->next;
-      else
-	{
-	  if (tmp->prev)
-	    tmp->prev->next = tmp->next;
-	  if (tmp->next)
-	    tmp->next->prev = tmp->prev;
-	  
-	  if (list == tmp)
-	    list = list->next;
-	  
-	  g_list_free_1 (tmp);
-	  
-	  break;
-	}
-    }
-  return list;
-}
-
-GList*
-g_list_remove_link (GList *list,
-		    GList *link)
-{
-  if (link)
-    {
-      if (link->prev)
-	link->prev->next = link->next;
-      if (link->next)
-	link->next->prev = link->prev;
-      
-      if (link == list)
-	list = list->next;
-      
-      link->next = NULL;
-      link->prev = NULL;
-    }
-  
-  return list;
-}
-
-GList*
-g_list_copy (GList *list)
-{
-  GList *new_list = NULL;
-
-  if (list)
-    {
-      GList *last;
-
-      new_list = g_list_alloc ();
-      new_list->data = list->data;
-      last = new_list;
-      list = list->next;
-      while (list)
-	{
-	  last->next = g_list_alloc ();
-	  last->next->prev = last;
-	  last = last->next;
-	  last->data = list->data;
-	  list = list->next;
-	}
-    }
-
-  return new_list;
-}
-
-GList*
-g_list_reverse (GList *list)
-{
-  GList *last;
-  
-  last = NULL;
-  while (list)
-    {
-      last = list;
-      list = last->next;
-      last->next = last->prev;
-      last->prev = list;
-    }
-  
-  return last;
-}
-
-GList*
-g_list_nth (GList *list,
-	    guint  n)
-{
-  while ((n-- > 0) && list)
-    list = list->next;
-  
-  return list;
-}
-
-gpointer
-g_list_nth_data (GList     *list,
-		 guint      n)
-{
-  while ((n-- > 0) && list)
-    list = list->next;
-  
-  return list ? list->data : NULL;
-}
-
-GList*
-g_list_find (GList    *list,
-	     gpointer  data)
-{
-  while (list)
-    {
-      if (list->data == data)
-	break;
-      list = list->next;
-    }
-  
-  return list;
-}
-
-GList*
-g_list_find_custom (GList       *list,
-		    gpointer     data,
-		    GCompareFunc func)
-{
-  g_return_val_if_fail (func != NULL, list);
-
-  while (list)
-    {
-      if (! func (list->data, data))
-	return list;
-      list = list->next;
-    }
-
-  return NULL;
-}
-
-
-gint
-g_list_position (GList *list,
-		 GList *link)
-{
-  gint i;
-
-  i = 0;
-  while (list)
-    {
-      if (list == link)
-	return i;
-      i++;
-      list = list->next;
-    }
-
-  return -1;
-}
-
-gint
-g_list_index (GList   *list,
-	      gpointer data)
-{
-  gint i;
-
-  i = 0;
-  while (list)
-    {
-      if (list->data == data)
-	return i;
-      i++;
-      list = list->next;
-    }
-
-  return -1;
-}
-
-GList*
-g_list_last (GList *list)
-{
-  if (list)
-    {
-      while (list->next)
-	list = list->next;
-    }
-  
-  return list;
-}
-
-GList*
-g_list_first (GList *list)
-{
-  if (list)
-    {
-      while (list->prev)
-	list = list->prev;
-    }
-  
-  return list;
-}
-
-guint
-g_list_length (GList *list)
-{
-  guint length;
-  
-  length = 0;
-  while (list)
-    {
-      length++;
-      list = list->next;
-    }
-  
-  return length;
-}
-
-void
-g_list_foreach (GList	 *list,
-		GFunc	  func,
-		gpointer  user_data)
-{
-  while (list)
-    {
-      (*func) (list->data, user_data);
-      list = list->next;
-    }
-}
-
-
-GList*
-g_list_insert_sorted (GList        *list,
-                      gpointer      data,
-                      GCompareFunc  func)
-{
-  GList *tmp_list = list;
-  GList *new_list;
-  gint cmp;
-
-  g_return_val_if_fail (func != NULL, list);
-  
-  if (!list) 
-    {
-      new_list = g_list_alloc();
-      new_list->data = data;
-      return new_list;
-    }
-  
-  cmp = (*func) (data, tmp_list->data);
-  
-  while ((tmp_list->next) && (cmp > 0))
-    {
-      tmp_list = tmp_list->next;
-      cmp = (*func) (data, tmp_list->data);
-    }
-
-  new_list = g_list_alloc();
-  new_list->data = data;
-
-  if ((!tmp_list->next) && (cmp > 0))
-    {
-      tmp_list->next = new_list;
-      new_list->prev = tmp_list;
-      return list;
-    }
-   
-  if (tmp_list->prev)
-    {
-      tmp_list->prev->next = new_list;
-      new_list->prev = tmp_list->prev;
-    }
-  new_list->next = tmp_list;
-  tmp_list->prev = new_list;
- 
-  if (tmp_list == list)
-    return new_list;
-  else
-    return list;
-}
-
-static GList *
-g_list_sort_merge (GList       *l1, 
-		   GList       *l2,
-		   GCompareFunc compare_func)
-{
-  GList list, *l, *lprev;
-
-  l = &list; 
-  lprev = NULL;
-
-  while (l1 && l2)
-    {
-      if (compare_func (l1->data, l2->data) < 0)
-        {
-	  l->next = l1;
-	  l = l->next;
-	  l->prev = lprev; 
-	  lprev = l;
-	  l1 = l1->next;
-        } 
-      else 
-	{
-	  l->next = l2;
-	  l = l->next;
-	  l->prev = lprev; 
-	  lprev = l;
-	  l2 = l2->next;
-        }
-    }
-  l->next = l1 ? l1 : l2;
-  l->next->prev = l;
-
-  return list.next;
-}
-
-GList* 
-g_list_sort (GList       *list,
-	     GCompareFunc compare_func)
-{
-  GList *l1, *l2;
-  
-  if (!list) 
-    return NULL;
-  if (!list->next) 
-    return list;
-  
-  l1 = list; 
-  l2 = list->next;
-
-  while ((l2 = l2->next) != NULL)
-    {
-      if ((l2 = l2->next) == NULL) 
-	break;
-      l1 = l1->next;
-    }
-  l2 = l1->next; 
-  l1->next = NULL; 
-
-  return g_list_sort_merge (g_list_sort (list, compare_func),
-			    g_list_sort (l2,   compare_func),
-			    compare_func);
-}
-
-GList* 
-g_list_sort2 (GList       *list,
-	      GCompareFunc compare_func)
-{
-  GSList *runs = NULL;
-  GList *tmp;
-
-  /* Degenerate case.  */
-  if (!list) return NULL;
-
-  /* Assume: list = [12,2,4,11,2,4,6,1,1,12].  */
-  for (tmp = list; tmp; )
-    {
-      GList *tmp2;
-      for (tmp2 = tmp;
-	   tmp2->next && compare_func (tmp2->data, tmp2->next->data) <= 0;
-	   tmp2 = tmp2->next)
-	/* Nothing */;
-      runs = g_slist_append (runs, tmp);
-      tmp = tmp2->next;
-      tmp2->next = NULL;
-    }
-  /* Now: runs = [[12],[2,4,11],[2,4,6],[1,1,12]].  */
-  
-  while (runs->next)
-    {
-      /* We have more than one run.  Merge pairwise.  */
-      GSList *dst, *src, *dstprev = NULL;
-      dst = src = runs;
-      while (src && src->next)
-	{
-	  dst->data = g_list_sort_merge (src->data,
-					 src->next->data,
-					 compare_func);
-	  dstprev = dst;
-	  dst = dst->next;
-	  src = src->next->next;
-	}
-
-      /* If number of runs was odd, just keep the last.  */
-      if (src)
-	{
-	  dst->data = src->data;
-	  dstprev = dst;
-	  dst = dst->next;
-	}
-
-      dstprev->next = NULL;
-      g_slist_free (dst);
-    }
-
-  /* After 1st loop: runs = [[2,4,11,12],[1,1,2,4,6,12]].  */
-  /* After 2nd loop: runs = [[1,1,2,2,4,4,6,11,12,12]].  */
-
-  list = runs->data;
-  g_slist_free (runs);
-  return list;
-}
diff --git a/glib/gmain.c b/glib/gmain.c
deleted file mode 100644
index e031a98..0000000
--- a/glib/gmain.c
+++ /dev/null
@@ -1,1390 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gmain.c: Main loop abstraction, timeouts, and idle functions
- * Copyright 1998 Owen Taylor
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "config.h"
-
-/* uncomment the next line to get poll() debugging info */
-/* #define G_MAIN_POLL_DEBUG */
-
-
-
-#include "glib.h"
-#include <sys/types.h>
-#include <time.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif /* HAVE_SYS_TIME_H */
-#ifdef GLIB_HAVE_SYS_POLL_H
-#  include <sys/poll.h>
-#  undef events	 /* AIX 4.1.5 & 4.3.2 define this for SVR3,4 compatibility */
-#  undef revents /* AIX 4.1.5 & 4.3.2 define this for SVR3,4 compatibility */
-#endif /* GLIB_HAVE_SYS_POLL_H */
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#include <errno.h>
-
-#ifdef NATIVE_WIN32
-#define STRICT
-#include <windows.h>
-#endif /* NATIVE_WIN32 */
-
-#ifdef _MSC_VER
-#include <fcntl.h>
-#include <io.h>
-#endif /* _MSC_VER */
-
-/* Types */
-
-typedef struct _GTimeoutData GTimeoutData;
-typedef struct _GSource GSource;
-typedef struct _GPollRec GPollRec;
-
-typedef enum
-{
-  G_SOURCE_READY = 1 << G_HOOK_FLAG_USER_SHIFT,
-  G_SOURCE_CAN_RECURSE = 1 << (G_HOOK_FLAG_USER_SHIFT + 1)
-} GSourceFlags;
-
-struct _GSource
-{
-  GHook hook;
-  gint priority;
-  gpointer source_data;
-};
-
-struct _GMainLoop
-{
-  gboolean is_running;
-};
-
-struct _GTimeoutData
-{
-  GTimeVal    expiration;
-  gint        interval;
-  GSourceFunc callback;
-};
-
-struct _GPollRec
-{
-  gint priority;
-  GPollFD *fd;
-  GPollRec *next;
-};
-
-/* Forward declarations */
-
-static gint     g_source_compare          (GHook      *a,
-					   GHook      *b);
-static void     g_source_destroy_func     (GHookList  *hook_list,
-					   GHook      *hook);
-static void     g_main_poll               (gint      timeout,
-					   gboolean  use_priority, 
-					   gint      priority);
-static void     g_main_add_poll_unlocked  (gint      priority,
-					   GPollFD  *fd);
-static void     g_main_wakeup             (void);
-
-static gboolean g_timeout_prepare      (gpointer  source_data, 
-					GTimeVal *current_time,
-					gint     *timeout,
-					gpointer  user_data);
-static gboolean g_timeout_check        (gpointer  source_data,
-					GTimeVal *current_time,
-					gpointer  user_data);
-static gboolean g_timeout_dispatch     (gpointer  source_data,
-					GTimeVal *dispatch_time,
-					gpointer  user_data);
-static gboolean g_idle_prepare         (gpointer  source_data, 
-					GTimeVal *current_time,
-					gint     *timeout,
-					gpointer  user_data);
-static gboolean g_idle_check           (gpointer  source_data,
-					GTimeVal *current_time,
-					gpointer  user_data);
-static gboolean g_idle_dispatch        (gpointer  source_data,
-					GTimeVal *dispatch_time,
-					gpointer  user_data);
-
-/* Data */
-
-static GSList *pending_dispatches = NULL;
-static GHookList source_list = { 0 };
-static gint in_check_or_prepare = 0;
-
-/* The following lock is used for both the list of sources
- * and the list of poll records
- */
-G_LOCK_DEFINE_STATIC (main_loop);
-
-static GSourceFuncs timeout_funcs =
-{
-  g_timeout_prepare,
-  g_timeout_check,
-  g_timeout_dispatch,
-  g_free,
-};
-
-static GSourceFuncs idle_funcs =
-{
-  g_idle_prepare,
-  g_idle_check,
-  g_idle_dispatch,
-  NULL,
-};
-
-static GPollRec *poll_records = NULL;
-static GPollRec *poll_free_list = NULL;
-static GMemChunk *poll_chunk;
-static guint n_poll_records = 0;
-
-#ifdef G_THREADS_ENABLED
-#ifndef NATIVE_WIN32
-/* this pipe is used to wake up the main loop when a source is added.
- */
-static gint wake_up_pipe[2] = { -1, -1 };
-#else /* NATIVE_WIN32 */
-static HANDLE wake_up_semaphore = NULL;
-#endif /* NATIVE_WIN32 */
-static GPollFD wake_up_rec;
-static gboolean poll_waiting = FALSE;
-
-/* Flag indicating whether the set of fd's changed during a poll */
-static gboolean poll_changed = FALSE;
-#endif /* G_THREADS_ENABLED */
-
-#ifdef HAVE_POLL
-/* SunOS has poll, but doesn't provide a prototype. */
-#  if defined (sun) && !defined (__SVR4)
-extern gint poll (GPollFD *ufds, guint nfsd, gint timeout);
-#  endif  /* !sun */
-static GPollFunc poll_func = (GPollFunc) poll;
-#else	/* !HAVE_POLL */
-#ifdef NATIVE_WIN32
-
-static gint
-g_poll (GPollFD *fds, guint nfds, gint timeout)
-{
-  HANDLE handles[MAXIMUM_WAIT_OBJECTS];
-  GPollFD *f;
-  DWORD ready;
-  MSG msg;
-  UINT timer;
-  LONG prevcnt;
-  gint poll_msgs = -1;
-  gint nhandles = 0;
-
-  for (f = fds; f < &fds[nfds]; ++f)
-    if (f->fd >= 0)
-      {
-	if (f->events & G_IO_IN)
-	  if (f->fd == G_WIN32_MSG_HANDLE)
-	    poll_msgs = f - fds;
-	  else
-	    {
-	      /* g_print ("g_poll: waiting for handle %#x\n", f->fd); */
-	      handles[nhandles++] = (HANDLE) f->fd;
-	    }
-      }
-
-  if (timeout == -1)
-    timeout = INFINITE;
-
-  if (poll_msgs >= 0)
-    {
-      /* Waiting for messages, and maybe events */
-      if (nhandles == 0)
-	{
-	  if (timeout == INFINITE)
-	    {
-	      /* Waiting just for messages, infinite timeout
-	       * -> Use PeekMessage, then WaitMessage
-	       */
-	      /* g_print ("WaitMessage, PeekMessage\n"); */
-	      if (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
-		ready = WAIT_OBJECT_0;
-	      else if (!WaitMessage ())
-		g_warning ("g_poll: WaitMessage failed");
-	      ready = WAIT_OBJECT_0;
-	    }
-	  else if (timeout == 0)
-	    {
-	      /* Waiting just for messages, zero timeout
-	       * -> Use PeekMessage
-	       */
-	      /* g_print ("PeekMessage\n"); */
-	      if (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
-		ready = WAIT_OBJECT_0;
-	      else
-		ready = WAIT_TIMEOUT;
-	    }
-	  else
-	    {
-	      /* Waiting just for messages, some timeout
-	       * -> First try PeekMessage, then set a timer, wait for message,
-	       * kill timer, use PeekMessage
-	       */
-	      /* g_print ("PeekMessage\n"); */
-	      if (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
-		ready = WAIT_OBJECT_0;
-	      else if ((timer = SetTimer (NULL, 0, timeout, NULL)) == 0)
-		g_warning ("g_poll: SetTimer failed");
-	      else
-		{
-		  /* g_print ("WaitMessage\n"); */
-		  WaitMessage ();
-		  KillTimer (NULL, timer);
-		  if (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
-		    ready = WAIT_OBJECT_0;
-		  else
-		    ready = WAIT_TIMEOUT;
-		}
-	    }
-	}
-      else
-	{
-	  /* Wait for either message or event
-	   * -> Use MsgWaitForMultipleObjects
-	   */
-	  /* g_print ("MsgWaitForMultipleObjects(%d, %d)\n", nhandles, timeout); */
-	  ready = MsgWaitForMultipleObjects (nhandles, handles, FALSE,
-					     timeout, QS_ALLINPUT);
-	  /* g_print("=%d\n", ready); */
-	  if (ready == WAIT_FAILED)
-	    g_warning ("g_poll: MsgWaitForMultipleObjects failed");
-	}
-    }
-  else if (nhandles == 0)
-    {
-      /* Wait for nothing (huh?) */
-      return 0;
-    }
-  else
-    {
-      /* Wait for just events
-       * -> Use WaitForMultipleObjects
-       */
-      /* g_print ("WaitForMultipleObjects(%d, %d)\n", nhandles, timeout); */
-      ready = WaitForMultipleObjects (nhandles, handles, FALSE, timeout);
-      /* g_print("=%d\n", ready); */
-      if (ready == WAIT_FAILED)
-	g_warning ("g_poll: WaitForMultipleObjects failed");
-    }
-
-  for (f = fds; f < &fds[nfds]; ++f)
-    f->revents = 0;
-
-  if (ready == WAIT_FAILED)
-    return -1;
-  else if (poll_msgs >= 0 && ready == WAIT_OBJECT_0 + nhandles)
-    {
-      fds[poll_msgs].revents |= G_IO_IN;
-    }
-  else if (ready >= WAIT_OBJECT_0 && ready < WAIT_OBJECT_0 + nhandles)
-    for (f = fds; f < &fds[nfds]; ++f)
-      {
-	if ((f->events & G_IO_IN)
-	    && f->fd == (gint) handles[ready - WAIT_OBJECT_0])
-	  {
-	    f->revents |= G_IO_IN;
-	    /* g_print ("event %#x\n", f->fd); */
-	    ResetEvent ((HANDLE) f->fd);
-	  }
-      }
-    
-  if (ready == WAIT_TIMEOUT)
-    return 0;
-  else
-    return 1;
-}
-
-#else  /* !NATIVE_WIN32 */
-
-/* The following implementation of poll() comes from the GNU C Library.
- * Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
- */
-
-#include <string.h> /* for bzero on BSD systems */
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif /* HAVE_SYS_SELECT_H_ */
-
-#ifndef NO_FD_SET
-#  define SELECT_MASK fd_set
-#else /* !NO_FD_SET */
-#  ifndef _AIX
-typedef long fd_mask;
-#  endif /* _AIX */
-#  ifdef _IBMR2
-#    define SELECT_MASK void
-#  else /* !_IBMR2 */
-#    define SELECT_MASK int
-#  endif /* !_IBMR2 */
-#endif /* !NO_FD_SET */
-
-static gint 
-g_poll (GPollFD *fds,
-	guint    nfds,
-	gint     timeout)
-{
-  struct timeval tv;
-  SELECT_MASK rset, wset, xset;
-  GPollFD *f;
-  int ready;
-  int maxfd = 0;
-
-  FD_ZERO (&rset);
-  FD_ZERO (&wset);
-  FD_ZERO (&xset);
-
-  for (f = fds; f < &fds[nfds]; ++f)
-    if (f->fd >= 0)
-      {
-	if (f->events & G_IO_IN)
-	  FD_SET (f->fd, &rset);
-	if (f->events & G_IO_OUT)
-	  FD_SET (f->fd, &wset);
-	if (f->events & G_IO_PRI)
-	  FD_SET (f->fd, &xset);
-	if (f->fd > maxfd && (f->events & (G_IO_IN|G_IO_OUT|G_IO_PRI)))
-	  maxfd = f->fd;
-      }
-
-  tv.tv_sec = timeout / 1000;
-  tv.tv_usec = (timeout % 1000) * 1000;
-
-  ready = select (maxfd + 1, &rset, &wset, &xset,
-		  timeout == -1 ? NULL : &tv);
-  if (ready > 0)
-    for (f = fds; f < &fds[nfds]; ++f)
-      {
-	f->revents = 0;
-	if (f->fd >= 0)
-	  {
-	    if (FD_ISSET (f->fd, &rset))
-	      f->revents |= G_IO_IN;
-	    if (FD_ISSET (f->fd, &wset))
-	      f->revents |= G_IO_OUT;
-	    if (FD_ISSET (f->fd, &xset))
-	      f->revents |= G_IO_PRI;
-	  }
-      }
-
-  return ready;
-}
-
-#endif /* !NATIVE_WIN32 */
-
-static GPollFunc poll_func = g_poll;
-#endif	/* !HAVE_POLL */
-
-/* Hooks for adding to the main loop */
-
-/* Use knowledge of insert_sorted algorithm here to make
- * sure we insert at the end of equal priority items
- */
-static gint
-g_source_compare (GHook *a,
-		  GHook *b)
-{
-  GSource *source_a = (GSource *)a;
-  GSource *source_b = (GSource *)b;
-
-  return (source_a->priority < source_b->priority) ? -1 : 1;
-}
-
-/* HOLDS: main_loop lock */
-static void
-g_source_destroy_func (GHookList *hook_list,
-		       GHook     *hook)
-{
-  GSource *source = (GSource*) hook;
-  GDestroyNotify destroy;
-
-  G_UNLOCK (main_loop);
-
-  destroy = hook->destroy;
-  if (destroy)
-    destroy (hook->data);
-
-  destroy = ((GSourceFuncs*) hook->func)->destroy;
-  if (destroy)
-    destroy (source->source_data);
-
-  G_LOCK (main_loop);
-}
-
-guint 
-g_source_add (gint           priority,
-	      gboolean       can_recurse,
-	      GSourceFuncs  *funcs,
-	      gpointer       source_data, 
-	      gpointer       user_data,
-	      GDestroyNotify notify)
-{
-  guint return_val;
-  GSource *source;
-
-  G_LOCK (main_loop);
-
-  if (!source_list.is_setup)
-    {
-      g_hook_list_init (&source_list, sizeof (GSource));
-
-      source_list.hook_destroy = G_HOOK_DEFERRED_DESTROY;
-      source_list.hook_free = g_source_destroy_func;
-    }
-
-  source = (GSource*) g_hook_alloc (&source_list);
-  source->priority = priority;
-  source->source_data = source_data;
-  source->hook.func = funcs;
-  source->hook.data = user_data;
-  source->hook.destroy = notify;
-  
-  g_hook_insert_sorted (&source_list, 
-			(GHook *)source, 
-			g_source_compare);
-
-  if (can_recurse)
-    source->hook.flags |= G_SOURCE_CAN_RECURSE;
-
-  return_val = source->hook.hook_id;
-
-#ifdef G_THREADS_ENABLED
-  /* Now wake up the main loop if it is waiting in the poll() */
-  g_main_wakeup ();
-#endif
-
-  G_UNLOCK (main_loop);
-
-  return return_val;
-}
-
-gboolean
-g_source_remove (guint tag)
-{
-  GHook *hook;
-
-  g_return_val_if_fail (tag > 0, FALSE);
-
-  G_LOCK (main_loop);
-
-  hook = g_hook_get (&source_list, tag);
-  if (hook)
-    g_hook_destroy_link (&source_list, hook);
-
-  G_UNLOCK (main_loop);
-
-  return hook != NULL;
-}
-
-gboolean
-g_source_remove_by_user_data (gpointer user_data)
-{
-  GHook *hook;
-  
-  G_LOCK (main_loop);
-  
-  hook = g_hook_find_data (&source_list, TRUE, user_data);
-  if (hook)
-    g_hook_destroy_link (&source_list, hook);
-
-  G_UNLOCK (main_loop);
-
-  return hook != NULL;
-}
-
-static gboolean
-g_source_find_source_data (GHook	*hook,
-			   gpointer	 data)
-{
-  GSource *source = (GSource *)hook;
-
-  return (source->source_data == data);
-}
-
-gboolean
-g_source_remove_by_source_data (gpointer source_data)
-{
-  GHook *hook;
-
-  G_LOCK (main_loop);
-
-  hook = g_hook_find (&source_list, TRUE, 
-		      g_source_find_source_data, source_data);
-  if (hook)
-    g_hook_destroy_link (&source_list, hook);
-
-  G_UNLOCK (main_loop);
-
-  return hook != NULL;
-}
-
-static gboolean
-g_source_find_funcs_user_data (GHook   *hook,
-			       gpointer data)
-{
-  gpointer *d = data;
-
-  return hook->func == d[0] && hook->data == d[1];
-}
-
-gboolean
-g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
-				    gpointer      user_data)
-{
-  gpointer d[2];
-  GHook *hook;
-
-  g_return_val_if_fail (funcs != NULL, FALSE);
-
-  G_LOCK (main_loop);
-
-  d[0] = funcs;
-  d[1] = user_data;
-
-  hook = g_hook_find (&source_list, TRUE,
-		      g_source_find_funcs_user_data, d);
-  if (hook)
-    g_hook_destroy_link (&source_list, hook);
-
-  G_UNLOCK (main_loop);
-
-  return hook != NULL;
-}
-
-void
-g_get_current_time (GTimeVal *result)
-{
-#ifndef _MSC_VER
-  struct timeval r;
-  g_return_if_fail (result != NULL);
-
-  /*this is required on alpha, there the timeval structs are int's
-    not longs and a cast only would fail horribly*/
-  gettimeofday (&r, NULL);
-  result->tv_sec = r.tv_sec;
-  result->tv_usec = r.tv_usec;
-#else
-  /* Avoid calling time() except for the first time.
-   * GetTickCount() should be pretty fast and low-level?
-   * I could also use ftime() but it seems unnecessarily overheady.
-   */
-  static DWORD start_tick = 0;
-  static time_t start_time;
-  DWORD tick;
-  time_t t;
-
-  g_return_if_fail (result != NULL);
- 
-  if (start_tick == 0)
-    {
-      start_tick = GetTickCount ();
-      time (&start_time);
-    }
-
-  tick = GetTickCount ();
-
-  result->tv_sec = (tick - start_tick) / 1000 + start_time;
-  result->tv_usec = ((tick - start_tick) % 1000) * 1000;
-#endif
-}
-
-/* Running the main loop */
-
-/* HOLDS: main_loop_lock */
-static void
-g_main_dispatch (GTimeVal *dispatch_time)
-{
-  while (pending_dispatches != NULL)
-    {
-      gboolean need_destroy;
-      GSource *source = pending_dispatches->data;
-      GSList *tmp_list;
-
-      tmp_list = pending_dispatches;
-      pending_dispatches = g_slist_remove_link (pending_dispatches, pending_dispatches);
-      g_slist_free_1 (tmp_list);
-
-      if (G_HOOK_IS_VALID (source))
-	{
-	  gboolean was_in_call;
-	  gpointer hook_data = source->hook.data;
-	  gpointer source_data = source->source_data;
-	  gboolean (*dispatch) (gpointer,
-				GTimeVal *,
-				gpointer);
-
-	  dispatch = ((GSourceFuncs *) source->hook.func)->dispatch;
-	  
-	  was_in_call = G_HOOK_IN_CALL (source);
-	  source->hook.flags |= G_HOOK_FLAG_IN_CALL;
-
-	  G_UNLOCK (main_loop);
-	  need_destroy = ! dispatch (source_data,
-				     dispatch_time,
-				     hook_data);
-	  G_LOCK (main_loop);
-
-	  if (!was_in_call)
-	    source->hook.flags &= ~G_HOOK_FLAG_IN_CALL;
-	  
-	  if (need_destroy && G_HOOK_IS_VALID (source))
-	    g_hook_destroy_link (&source_list, (GHook *) source);
-	}
-
-      g_hook_unref (&source_list, (GHook*) source);
-    }
-}
-
-/* g_main_iterate () runs a single iteration of the mainloop, or,
- * if !dispatch checks to see if any sources need dispatching.
- * basic algorithm for dispatch=TRUE:
- *
- * 1) while the list of currently pending sources is non-empty,
- *    we call (*dispatch) on those that are !IN_CALL or can_recurse,
- *    removing sources from the list after each returns.
- *    the return value of (*dispatch) determines whether the source
- *    itself is kept alive.
- *
- * 2) call (*prepare) for sources that are not yet SOURCE_READY and
- *    are !IN_CALL or can_recurse. a return value of TRUE determines
- *    that the source would like to be dispatched immediatedly, it
- *    is then flagged as SOURCE_READY.
- *
- * 3) poll with the pollfds from all sources at the priority of the
- *    first source flagged as SOURCE_READY. if there are any sources
- *    flagged as SOURCE_READY, we use a timeout of 0 or the minimum
- *    of all timouts otherwise.
- *
- * 4) for each source !IN_CALL or can_recurse, if SOURCE_READY or
- *    (*check) returns true, add the source to the pending list.
- *    once one source returns true, stop after checking all sources
- *    at that priority.
- *
- * 5) while the list of currently pending sources is non-empty,
- *    call (*dispatch) on each source, removing the source
- *    after the call.
- *
- */
-static gboolean
-g_main_iterate (gboolean block,
-		gboolean dispatch)
-{
-  GHook *hook;
-  GTimeVal current_time  = { 0, 0 };
-  gint n_ready = 0;
-  gint current_priority = 0;
-  gint timeout;
-  gboolean retval = FALSE;
-
-  g_return_val_if_fail (!block || dispatch, FALSE);
-
-  g_get_current_time (&current_time);
-
-  G_LOCK (main_loop);
-
-#ifdef G_THREADS_ENABLED
-  if (poll_waiting)
-    {
-      g_warning("g_main_iterate(): main loop already active in another thread");
-      G_UNLOCK (main_loop);
-      return FALSE;
-    }
-#endif
-  
-  /* If recursing, finish up current dispatch, before starting over */
-  if (pending_dispatches)
-    {
-      if (dispatch)
-	g_main_dispatch (&current_time);
-      
-      G_UNLOCK (main_loop);
-
-      return TRUE;
-    }
-
-  /* Prepare all sources */
-
-  timeout = block ? -1 : 0;
-  
-  hook = g_hook_first_valid (&source_list, TRUE);
-  while (hook)
-    {
-      GSource *source = (GSource*) hook;
-      gint source_timeout = -1;
-
-      if ((n_ready > 0) && (source->priority > current_priority))
-	{
-	  g_hook_unref (&source_list, hook);
-	  break;
-	}
-      if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE))
-	{
-	  hook = g_hook_next_valid (&source_list, hook, TRUE);
-	  continue;
-	}
-
-      if (!(hook->flags & G_SOURCE_READY))
-	{
-	  gboolean (*prepare)  (gpointer  source_data, 
-				GTimeVal *current_time,
-				gint     *timeout,
-				gpointer  user_data);
-
-	  prepare = ((GSourceFuncs *) hook->func)->prepare;
-	  in_check_or_prepare++;
-	  G_UNLOCK (main_loop);
-
-	  if ((*prepare) (source->source_data, &current_time, &source_timeout, source->hook.data))
-	    hook->flags |= G_SOURCE_READY;
-	  
-	  G_LOCK (main_loop);
-	  in_check_or_prepare--;
-	}
-
-      if (hook->flags & G_SOURCE_READY)
-	{
-	  if (!dispatch)
-	    {
-	      g_hook_unref (&source_list, hook);
-	      G_UNLOCK (main_loop);
-
-	      return TRUE;
-	    }
-	  else
-	    {
-	      n_ready++;
-	      current_priority = source->priority;
-	      timeout = 0;
-	    }
-	}
-      
-      if (source_timeout >= 0)
-	{
-	  if (timeout < 0)
-	    timeout = source_timeout;
-	  else
-	    timeout = MIN (timeout, source_timeout);
-	}
-
-      hook = g_hook_next_valid (&source_list, hook, TRUE);
-    }
-
-  /* poll(), if necessary */
-
-  g_main_poll (timeout, n_ready > 0, current_priority);
-
-  if (timeout != 0)
-    g_get_current_time (&current_time);
-  
-  /* Check to see what sources need to be dispatched */
-
-  n_ready = 0;
-  
-  hook = g_hook_first_valid (&source_list, TRUE);
-  while (hook)
-    {
-      GSource *source = (GSource *)hook;
-
-      if ((n_ready > 0) && (source->priority > current_priority))
-	{
-	  g_hook_unref (&source_list, hook);
-	  break;
-	}
-      if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE))
-	{
-	  hook = g_hook_next_valid (&source_list, hook, TRUE);
-	  continue;
-	}
-
-      if (!(hook->flags & G_SOURCE_READY))
-	{
-	  gboolean (*check) (gpointer  source_data,
-			     GTimeVal *current_time,
-			     gpointer  user_data);
-
-	  check = ((GSourceFuncs *) hook->func)->check;
-	  in_check_or_prepare++;
-	  G_UNLOCK (main_loop);
-	  
-	  if ((*check) (source->source_data, &current_time, source->hook.data))
-	    hook->flags |= G_SOURCE_READY;
-
-	  G_LOCK (main_loop);
-	  in_check_or_prepare--;
-	}
-
-      if (hook->flags & G_SOURCE_READY)
-	{
-	  if (dispatch)
-	    {
-	      hook->flags &= ~G_SOURCE_READY;
-	      g_hook_ref (&source_list, hook);
-	      pending_dispatches = g_slist_prepend (pending_dispatches, source);
-	      current_priority = source->priority;
-	      n_ready++;
-	    }
-	  else
-	    {
-	      g_hook_unref (&source_list, hook);
-	      G_UNLOCK (main_loop);
-
-	      return TRUE;
-	    }
-	}
-      
-      hook = g_hook_next_valid (&source_list, hook, TRUE);
-    }
- 
-  /* Now invoke the callbacks */
-
-  if (pending_dispatches)
-    {
-      pending_dispatches = g_slist_reverse (pending_dispatches);
-      g_main_dispatch (&current_time);
-      retval = TRUE;
-    }
-
-  G_UNLOCK (main_loop);
-
-  return retval;
-}
-
-/* See if any events are pending
- */
-gboolean 
-g_main_pending (void)
-{
-  return in_check_or_prepare ? FALSE : g_main_iterate (FALSE, FALSE);
-}
-
-/* Run a single iteration of the mainloop. If block is FALSE,
- * will never block
- */
-gboolean
-g_main_iteration (gboolean block)
-{
-  if (in_check_or_prepare)
-    {
-      g_warning ("g_main_iteration(): called recursively from within a source's check() or "
-		 "prepare() member or from a second thread, iteration not possible");
-      return FALSE;
-    }
-  else
-    return g_main_iterate (block, TRUE);
-}
-
-GMainLoop*
-g_main_new (gboolean is_running)
-{
-  GMainLoop *loop;
-
-  loop = g_new0 (GMainLoop, 1);
-  loop->is_running = is_running != FALSE;
-
-  return loop;
-}
-
-void 
-g_main_run (GMainLoop *loop)
-{
-  g_return_if_fail (loop != NULL);
-
-  if (in_check_or_prepare)
-    {
-      g_warning ("g_main_run(): called recursively from within a source's check() or "
-		 "prepare() member or from a second thread, iteration not possible");
-      return;
-    }
-  
-  loop->is_running = TRUE;
-  while (loop->is_running)
-    g_main_iterate (TRUE, TRUE);
-}
-
-void 
-g_main_quit (GMainLoop *loop)
-{
-  g_return_if_fail (loop != NULL);
-
-  loop->is_running = FALSE;
-}
-
-void 
-g_main_destroy (GMainLoop *loop)
-{
-  g_return_if_fail (loop != NULL);
-
-  g_free (loop);
-}
-
-gboolean
-g_main_is_running (GMainLoop *loop)
-{
-  g_return_val_if_fail (loop != NULL, FALSE);
-
-  return loop->is_running;
-}
-
-/* HOLDS: main_loop_lock */
-static void
-g_main_poll (gint     timeout,
-	     gboolean use_priority,
-	     gint     priority)
-{
-#ifdef  G_MAIN_POLL_DEBUG
-  GTimer *poll_timer;
-#endif
-  GPollFD *fd_array;
-  GPollRec *pollrec;
-  gint i;
-  gint npoll;
-
-#ifdef G_THREADS_ENABLED
-#ifndef NATIVE_WIN32
-  if (wake_up_pipe[0] < 0)
-    {
-      if (pipe (wake_up_pipe) < 0)
-	g_error ("Cannot create pipe main loop wake-up: %s\n",
-		 g_strerror (errno));
-
-      wake_up_rec.fd = wake_up_pipe[0];
-      wake_up_rec.events = G_IO_IN;
-      g_main_add_poll_unlocked (0, &wake_up_rec);
-    }
-#else
-  if (wake_up_semaphore == NULL)
-    {
-      if ((wake_up_semaphore = CreateSemaphore (NULL, 0, 100, NULL)) == NULL)
-	g_error ("Cannot create wake-up semaphore: %d", GetLastError ());
-      wake_up_rec.fd = (gint) wake_up_semaphore;
-      wake_up_rec.events = G_IO_IN;
-      g_main_add_poll_unlocked (0, &wake_up_rec);
-    }
-#endif
-#endif
-  fd_array = g_new (GPollFD, n_poll_records);
- 
-  pollrec = poll_records;
-  i = 0;
-  while (pollrec && (!use_priority || priority >= pollrec->priority))
-    {
-      if (pollrec->fd->events)
-	{
-	  fd_array[i].fd = pollrec->fd->fd;
-	  /* In direct contradiction to the Unix98 spec, IRIX runs into
-	   * difficulty if you pass in POLLERR, POLLHUP or POLLNVAL
-	   * flags in the events field of the pollfd while it should
-	   * just ignoring them. So we mask them out here.
-	   */
-	  fd_array[i].events = pollrec->fd->events & ~(G_IO_ERR|G_IO_HUP|G_IO_NVAL);
-	  fd_array[i].revents = 0;
-	  i++;
-	}
-      
-      pollrec = pollrec->next;
-    }
-#ifdef G_THREADS_ENABLED
-  poll_waiting = TRUE;
-  poll_changed = FALSE;
-#endif
-  
-  npoll = i;
-  if (npoll || timeout != 0)
-    {
-#ifdef	G_MAIN_POLL_DEBUG
-      g_print ("g_main_poll(%d) timeout: %d\r", npoll, timeout);
-      poll_timer = g_timer_new ();
-#endif
-      
-      G_UNLOCK (main_loop);
-      (*poll_func) (fd_array, npoll, timeout);
-      G_LOCK (main_loop);
-      
-#ifdef	G_MAIN_POLL_DEBUG
-      g_print ("g_main_poll(%d) timeout: %d - elapsed %12.10f seconds",
-	       npoll,
-	       timeout,
-	       g_timer_elapsed (poll_timer, NULL));
-      g_timer_destroy (poll_timer);
-      pollrec = poll_records;
-      i = 0;
-      while (i < npoll)
-	{
-	  if (pollrec->fd->events)
-	    {
-	      if (fd_array[i].revents)
-		{
-		  g_print (" [%d:", fd_array[i].fd);
-		  if (fd_array[i].revents & G_IO_IN)
-		    g_print ("i");
-		  if (fd_array[i].revents & G_IO_OUT)
-		    g_print ("o");
-		  if (fd_array[i].revents & G_IO_PRI)
-		    g_print ("p");
-		  if (fd_array[i].revents & G_IO_ERR)
-		    g_print ("e");
-		  if (fd_array[i].revents & G_IO_HUP)
-		    g_print ("h");
-		  if (fd_array[i].revents & G_IO_NVAL)
-		    g_print ("n");
-		  g_print ("]");
-		}
-	      i++;
-	    }
-	  pollrec = pollrec->next;
-	}
-      g_print ("\n");
-#endif
-    } /* if (npoll || timeout != 0) */
-  
-#ifdef G_THREADS_ENABLED
-  if (!poll_waiting)
-    {
-#ifndef NATIVE_WIN32
-      gchar c;
-      read (wake_up_pipe[0], &c, 1);
-#endif
-    }
-  else
-    poll_waiting = FALSE;
-
-  /* If the set of poll file descriptors changed, bail out
-   * and let the main loop rerun
-   */
-  if (poll_changed)
-    {
-      g_free (fd_array);
-      return;
-    }
-#endif
-
-  pollrec = poll_records;
-  i = 0;
-  while (i < npoll)
-    {
-      if (pollrec->fd->events)
-	{
-	  pollrec->fd->revents = fd_array[i].revents;
-	  i++;
-	}
-      pollrec = pollrec->next;
-    }
-
-  g_free (fd_array);
-}
-
-void 
-g_main_add_poll (GPollFD *fd,
-		 gint     priority)
-{
-  G_LOCK (main_loop);
-  g_main_add_poll_unlocked (priority, fd);
-  G_UNLOCK (main_loop);
-}
-
-/* HOLDS: main_loop_lock */
-static void 
-g_main_add_poll_unlocked (gint     priority,
-			  GPollFD *fd)
-{
-  GPollRec *lastrec, *pollrec, *newrec;
-
-  if (!poll_chunk)
-    poll_chunk = g_mem_chunk_create (GPollRec, 32, G_ALLOC_ONLY);
-
-  if (poll_free_list)
-    {
-      newrec = poll_free_list;
-      poll_free_list = newrec->next;
-    }
-  else
-    newrec = g_chunk_new (GPollRec, poll_chunk);
-
-  newrec->fd = fd;
-  newrec->priority = priority;
-
-  lastrec = NULL;
-  pollrec = poll_records;
-  while (pollrec && priority >= pollrec->priority)
-    {
-      lastrec = pollrec;
-      pollrec = pollrec->next;
-    }
-  
-  if (lastrec)
-    lastrec->next = newrec;
-  else
-    poll_records = newrec;
-
-  newrec->next = pollrec;
-
-  n_poll_records++;
-
-#ifdef G_THREADS_ENABLED
-  poll_changed = TRUE;
-
-  /* Now wake up the main loop if it is waiting in the poll() */
-  g_main_wakeup ();
-#endif
-}
-
-void 
-g_main_remove_poll (GPollFD *fd)
-{
-  GPollRec *pollrec, *lastrec;
-
-  G_LOCK (main_loop);
-  
-  lastrec = NULL;
-  pollrec = poll_records;
-
-  while (pollrec)
-    {
-      if (pollrec->fd == fd)
-	{
-	  if (lastrec != NULL)
-	    lastrec->next = pollrec->next;
-	  else
-	    poll_records = pollrec->next;
-
-	  pollrec->next = poll_free_list;
-	  poll_free_list = pollrec;
-
-	  n_poll_records--;
-	  break;
-	}
-      lastrec = pollrec;
-      pollrec = pollrec->next;
-    }
-
-#ifdef G_THREADS_ENABLED
-  poll_changed = TRUE;
-  
-  /* Now wake up the main loop if it is waiting in the poll() */
-  g_main_wakeup ();
-#endif
-
-  G_UNLOCK (main_loop);
-}
-
-void 
-g_main_set_poll_func (GPollFunc func)
-{
-  if (func)
-    poll_func = func;
-  else
-#ifdef HAVE_POLL
-    poll_func = (GPollFunc) poll;
-#else
-    poll_func = (GPollFunc) g_poll;
-#endif
-}
-
-/* Wake the main loop up from a poll() */
-static void
-g_main_wakeup (void)
-{
-#ifdef G_THREADS_ENABLED
-  if (poll_waiting)
-    {
-      poll_waiting = FALSE;
-#ifndef NATIVE_WIN32
-      write (wake_up_pipe[1], "A", 1);
-#else
-      ReleaseSemaphore (wake_up_semaphore, 1, NULL);
-#endif
-    }
-#endif
-}
-
-/* Timeouts */
-
-static void
-g_timeout_set_expiration (GTimeoutData *data,
-			  GTimeVal     *current_time)
-{
-  guint seconds = data->interval / 1000;
-  guint msecs = data->interval - seconds * 1000;
-
-  data->expiration.tv_sec = current_time->tv_sec + seconds;
-  data->expiration.tv_usec = current_time->tv_usec + msecs * 1000;
-  if (data->expiration.tv_usec >= 1000000)
-    {
-      data->expiration.tv_usec -= 1000000;
-      data->expiration.tv_sec++;
-    }
-}
-
-static gboolean 
-g_timeout_prepare  (gpointer  source_data, 
-		    GTimeVal *current_time,
-		    gint     *timeout,
-		    gpointer  user_data)
-{
-  glong msec;
-  GTimeoutData *data = source_data;
-
-  msec = (data->expiration.tv_sec  - current_time->tv_sec) * 1000 +
-         (data->expiration.tv_usec - current_time->tv_usec) / 1000;
-
-  if (msec < 0)
-    msec = 0;
-  else if (msec > data->interval)
-    {
-      /* The system time has been set backwards, so we 
-       * reset the expiration time to now + data->interval;
-       * this at least avoids hanging for long periods of time.
-       */
-      g_timeout_set_expiration (data, current_time);
-      msec = data->interval;
-    }
-
-  *timeout = msec;
-
-  return (msec == 0);
-}
-
-static gboolean 
-g_timeout_check (gpointer  source_data,
-		 GTimeVal *current_time,
-		 gpointer  user_data)
-{
-  GTimeoutData *data = source_data;
-
-  return (data->expiration.tv_sec < current_time->tv_sec) ||
-         ((data->expiration.tv_sec == current_time->tv_sec) &&
-	  (data->expiration.tv_usec <= current_time->tv_usec));
-}
-
-static gboolean
-g_timeout_dispatch (gpointer source_data, 
-		    GTimeVal *dispatch_time,
-		    gpointer user_data)
-{
-  GTimeoutData *data = source_data;
-
-  if (data->callback (user_data))
-    {
-      g_timeout_set_expiration (data, dispatch_time);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-guint 
-g_timeout_add_full (gint           priority,
-		    guint          interval, 
-		    GSourceFunc    function,
-		    gpointer       data,
-		    GDestroyNotify notify)
-{
-  GTimeoutData *timeout_data = g_new (GTimeoutData, 1);
-  GTimeVal current_time;
-
-  timeout_data->interval = interval;
-  timeout_data->callback = function;
-  g_get_current_time (&current_time);
-
-  g_timeout_set_expiration (timeout_data, &current_time);
-
-  return g_source_add (priority, FALSE, &timeout_funcs, timeout_data, data, notify);
-}
-
-guint 
-g_timeout_add (guint32        interval,
-	       GSourceFunc    function,
-	       gpointer       data)
-{
-  return g_timeout_add_full (G_PRIORITY_DEFAULT, 
-			     interval, function, data, NULL);
-}
-
-/* Idle functions */
-
-static gboolean 
-g_idle_prepare  (gpointer  source_data, 
-		 GTimeVal *current_time,
-		 gint     *timeout,
-		 gpointer  user_data)
-{
-  *timeout = 0;
-
-  return TRUE;
-}
-
-static gboolean 
-g_idle_check    (gpointer  source_data,
-		 GTimeVal *current_time,
-		 gpointer  user_data)
-{
-  return TRUE;
-}
-
-static gboolean
-g_idle_dispatch (gpointer source_data, 
-		 GTimeVal *dispatch_time,
-		 gpointer user_data)
-{
-  GSourceFunc func = source_data;
-
-  return func (user_data);
-}
-
-guint 
-g_idle_add_full (gint           priority,
-		 GSourceFunc    function,
-		 gpointer       data,
-		 GDestroyNotify notify)
-{
-  g_return_val_if_fail (function != NULL, 0);
-
-  return g_source_add (priority, FALSE, &idle_funcs, function, data, notify);
-}
-
-guint 
-g_idle_add (GSourceFunc    function,
-	    gpointer       data)
-{
-  return g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, function, data, NULL);
-}
-
-gboolean
-g_idle_remove_by_data (gpointer data)
-{
-  return g_source_remove_by_funcs_user_data (&idle_funcs, data);
-}
diff --git a/glib/gmem.c b/glib/gmem.c
deleted file mode 100644
index 08f87b1..0000000
--- a/glib/gmem.c
+++ /dev/null
@@ -1,1008 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include "glib.h"
-
-/* #define ENABLE_MEM_PROFILE */
-/* #define ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS */
-/* #define ENABLE_MEM_CHECK */
-#define MEM_PROFILE_TABLE_SIZE 8192
-
-/*
- * This library can check for some attempts to do illegal things to
- * memory (ENABLE_MEM_CHECK), and can do profiling
- * (ENABLE_MEM_PROFILE).  Both features are implemented by storing
- * words before the start of the memory chunk.
- *
- * The first, at offset -2*SIZEOF_LONG, is used only if
- * ENABLE_MEM_CHECK is set, and stores 0 after the memory has been
- * allocated and 1 when it has been freed.  The second, at offset
- * -SIZEOF_LONG, is used if either flag is set and stores the size of
- * the block.
- *
- * The MEM_CHECK flag is checked when memory is realloc'd and free'd,
- * and it can be explicitly checked before using a block by calling
- * g_mem_check().
- */
-
-#if defined(ENABLE_MEM_PROFILE) && defined(ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS)
-#define ENTER_MEM_CHUNK_ROUTINE() \
-  g_private_set (allocating_for_mem_chunk, \
-		g_private_get (allocating_for_mem_chunk) + 1)
-#define LEAVE_MEM_CHUNK_ROUTINE() \
-  g_private_set (allocating_for_mem_chunk, \
-		g_private_get (allocating_for_mem_chunk) - 1) 
-#else
-#define ENTER_MEM_CHUNK_ROUTINE()
-#define LEAVE_MEM_CHUNK_ROUTINE()
-#endif
-
-
-#define MEM_AREA_SIZE 4L
-
-#if SIZEOF_VOID_P > SIZEOF_LONG
-#define MEM_ALIGN     SIZEOF_VOID_P
-#else
-#define MEM_ALIGN     SIZEOF_LONG
-#endif
-
-
-typedef struct _GFreeAtom      GFreeAtom;
-typedef struct _GMemArea       GMemArea;
-typedef struct _GRealMemChunk  GRealMemChunk;
-
-struct _GFreeAtom
-{
-  GFreeAtom *next;
-};
-
-struct _GMemArea
-{
-  GMemArea *next;            /* the next mem area */
-  GMemArea *prev;            /* the previous mem area */
-  gulong index;              /* the current index into the "mem" array */
-  gulong free;               /* the number of free bytes in this mem area */
-  gulong allocated;          /* the number of atoms allocated from this area */
-  gulong mark;               /* is this mem area marked for deletion */
-  gchar mem[MEM_AREA_SIZE];  /* the mem array from which atoms get allocated
-			      * the actual size of this array is determined by
-			      *  the mem chunk "area_size". ANSI says that it
-			      *  must be declared to be the maximum size it
-			      *  can possibly be (even though the actual size
-			      *  may be less).
-			      */
-};
-
-struct _GRealMemChunk
-{
-  gchar *name;               /* name of this MemChunk...used for debugging output */
-  gint type;                 /* the type of MemChunk: ALLOC_ONLY or ALLOC_AND_FREE */
-  gint num_mem_areas;        /* the number of memory areas */
-  gint num_marked_areas;     /* the number of areas marked for deletion */
-  guint atom_size;           /* the size of an atom */
-  gulong area_size;          /* the size of a memory area */
-  GMemArea *mem_area;        /* the current memory area */
-  GMemArea *mem_areas;       /* a list of all the mem areas owned by this chunk */
-  GMemArea *free_mem_area;   /* the free area...which is about to be destroyed */
-  GFreeAtom *free_atoms;     /* the free atoms list */
-  GTree *mem_tree;           /* tree of mem areas sorted by memory address */
-  GRealMemChunk *next;       /* pointer to the next chunk */
-  GRealMemChunk *prev;       /* pointer to the previous chunk */
-};
-
-
-static gulong g_mem_chunk_compute_size (gulong    size,
-					gulong    min_size);
-static gint   g_mem_chunk_area_compare (GMemArea *a,
-					GMemArea *b);
-static gint   g_mem_chunk_area_search  (GMemArea *a,
-					gchar    *addr);
-
-
-/* here we can't use StaticMutexes, as they depend upon a working
- * g_malloc, the same holds true for StaticPrivate */
-static GMutex* mem_chunks_lock = NULL;
-static GRealMemChunk *mem_chunks = NULL;
-
-#ifdef ENABLE_MEM_PROFILE
-static GMutex* mem_profile_lock;
-static gulong allocations[MEM_PROFILE_TABLE_SIZE] = { 0 };
-static gulong allocated_mem = 0;
-static gulong freed_mem = 0;
-static GPrivate* allocating_for_mem_chunk = NULL;
-#define IS_IN_MEM_CHUNK_ROUTINE() \
-  GPOINTER_TO_UINT (g_private_get (allocating_for_mem_chunk))
-#endif /* ENABLE_MEM_PROFILE */
-
-
-#ifndef USE_DMALLOC
-
-gpointer
-g_malloc (gulong size)
-{
-  gpointer p;
-  
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  gulong *t;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-  
-  if (size == 0)
-    return NULL;
-  
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  size += SIZEOF_LONG;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-#ifdef ENABLE_MEM_CHECK
-  size += SIZEOF_LONG;
-#endif /* ENABLE_MEM_CHECK */
-  
-  
-  p = (gpointer) malloc (size);
-  if (!p)
-    g_error ("could not allocate %ld bytes", size);
-  
-  
-#ifdef ENABLE_MEM_CHECK
-  size -= SIZEOF_LONG;
-  
-  t = p;
-  p = ((guchar*) p + SIZEOF_LONG);
-  *t = 0;
-#endif /* ENABLE_MEM_CHECK */
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  size -= SIZEOF_LONG;
-  
-  t = p;
-  p = ((guchar*) p + SIZEOF_LONG);
-  *t = size;
-  
-#ifdef ENABLE_MEM_PROFILE
-  g_mutex_lock (mem_profile_lock);
-#  ifdef ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS
-  if(!IS_IN_MEM_CHUNK_ROUTINE()) {
-#  endif
-    if (size <= MEM_PROFILE_TABLE_SIZE - 1)
-      allocations[size-1] += 1;
-    else
-      allocations[MEM_PROFILE_TABLE_SIZE - 1] += 1;
-    allocated_mem += size;
-#  ifdef ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS
-  }
-#  endif
-  g_mutex_unlock (mem_profile_lock);
-#endif /* ENABLE_MEM_PROFILE */
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-  
-  return p;
-}
-
-gpointer
-g_malloc0 (gulong size)
-{
-  gpointer p;
-  
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  gulong *t;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-  
-  if (size == 0)
-    return NULL;
-  
-  
-#if defined (ENABLE_MEM_PROFILE) || defined (ENABLE_MEM_CHECK)
-  size += SIZEOF_LONG;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-#ifdef ENABLE_MEM_CHECK
-  size += SIZEOF_LONG;
-#endif /* ENABLE_MEM_CHECK */
-  
-  
-  p = (gpointer) calloc (size, 1);
-  if (!p)
-    g_error ("could not allocate %ld bytes", size);
-  
-  
-#ifdef ENABLE_MEM_CHECK
-  size -= SIZEOF_LONG;
-  
-  t = p;
-  p = ((guchar*) p + SIZEOF_LONG);
-  *t = 0;
-#endif /* ENABLE_MEM_CHECK */
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  size -= SIZEOF_LONG;
-  
-  t = p;
-  p = ((guchar*) p + SIZEOF_LONG);
-  *t = size;
-  
-#  ifdef ENABLE_MEM_PROFILE
-  g_mutex_lock (mem_profile_lock);
-#    ifdef ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS
-  if(!IS_IN_MEM_CHUNK_ROUTINE()) {
-#    endif
-    if (size <= (MEM_PROFILE_TABLE_SIZE - 1))
-      allocations[size-1] += 1;
-    else
-      allocations[MEM_PROFILE_TABLE_SIZE - 1] += 1;
-    allocated_mem += size;
-#    ifdef ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS
-  }
-#    endif
-  g_mutex_unlock (mem_profile_lock);
-#  endif /* ENABLE_MEM_PROFILE */
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-  
-  return p;
-}
-
-gpointer
-g_realloc (gpointer mem,
-	   gulong   size)
-{
-  gpointer p;
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  gulong *t;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-  
-  if (size == 0)
-    {
-      g_free (mem);
-    
-      return NULL;
-    }
-  
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  size += SIZEOF_LONG;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-#ifdef ENABLE_MEM_CHECK
-  size += SIZEOF_LONG;
-#endif /* ENABLE_MEM_CHECK */
-  
-  
-  if (!mem)
-    {
-#ifdef REALLOC_0_WORKS
-      p = (gpointer) realloc (NULL, size);
-#else /* !REALLOC_0_WORKS */
-      p = (gpointer) malloc (size);
-#endif /* !REALLOC_0_WORKS */
-    }
-  else
-    {
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-      t = (gulong*) ((guchar*) mem - SIZEOF_LONG);
-#ifdef ENABLE_MEM_PROFILE
-      g_mutex_lock (mem_profile_lock);
-      freed_mem += *t;
-      g_mutex_unlock (mem_profile_lock);
-#endif /* ENABLE_MEM_PROFILE */
-      mem = t;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-      
-#ifdef ENABLE_MEM_CHECK
-      t = (gulong*) ((guchar*) mem - SIZEOF_LONG);
-      if (*t >= 1)
-	g_warning ("trying to realloc freed memory\n");
-      mem = t;
-#endif /* ENABLE_MEM_CHECK */
-      
-      p = (gpointer) realloc (mem, size);
-    }
-  
-  if (!p)
-    g_error ("could not reallocate %lu bytes", (gulong) size);
-  
-  
-#ifdef ENABLE_MEM_CHECK
-  size -= SIZEOF_LONG;
-  
-  t = p;
-  p = ((guchar*) p + SIZEOF_LONG);
-  *t = 0;
-#endif /* ENABLE_MEM_CHECK */
-  
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-  size -= SIZEOF_LONG;
-  
-  t = p;
-  p = ((guchar*) p + SIZEOF_LONG);
-  *t = size;
-  
-#ifdef ENABLE_MEM_PROFILE
-  g_mutex_lock (mem_profile_lock);
-#ifdef ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS
-  if(!IS_IN_MEM_CHUNK_ROUTINE()) {
-#endif
-    if (size <= (MEM_PROFILE_TABLE_SIZE - 1))
-      allocations[size-1] += 1;
-    else
-      allocations[MEM_PROFILE_TABLE_SIZE - 1] += 1;
-    allocated_mem += size;
-#ifdef ENABLE_MEM_PROFILE_EXCLUDES_MEM_CHUNKS
-  }
-#endif
-  g_mutex_unlock (mem_profile_lock);
-#endif /* ENABLE_MEM_PROFILE */
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-  
-  
-  return p;
-}
-
-void
-g_free (gpointer mem)
-{
-  if (mem)
-    {
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-      gulong *t;
-      gulong size;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-      
-#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
-      t = (gulong*) ((guchar*) mem - SIZEOF_LONG);
-      size = *t;
-#ifdef ENABLE_MEM_PROFILE     
-      g_mutex_lock (mem_profile_lock);
-      freed_mem += size;
-      g_mutex_unlock (mem_profile_lock);
-#endif /* ENABLE_MEM_PROFILE */
-      mem = t;
-#endif /* ENABLE_MEM_PROFILE || ENABLE_MEM_CHECK */
-      
-#ifdef ENABLE_MEM_CHECK
-      t = (gulong*) ((guchar*) mem - SIZEOF_LONG);
-      if (*t >= 1)
-	g_warning ("freeing previously freed (%lu times) memory\n", *t);
-      *t += 1;
-      mem = t;
-      
-      memset ((guchar*) mem + 2 * SIZEOF_LONG, 0, size);
-#else /* ENABLE_MEM_CHECK */
-      free (mem);
-#endif /* ENABLE_MEM_CHECK */
-    }
-}
-
-#endif /* ! USE_DMALLOC */
-
-
-void
-g_mem_profile (void)
-{
-#ifdef ENABLE_MEM_PROFILE
-  gint i;
-  gulong local_allocations[MEM_PROFILE_TABLE_SIZE];
-  gulong local_allocated_mem;
-  gulong local_freed_mem;  
-
-  g_mutex_lock (mem_profile_lock);
-  for (i = 0; i < MEM_PROFILE_TABLE_SIZE; i++)
-    local_allocations[i] = allocations[i];
-  local_allocated_mem = allocated_mem;
-  local_freed_mem = freed_mem;
-  g_mutex_unlock (mem_profile_lock);
-
-  for (i = 0; i < (MEM_PROFILE_TABLE_SIZE - 1); i++)
-    if (local_allocations[i] > 0)
-      g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
-	     "%lu allocations of %d bytes", local_allocations[i], i + 1);
-  
-  if (local_allocations[MEM_PROFILE_TABLE_SIZE - 1] > 0)
-    g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
-	   "%lu allocations of greater than %d bytes",
-	   local_allocations[MEM_PROFILE_TABLE_SIZE - 1], MEM_PROFILE_TABLE_SIZE - 1);
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes allocated", local_allocated_mem);
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes freed", local_freed_mem);
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes in use", local_allocated_mem - local_freed_mem);
-#endif /* ENABLE_MEM_PROFILE */
-}
-
-void
-g_mem_check (gpointer mem)
-{
-#ifdef ENABLE_MEM_CHECK
-  gulong *t;
-  
-  t = (gulong*) ((guchar*) mem - SIZEOF_LONG - SIZEOF_LONG);
-  
-  if (*t >= 1)
-    g_warning ("mem: 0x%08lx has been freed %lu times\n", (gulong) mem, *t);
-#endif /* ENABLE_MEM_CHECK */
-}
-
-GMemChunk*
-g_mem_chunk_new (gchar  *name,
-		 gint    atom_size,
-		 gulong  area_size,
-		 gint    type)
-{
-  GRealMemChunk *mem_chunk;
-  gulong rarea_size;
-
-  g_return_val_if_fail (atom_size > 0, NULL);
-  g_return_val_if_fail (area_size >= atom_size, NULL);
-
-  ENTER_MEM_CHUNK_ROUTINE();
-
-  area_size = (area_size + atom_size - 1) / atom_size;
-  area_size *= atom_size;
-
-  mem_chunk = g_new (struct _GRealMemChunk, 1);
-  mem_chunk->name = name;
-  mem_chunk->type = type;
-  mem_chunk->num_mem_areas = 0;
-  mem_chunk->num_marked_areas = 0;
-  mem_chunk->mem_area = NULL;
-  mem_chunk->free_mem_area = NULL;
-  mem_chunk->free_atoms = NULL;
-  mem_chunk->mem_tree = NULL;
-  mem_chunk->mem_areas = NULL;
-  mem_chunk->atom_size = atom_size;
-  
-  if (mem_chunk->type == G_ALLOC_AND_FREE)
-    mem_chunk->mem_tree = g_tree_new ((GCompareFunc) g_mem_chunk_area_compare);
-  
-  if (mem_chunk->atom_size % MEM_ALIGN)
-    mem_chunk->atom_size += MEM_ALIGN - (mem_chunk->atom_size % MEM_ALIGN);
-
-  rarea_size = area_size + sizeof (GMemArea) - MEM_AREA_SIZE;
-  rarea_size = g_mem_chunk_compute_size (rarea_size, atom_size + sizeof (GMemArea) - MEM_AREA_SIZE);
-  mem_chunk->area_size = rarea_size - (sizeof (GMemArea) - MEM_AREA_SIZE);
-
-  g_mutex_lock (mem_chunks_lock);
-  mem_chunk->next = mem_chunks;
-  mem_chunk->prev = NULL;
-  if (mem_chunks)
-    mem_chunks->prev = mem_chunk;
-  mem_chunks = mem_chunk;
-  g_mutex_unlock (mem_chunks_lock);
-
-  LEAVE_MEM_CHUNK_ROUTINE();
-
-  return ((GMemChunk*) mem_chunk);
-}
-
-void
-g_mem_chunk_destroy (GMemChunk *mem_chunk)
-{
-  GRealMemChunk *rmem_chunk;
-  GMemArea *mem_areas;
-  GMemArea *temp_area;
-  
-  g_return_if_fail (mem_chunk != NULL);
-
-  ENTER_MEM_CHUNK_ROUTINE();
-
-  rmem_chunk = (GRealMemChunk*) mem_chunk;
-  
-  mem_areas = rmem_chunk->mem_areas;
-  while (mem_areas)
-    {
-      temp_area = mem_areas;
-      mem_areas = mem_areas->next;
-      g_free (temp_area);
-    }
-  
-  if (rmem_chunk->next)
-    rmem_chunk->next->prev = rmem_chunk->prev;
-  if (rmem_chunk->prev)
-    rmem_chunk->prev->next = rmem_chunk->next;
-  
-  g_mutex_lock (mem_chunks_lock);
-  if (rmem_chunk == mem_chunks)
-    mem_chunks = mem_chunks->next;
-  g_mutex_unlock (mem_chunks_lock);
-  
-  if (rmem_chunk->type == G_ALLOC_AND_FREE)
-    g_tree_destroy (rmem_chunk->mem_tree);
-  
-  g_free (rmem_chunk);
-
-  LEAVE_MEM_CHUNK_ROUTINE();
-}
-
-gpointer
-g_mem_chunk_alloc (GMemChunk *mem_chunk)
-{
-  GRealMemChunk *rmem_chunk;
-  GMemArea *temp_area;
-  gpointer mem;
-
-  ENTER_MEM_CHUNK_ROUTINE();
-
-  g_return_val_if_fail (mem_chunk != NULL, NULL);
-  
-  rmem_chunk = (GRealMemChunk*) mem_chunk;
-  
-  while (rmem_chunk->free_atoms)
-    {
-      /* Get the first piece of memory on the "free_atoms" list.
-       * We can go ahead and destroy the list node we used to keep
-       *  track of it with and to update the "free_atoms" list to
-       *  point to its next element.
-       */
-      mem = rmem_chunk->free_atoms;
-      rmem_chunk->free_atoms = rmem_chunk->free_atoms->next;
-      
-      /* Determine which area this piece of memory is allocated from */
-      temp_area = g_tree_search (rmem_chunk->mem_tree,
-				 (GSearchFunc) g_mem_chunk_area_search,
-				 mem);
-      
-      /* If the area has been marked, then it is being destroyed.
-       *  (ie marked to be destroyed).
-       * We check to see if all of the segments on the free list that
-       *  reference this area have been removed. This occurs when
-       *  the ammount of free memory is less than the allocatable size.
-       * If the chunk should be freed, then we place it in the "free_mem_area".
-       * This is so we make sure not to free the mem area here and then
-       *  allocate it again a few lines down.
-       * If we don't allocate a chunk a few lines down then the "free_mem_area"
-       *  will be freed.
-       * If there is already a "free_mem_area" then we'll just free this mem area.
-       */
-      if (temp_area->mark)
-        {
-          /* Update the "free" memory available in that area */
-          temp_area->free += rmem_chunk->atom_size;
-	  
-          if (temp_area->free == rmem_chunk->area_size)
-            {
-              if (temp_area == rmem_chunk->mem_area)
-                rmem_chunk->mem_area = NULL;
-	      
-              if (rmem_chunk->free_mem_area)
-                {
-                  rmem_chunk->num_mem_areas -= 1;
-		  
-                  if (temp_area->next)
-                    temp_area->next->prev = temp_area->prev;
-                  if (temp_area->prev)
-                    temp_area->prev->next = temp_area->next;
-                  if (temp_area == rmem_chunk->mem_areas)
-                    rmem_chunk->mem_areas = rmem_chunk->mem_areas->next;
-		  
-		  if (rmem_chunk->type == G_ALLOC_AND_FREE)
-		    g_tree_remove (rmem_chunk->mem_tree, temp_area);
-                  g_free (temp_area);
-                }
-              else
-                rmem_chunk->free_mem_area = temp_area;
-	      
-	      rmem_chunk->num_marked_areas -= 1;
-	    }
-	}
-      else
-        {
-          /* Update the number of allocated atoms count.
-	   */
-          temp_area->allocated += 1;
-	  
-          /* The area wasn't marked...return the memory
-	   */
-	  goto outa_here;
-        }
-    }
-  
-  /* If there isn't a current mem area or the current mem area is out of space
-   *  then allocate a new mem area. We'll first check and see if we can use
-   *  the "free_mem_area". Otherwise we'll just malloc the mem area.
-   */
-  if ((!rmem_chunk->mem_area) ||
-      ((rmem_chunk->mem_area->index + rmem_chunk->atom_size) > rmem_chunk->area_size))
-    {
-      if (rmem_chunk->free_mem_area)
-        {
-          rmem_chunk->mem_area = rmem_chunk->free_mem_area;
-	  rmem_chunk->free_mem_area = NULL;
-        }
-      else
-        {
-	  rmem_chunk->mem_area = (GMemArea*) g_malloc (sizeof (GMemArea) -
-						       MEM_AREA_SIZE +
-						       rmem_chunk->area_size);
-	  
-	  rmem_chunk->num_mem_areas += 1;
-	  rmem_chunk->mem_area->next = rmem_chunk->mem_areas;
-	  rmem_chunk->mem_area->prev = NULL;
-	  
-	  if (rmem_chunk->mem_areas)
-	    rmem_chunk->mem_areas->prev = rmem_chunk->mem_area;
-	  rmem_chunk->mem_areas = rmem_chunk->mem_area;
-	  
-	  if (rmem_chunk->type == G_ALLOC_AND_FREE)
-	    g_tree_insert (rmem_chunk->mem_tree, rmem_chunk->mem_area, rmem_chunk->mem_area);
-        }
-      
-      rmem_chunk->mem_area->index = 0;
-      rmem_chunk->mem_area->free = rmem_chunk->area_size;
-      rmem_chunk->mem_area->allocated = 0;
-      rmem_chunk->mem_area->mark = 0;
-    }
-  
-  /* Get the memory and modify the state variables appropriately.
-   */
-  mem = (gpointer) &rmem_chunk->mem_area->mem[rmem_chunk->mem_area->index];
-  rmem_chunk->mem_area->index += rmem_chunk->atom_size;
-  rmem_chunk->mem_area->free -= rmem_chunk->atom_size;
-  rmem_chunk->mem_area->allocated += 1;
-
-outa_here:
-
-  LEAVE_MEM_CHUNK_ROUTINE();
-
-  return mem;
-}
-
-gpointer
-g_mem_chunk_alloc0 (GMemChunk *mem_chunk)
-{
-  gpointer mem;
-
-  mem = g_mem_chunk_alloc (mem_chunk);
-  if (mem)
-    {
-      GRealMemChunk *rmem_chunk = (GRealMemChunk*) mem_chunk;
-
-      memset (mem, 0, rmem_chunk->atom_size);
-    }
-
-  return mem;
-}
-
-void
-g_mem_chunk_free (GMemChunk *mem_chunk,
-		  gpointer   mem)
-{
-  GRealMemChunk *rmem_chunk;
-  GMemArea *temp_area;
-  GFreeAtom *free_atom;
-  
-  g_return_if_fail (mem_chunk != NULL);
-  g_return_if_fail (mem != NULL);
-
-  ENTER_MEM_CHUNK_ROUTINE();
-
-  rmem_chunk = (GRealMemChunk*) mem_chunk;
-  
-  /* Don't do anything if this is an ALLOC_ONLY chunk
-   */
-  if (rmem_chunk->type == G_ALLOC_AND_FREE)
-    {
-      /* Place the memory on the "free_atoms" list
-       */
-      free_atom = (GFreeAtom*) mem;
-      free_atom->next = rmem_chunk->free_atoms;
-      rmem_chunk->free_atoms = free_atom;
-      
-      temp_area = g_tree_search (rmem_chunk->mem_tree,
-				 (GSearchFunc) g_mem_chunk_area_search,
-				 mem);
-      
-      temp_area->allocated -= 1;
-      
-      if (temp_area->allocated == 0)
-	{
-	  temp_area->mark = 1;
-	  rmem_chunk->num_marked_areas += 1;
-	}
-    }
-
-  LEAVE_MEM_CHUNK_ROUTINE();
-}
-
-/* This doesn't free the free_area if there is one */
-void
-g_mem_chunk_clean (GMemChunk *mem_chunk)
-{
-  GRealMemChunk *rmem_chunk;
-  GMemArea *mem_area;
-  GFreeAtom *prev_free_atom;
-  GFreeAtom *temp_free_atom;
-  gpointer mem;
-  
-  g_return_if_fail (mem_chunk != NULL);
-  
-  rmem_chunk = (GRealMemChunk*) mem_chunk;
-  
-  if (rmem_chunk->type == G_ALLOC_AND_FREE)
-    {
-      prev_free_atom = NULL;
-      temp_free_atom = rmem_chunk->free_atoms;
-      
-      while (temp_free_atom)
-	{
-	  mem = (gpointer) temp_free_atom;
-	  
-	  mem_area = g_tree_search (rmem_chunk->mem_tree,
-				    (GSearchFunc) g_mem_chunk_area_search,
-				    mem);
-	  
-          /* If this mem area is marked for destruction then delete the
-	   *  area and list node and decrement the free mem.
-           */
-	  if (mem_area->mark)
-	    {
-	      if (prev_free_atom)
-		prev_free_atom->next = temp_free_atom->next;
-	      else
-		rmem_chunk->free_atoms = temp_free_atom->next;
-	      temp_free_atom = temp_free_atom->next;
-	      
-	      mem_area->free += rmem_chunk->atom_size;
-	      if (mem_area->free == rmem_chunk->area_size)
-		{
-		  rmem_chunk->num_mem_areas -= 1;
-		  rmem_chunk->num_marked_areas -= 1;
-		  
-		  if (mem_area->next)
-		    mem_area->next->prev = mem_area->prev;
-		  if (mem_area->prev)
-		    mem_area->prev->next = mem_area->next;
-		  if (mem_area == rmem_chunk->mem_areas)
-		    rmem_chunk->mem_areas = rmem_chunk->mem_areas->next;
-		  if (mem_area == rmem_chunk->mem_area)
-		    rmem_chunk->mem_area = NULL;
-		  
-		  if (rmem_chunk->type == G_ALLOC_AND_FREE)
-		    g_tree_remove (rmem_chunk->mem_tree, mem_area);
-		  g_free (mem_area);
-		}
-	    }
-	  else
-	    {
-	      prev_free_atom = temp_free_atom;
-	      temp_free_atom = temp_free_atom->next;
-	    }
-	}
-    }
-}
-
-void
-g_mem_chunk_reset (GMemChunk *mem_chunk)
-{
-  GRealMemChunk *rmem_chunk;
-  GMemArea *mem_areas;
-  GMemArea *temp_area;
-  
-  g_return_if_fail (mem_chunk != NULL);
-  
-  rmem_chunk = (GRealMemChunk*) mem_chunk;
-  
-  mem_areas = rmem_chunk->mem_areas;
-  rmem_chunk->num_mem_areas = 0;
-  rmem_chunk->mem_areas = NULL;
-  rmem_chunk->mem_area = NULL;
-  
-  while (mem_areas)
-    {
-      temp_area = mem_areas;
-      mem_areas = mem_areas->next;
-      g_free (temp_area);
-    }
-  
-  rmem_chunk->free_atoms = NULL;
-  
-  if (rmem_chunk->mem_tree)
-    g_tree_destroy (rmem_chunk->mem_tree);
-  rmem_chunk->mem_tree = g_tree_new ((GCompareFunc) g_mem_chunk_area_compare);
-}
-
-void
-g_mem_chunk_print (GMemChunk *mem_chunk)
-{
-  GRealMemChunk *rmem_chunk;
-  GMemArea *mem_areas;
-  gulong mem;
-  
-  g_return_if_fail (mem_chunk != NULL);
-  
-  rmem_chunk = (GRealMemChunk*) mem_chunk;
-  mem_areas = rmem_chunk->mem_areas;
-  mem = 0;
-  
-  while (mem_areas)
-    {
-      mem += rmem_chunk->area_size - mem_areas->free;
-      mem_areas = mem_areas->next;
-    }
-  
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
-	 "%s: %ld bytes using %d mem areas",
-	 rmem_chunk->name, mem, rmem_chunk->num_mem_areas);
-}
-
-void
-g_mem_chunk_info (void)
-{
-  GRealMemChunk *mem_chunk;
-  gint count;
-  
-  count = 0;
-  g_mutex_lock (mem_chunks_lock);
-  mem_chunk = mem_chunks;
-  while (mem_chunk)
-    {
-      count += 1;
-      mem_chunk = mem_chunk->next;
-    }
-  g_mutex_unlock (mem_chunks_lock);
-  
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%d mem chunks", count);
-  
-  g_mutex_lock (mem_chunks_lock);
-  mem_chunk = mem_chunks;
-  g_mutex_unlock (mem_chunks_lock);
-
-  while (mem_chunk)
-    {
-      g_mem_chunk_print ((GMemChunk*) mem_chunk);
-      mem_chunk = mem_chunk->next;
-    }  
-}
-
-void
-g_blow_chunks (void)
-{
-  GRealMemChunk *mem_chunk;
-  
-  g_mutex_lock (mem_chunks_lock);
-  mem_chunk = mem_chunks;
-  g_mutex_unlock (mem_chunks_lock);
-  while (mem_chunk)
-    {
-      g_mem_chunk_clean ((GMemChunk*) mem_chunk);
-      mem_chunk = mem_chunk->next;
-    }
-}
-
-
-static gulong
-g_mem_chunk_compute_size (gulong size,
-			  gulong min_size)
-{
-  gulong power_of_2;
-  gulong lower, upper;
-  
-  power_of_2 = 16;
-  while (power_of_2 < size)
-    power_of_2 <<= 1;
-  
-  lower = power_of_2 >> 1;
-  upper = power_of_2;
-  
-  if (size - lower < upper - size && lower >= min_size)
-    return lower;
-  else
-    return upper;
-}
-
-static gint
-g_mem_chunk_area_compare (GMemArea *a,
-			  GMemArea *b)
-{
-  if (a->mem > b->mem)
-	return 1;
-  else if (a->mem < b->mem)
-	return -1;
-  return 0;
-}
-
-static gint
-g_mem_chunk_area_search (GMemArea *a,
-			 gchar    *addr)
-{
-  if (a->mem <= addr)
-    {
-      if (addr < &a->mem[a->index])
-	return 0;
-      return 1;
-    }
-  return -1;
-}
-
-/* generic allocators
- */
-struct _GAllocator /* from gmem.c */
-{
-  gchar		*name;
-  guint16	 n_preallocs;
-  guint		 is_unused : 1;
-  guint		 type : 4;
-  GAllocator	*last;
-  GMemChunk	*mem_chunk;
-  gpointer	 dummy; /* implementation specific */
-};
-
-GAllocator*
-g_allocator_new (const gchar *name,
-		 guint        n_preallocs)
-{
-  GAllocator *allocator;
-
-  g_return_val_if_fail (name != NULL, NULL);
-
-  allocator = g_new0 (GAllocator, 1);
-  allocator->name = g_strdup (name);
-  allocator->n_preallocs = CLAMP (n_preallocs, 1, 65535);
-  allocator->is_unused = TRUE;
-  allocator->type = 0;
-  allocator->last = NULL;
-  allocator->mem_chunk = NULL;
-  allocator->dummy = NULL;
-
-  return allocator;
-}
-
-void
-g_allocator_free (GAllocator *allocator)
-{
-  g_return_if_fail (allocator != NULL);
-  g_return_if_fail (allocator->is_unused == TRUE);
-
-  g_free (allocator->name);
-  if (allocator->mem_chunk)
-    g_mem_chunk_destroy (allocator->mem_chunk);
-
-  g_free (allocator);
-}
-
-void
-g_mem_init (void)
-{
-  mem_chunks_lock = g_mutex_new();
-#ifdef ENABLE_MEM_PROFILE
-  mem_profile_lock = g_mutex_new();
-  allocating_for_mem_chunk = g_private_new(NULL);
-#endif
-}
diff --git a/glib/gmessages.c b/glib/gmessages.c
deleted file mode 100644
index fe569b4..0000000
--- a/glib/gmessages.c
+++ /dev/null
@@ -1,754 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef NATIVE_WIN32
-#define STRICT
-#include <windows.h>
-
-/* Just use stdio. If we're out of memory, we're hosed anyway. */
-#undef write
-
-static inline int
-write (FILE       *fd,
-       const char *buf,
-       int         len)
-{
-  fwrite (buf, len, 1, fd);
-
-  return len;
-}
-
-static void
-ensure_stdout_valid (void)
-{
-  HANDLE handle;
-
-  handle = GetStdHandle (STD_OUTPUT_HANDLE);
-  
-  if (handle == INVALID_HANDLE_VALUE)
-    {
-      AllocConsole ();
-      freopen ("CONOUT$", "w", stdout);
-    }
-}
-#else
-#define ensure_stdout_valid()	/* Define as empty */
-#endif
-	
-
-/* --- structures --- */
-typedef struct _GLogDomain	GLogDomain;
-typedef struct _GLogHandler	GLogHandler;
-struct _GLogDomain
-{
-  gchar		*log_domain;
-  GLogLevelFlags fatal_mask;
-  GLogHandler	*handlers;
-  GLogDomain	*next;
-};
-struct _GLogHandler
-{
-  guint		 id;
-  GLogLevelFlags log_level;
-  GLogFunc	 log_func;
-  gpointer	 data;
-  GLogHandler	*next;
-};
-
-
-/* --- variables --- */
-
-static GMutex* g_messages_lock = NULL;
-
-const gchar	     *g_log_domain_glib = "GLib";
-static GLogDomain    *g_log_domains = NULL;
-static GLogLevelFlags g_log_always_fatal = G_LOG_FATAL_MASK;
-static GPrintFunc     glib_print_func = NULL;
-static GPrintFunc     glib_printerr_func = NULL;
-static GErrorFunc     glib_error_func = NULL;
-static GWarningFunc   glib_warning_func = NULL;
-static GPrintFunc     glib_message_func = NULL;
-
-static GPrivate* g_log_depth = NULL;
-
-
-/* --- functions --- */
-static inline GLogDomain*
-g_log_find_domain (const gchar	  *log_domain)
-{
-  register GLogDomain *domain;
-  
-  g_mutex_lock (g_messages_lock);
-  domain = g_log_domains;
-  while (domain)
-    {
-      if (strcmp (domain->log_domain, log_domain) == 0)
-	{
-	  g_mutex_unlock (g_messages_lock);
-	  return domain;
-	}
-      domain = domain->next;
-    }
-  g_mutex_unlock (g_messages_lock);
-  return NULL;
-}
-
-static inline GLogDomain*
-g_log_domain_new (const gchar *log_domain)
-{
-  register GLogDomain *domain;
-
-  domain = g_new (GLogDomain, 1);
-  domain->log_domain = g_strdup (log_domain);
-  domain->fatal_mask = G_LOG_FATAL_MASK;
-  domain->handlers = NULL;
-  
-  g_mutex_lock (g_messages_lock);
-  domain->next = g_log_domains;
-  g_log_domains = domain;
-  g_mutex_unlock (g_messages_lock);
-  
-  return domain;
-}
-
-static inline void
-g_log_domain_check_free (GLogDomain *domain)
-{
-  if (domain->fatal_mask == G_LOG_FATAL_MASK &&
-      domain->handlers == NULL)
-    {
-      register GLogDomain *last, *work;
-      
-      last = NULL;  
-
-      g_mutex_lock (g_messages_lock);
-      work = g_log_domains;
-      while (work)
-	{
-	  if (work == domain)
-	    {
-	      if (last)
-		last->next = domain->next;
-	      else
-		g_log_domains = domain->next;
-	      g_free (domain->log_domain);
-	      g_free (domain);
-	      break;
-	    }
-	  work = work->next;
-	}  
-      g_mutex_unlock (g_messages_lock);
-    }
-}
-
-static inline GLogFunc
-g_log_domain_get_handler (GLogDomain	*domain,
-			  GLogLevelFlags log_level,
-			  gpointer	*data)
-{
-  if (domain && log_level)
-    {
-      register GLogHandler *handler;
-      
-      handler = domain->handlers;
-      while (handler)
-	{
-	  if ((handler->log_level & log_level) == log_level)
-	    {
-	      *data = handler->data;
-	      return handler->log_func;
-	    }
-	  handler = handler->next;
-	}
-    }
-  return g_log_default_handler;
-}
-
-GLogLevelFlags
-g_log_set_always_fatal (GLogLevelFlags fatal_mask)
-{
-  GLogLevelFlags old_mask;
-
-  /* restrict the global mask to levels that are known to glib */
-  fatal_mask &= (1 << G_LOG_LEVEL_USER_SHIFT) - 1;
-  /* force errors to be fatal */
-  fatal_mask |= G_LOG_LEVEL_ERROR;
-  /* remove bogus flag */
-  fatal_mask &= ~G_LOG_FLAG_FATAL;
-
-  g_mutex_lock (g_messages_lock);
-  old_mask = g_log_always_fatal;
-  g_log_always_fatal = fatal_mask;
-  g_mutex_unlock (g_messages_lock);
-
-  return old_mask;
-}
-
-GLogLevelFlags
-g_log_set_fatal_mask (const gchar    *log_domain,
-		      GLogLevelFlags  fatal_mask)
-{
-  GLogLevelFlags old_flags;
-  register GLogDomain *domain;
-  
-  if (!log_domain)
-    log_domain = "";
-  
-  /* force errors to be fatal */
-  fatal_mask |= G_LOG_LEVEL_ERROR;
-  /* remove bogus flag */
-  fatal_mask &= ~G_LOG_FLAG_FATAL;
-  
-  domain = g_log_find_domain (log_domain);
-  if (!domain)
-    domain = g_log_domain_new (log_domain);
-  old_flags = domain->fatal_mask;
-  
-  domain->fatal_mask = fatal_mask;
-  g_log_domain_check_free (domain);
-  
-  return old_flags;
-}
-
-guint
-g_log_set_handler (const gchar	  *log_domain,
-		   GLogLevelFlags  log_levels,
-		   GLogFunc	   log_func,
-		   gpointer	   user_data)
-{
-  register GLogDomain *domain;
-  register GLogHandler *handler;
-  static guint handler_id = 0;
-  
-  g_return_val_if_fail ((log_levels & G_LOG_LEVEL_MASK) != 0, 0);
-  g_return_val_if_fail (log_func != NULL, 0);
-  
-  if (!log_domain)
-    log_domain = "";
-  
-  domain = g_log_find_domain (log_domain);
-  if (!domain)
-    domain = g_log_domain_new (log_domain);
-  
-  handler = g_new (GLogHandler, 1);
-  g_mutex_lock (g_messages_lock);
-  handler->id = ++handler_id;
-  g_mutex_unlock (g_messages_lock);
-  handler->log_level = log_levels;
-  handler->log_func = log_func;
-  handler->data = user_data;
-  handler->next = domain->handlers;
-  domain->handlers = handler;
-  
-  return handler_id;
-}
-
-void
-g_log_remove_handler (const gchar    *log_domain,
-		      guint	      handler_id)
-{
-  register GLogDomain *domain;
-  
-  g_return_if_fail (handler_id > 0);
-  
-  if (!log_domain)
-    log_domain = "";
-  
-  domain = g_log_find_domain (log_domain);
-  if (domain)
-    {
-      register GLogHandler *work, *last;
-      
-      last = NULL;
-      work = domain->handlers;
-      while (work)
-	{
-	  if (work->id == handler_id)
-	    {
-	      if (last)
-		last->next = work->next;
-	      else
-		domain->handlers = work->next;
-	      g_free (work);
-	      g_log_domain_check_free (domain);
-	      return;
-	    }
-	  work = work->next;
-	}
-    }
-  g_warning ("g_log_remove_handler(): could not find handler with id `%d' for domain \"%s\"",
-	     handler_id,
-	     log_domain);
-}
-
-void
-g_logv (const gchar    *log_domain,
-	GLogLevelFlags	log_level,
-	const gchar    *format,
-	va_list	        args1)
-{
-  va_list args2;
-  gchar buffer[1025];
-  register gint i;
-  
-  log_level &= G_LOG_LEVEL_MASK;
-  if (!log_level)
-    return;
-  
-  /* we use a stack buffer of fixed size, because we might get called
-   * recursively.
-   */
-  G_VA_COPY (args2, args1);
-  if (g_printf_string_upper_bound (format, args1) < 1024)
-    vsprintf (buffer, format, args2);
-  else
-    {
-      /* since we might be out of memory, we can't use g_vsnprintf(). */
-#ifdef  HAVE_VSNPRINTF
-      vsnprintf (buffer, 1024, format, args2);
-#else	/* !HAVE_VSNPRINTF */
-      /* we are out of luck here */
-      strncpy (buffer, format, 1024);
-#endif	/* !HAVE_VSNPRINTF */
-      buffer[1024] = 0;
-    }
-  va_end (args2);
-  
-  for (i = g_bit_nth_msf (log_level, -1); i >= 0; i = g_bit_nth_msf (log_level, i))
-    {
-      register GLogLevelFlags test_level;
-      
-      test_level = 1 << i;
-      if (log_level & test_level)
-	{
-	  guint depth = GPOINTER_TO_UINT (g_private_get (g_log_depth));
-	  GLogDomain *domain;
-	  GLogFunc log_func;
-	  gpointer data = NULL;
-	  
-	  domain = g_log_find_domain (log_domain ? log_domain : "");
-	  
-	  if (depth)
-	    test_level |= G_LOG_FLAG_RECURSION;
-	  
-	  depth++;
-	  g_private_set (g_log_depth, GUINT_TO_POINTER (depth));
-
-	  g_mutex_lock (g_messages_lock);
-	  if ((((domain ? domain->fatal_mask : G_LOG_FATAL_MASK) | 
-		g_log_always_fatal) & test_level) != 0)
-	    test_level |= G_LOG_FLAG_FATAL;  
-	  g_mutex_unlock (g_messages_lock);
-
-	  log_func = g_log_domain_get_handler (domain, test_level, &data);
-	  log_func (log_domain, test_level, buffer, data);
-	  
-	  /* *domain can be cluttered now */
-	  
-	  if (test_level & G_LOG_FLAG_FATAL)
-	    abort ();
-	  
-	  depth--;
-	  g_private_set (g_log_depth, GUINT_TO_POINTER (depth));
-	}
-    }
-}
-
-void
-g_log (const gchar    *log_domain,
-       GLogLevelFlags  log_level,
-       const gchar    *format,
-       ...)
-{
-  va_list args;
-  
-  va_start (args, format);
-  g_logv (log_domain, log_level, format, args);
-  va_end (args);
-}
-
-void
-g_log_default_handler (const gchar    *log_domain,
-		       GLogLevelFlags  log_level,
-		       const gchar    *message,
-		       gpointer	       unused_data)
-{
-#ifdef NATIVE_WIN32
-  FILE *fd;
-#else
-  gint fd;
-#endif
-  gboolean in_recursion;
-  gboolean is_fatal;  
-  GErrorFunc     local_glib_error_func;
-  GWarningFunc   local_glib_warning_func;
-  GPrintFunc     local_glib_message_func;
-
-  in_recursion = (log_level & G_LOG_FLAG_RECURSION) != 0;
-  is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0;
-  log_level &= G_LOG_LEVEL_MASK;
-  
-  if (!message)
-    message = "g_log_default_handler(): (NULL) message";
-  
-#ifdef NATIVE_WIN32
-  /* Use just stdout as stderr is hard to get redirected from the
-   * DOS prompt.
-   */
-  fd = stdout;
-#else
-  fd = (log_level >= G_LOG_LEVEL_MESSAGE) ? 1 : 2;
-#endif
-  
-  g_mutex_lock (g_messages_lock);
-  local_glib_error_func = glib_error_func;
-  local_glib_warning_func = glib_warning_func;
-  local_glib_message_func = glib_message_func;
-  g_mutex_unlock (g_messages_lock);
-
-  switch (log_level)
-    {
-    case G_LOG_LEVEL_ERROR:
-      if (!log_domain && local_glib_error_func)
-	{
-	  /* compatibility code */
-	  local_glib_error_func (message);  
-	  return;
-	}
-      /* use write(2) for output, in case we are out of memeory */
-      ensure_stdout_valid ();
-      if (log_domain)
-	{
-	  write (fd, "\n", 1);
-	  write (fd, log_domain, strlen (log_domain));
-	  write (fd, "-", 1);
-	}
-      else
-	write (fd, "\n** ", 4);
-      if (in_recursion)
-	write (fd, "ERROR (recursed) **: ", 21);
-      else
-	write (fd, "ERROR **: ", 10);
-      write (fd, message, strlen(message));
-      if (is_fatal)
-	write (fd, "\naborting...\n", 13);
-      else
-	write (fd, "\n", 1);
-      break;
-    case G_LOG_LEVEL_CRITICAL:
-      ensure_stdout_valid ();
-      if (log_domain)
-	{
-	  write (fd, "\n", 1);
-	  write (fd, log_domain, strlen (log_domain));
-	  write (fd, "-", 1);
-	}
-      else
-	write (fd, "\n** ", 4);
-      if (in_recursion)
-	write (fd, "CRITICAL (recursed) **: ", 24);
-      else
-	write (fd, "CRITICAL **: ", 13);
-      write (fd, message, strlen(message));
-      if (is_fatal)
-	write (fd, "\naborting...\n", 13);
-      else
-	write (fd, "\n", 1);
-      break;
-    case G_LOG_LEVEL_WARNING:
-      if (!log_domain && local_glib_warning_func)
-	{
-	  /* compatibility code */
-	  local_glib_warning_func (message);
-	  return;
-	}
-      ensure_stdout_valid ();
-      if (log_domain)
-	{
-	  write (fd, "\n", 1);
-	  write (fd, log_domain, strlen (log_domain));
-	  write (fd, "-", 1);
-	}
-      else
-	write (fd, "\n** ", 4);
-      if (in_recursion)
-	write (fd, "WARNING (recursed) **: ", 23);
-      else
-	write (fd, "WARNING **: ", 12);
-      write (fd, message, strlen(message));
-      if (is_fatal)
-	write (fd, "\naborting...\n", 13);
-      else
-	write (fd, "\n", 1);
-      break;
-    case G_LOG_LEVEL_MESSAGE:
-      if (!log_domain && local_glib_message_func)
-	{
-	  /* compatibility code */
-	  local_glib_message_func (message);
-	  return;
-	}
-      ensure_stdout_valid ();
-      if (log_domain)
-	{
-	  write (fd, log_domain, strlen (log_domain));
-	  write (fd, "-", 1);
-	}
-      if (in_recursion)
-	write (fd, "Message (recursed): ", 20);
-      else
-	write (fd, "Message: ", 9);
-      write (fd, message, strlen(message));
-      if (is_fatal)
-	write (fd, "\naborting...\n", 13);
-      else
-	write (fd, "\n", 1);
-      break;
-    case G_LOG_LEVEL_INFO:
-      ensure_stdout_valid ();
-      if (log_domain)
-	{
-	  write (fd, log_domain, strlen (log_domain));
-	  write (fd, "-", 1);
-	}
-      if (in_recursion)
-	write (fd, "INFO (recursed): ", 17);
-      else
-	write (fd, "INFO: ", 6);
-      write (fd, message, strlen(message));
-      if (is_fatal)
-	write (fd, "\naborting...\n", 13);
-      else
-	write (fd, "\n", 1);
-      break;
-    case G_LOG_LEVEL_DEBUG:
-      ensure_stdout_valid ();
-      if (log_domain)
-	{
-	  write (fd, log_domain, strlen (log_domain));
-	  write (fd, "-", 1);
-	}
-      if (in_recursion)
-	write (fd, "DEBUG (recursed): ", 18);
-      else
-	write (fd, "DEBUG: ", 7);
-      write (fd, message, strlen(message));
-      if (is_fatal)
-	write (fd, "\naborting...\n", 13);
-      else
-	write (fd, "\n", 1);
-      break;
-    default:
-      /* we are used for a log level that is not defined by GLib itself,
-       * try to make the best out of it.
-       */
-      ensure_stdout_valid ();
-      if (log_domain)
-	{
-	  write (fd, log_domain, strlen (log_domain));
-	  if (in_recursion)
-	    write (fd, "-LOG (recursed:", 15);
-	  else
-	    write (fd, "-LOG (", 6);
-	}
-      else if (in_recursion)
-	write (fd, "LOG (recursed:", 14);
-      else
-	write (fd, "LOG (", 5);
-      if (log_level)
-	{
-	  gchar string[] = "0x00): ";
-	  gchar *p = string + 2;
-	  guint i;
-	  
-	  i = g_bit_nth_msf (log_level, -1);
-	  *p = i >> 4;
-	  p++;
-	  *p = '0' + (i & 0xf);
-	  if (*p > '9')
-	    *p += 'A' - '9' - 1;
-	  
-	  write (fd, string, 7);
-	}
-      else
-	write (fd, "): ", 3);
-      write (fd, message, strlen(message));
-      if (is_fatal)
-	write (fd, "\naborting...\n", 13);
-      else
-	write (fd, "\n", 1);
-      break;
-    }
-}
-
-GPrintFunc
-g_set_print_handler (GPrintFunc func)
-{
-  GPrintFunc old_print_func;
-  
-  g_mutex_lock (g_messages_lock);
-  old_print_func = glib_print_func;
-  glib_print_func = func;
-  g_mutex_unlock (g_messages_lock);
-  
-  return old_print_func;
-}
-
-void
-g_print (const gchar *format,
-	 ...)
-{
-  va_list args;
-  gchar *string;
-  GPrintFunc local_glib_print_func;
-  
-  g_return_if_fail (format != NULL);
-  
-  va_start (args, format);
-  string = g_strdup_vprintf (format, args);
-  va_end (args);
-  
-  g_mutex_lock (g_messages_lock);
-  local_glib_print_func = glib_print_func;
-  g_mutex_unlock (g_messages_lock);
-
-  if (local_glib_print_func)
-    local_glib_print_func (string);
-  else
-    {
-      ensure_stdout_valid ();
-      fputs (string, stdout);
-      fflush (stdout);
-    }
-  g_free (string);
-}
-
-GPrintFunc
-g_set_printerr_handler (GPrintFunc func)
-{
-  GPrintFunc old_printerr_func;
-  
-  g_mutex_lock (g_messages_lock);
-  old_printerr_func = glib_printerr_func;
-  glib_printerr_func = func;
-  g_mutex_unlock (g_messages_lock);
-  
-  return old_printerr_func;
-}
-
-void
-g_printerr (const gchar *format,
-	    ...)
-{
-  va_list args;
-  gchar *string;
-  GPrintFunc local_glib_printerr_func;
-  
-  g_return_if_fail (format != NULL);
-  
-  va_start (args, format);
-  string = g_strdup_vprintf (format, args);
-  va_end (args);
-  
-  g_mutex_lock (g_messages_lock);
-  local_glib_printerr_func = glib_printerr_func;
-  g_mutex_unlock (g_messages_lock);
-
-  if (local_glib_printerr_func)
-    local_glib_printerr_func (string);
-  else
-    {
-      fputs (string, stderr);
-      fflush (stderr);
-    }
-  g_free (string);
-}
-
-/* compatibility code */
-GErrorFunc
-g_set_error_handler (GErrorFunc func)
-{
-  GErrorFunc old_error_func;
-  
-  g_mutex_lock (g_messages_lock);
-  old_error_func = glib_error_func;
-  glib_error_func = func;
-  g_mutex_unlock (g_messages_lock);
- 
-  return old_error_func;
-}
-
-/* compatibility code */
-GWarningFunc
-g_set_warning_handler (GWarningFunc func)
-{
-  GWarningFunc old_warning_func;
-  
-  g_mutex_lock (g_messages_lock);
-  old_warning_func = glib_warning_func;
-  glib_warning_func = func;
-  g_mutex_unlock (g_messages_lock);
-  
-  return old_warning_func;
-}
-
-/* compatibility code */
-GPrintFunc
-g_set_message_handler (GPrintFunc func)
-{
-  GPrintFunc old_message_func;
-  
-  g_mutex_lock (g_messages_lock);
-  old_message_func = glib_message_func;
-  glib_message_func = func;
-  g_mutex_unlock (g_messages_lock);
-  
-  return old_message_func;
-}
-
-void
-g_messages_init (void)
-{
-  g_messages_lock = g_mutex_new();
-  g_log_depth = g_private_new(NULL);
-}
diff --git a/glib/gmodule/AUTHORS b/glib/gmodule/AUTHORS
deleted file mode 100644
index 3282695..0000000
--- a/glib/gmodule/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-Tim Janik <timj@gtk.org>
diff --git a/glib/gmodule/COPYING b/glib/gmodule/COPYING
deleted file mode 100644
index bf50f20..0000000
--- a/glib/gmodule/COPYING
+++ /dev/null
@@ -1,482 +0,0 @@
-		  GNU LIBRARY GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
-    		    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL.  It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it.  You can use it for
-your libraries, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library.  If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software.  To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-  Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs.  This
-license, the GNU Library General Public License, applies to certain
-designated libraries.  This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
-  The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it.  Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program.  However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
-  Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries.  We
-concluded that weaker conditions might promote sharing better.
-
-  However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves.  This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them.  (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.)  The hope is that this
-will lead to faster development of free libraries.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, while the latter only
-works together with the library.
-
-  Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
-		  GNU LIBRARY GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License").  Each licensee is
-addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    c) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    d) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the 
-    Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
-    Boston, MA  02111-1307  USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/glib/gmodule/ChangeLog b/glib/gmodule/ChangeLog
deleted file mode 100644
index 3f460a9..0000000
--- a/glib/gmodule/ChangeLog
+++ /dev/null
@@ -1,218 +0,0 @@
-Wed Mar  1 05:34:47 2000  Tim Janik  <timj@gtk.org>
-
-	* gmodule-beos.c (_g_module_symbol): do not return NULL symbols.
-
-	* gmodule-os2.c: removed NetBSD specific defines.
-	(_g_module_self): set an error message for unsupported behaviour.
-
-	* gmodule-beos.c: many coding style fixups.
-	(_g_module_open):
-	(_g_module_self):
-	(_g_module_close):
-	(_g_module_symbol): bunch of memory leaks plugged.
-
-	* gmodule-dl.c: make sure the error message returned from dlerror()
-	is always != NULL, by using a wrapper function fetch_dlerror(). based
-	on a patch to fix _g_module_symbol() for NetBSD from Scott Presnell
-	<srp@zgi.com>.
-
-	* gmodule-dld.c: minor indentation.
-
-	* gmodule-win32.c: minor cleanups.
-
-Sat Feb 19 19:43:29 2000  Tim Janik  <timj@gtk.org>
-
-	* testgmodule.c (main): added test to check that not yet bound symbols
-	in shared libraries of the main module are retrievable, from David Gero.
-
-	* gmodule-dld.c (_g_module_symbol): applied patch by David Gero
-	<dgero@nortelnetworks.com>, so lookups for module_self also return
-	library symbols on AIX.
-
-Sat May  1 10:24:02 PDT 1999 Manish Singh <yosh@gimp.org>
-
-	* Makefile.am: use -avoid-version and -module for test plugins
-
-Fri Apr 23 09:03:48 1999  Tim Janik  <timj@gtk.org>
-
-	* gmodule.c (g_module_symbol): removed inline variable assignment.
-	s/CHECK_ERROR/SUPPORT_OR_RETURN/ to make the code more self descriptive.
-
-Wed Feb 10 12:06:30 1999  Tim Janik  <timj@gtk.org>
-
-	* gmodule.c (CHECK_ERROR): be more descriptive on unsupported systems.
-
-Wed Feb 10 07:56:33 1999  Tim Janik  <timj@gtk.org>
-
-	* gmodule.c (g_module_error): fixed errernerous code wrt to thread
-	specific error string allocation handling.
-
-Thu Jan 21 12:40:11 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-        * gmodule-dl.c (_g_module_build_path):
-        Add braces to eliminate an ambiguous else warning.
-
-1999-01-16  Tor Lillqvist  <tml@iki.fi>
-
-	* gmodule-dl.c gmodule-dld.c: In
- 	_g_module_build_path, don't add the "lib" prefix and
- 	".so" or ".sl" suffix if already there.
-
-	* gmodule-win32.c: Likewise for the ".dll" suffix.
-
-1998-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gmodule.c: Made it MT safe, the g_module_error() is now thread
-	specific.
-
-Fri Nov 20 14:43:44 1998  Tim Janik  <timj@gtk.org>
-
-	* gmodule.c (_g_module_build_path): added empty default imlementation
-	so gmodule.so compiles on systems that are not yet supported, fix from
-	Erik Bagfors <bagfors@hpc2n.umu.se>.
-
-1998-11-13  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>
-
-	* Makefile.am (INCLUDES): The previous commit message is wrong
-	about the -I$(top_srcdir) being redundant. I put it back.
-
-Wed Nov 11 23:23:22 EST 1998 Jeff Garzik <jgarzik@pobox.com>
-
-        * Makefile.am : INCLUDES is the right way to add to CFLAGS, not 
-        DEFS.  Also there are bugs with '+=' in makefiles.
-        Got rid of DEFS line by moving G_LOG_DOMAIN setting into INCLUDES.
-        Removed redundant -I from INCLUDES.
-
-Tue Oct 27 04:00:11 1998  Tim Janik  <timj@gtk.org>
-
-	* testgmodule.c (main): changed the #ifdef WIN32 test to NATIVE_WIN32,
-	this needs to be more constistent throughout the code, do we go for
-	NATIVE_WIN32 or WIN32?
-
-	* gmodule.c (LibMain): special cased the #ifdef __LCC__ case for
-	NATIVE_WIN32, since lcc maybe used on other platforms as well.
-	* libgplugin_a.c (LibMain): 
-	* libgplugin_b.c (LibMain): 
-	likewise. not sure i like this special requirement for lcc in here.
-
-	* gmodule-dl.c (_g_module_build_path): 
-	feature empty "" directories and prepend the module name with "lib".
-
-	* gmodule-dld.c (_g_module_build_path): 
-	* gmodule-win32.c (_g_module_build_path): 
-	feature empty "" directories.
-	
-	* we need some more magic in the _g_module_build_path variants
-	so we don't append/prepend lib and .so, .sl or .dll for those names
-	that already contain it.
-
-	* applied patch from Tor Lillqvist for g_module_build_path() and
-	windows support.
-
-1998-10-20: Tor Lillqvist <tml@iki.fi>
-        
-	* gmodule/gmodule-win32.c:
-        New file.
-
-        * gmodule/gmodule.c gmodule/gmodule.h:
-        Added the funcion g_module_build_path that builds the path to
-        a module file, decorating the name according to the system's
-        conventions.  Added the Windows implementation.
-
-	* gmodule/libgplugin_a.c gmodule/libgplugin_b.c:
-        Added LibMain for LCC-Win32.
-
-        * gmodule/testgmodule.c:
-        Handle Windows dll names.
-
-1998-10-25  Raja R Harinath  <harinath@cs.umn.edu>
-
-	* gmodule.h: Remove `#pragma }'.
-	* gmoduleconf.h.in: Likewise.
-
-Wed Oct 21 19:58:27 1998  Tim Janik  <timj@gtk.org>
-
-	* gmodule.c (g_module_symbol): fixed a string pointer bug that could
- 	cause garbage error messages from g_module_symbol() for systems that
-	NEED_USCORE.
-
-Mon Sep 21 01:54:48 1998  Tim Janik  <timj@gtk.org>
-
-	* gmodule.h: 
-	* gmodule.c: renamed old _de_init functionality to _unload.
-	modules are now expected to export:
-	G_MODULE_EXPORT const gchar* g_module_check_init (GModule *module);
-	and
-	G_MODULE_EXPORT void g_module_unload (GModule *module);
-	returning a string other than NULL from g_module_check_init() will
- 	prevent the module from being loaded. a call to g_module_make_resident()
-	from g_module_unload() will prevent the module from being unloaded and
-	still make it resident.
-
-Thu Sep 17 06:34:22 1998  Tim Janik  <timj@gtk.org>
-
-	* gmodule.h: 
-	* gmodule.c: implemented g_module_make_resident() which can be
-	used to make modules resident.
-	fixed a buglet about the optional "g_module_de_init" function in
-	modules, which could get invoked twice on very obscure occasions.
-
-Tue Sep 15 14:57:30 1998  Owen Taylor  <otaylor@redhat.com>
-
-	* Makefile.am: Update to libtool-1.2b,
-	change library versioning scheme to drop LT_RELEASE
-	from the -l line, while keeping it in the soname.
-
-Thu Aug 20 07:08:16 1998  Tim Janik  <timj@gtk.org>
-
-	* gmodule.c: provide no operation implementation for the underlying
-	_g_module_* functions, so we at least compile on systems that have
- 	neither of G_MODULE_IMPL_DL or G_MODULE_IMPL_DLD.
-
-Mon Aug 17 03:41:52 1998  Tim Janik  <timj@gtk.org>
-
-	* gmodule.h:
-	* gmodule.c (g_module_open): changed the return type for the
-	GModuleCheckInit function to be a string, describing the error
-	condition.
-	(g_module_symbol): show the failing symbol on error messages.
-
-Fri Aug 14 02:24:39 1998  Tim Janik  <timj@gtk.org>
-
-	* Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
-	to "GModule" upon compilation. we currently have to add this definition
-	to the DEFS variable.
-	* testgmodule.c: we need an ugly #undef G_LOG_DOMAIN at the start
-	of this file currently, since automake doesn't support per target
-	_CFLAGS yet.
-
-Mon Aug 10 03:35:57 1998  Tim Janik  <timj@gtk.org>
-
-	* gmodule.c: minor changes to internal interface.
-	* gmodule-dl.c: 
-	* gmodule-dld.c: put some comments into the files, and provided
-	better error checking for shl_findsym(). whish i had a system to
- 	test this stuff on.
-
-Mon Aug 10 02:18:31 1998  Tim Janik  <timj@gtk.org>
-
-	* Makefile.am (lib_LTLIBRARIES): for now, skip the dependency on
-	-lglib for libgmodule-1.1.la, libgplugin_a.la and libgplugin_b.la
-	since this clashes with inter-library-dependencies for not installed
-	libraries. glib-config takes care of this for the usuall case, but
-	there needs to be a better way...
-
-Sun Aug  9 15:57:38 1998  Tim Janik  <timj@gtk.org>
-
-	* testgmodule.c: test program for GModule.
-	* libgplugin_a.c: 
-	* libgplugin_b.c: test plugins for testgmodule.c.
-
-	* gmodule.h: 
-	* gmodule.c: GModule library implementation, which is basically
-	a wrapper about system specifc dynamic loading facilities.
-	
-
-Sun Aug  9 10:31:05 1998  Tim Janik  <timj@gtk.org>
-
-	* ChangeLog start for gmodule.
diff --git a/glib/gmodule/Makefile.am b/glib/gmodule/Makefile.am
deleted file mode 100644
index e19e48d..0000000
--- a/glib/gmodule/Makefile.am
+++ /dev/null
@@ -1,65 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/gmodule \
-	-DG_LOG_DOMAIN=g_log_domain_gmodule @GLIB_DEBUG_FLAGS@
-
-EXTRA_DIST =	\
-		gmoduleconf.h.in \
-		gmodule.def	\
-		gmodule-dl.c	\
-		gmodule-dld.c	\
-		gmodule-win32.c	\
-		gmoduleconf.h.win32
-
-BUILT_SOURCES = gmoduleconf.h
-gmoduleconf.h:	gmoduleconf.h.in
-
-include_HEADERS = \
-		gmodule.h
-
-libglib = $(top_builddir)/libglib.la # -lglib
-
-lib_LTLIBRARIES = libgmodule.la libgplugin_a.la libgplugin_b.la
-
-libgmodule_la_SOURCES = gmodule.c
-libgmodule_la_LDFLAGS = \
-	@G_MODULE_LDFLAGS@ \
-	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-	-release $(LT_RELEASE) \
-	-export-dynamic
-
-libgmodule_la_LIBADD = @G_MODULE_LIBS@ # $(libglib)
-# we should really depend on $(libglib) for libgmodule.la, but libtool has a
-# problem with this ;(
-
-libgplugin_a_la_SOURCES = libgplugin_a.c
-libgplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module
-libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ # $(libglib)
-
-libgplugin_b_la_SOURCES = libgplugin_b.c
-libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module
-libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ # $(libglib)
-
-noinst_PROGRAMS = testgmodule
-testgmodule_LDFLAGS += @G_MODULE_LDFLAGS@
-testgmodule_LDADD = libgmodule.la $(libglib) @G_MODULE_LIBS@
-
-.PHONY: files release
-
-files:
-	@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
-	  echo $$p; \
-	done
-
-install-libLTLIBRARIES: libgmodule.la
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(libdir)
-	@list='libgmodule.la'; for p in $$list; do \
-	 if test -f $$p; then \
-	  echo "$(LIBTOOL)  --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
-	  $(LIBTOOL)  --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
-	 else :; fi; \
-	done
-
-release:
-	$(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`
diff --git a/glib/gmodule/Makefile.in b/glib/gmodule/Makefile.in
deleted file mode 100644
index bc42a70..0000000
--- a/glib/gmodule/Makefile.in
+++ /dev/null
@@ -1,420 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@
-ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@
-GLIB_BINARY_AGE = @GLIB_BINARY_AGE@
-GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@
-GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@
-GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@
-GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@
-GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@
-GLIB_VERSION = @GLIB_VERSION@
-G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@
-G_MODULE_IMPL = @G_MODULE_IMPL@
-G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@
-G_MODULE_LIBS = @G_MODULE_LIBS@
-G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@
-G_THREAD_CFLAGS = @G_THREAD_CFLAGS@
-G_THREAD_LIBS = @G_THREAD_LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_RELEASE = @LT_RELEASE@
-LT_REVISION = @LT_REVISION@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-
-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/gmodule 	-DG_LOG_DOMAIN=g_log_domain_gmodule @GLIB_DEBUG_FLAGS@
-
-
-EXTRA_DIST =  		gmoduleconf.h.in 		gmodule.def			gmodule-dl.c			gmodule-dld.c			gmodule-win32.c			gmoduleconf.h.win32
-
-
-BUILT_SOURCES = gmoduleconf.h
-
-include_HEADERS =  		gmodule.h
-
-
-libglib = $(top_builddir)/libglib.la # -lglib
-
-lib_LTLIBRARIES = libgmodule.la libgplugin_a.la libgplugin_b.la
-
-libgmodule_la_SOURCES = gmodule.c
-libgmodule_la_LDFLAGS =  	@G_MODULE_LDFLAGS@ 	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) 	-release $(LT_RELEASE) 	-export-dynamic
-
-
-libgmodule_la_LIBADD = @G_MODULE_LIBS@ # $(libglib)
-# we should really depend on $(libglib) for libgmodule.la, but libtool has a
-# problem with this ;(
-
-libgplugin_a_la_SOURCES = libgplugin_a.c
-libgplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module
-libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ # $(libglib)
-
-libgplugin_b_la_SOURCES = libgplugin_b.c
-libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module
-libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ # $(libglib)
-
-noinst_PROGRAMS = testgmodule
-testgmodule_LDFLAGS =  @G_MODULE_LDFLAGS@
-testgmodule_LDADD = libgmodule.la $(libglib) @G_MODULE_LIBS@
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES =  gmoduleconf.h
-LTLIBRARIES =  $(lib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I..
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libgmodule_la_DEPENDENCIES = 
-libgmodule_la_OBJECTS =  gmodule.lo
-libgplugin_a_la_DEPENDENCIES = 
-libgplugin_a_la_OBJECTS =  libgplugin_a.lo
-libgplugin_b_la_DEPENDENCIES = 
-libgplugin_b_la_OBJECTS =  libgplugin_b.lo
-PROGRAMS =  $(noinst_PROGRAMS)
-
-testgmodule_SOURCES = testgmodule.c
-testgmodule_OBJECTS =  testgmodule.o
-testgmodule_DEPENDENCIES =  libgmodule.la $(top_builddir)/libglib.la
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS =  $(include_HEADERS)
-
-DIST_COMMON =  AUTHORS COPYING ChangeLog Makefile.am Makefile.in \
-gmoduleconf.h.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libgmodule_la_SOURCES) $(libgplugin_a_la_SOURCES) $(libgplugin_b_la_SOURCES) testgmodule.c
-OBJECTS = $(libgmodule_la_OBJECTS) $(libgplugin_a_la_OBJECTS) $(libgplugin_b_la_OBJECTS) testgmodule.o
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gmodule/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-gmoduleconf.h: $(top_builddir)/config.status gmoduleconf.h.in
-	cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-mostlyclean-libLTLIBRARIES:
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-
-distclean-libLTLIBRARIES:
-
-maintainer-clean-libLTLIBRARIES:
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
-	done
-
-.c.o:
-	$(COMPILE) -c $<
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libgmodule.la: $(libgmodule_la_OBJECTS) $(libgmodule_la_DEPENDENCIES)
-	$(LINK) -rpath $(libdir) $(libgmodule_la_LDFLAGS) $(libgmodule_la_OBJECTS) $(libgmodule_la_LIBADD) $(LIBS)
-
-libgplugin_a.la: $(libgplugin_a_la_OBJECTS) $(libgplugin_a_la_DEPENDENCIES)
-	$(LINK) -rpath $(libdir) $(libgplugin_a_la_LDFLAGS) $(libgplugin_a_la_OBJECTS) $(libgplugin_a_la_LIBADD) $(LIBS)
-
-libgplugin_b.la: $(libgplugin_b_la_OBJECTS) $(libgplugin_b_la_DEPENDENCIES)
-	$(LINK) -rpath $(libdir) $(libgplugin_b_la_LDFLAGS) $(libgplugin_b_la_OBJECTS) $(libgplugin_b_la_LIBADD) $(LIBS)
-
-mostlyclean-noinstPROGRAMS:
-
-clean-noinstPROGRAMS:
-	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-
-testgmodule: $(testgmodule_OBJECTS) $(testgmodule_DEPENDENCIES)
-	@rm -f testgmodule
-	$(LINK) $(testgmodule_LDFLAGS) $(testgmodule_OBJECTS) $(testgmodule_LDADD) $(LIBS)
-
-install-includeHEADERS: $(include_HEADERS)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(includedir)
-	@list='$(include_HEADERS)'; for p in $$list; do \
-	  if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-	  echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
-	  $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
-	done
-
-uninstall-includeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	list='$(include_HEADERS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(includedir)/$$p; \
-	done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-	-rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = gmodule
-
-distdir: $(DISTFILES)
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
-	  fi; \
-	done
-
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-libLTLIBRARIES
-install-exec: install-exec-am
-
-install-data-am: install-includeHEADERS
-install-data: install-data-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-libLTLIBRARIES uninstall-includeHEADERS
-uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean-am:  mostlyclean-libLTLIBRARIES mostlyclean-compile \
-		mostlyclean-libtool mostlyclean-noinstPROGRAMS \
-		mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-libLTLIBRARIES clean-compile clean-libtool \
-		clean-noinstPROGRAMS clean-tags clean-generic \
-		mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-libLTLIBRARIES distclean-compile \
-		distclean-libtool distclean-noinstPROGRAMS \
-		distclean-tags distclean-generic clean-am
-	-rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am:  maintainer-clean-libLTLIBRARIES \
-		maintainer-clean-compile maintainer-clean-libtool \
-		maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
-uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
-distclean-compile clean-compile maintainer-clean-compile \
-mostlyclean-libtool distclean-libtool clean-libtool \
-maintainer-clean-libtool mostlyclean-noinstPROGRAMS \
-distclean-noinstPROGRAMS clean-noinstPROGRAMS \
-maintainer-clean-noinstPROGRAMS uninstall-includeHEADERS \
-install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-gmoduleconf.h:	gmoduleconf.h.in
-
-.PHONY: files release
-
-files:
-	@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
-	  echo $$p; \
-	done
-
-install-libLTLIBRARIES: libgmodule.la
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(libdir)
-	@list='libgmodule.la'; for p in $$list; do \
-	 if test -f $$p; then \
-	  echo "$(LIBTOOL)  --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
-	  $(LIBTOOL)  --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
-	 else :; fi; \
-	done
-
-release:
-	$(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/glib/gmodule/gmodule-dl.c b/glib/gmodule/gmodule-dl.c
deleted file mode 100644
index bbf7691..0000000
--- a/glib/gmodule/gmodule-dl.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* GMODULE - GLIB wrapper code for dynamic module loading
- * Copyright (C) 1998, 2000 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <dlfcn.h>
-
-/* Perl includes <nlist.h> and <link.h> instead of <dlfcn.h> on some systmes? */
-
-
-/* dlerror() is not implemented on all systems
- */
-#ifndef	G_MODULE_HAVE_DLERROR
-#  ifdef __NetBSD__
-#    define dlerror()	g_strerror (errno)
-#  else /* !__NetBSD__ */
-/* could we rely on errno's state here? */
-#    define dlerror()	"unknown dl-error"
-#  endif /* !__NetBSD__ */
-#endif	/* G_MODULE_HAVE_DLERROR */
-
-/* some flags are missing on some systems, so we provide
- * harmless defaults.
- * The Perl sources say, RTLD_LAZY needs to be defined as (1),
- * at least for Solaris 1.
- *
- * Mandatory:
- * RTLD_LAZY   - resolve undefined symbols as code from the dynamic library
- *		 is executed.
- * RTLD_NOW    - resolve all undefined symbols before dlopen returns, and fail
- *		 if this cannot be done.
- * Optionally:
- * RTLD_GLOBAL - the external symbols defined in the library will be made
- *		 available to subsequently loaded libraries.
- */
-#ifndef	RTLD_GLOBAL
-#define	RTLD_GLOBAL	0
-#endif	/* RTLD_GLOBAL */
-#ifndef	RTLD_LAZY
-#define	RTLD_LAZY	1
-#endif	/* RTLD_LAZY */
-#ifndef	RTLD_NOW
-#define	RTLD_NOW	0
-#endif	/* RTLD_NOW */
-
-
-/* --- functions --- */
-static gchar*
-fetch_dlerror (void)
-{
-  gchar *msg = dlerror ();
-
-  /* make sure we always return an error message != NULL */
-
-  return msg ? msg : "unknown dl-error";
-}
-
-static gpointer
-_g_module_open (const gchar *file_name,
-		gboolean     bind_lazy)
-{
-  gpointer handle;
-  
-  handle = dlopen (file_name, RTLD_GLOBAL | (bind_lazy ? RTLD_LAZY : RTLD_NOW));
-  if (!handle)
-    g_module_set_error (fetch_dlerror ());
-  
-  return handle;
-}
-
-static gpointer
-_g_module_self (void)
-{
-  gpointer handle;
-  
-  /* to query symbols from the program itself, special link options
-   * are required on some systems.
-   */
-  
-  handle = dlopen (NULL, RTLD_GLOBAL | RTLD_LAZY);
-  if (!handle)
-    g_module_set_error (fetch_dlerror ());
-  
-  return handle;
-}
-
-static void
-_g_module_close (gpointer handle,
-		 gboolean is_unref)
-{
-  /* are there any systems out there that have dlopen()/dlclose()
-   * without a reference count implementation?
-   */
-  is_unref |= 1;
-  
-  if (is_unref)
-    {
-      if (dlclose (handle) != 0)
-	g_module_set_error (fetch_dlerror ());
-    }
-}
-
-static gpointer
-_g_module_symbol (gpointer     handle,
-		  const gchar *symbol_name)
-{
-  gpointer p;
-  
-  p = dlsym (handle, symbol_name);
-  if (!p)
-    g_module_set_error (fetch_dlerror ());
-  
-  return p;
-}
-
-static gchar*
-_g_module_build_path (const gchar *directory,
-		      const gchar *module_name)
-{
-  if (directory && *directory) {
-    if (strncmp (module_name, "lib", 3) == 0)
-      return g_strconcat (directory, "/", module_name, NULL);
-    else
-      return g_strconcat (directory, "/lib", module_name, ".so", NULL);
-  } else if (strncmp (module_name, "lib", 3) == 0)
-    return g_strdup (module_name);
-  else
-    return g_strconcat ("lib", module_name, ".so", NULL);
-}
diff --git a/glib/gmodule/gmodule-dld.c b/glib/gmodule/gmodule-dld.c
deleted file mode 100644
index 1d1391a..0000000
--- a/glib/gmodule/gmodule-dld.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* GMODULE - GLIB wrapper code for dynamic module loading
- * Copyright (C) 1998, 2000 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <dl.h>
-
-
-/* some flags are missing on some systems, so we provide
- * harmless defaults.
- *
- * Mandatory:
- * BIND_IMMEDIATE  - Resolve symbol references when the library is loaded.
- * BIND_DEFERRED   - Delay code symbol resolution until actual reference.
- *
- * Optionally:
- * BIND_FIRST	   - Place the library at the head of the symbol search order.
- * BIND_NONFATAL   - The default BIND_IMMEDIATE behavior is to treat all unsatisfied
- *		     symbols as fatal.	This flag allows binding of unsatisfied code
- *		     symbols to be deferred until use.
- *		     [Perl: For certain libraries, like DCE, deferred binding often
- *		     causes run time problems.	Adding BIND_NONFATAL to BIND_IMMEDIATE
- *		     still allows unresolved references in situations like this.]
- * BIND_NOSTART	   - Do not call the initializer for the shared library when the
- *		     library is loaded, nor on a future call to shl_unload().
- * BIND_VERBOSE	   - Print verbose messages concerning possible unsatisfied symbols.
- *
- * hp9000s700/hp9000s800:
- * BIND_RESTRICTED - Restrict symbols visible by the library to those present at
- *		     library load time.
- * DYNAMIC_PATH	   - Allow the loader to dynamically search for the library specified
- *		     by the path argument.
- */
-#ifndef	DYNAMIC_PATH
-#define	DYNAMIC_PATH	0
-#endif	/* DYNAMIC_PATH */
-#ifndef	BIND_RESTRICTED
-#define	BIND_RESTRICTED	0
-#endif	/* BIND_RESTRICTED */
-
-#define	OPT_BIND_FLAGS	(BIND_NONFATAL | BIND_VERBOSE)
-
-
-/* --- functions --- */
-static gpointer
-_g_module_open (const gchar *file_name,
-		gboolean     bind_lazy)
-{
-  shl_t shl_handle;
-  
-  shl_handle = shl_load (file_name,
-			 (bind_lazy ? BIND_DEFERRED : BIND_IMMEDIATE) | OPT_BIND_FLAGS, 0);
-  if (!shl_handle)
-    {
-      /* the hp-docs say we should better abort() if errno==ENOSYM ;( */
-      g_module_set_error (g_strerror (errno));
-    }
-  
-  return (gpointer) shl_handle;
-}
-
-static gpointer
-_g_module_self (void)
-{
-  shl_t shl_handle;
-  
-  shl_handle = PROG_HANDLE;
-  if (!shl_handle)
-    g_module_set_error (g_strerror (errno));
-  
-  return shl_handle;
-}
-
-static void
-_g_module_close (gpointer handle,
-		 gboolean is_unref)
-{
-  if (!is_unref)
-    {
-      if (shl_unload ((shl_t) handle) != 0)
-	g_module_set_error (g_strerror (errno));
-    }
-}
-
-static gpointer
-_g_module_symbol (gpointer     handle,
-		  const gchar *symbol_name)
-{
-  gpointer p = NULL;
-  
-  /* should we restrict lookups to TYPE_PROCEDURE?
-   */
-  if (handle == PROG_HANDLE)
-    {
-      /* PROG_HANDLE will only lookup symbols in the program itself, not honouring
-       * libraries. passing NULL as a handle will also try to lookup the symbol
-       * in currently loaded libraries. fix pointed out and supplied by:
-       * David Gero <dgero@nortelnetworks.com>
-       */
-      handle = NULL;
-    }
-  if (shl_findsym ((shl_t*) &handle, symbol_name, TYPE_UNDEFINED, &p) != 0 ||
-      handle == NULL || p == NULL)
-    {
-      /* the hp-docs say we should better abort() if errno==ENOSYM ;( */
-      g_module_set_error (g_strerror (errno));
-    }
-  
-  return p;
-}
-
-static gchar*
-_g_module_build_path (const gchar *directory,
-		      const gchar *module_name)
-{
-  if (directory && *directory)
-    if (strncmp (module_name, "lib", 3) == 0)
-      return g_strconcat (directory, "/", module_name, NULL);
-    else
-      return g_strconcat (directory, "/lib", module_name, ".sl", NULL);
-  else if (strncmp (module_name, "lib", 3) == 0)
-    return g_strdup (module_name);
-  else
-    return g_strconcat ("lib", module_name, ".sl", NULL);
-}
diff --git a/glib/gmodule/gmodule-win32.c b/glib/gmodule/gmodule-win32.c
deleted file mode 100644
index 8d021e1..0000000
--- a/glib/gmodule/gmodule-win32.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* GMODULE - GLIB wrapper code for dynamic module loading
- * Copyright (C) 1998, 2000 Tim Janik
- *
- * WIN32 GMODULE implementation
- * Copyright (C) 1998 Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <stdio.h>
-#include <windows.h>
-
-/* --- functions --- */
-static gpointer
-_g_module_open (const gchar *file_name,
-		gboolean     bind_lazy)
-{
-  HINSTANCE handle;
-  
-  handle = LoadLibrary (file_name);
-  if (!handle)
-    {
-      gchar error[100];
-
-      sprintf (error, "Error code %d", GetLastError ());
-      g_module_set_error (error);
-    }
-  
-  return handle;
-}
-
-static gpointer
-_g_module_self (void)
-{
-  HMODULE handle;
-  
-  handle = GetModuleHandle (NULL);
-  if (!handle)
-    {
-      gchar error[100];
-
-      sprintf (error, "Error code %d", GetLastError ());
-      g_module_set_error (error);
-    }
-  
-  return handle;
-}
-
-static void
-_g_module_close (gpointer handle,
-		 gboolean is_unref)
-{
-  if (!FreeLibrary (handle))
-    {
-      gchar error[100];
-
-      sprintf (error, "Error code %d", GetLastError ());
-      g_module_set_error (error);
-    }
-}
-
-static gpointer
-_g_module_symbol (gpointer     handle,
-		  const gchar *symbol_name)
-{
-  gpointer p;
-  
-  p = GetProcAddress (handle, symbol_name);
-  if (!p)
-    {
-      gchar error[100];
-
-      sprintf (error, "Error code %d", GetLastError ());
-      g_module_set_error (error);
-    }
-  
-  return p;
-}
-
-static gchar*
-_g_module_build_path (const gchar *directory,
-		      const gchar *module_name)
-{
-  gint k;
-  
-  k = strlen (module_name);
-  if (directory && *directory)
-    if (k > 4 && g_strcasecmp (module_name + k - 4, ".dll") == 0)
-      return g_strconcat (directory, "\\", module_name, NULL);
-    else
-      return g_strconcat (directory, "\\", module_name, ".dll", NULL);
-  else if (k > 4 && g_strcasecmp (module_name + k - 4, ".dll") == 0)
-    return g_strdup (module_name);
-  else
-    return g_strconcat (module_name, ".dll", NULL);
-}
diff --git a/glib/gmodule/gmodule.c b/glib/gmodule/gmodule.c
deleted file mode 100644
index dcd04dd..0000000
--- a/glib/gmodule/gmodule.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/* GMODULE - GLIB wrapper code for dynamic module loading
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include	"gmodule.h"
-#include	"gmoduleconf.h"
-#include	<errno.h>
-#include	<string.h>
-
-
-/* We maintain a list of modules, so we can reference count them.
- * That's needed because some platforms don't support refernce counts on
- * modules e.g. the shl_* implementation of HP-UX
- * (http://www.stat.umn.edu/~luke/xls/projects/dlbasics/dlbasics.html).
- * Also, the module for the program itself is kept seperatedly for
- * faster access and because it has special semantics.
- */
-
-
-/* --- structures --- */
-struct _GModule
-{
-  gchar	*file_name;
-  gpointer handle;
-  guint ref_count : 31;
-  guint is_resident : 1;
-  GModuleUnload unload;
-  GModule *next;
-};
-
-
-/* --- prototypes --- */
-static gpointer		_g_module_open		(const gchar	*file_name,
-						 gboolean	 bind_lazy);
-static void		_g_module_close		(gpointer	 handle,
-						 gboolean	 is_unref);
-static gpointer		_g_module_self		(void);
-static gpointer		_g_module_symbol	(gpointer	 handle,
-						 const gchar	*symbol_name);
-static gchar*		_g_module_build_path	(const gchar	*directory,
-						 const gchar	*module_name);
-static inline void	g_module_set_error	(const gchar	*error);
-static inline GModule*	g_module_find_by_handle (gpointer	 handle);
-static inline GModule*	g_module_find_by_name	(const gchar	*name);
-
-
-/* --- variables --- */
-G_LOCK_DEFINE_STATIC (GModule);
-const char           *g_log_domain_gmodule = "GModule";
-static GModule	     *modules = NULL;
-static GModule	     *main_module = NULL;
-static GStaticPrivate module_error_private = G_STATIC_PRIVATE_INIT;
-
-
-/* --- inline functions --- */
-static inline GModule*
-g_module_find_by_handle (gpointer handle)
-{
-  GModule *module;
-  GModule *retval = NULL;
-  
-  G_LOCK (GModule);
-  if (main_module && main_module->handle == handle)
-    retval = main_module;
-  else
-    for (module = modules; module; module = module->next)
-      if (handle == module->handle)
-	{
-	  retval = module;
-	  break;
-	}
-  G_UNLOCK (GModule);
-
-  return retval;
-}
-
-static inline GModule*
-g_module_find_by_name (const gchar *name)
-{
-  GModule *module;
-  GModule *retval = NULL;
-  
-  G_LOCK (GModule);
-  for (module = modules; module; module = module->next)
-    if (strcmp (name, module->file_name) == 0)
-	{
-	  retval = module;
-	  break;
-	}
-  G_UNLOCK (GModule);
-
-  return retval;
-}
-
-static inline void
-g_module_set_error (const gchar *error)
-{
-  g_static_private_set (&module_error_private, g_strdup (error), g_free);
-  errno = 0;
-}
-
-
-/* --- include platform specifc code --- */
-#define	SUPPORT_OR_RETURN(rv)	{ g_module_set_error (NULL); }
-#if	(G_MODULE_IMPL == G_MODULE_IMPL_DL)
-#include "gmodule-dl.c"
-#elif	(G_MODULE_IMPL == G_MODULE_IMPL_DLD)
-#include "gmodule-dld.c"
-#elif	(G_MODULE_IMPL == G_MODULE_IMPL_WIN32)
-#include "gmodule-win32.c"
-#else
-#undef	SUPPORT_OR_RETURN
-#define	SUPPORT_OR_RETURN(rv)	{ g_module_set_error ("dynamic modules are " \
-                                              "not supported by this system"); return rv; }
-static gpointer
-_g_module_open (const gchar	*file_name,
-		gboolean	 bind_lazy)
-{
-  return NULL;
-}
-static void
-_g_module_close	(gpointer	 handle,
-		 gboolean	 is_unref)
-{
-}
-static gpointer
-_g_module_self (void)
-{
-  return NULL;
-}
-static gpointer
-_g_module_symbol (gpointer	 handle,
-		  const gchar	*symbol_name)
-{
-  return NULL;
-}
-static gchar*
-_g_module_build_path (const gchar *directory,
-		      const gchar *module_name)
-{
-  return NULL;
-}
-#endif	/* no implementation */
-
-#if defined (NATIVE_WIN32) && defined (__LCC__)
-int __stdcall 
-LibMain (void         *hinstDll,
-	 unsigned long dwReason,
-	 void         *reserved)
-{
-  return 1;
-}
-#endif /* NATIVE_WIN32 && __LCC__ */
-
-
-/* --- functions --- */
-gboolean
-g_module_supported (void)
-{
-  SUPPORT_OR_RETURN (FALSE);
-  
-  return TRUE;
-}
-
-GModule*
-g_module_open (const gchar    *file_name,
-	       GModuleFlags    flags)
-{
-  GModule *module;
-  gpointer handle;
-  
-  SUPPORT_OR_RETURN (NULL);
-  
-  if (!file_name)
-    {      
-      G_LOCK (GModule);
-      if (!main_module)
-	{
-	  handle = _g_module_self ();
-	  if (handle)
-	    {
-	      main_module = g_new (GModule, 1);
-	      main_module->file_name = NULL;
-	      main_module->handle = handle;
-	      main_module->ref_count = 1;
-	      main_module->is_resident = TRUE;
-	      main_module->unload = NULL;
-	      main_module->next = NULL;
-	    }
-	}
-      G_UNLOCK (GModule);
-
-      return main_module;
-    }
-  
-  /* we first search the module list by name */
-  module = g_module_find_by_name (file_name);
-  if (module)
-    {
-      module->ref_count++;
-      
-      return module;
-    }
-  
-  /* open the module */
-  handle = _g_module_open (file_name, (flags & G_MODULE_BIND_LAZY) != 0);
-  if (handle)
-    {
-      gchar *saved_error;
-      GModuleCheckInit check_init;
-      const gchar *check_failed = NULL;
-      
-      /* search the module list by handle, since file names are not unique */
-      module = g_module_find_by_handle (handle);
-      if (module)
-	{
-	  _g_module_close (module->handle, TRUE);
-	  module->ref_count++;
-	  g_module_set_error (NULL);
-	  
-	  return module;
-	}
-      
-      saved_error = g_strdup (g_module_error ());
-      g_module_set_error (NULL);
-      
-      module = g_new (GModule, 1);
-      module->file_name = g_strdup (file_name);
-      module->handle = handle;
-      module->ref_count = 1;
-      module->is_resident = FALSE;
-      module->unload = NULL;
-      G_LOCK (GModule);
-      module->next = modules;
-      modules = module;
-      G_UNLOCK (GModule);
-      
-      /* check initialization */
-      if (g_module_symbol (module, "g_module_check_init", (gpointer) &check_init))
-	check_failed = check_init (module);
-      
-      /* we don't call unload() if the initialization check failed. */
-      if (!check_failed)
-	g_module_symbol (module, "g_module_unload", (gpointer) &module->unload);
-      
-      if (check_failed)
-	{
-	  gchar *error;
-
-	  error = g_strconcat ("GModule initialization check failed: ", check_failed, NULL);
-	  g_module_close (module);
-	  module = NULL;
-	  g_module_set_error (error);
-	  g_free (error);
-	}
-      else
-	g_module_set_error (saved_error);
-
-      g_free (saved_error);
-    }
-  
-  return module;
-}
-
-gboolean
-g_module_close (GModule	       *module)
-{
-  SUPPORT_OR_RETURN (FALSE);
-  
-  g_return_val_if_fail (module != NULL, FALSE);
-  g_return_val_if_fail (module->ref_count > 0, FALSE);
-  
-  module->ref_count--;
-  
-  if (!module->ref_count && !module->is_resident && module->unload)
-    {
-      GModuleUnload unload;
-
-      unload = module->unload;
-      module->unload = NULL;
-      unload (module);
-    }
-
-  if (!module->ref_count && !module->is_resident)
-    {
-      GModule *last;
-      GModule *node;
-      
-      last = NULL;
-      
-      G_LOCK (GModule);
-      node = modules;
-      while (node)
-	{
-	  if (node == module)
-	    {
-	      if (last)
-		last->next = node->next;
-	      else
-		modules = node->next;
-	      break;
-	    }
-	  last = node;
-	  node = last->next;
-	}
-      module->next = NULL;
-      G_UNLOCK (GModule);
-      
-      _g_module_close (module->handle, FALSE);
-      g_free (module->file_name);
-      
-      g_free (module);
-    }
-  
-  return g_module_error() == NULL;
-}
-
-void
-g_module_make_resident (GModule *module)
-{
-  g_return_if_fail (module != NULL);
-
-  module->is_resident = TRUE;
-}
-
-gchar*
-g_module_error (void)
-{
-  return g_static_private_get (&module_error_private);
-}
-
-gboolean
-g_module_symbol (GModule	*module,
-		 const gchar	*symbol_name,
-		 gpointer	*symbol)
-{
-  gchar *module_error;
-
-  if (symbol)
-    *symbol = NULL;
-  SUPPORT_OR_RETURN (FALSE);
-  
-  g_return_val_if_fail (module != NULL, FALSE);
-  g_return_val_if_fail (symbol_name != NULL, FALSE);
-  g_return_val_if_fail (symbol != NULL, FALSE);
-  
-#ifdef	G_MODULE_NEED_USCORE
-  {
-    gchar *name;
-
-    name = g_strconcat ("_", symbol_name, NULL);
-    *symbol = _g_module_symbol (module->handle, name);
-    g_free (name);
-  }
-#else	/* !G_MODULE_NEED_USCORE */
-  *symbol = _g_module_symbol (module->handle, symbol_name);
-#endif	/* !G_MODULE_NEED_USCORE */
-  
-  module_error = g_module_error ();
-  if (module_error)
-    {
-      gchar *error;
-
-      error = g_strconcat ("`", symbol_name, "': ", module_error, NULL);
-      g_module_set_error (error);
-      g_free (error);
-      *symbol = NULL;
-
-      return FALSE;
-    }
-  
-  return TRUE;
-}
-
-gchar*
-g_module_name (GModule *module)
-{
-  g_return_val_if_fail (module != NULL, NULL);
-  
-  if (module == main_module)
-    return "main";
-  
-  return module->file_name;
-}
-
-gchar*
-g_module_build_path (const gchar *directory,
-		     const gchar *module_name)
-{
-  g_return_val_if_fail (module_name != NULL, NULL);
-  
-  return _g_module_build_path (directory, module_name);
-}
diff --git a/glib/gmodule/gmodule.def b/glib/gmodule/gmodule.def
deleted file mode 100644
index 5af8869..0000000
--- a/glib/gmodule/gmodule.def
+++ /dev/null
@@ -1,10 +0,0 @@
-EXPORTS
-	g_log_domain_gmodule
-	g_module_build_path
-	g_module_close
-	g_module_error
-	g_module_make_resident
-	g_module_name
-	g_module_open
-	g_module_supported
-	g_module_symbol
diff --git a/glib/gmodule/gmodule.h b/glib/gmodule/gmodule.h
deleted file mode 100644
index 908575c..0000000
--- a/glib/gmodule/gmodule.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* GMODULE - GLIB wrapper code for dynamic module loading
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#ifndef __GMODULE_H__
-#define __GMODULE_H__
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-extern const char      *g_log_domain_gmodule;
-#include <glib.h>
-
-
-/* exporting and importing functions, this is special cased
- * to feature Windows dll stubs.
- */
-#define	G_MODULE_IMPORT		extern
-#ifdef NATIVE_WIN32
-#  define	G_MODULE_EXPORT		__declspec(dllexport)
-#else /* !NATIVE_WIN32 */
-#  define	G_MODULE_EXPORT
-#endif /* !NATIVE_WIN32 */
-
-typedef enum
-{
-  G_MODULE_BIND_LAZY	= 1 << 0,
-  G_MODULE_BIND_MASK	= 0x01
-} GModuleFlags;
-
-typedef	struct _GModule			 GModule;
-typedef const gchar* (*GModuleCheckInit) (GModule	*module);
-typedef void	     (*GModuleUnload)	 (GModule	*module);
-
-/* return TRUE if dynamic module loading is supported */
-gboolean	g_module_supported	   (void);
-
-/* open a module `file_name' and return handle, which is NULL on error */
-GModule*	g_module_open		   (const gchar		*file_name,
-					    GModuleFlags	 flags);
-
-/* close a previously opened module, returns TRUE on success */
-gboolean	g_module_close		   (GModule		*module);
-
-/* make a module resident so g_module_close on it will be ignored */
-void		g_module_make_resident	   (GModule		*module);
-
-/* query the last module error as a string */
-gchar*		g_module_error		   (void);
-
-/* retrive a symbol pointer from `module', returns TRUE on success */
-gboolean	g_module_symbol		   (GModule		*module,
-					    const gchar		*symbol_name,
-					    gpointer		*symbol);
-
-/* retrive the file name from an existing module */
-gchar*		g_module_name		   (GModule		*module);
-
-
-/* Build the actual file name containing a module. `directory' is the
- * directory where the module file is supposed to be, or NULL or empty
- * in which case it should either be in the current directory or, on
- * some operating systems, in some standard place, for instance on the
- * PATH. Hence, to be absoultely sure to get the correct module,
- * always pass in a directory. The file name consists of the directory,
- * if supplied, and `module_name' suitably decorated accoring to
- * the operating system's conventions (for instance lib*.so or *.dll).
- *
- * No checks are made that the file exists, or is of correct type.
- */
-gchar*		g_module_build_path	  (const gchar		*directory,
-					   const gchar		*module_name);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __GMODULE_H__ */
diff --git a/glib/gmodule/gmoduleconf.h.in b/glib/gmodule/gmoduleconf.h.in
deleted file mode 100644
index ee2aa5c..0000000
--- a/glib/gmodule/gmoduleconf.h.in
+++ /dev/null
@@ -1,48 +0,0 @@
-/* GMODULE - GLIB wrapper code for dynamic module loading
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __G_MODULE_CONF_H__
-#define __G_MODULE_CONF_H__
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define	G_MODULE_IMPL_NONE	0
-#define	G_MODULE_IMPL_DL	1
-#define	G_MODULE_IMPL_DLD	2
-#define	G_MODULE_IMPL_WIN32	3
-
-#define	G_MODULE_IMPL		@G_MODULE_IMPL@
-#undef	G_MODULE_HAVE_DLERROR
-#if	(@G_MODULE_HAVE_DLERROR@)
-#define	G_MODULE_HAVE_DLERROR
-#endif
-#if	(@G_MODULE_NEED_USCORE@) || defined (hp9000s300) || defined (__hp9000s300) || defined (__hp9000s300__)
-#define	G_MODULE_NEED_USCORE
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __G_MODULE_CONF_H__ */
diff --git a/glib/gmodule/gmoduleconf.h.win32 b/glib/gmodule/gmoduleconf.h.win32
deleted file mode 100644
index 9d4fcf9..0000000
--- a/glib/gmodule/gmoduleconf.h.win32
+++ /dev/null
@@ -1,45 +0,0 @@
-/* GMODULE - GLIB wrapper code for dynamic module loading
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __G_MODULE_CONF_H__
-#define __G_MODULE_CONF_H__
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define	G_MODULE_IMPL_NONE	0
-#define	G_MODULE_IMPL_DL	1
-#define	G_MODULE_IMPL_DLD	2
-#define	G_MODULE_IMPL_WIN32	3
-
-#define	G_MODULE_IMPL		G_MODULE_IMPL_WIN32
-#undef	G_MODULE_HAVE_DLERROR
-
-#ifdef __LCC__
-#define G_MODULE_NEED_USCORE
-#endif
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __G_MODULE_CONF_H__ */
diff --git a/glib/gmodule/libgplugin_a.c b/glib/gmodule/libgplugin_a.c
deleted file mode 100644
index 3da2da4..0000000
--- a/glib/gmodule/libgplugin_a.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* libgplugin_a.c - test plugin for testgmodule
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#include	<gmodule.h>
-#include	<stdlib.h>
-
-#if defined (NATIVE_WIN32) && defined (__LCC__)
-int __stdcall 
-LibMain(void         *hinstDll,
-	unsigned long dwReason,
-	void         *reserved)
-{
-  return 1;
-}
-#endif /* NATIVE_WIN32 && __LCC__ */
-
-G_MODULE_EXPORT void
-gplugin_a_func (void)
-{
-  g_print ("GPluginA: Hello world\n");
-}
-
-G_MODULE_EXPORT void
-gplugin_clash_func (void)
-{
-  g_print ("GPluginA: Hello plugin clash\n");
-}
-
-G_MODULE_EXPORT void
-g_clash_func (void)
-{
-  g_print ("GPluginA: Hello global clash\n");
-}
-
-G_MODULE_EXPORT void
-gplugin_say_boo_func (void)
-{
-  g_print ("GPluginA: BOOH!\n");
-}
-
-G_MODULE_EXPORT void
-gplugin_a_module_func (GModule *module)
-{
-  void (*f) (void) = NULL;
-  gchar *string;
-
-  string = "gplugin_say_boo_func";
-  g_print ("GPluginA: retrive symbol `%s' from \"%s\"\n",
-	   string,
-	   g_basename (g_module_name (module)));
-  if (!g_module_symbol (module, string, (gpointer) &f))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      exit (1);
-    }
-
-  g_print ("GPluginA: call that function(%p): ", f);
-  f ();
-}
diff --git a/glib/gmodule/libgplugin_b.c b/glib/gmodule/libgplugin_b.c
deleted file mode 100644
index 109e048..0000000
--- a/glib/gmodule/libgplugin_b.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* libgplugin_b.c - test plugin for testgmodule
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#include        <gmodule.h>
-
-#if defined (NATIVE_WIN32) && defined (__LCC__)
-int __stdcall 
-LibMain(void         *hinstDll,
-	unsigned long dwReason,
-	void         *reserved)
-{
-  return 1;
-}
-#endif /* NATIVE_WIN32 && __LCC__ */
-
-G_MODULE_EXPORT const gchar*
-g_module_check_init (GModule *module)
-{
-  g_print ("GPluginB: check-init\n");
-
-  return NULL;
-}
-
-G_MODULE_EXPORT void
-g_module_unload (GModule *module)
-{
-  g_print ("GPluginB: unloaded\n");
-}
-
-G_MODULE_EXPORT void
-gplugin_b_func (void)
-{
-  g_print ("GPluginB: Hello world\n");
-}
-
-G_MODULE_EXPORT void
-gplugin_clash_func (void)
-{
-  g_print ("GPluginB: Hello plugin clash\n");
-}
-
-G_MODULE_EXPORT void
-g_clash_func (void)
-{
-  g_print ("GPluginB: Hello global clash\n");
-}
-
-G_MODULE_EXPORT void
-gplugin_say_boo_func (void)
-{
-  g_print ("GPluginB: BOOH!\n");
-}
diff --git a/glib/gmodule/testgmodule.c b/glib/gmodule/testgmodule.c
deleted file mode 100644
index 09b7603..0000000
--- a/glib/gmodule/testgmodule.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* testgmodule.c - test program for GMODULE
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef	G_LOG_DOMAIN
-#include	<gmodule.h>
-#include	"gmoduleconf.h"
-
-
-G_MODULE_EXPORT void
-g_clash_func (void)
-{
-  g_print ("GModule: Hello global clash\n");
-}
-
-typedef	void (*SimpleFunc) (void);
-typedef	void (*GModuleFunc) (GModule *);
-
-static SimpleFunc plugin_clash_func = NULL;
-
-int
-main (int   arg,
-      char *argv[])
-{
-  GModule *module_self, *module_a, *module_b;
-  gchar *string;
-  gchar *plugin_a, *plugin_b;
-  SimpleFunc f_a, f_b, f_self;
-  GModuleFunc gmod_f;
-
-  string = g_get_current_dir ();
-  g_print ("testgmodule (%s):\n", string);
-
-#ifdef NATIVE_WIN32
-  plugin_a = g_strconcat (string, "\\libgplugin_a.dll", NULL);
-  plugin_b = g_strconcat (string, "\\libgplugin_b.dll", NULL);
-#elif (G_MODULE_IMPL == G_MODULE_IMPL_DLD)
-  plugin_a = g_strconcat (string, "/.libs/", "libgplugin_a.sl", NULL);
-  plugin_b = g_strconcat (string, "/.libs/", "libgplugin_b.sl", NULL);
-#else /* G_MODULE_IMPL != G_MODULE_IMPL_DLD && !NATIVE_WIN32 */
-  plugin_a = g_strconcat (string, "/.libs/", "libgplugin_a.so", NULL);
-  plugin_b = g_strconcat (string, "/.libs/", "libgplugin_b.so", NULL);
-#endif /* G_MODULE_IMPL != G_MODULE_IMPL_DLD && !NATIVE_WIN32 */
-  g_free (string);
-
-  /* module handles
-   */
-  g_print ("get main module handle\n");
-  module_self = g_module_open (NULL, G_MODULE_BIND_LAZY);
-  if (!module_self)
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("check that not yet bound symbols in shared libraries of main module are retrievable:\n");
-  string = "g_module_close";
-  g_print ("retrive symbol `%s' from \"%s\":\n", string, g_basename (g_module_name (module_self)));
-  if (!g_module_symbol (module_self, string, (gpointer) &f_self))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("retrived symbol `%s' as %p\n", string, f_self);
-  g_print ("load plugin from \"%s\"\n", plugin_a);
-  module_a = g_module_open (plugin_a, G_MODULE_BIND_LAZY);
-  if (!module_a)
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("load plugin from \"%s\"\n", plugin_b);
-  module_b = g_module_open (plugin_b, G_MODULE_BIND_LAZY);
-  if (!module_b)
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-
-  /* get plugin specific symbols and call them
-   */
-  string = "gplugin_a_func";
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_a)));
-  if (!g_module_symbol (module_a, string, (gpointer) &f_a))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  string = "gplugin_b_func";
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_b)));
-  if (!g_module_symbol (module_b, string, (gpointer) &f_b))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("call plugin function(%p) A: ", f_a);
-  f_a ();
-  g_print ("call plugin function(%p) B: ", f_b);
-  f_b ();
-
-  /* get and call globally clashing functions
-   */
-  string = "g_clash_func";
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_self)));
-  if (!g_module_symbol (module_self, string, (gpointer) &f_self))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_a)));
-  if (!g_module_symbol (module_a, string, (gpointer) &f_a))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_b)));
-  if (!g_module_symbol (module_b, string, (gpointer) &f_b))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("call plugin function(%p) self: ", f_self);
-  f_self ();
-  g_print ("call plugin function(%p) A: ", f_a);
-  f_a ();
-  g_print ("call plugin function(%p) B: ", f_b);
-  f_b ();
-
-  /* get and call clashing plugin functions
-   */
-  string = "gplugin_clash_func";
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_self)));
-  if (!g_module_symbol (module_self, string, (gpointer) &f_self))
-    f_self = NULL;
-  g_print ("retrived function `%s' from self: %p\n", string, f_self);
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_a)));
-  if (!g_module_symbol (module_a, string, (gpointer) &f_a))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_b)));
-  if (!g_module_symbol (module_b, string, (gpointer) &f_b))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("call plugin function(%p) A: ", f_a);
-  plugin_clash_func = f_a;
-  plugin_clash_func ();
-  g_print ("call plugin function(%p) B: ", f_b);
-  plugin_clash_func = f_b;
-  plugin_clash_func ();
-
-  /* call gmodule function form A
-   */
-  string = "gplugin_a_module_func";
-  g_print ("retrive symbol `%s' from \"%s\"\n", string, g_basename (g_module_name (module_a)));
-  if (!g_module_symbol (module_a, string, (gpointer) &gmod_f))
-    {
-      g_print ("error: %s\n", g_module_error ());
-      return 1;
-    }
-  g_print ("call plugin A's module function(%p):\n{\n", gmod_f);
-  gmod_f (module_b);
-  g_print ("}\n");
-
-  
-  /* unload plugins
-   */
-  g_print ("unload plugin A:\n");
-  if (!g_module_close (module_a))
-    g_print ("error: %s\n", g_module_error ());
-  g_print ("unload plugin B:\n");
-  if (!g_module_close (module_b))
-    g_print ("error: %s\n", g_module_error ());
-
-#if 0
-  g_log_set_fatal_mask ("GModule", G_LOG_FATAL_MASK|G_LOG_LEVEL_WARNING);
-  g_module_symbol (0, 0, 0);
-  g_warning("jahooo");
-  g_on_error_query (".libs/testgmodule");
-#endif
-  
-  return 0;
-}
diff --git a/glib/gmutex.c b/glib/gmutex.c
deleted file mode 100644
index a6e7934..0000000
--- a/glib/gmutex.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gmutex.c: MT safety related functions
- * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe
- *                Owen Taylor
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-typedef struct _GStaticPrivateNode GStaticPrivateNode;
-
-struct _GStaticPrivateNode
-{
-  gpointer       data;
-  GDestroyNotify destroy;
-};
-
-static void g_static_private_free_data (gpointer data);
-static void g_thread_fail (void);
-
-/* Global variables */
-
-gboolean g_thread_use_default_impl = TRUE;
-gboolean g_threads_got_initialized = FALSE;
-
-GThreadFunctions g_thread_functions_for_glib_use = {
-  (GMutex*(*)())g_thread_fail,                 /* mutex_new */
-  NULL,                                        /* mutex_lock */
-  NULL,                                        /* mutex_trylock */
-  NULL,                                        /* mutex_unlock */
-  NULL,                                        /* mutex_free */
-  (GCond*(*)())g_thread_fail,                  /* cond_new */
-  NULL,                                        /* cond_signal */
-  NULL,                                        /* cond_broadcast */
-  NULL,                                        /* cond_wait */
-  NULL,                                        /* cond_timed_wait  */
-  NULL,                                        /* cond_free */
-  (GPrivate*(*)(GDestroyNotify))g_thread_fail, /* private_new */
-  NULL,                                        /* private_get */
-  NULL,                                        /* private_set */
-}; 
-
-/* Local data */
-
-static GMutex   *g_mutex_protect_static_mutex_allocation = NULL;
-static GMutex   *g_thread_specific_mutex = NULL;
-static GPrivate *g_thread_specific_private = NULL;
-
-/* This must be called only once, before any threads are created.
- * It will only be called from g_thread_init() in -lgthread.
- */
-void
-g_mutex_init (void)
-{
-  /* We let the main thread (the one that calls g_thread_init) inherit
-   * the data, that it set before calling g_thread_init
-   */
-  gpointer private_old = g_thread_specific_private;
-
-  g_thread_specific_private = g_private_new (g_static_private_free_data);
-
-  /* we can not use g_private_set here, as g_threads_got_initialized is not
-   * yet set TRUE, whereas the private_set function is already set.
-   */
-  g_thread_functions_for_glib_use.private_set (g_thread_specific_private, 
-					       private_old);
-
-  g_mutex_protect_static_mutex_allocation = g_mutex_new();
-  g_thread_specific_mutex = g_mutex_new();
-}
-
-GMutex *
-g_static_mutex_get_mutex_impl (GMutex** mutex)
-{
-  if (!g_thread_supported ())
-    return NULL;
-
-  g_assert (g_mutex_protect_static_mutex_allocation);
-
-  g_mutex_lock (g_mutex_protect_static_mutex_allocation);
-
-  if (!(*mutex)) 
-    *mutex = g_mutex_new(); 
-
-  g_mutex_unlock (g_mutex_protect_static_mutex_allocation);
-  
-  return *mutex;
-}
-
-gpointer
-g_static_private_get (GStaticPrivate *private_key)
-{
-  GArray *array;
-
-  array = g_private_get (g_thread_specific_private);
-  if (!array)
-    return NULL;
-
-  if (!private_key->index)
-    return NULL;
-  else if (private_key->index <= array->len)
-    return g_array_index (array, GStaticPrivateNode, private_key->index - 1).data;
-  else
-    return NULL;
-}
-
-void
-g_static_private_set (GStaticPrivate *private_key, 
-		      gpointer        data,
-		      GDestroyNotify  notify)
-{
-  GArray *array;
-  static guint next_index = 0;
-  GStaticPrivateNode *node;
-  
-  array = g_private_get (g_thread_specific_private);
-  if (!array)
-    {
-      array = g_array_new (FALSE, TRUE, sizeof (GStaticPrivateNode));
-      g_private_set (g_thread_specific_private, array);
-    }
-
-  if (!private_key->index)
-    {
-      g_mutex_lock (g_thread_specific_mutex);
-
-      if (!private_key->index)
-	private_key->index = ++next_index;
-
-      g_mutex_unlock (g_thread_specific_mutex);
-    }
-
-  if (private_key->index > array->len)
-    g_array_set_size (array, private_key->index);
-
-  node = &g_array_index (array, GStaticPrivateNode, private_key->index - 1);
-  if (node->destroy)
-    {
-      gpointer ddata = node->data;
-      GDestroyNotify ddestroy = node->destroy;
-
-      node->data = data;
-      node->destroy = notify;
-
-      ddestroy (ddata);
-    }
-  else
-    {
-      node->data = data;
-      node->destroy = notify;
-    }
-}
-
-static void
-g_static_private_free_data (gpointer data)
-{
-  if (data)
-    {
-      GArray* array = data;
-      guint i;
-      
-      for (i = 0; i < array->len; i++ )
-	{
-	  GStaticPrivateNode *node = &g_array_index (array, GStaticPrivateNode, i);
-	  if (node->destroy)
-	    node->destroy (node->data);
-	}
-    }
-}
-
-static void
-g_thread_fail (void)
-{
-  g_error ("The thread system is not yet initialized.");
-}
diff --git a/glib/gnode.c b/glib/gnode.c
deleted file mode 100644
index 5145c6b..0000000
--- a/glib/gnode.c
+++ /dev/null
@@ -1,965 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * GNode: N-way tree implementation.
- * Copyright (C) 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-/* node allocation
- */
-struct _GAllocator /* from gmem.c */
-{
-  gchar         *name;
-  guint16        n_preallocs;
-  guint          is_unused : 1;
-  guint          type : 4;
-  GAllocator    *last;
-  GMemChunk     *mem_chunk;
-  GNode         *free_nodes; /* implementation specific */
-};
-
-G_LOCK_DEFINE_STATIC (current_allocator);
-static GAllocator *current_allocator = NULL;
-
-/* HOLDS: current_allocator_lock */
-static void
-g_node_validate_allocator (GAllocator *allocator)
-{
-  g_return_if_fail (allocator != NULL);
-  g_return_if_fail (allocator->is_unused == TRUE);
-
-  if (allocator->type != G_ALLOCATOR_NODE)
-    {
-      allocator->type = G_ALLOCATOR_NODE;
-      if (allocator->mem_chunk)
-	{
-	  g_mem_chunk_destroy (allocator->mem_chunk);
-	  allocator->mem_chunk = NULL;
-	}
-    }
-
-  if (!allocator->mem_chunk)
-    {
-      allocator->mem_chunk = g_mem_chunk_new (allocator->name,
-					      sizeof (GNode),
-					      sizeof (GNode) * allocator->n_preallocs,
-					      G_ALLOC_ONLY);
-      allocator->free_nodes = NULL;
-    }
-
-  allocator->is_unused = FALSE;
-}
-
-void
-g_node_push_allocator (GAllocator *allocator)
-{
-  G_LOCK (current_allocator);
-  g_node_validate_allocator ( allocator );
-  allocator->last = current_allocator;
-  current_allocator = allocator;
-  G_UNLOCK (current_allocator);
-}
-
-void
-g_node_pop_allocator (void)
-{
-  G_LOCK (current_allocator);
-  if (current_allocator)
-    {
-      GAllocator *allocator;
-
-      allocator = current_allocator;
-      current_allocator = allocator->last;
-      allocator->last = NULL;
-      allocator->is_unused = TRUE;
-    }
-  G_UNLOCK (current_allocator);
-}
-
-
-/* --- functions --- */
-GNode*
-g_node_new (gpointer data)
-{
-  GNode *node;
-
-  G_LOCK (current_allocator);
-  if (!current_allocator)
-    {
-       GAllocator *allocator = g_allocator_new ("GLib default GNode allocator",
-						128);
-       g_node_validate_allocator (allocator);
-       allocator->last = NULL;
-       current_allocator = allocator;
-    }
-  if (!current_allocator->free_nodes)
-    node = g_chunk_new (GNode, current_allocator->mem_chunk);
-  else
-    {
-      node = current_allocator->free_nodes;
-      current_allocator->free_nodes = node->next;
-    }
-  G_UNLOCK (current_allocator);
-  
-  node->data = data;
-  node->next = NULL;
-  node->prev = NULL;
-  node->parent = NULL;
-  node->children = NULL;
-  
-  return node;
-}
-
-static void
-g_nodes_free (GNode *node)
-{
-  GNode *parent;
-
-  parent = node;
-  while (1)
-    {
-      if (parent->children)
-	g_nodes_free (parent->children);
-      if (parent->next)
-	parent = parent->next;
-      else
-	break;
-    }
-  
-  G_LOCK (current_allocator);
-  parent->next = current_allocator->free_nodes;
-  current_allocator->free_nodes = node;
-  G_UNLOCK (current_allocator);
-}
-
-void
-g_node_destroy (GNode *root)
-{
-  g_return_if_fail (root != NULL);
-  
-  if (!G_NODE_IS_ROOT (root))
-    g_node_unlink (root);
-  
-  g_nodes_free (root);
-}
-
-void
-g_node_unlink (GNode *node)
-{
-  g_return_if_fail (node != NULL);
-  
-  if (node->prev)
-    node->prev->next = node->next;
-  else if (node->parent)
-    node->parent->children = node->next;
-  node->parent = NULL;
-  if (node->next)
-    {
-      node->next->prev = node->prev;
-      node->next = NULL;
-    }
-  node->prev = NULL;
-}
-
-GNode*
-g_node_insert (GNode *parent,
-	       gint   position,
-	       GNode *node)
-{
-  g_return_val_if_fail (parent != NULL, node);
-  g_return_val_if_fail (node != NULL, node);
-  g_return_val_if_fail (G_NODE_IS_ROOT (node), node);
-  
-  if (position > 0)
-    return g_node_insert_before (parent,
-				 g_node_nth_child (parent, position),
-				 node);
-  else if (position == 0)
-    return g_node_prepend (parent, node);
-  else /* if (position < 0) */
-    return g_node_append (parent, node);
-}
-
-GNode*
-g_node_insert_before (GNode *parent,
-		      GNode *sibling,
-		      GNode *node)
-{
-  g_return_val_if_fail (parent != NULL, node);
-  g_return_val_if_fail (node != NULL, node);
-  g_return_val_if_fail (G_NODE_IS_ROOT (node), node);
-  if (sibling)
-    g_return_val_if_fail (sibling->parent == parent, node);
-  
-  node->parent = parent;
-  
-  if (sibling)
-    {
-      if (sibling->prev)
-	{
-	  node->prev = sibling->prev;
-	  node->prev->next = node;
-	  node->next = sibling;
-	  sibling->prev = node;
-	}
-      else
-	{
-	  node->parent->children = node;
-	  node->next = sibling;
-	  sibling->prev = node;
-	}
-    }
-  else
-    {
-      if (parent->children)
-	{
-	  sibling = parent->children;
-	  while (sibling->next)
-	    sibling = sibling->next;
-	  node->prev = sibling;
-	  sibling->next = node;
-	}
-      else
-	node->parent->children = node;
-    }
-
-  return node;
-}
-
-GNode*
-g_node_prepend (GNode *parent,
-		GNode *node)
-{
-  g_return_val_if_fail (parent != NULL, node);
-  
-  return g_node_insert_before (parent, parent->children, node);
-}
-
-GNode*
-g_node_get_root (GNode *node)
-{
-  g_return_val_if_fail (node != NULL, NULL);
-  
-  while (node->parent)
-    node = node->parent;
-  
-  return node;
-}
-
-gboolean
-g_node_is_ancestor (GNode *node,
-		    GNode *descendant)
-{
-  g_return_val_if_fail (node != NULL, FALSE);
-  g_return_val_if_fail (descendant != NULL, FALSE);
-  
-  while (descendant)
-    {
-      if (descendant->parent == node)
-	return TRUE;
-      
-      descendant = descendant->parent;
-    }
-  
-  return FALSE;
-}
-
-/* returns 1 for root, 2 for first level children,
- * 3 for children's children...
- */
-guint
-g_node_depth (GNode *node)
-{
-  register guint depth = 0;
-  
-  while (node)
-    {
-      depth++;
-      node = node->parent;
-    }
-  
-  return depth;
-}
-
-void
-g_node_reverse_children (GNode *node)
-{
-  GNode *child;
-  GNode *last;
-  
-  g_return_if_fail (node != NULL);
-  
-  child = node->children;
-  last = NULL;
-  while (child)
-    {
-      last = child;
-      child = last->next;
-      last->next = last->prev;
-      last->prev = child;
-    }
-  node->children = last;
-}
-
-guint
-g_node_max_height (GNode *root)
-{
-  register GNode *child;
-  register guint max_height = 0;
-  
-  if (!root)
-    return 0;
-  
-  child = root->children;
-  while (child)
-    {
-      register guint tmp_height;
-      
-      tmp_height = g_node_max_height (child);
-      if (tmp_height > max_height)
-	max_height = tmp_height;
-      child = child->next;
-    }
-  
-  return max_height + 1;
-}
-
-static gboolean
-g_node_traverse_pre_order (GNode	    *node,
-			   GTraverseFlags    flags,
-			   GNodeTraverseFunc func,
-			   gpointer	     data)
-{
-  if (node->children)
-    {
-      GNode *child;
-      
-      if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	  func (node, data))
-	return TRUE;
-      
-      child = node->children;
-      while (child)
-	{
-	  register GNode *current;
-	  
-	  current = child;
-	  child = current->next;
-	  if (g_node_traverse_pre_order (current, flags, func, data))
-	    return TRUE;
-	}
-    }
-  else if ((flags & G_TRAVERSE_LEAFS) &&
-	   func (node, data))
-    return TRUE;
-  
-  return FALSE;
-}
-
-static gboolean
-g_node_depth_traverse_pre_order (GNode		  *node,
-				 GTraverseFlags	   flags,
-				 guint		   depth,
-				 GNodeTraverseFunc func,
-				 gpointer	   data)
-{
-  if (node->children)
-    {
-      GNode *child;
-      
-      if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	  func (node, data))
-	return TRUE;
-      
-      depth--;
-      if (!depth)
-	return FALSE;
-      
-      child = node->children;
-      while (child)
-	{
-	  register GNode *current;
-	  
-	  current = child;
-	  child = current->next;
-	  if (g_node_depth_traverse_pre_order (current, flags, depth, func, data))
-	    return TRUE;
-	}
-    }
-  else if ((flags & G_TRAVERSE_LEAFS) &&
-	   func (node, data))
-    return TRUE;
-  
-  return FALSE;
-}
-
-static gboolean
-g_node_traverse_post_order (GNode	     *node,
-			    GTraverseFlags    flags,
-			    GNodeTraverseFunc func,
-			    gpointer	      data)
-{
-  if (node->children)
-    {
-      GNode *child;
-      
-      child = node->children;
-      while (child)
-	{
-	  register GNode *current;
-	  
-	  current = child;
-	  child = current->next;
-	  if (g_node_traverse_post_order (current, flags, func, data))
-	    return TRUE;
-	}
-      
-      if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	  func (node, data))
-	return TRUE;
-      
-    }
-  else if ((flags & G_TRAVERSE_LEAFS) &&
-	   func (node, data))
-    return TRUE;
-  
-  return FALSE;
-}
-
-static gboolean
-g_node_depth_traverse_post_order (GNode		   *node,
-				  GTraverseFlags    flags,
-				  guint		    depth,
-				  GNodeTraverseFunc func,
-				  gpointer	    data)
-{
-  if (node->children)
-    {
-      depth--;
-      if (depth)
-	{
-	  GNode *child;
-	  
-	  child = node->children;
-	  while (child)
-	    {
-	      register GNode *current;
-	      
-	      current = child;
-	      child = current->next;
-	      if (g_node_depth_traverse_post_order (current, flags, depth, func, data))
-		return TRUE;
-	    }
-	}
-      
-      if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	  func (node, data))
-	return TRUE;
-      
-    }
-  else if ((flags & G_TRAVERSE_LEAFS) &&
-	   func (node, data))
-    return TRUE;
-  
-  return FALSE;
-}
-
-static gboolean
-g_node_traverse_in_order (GNode		   *node,
-			  GTraverseFlags    flags,
-			  GNodeTraverseFunc func,
-			  gpointer	    data)
-{
-  if (node->children)
-    {
-      GNode *child;
-      register GNode *current;
-      
-      child = node->children;
-      current = child;
-      child = current->next;
-      
-      if (g_node_traverse_in_order (current, flags, func, data))
-	return TRUE;
-      
-      if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	  func (node, data))
-	return TRUE;
-      
-      while (child)
-	{
-	  current = child;
-	  child = current->next;
-	  if (g_node_traverse_in_order (current, flags, func, data))
-	    return TRUE;
-	}
-    }
-  else if ((flags & G_TRAVERSE_LEAFS) &&
-	   func (node, data))
-    return TRUE;
-  
-  return FALSE;
-}
-
-static gboolean
-g_node_depth_traverse_in_order (GNode		 *node,
-				GTraverseFlags	  flags,
-				guint		  depth,
-				GNodeTraverseFunc func,
-				gpointer	  data)
-{
-  if (node->children)
-    {
-      depth--;
-      if (depth)
-	{
-	  GNode *child;
-	  register GNode *current;
-	  
-	  child = node->children;
-	  current = child;
-	  child = current->next;
-	  
-	  if (g_node_depth_traverse_in_order (current, flags, depth, func, data))
-	    return TRUE;
-	  
-	  if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	      func (node, data))
-	    return TRUE;
-	  
-	  while (child)
-	    {
-	      current = child;
-	      child = current->next;
-	      if (g_node_depth_traverse_in_order (current, flags, depth, func, data))
-		return TRUE;
-	    }
-	}
-      else if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	       func (node, data))
-	return TRUE;
-    }
-  else if ((flags & G_TRAVERSE_LEAFS) &&
-	   func (node, data))
-    return TRUE;
-  
-  return FALSE;
-}
-
-static gboolean
-g_node_traverse_children (GNode		    *node,
-			  GTraverseFlags     flags,
-			  GNodeTraverseFunc  func,
-			  gpointer	     data)
-{
-  GNode *child;
-  
-  child = node->children;
-  
-  while (child)
-    {
-      register GNode *current;
-      
-      current = child;
-      child = current->next;
-      
-      if (current->children)
-	{
-	  if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	      func (current, data))
-	    return TRUE;
-	}
-      else if ((flags & G_TRAVERSE_LEAFS) &&
-	       func (current, data))
-	return TRUE;
-    }
-  
-  child = node->children;
-  
-  while (child)
-    {
-      register GNode *current;
-      
-      current = child;
-      child = current->next;
-      
-      if (current->children &&
-	  g_node_traverse_children (current, flags, func, data))
-	return TRUE;
-    }
-  
-  return FALSE;
-}
-
-static gboolean
-g_node_depth_traverse_children (GNode		 *node,
-				GTraverseFlags	  flags,
-				guint		  depth,
-				GNodeTraverseFunc func,
-				gpointer	  data)
-{
-  GNode *child;
-  
-  child = node->children;
-  
-  while (child)
-    {
-      register GNode *current;
-      
-      current = child;
-      child = current->next;
-      
-      if (current->children)
-	{
-	  if ((flags & G_TRAVERSE_NON_LEAFS) &&
-	      func (current, data))
-	    return TRUE;
-	}
-      else if ((flags & G_TRAVERSE_LEAFS) &&
-	       func (current, data))
-	return TRUE;
-    }
-  
-  depth--;
-  if (!depth)
-    return FALSE;
-  
-  child = node->children;
-  
-  while (child)
-    {
-      register GNode *current;
-      
-      current = child;
-      child = current->next;
-      
-      if (current->children &&
-	  g_node_depth_traverse_children (current, flags, depth, func, data))
-	return TRUE;
-    }
-  
-  return FALSE;
-}
-
-void
-g_node_traverse (GNode		  *root,
-		 GTraverseType	   order,
-		 GTraverseFlags	   flags,
-		 gint		   depth,
-		 GNodeTraverseFunc func,
-		 gpointer	   data)
-{
-  g_return_if_fail (root != NULL);
-  g_return_if_fail (func != NULL);
-  g_return_if_fail (order <= G_LEVEL_ORDER);
-  g_return_if_fail (flags <= G_TRAVERSE_MASK);
-  g_return_if_fail (depth == -1 || depth > 0);
-  
-  switch (order)
-    {
-    case G_PRE_ORDER:
-      if (depth < 0)
-	g_node_traverse_pre_order (root, flags, func, data);
-      else
-	g_node_depth_traverse_pre_order (root, flags, depth, func, data);
-      break;
-    case G_POST_ORDER:
-      if (depth < 0)
-	g_node_traverse_post_order (root, flags, func, data);
-      else
-	g_node_depth_traverse_post_order (root, flags, depth, func, data);
-      break;
-    case G_IN_ORDER:
-      if (depth < 0)
-	g_node_traverse_in_order (root, flags, func, data);
-      else
-	g_node_depth_traverse_in_order (root, flags, depth, func, data);
-      break;
-    case G_LEVEL_ORDER:
-      if (root->children)
-	{
-	  if (!((flags & G_TRAVERSE_NON_LEAFS) &&
-		func (root, data)))
-	    {
-	      if (depth < 0)
-		g_node_traverse_children (root, flags, func, data);
-	      else
-		{
-		  depth--;
-		  if (depth)
-		    g_node_depth_traverse_children (root, flags, depth, func, data);
-		}
-	    }
-	}
-      else if (flags & G_TRAVERSE_LEAFS)
-	func (root, data);
-      break;
-    }
-}
-
-static gboolean
-g_node_find_func (GNode	  *node,
-		  gpointer data)
-{
-  register gpointer *d = data;
-  
-  if (*d != node->data)
-    return FALSE;
-  
-  *(++d) = node;
-  
-  return TRUE;
-}
-
-GNode*
-g_node_find (GNode	       *root,
-	     GTraverseType	order,
-	     GTraverseFlags	flags,
-	     gpointer		data)
-{
-  gpointer d[2];
-  
-  g_return_val_if_fail (root != NULL, NULL);
-  g_return_val_if_fail (order <= G_LEVEL_ORDER, NULL);
-  g_return_val_if_fail (flags <= G_TRAVERSE_MASK, NULL);
-  
-  d[0] = data;
-  d[1] = NULL;
-  
-  g_node_traverse (root, order, flags, -1, g_node_find_func, d);
-  
-  return d[1];
-}
-
-static void
-g_node_count_func (GNode	 *node,
-		   GTraverseFlags flags,
-		   guint	 *n)
-{
-  if (node->children)
-    {
-      GNode *child;
-      
-      if (flags & G_TRAVERSE_NON_LEAFS)
-	(*n)++;
-      
-      child = node->children;
-      while (child)
-	{
-	  g_node_count_func (child, flags, n);
-	  child = child->next;
-	}
-    }
-  else if (flags & G_TRAVERSE_LEAFS)
-    (*n)++;
-}
-
-guint
-g_node_n_nodes (GNode	      *root,
-		GTraverseFlags flags)
-{
-  guint n = 0;
-  
-  g_return_val_if_fail (root != NULL, 0);
-  g_return_val_if_fail (flags <= G_TRAVERSE_MASK, 0);
-  
-  g_node_count_func (root, flags, &n);
-  
-  return n;
-}
-
-GNode*
-g_node_last_child (GNode *node)
-{
-  g_return_val_if_fail (node != NULL, NULL);
-  
-  node = node->children;
-  if (node)
-    while (node->next)
-      node = node->next;
-  
-  return node;
-}
-
-GNode*
-g_node_nth_child (GNode *node,
-		  guint	 n)
-{
-  g_return_val_if_fail (node != NULL, NULL);
-  
-  node = node->children;
-  if (node)
-    while ((n-- > 0) && node)
-      node = node->next;
-  
-  return node;
-}
-
-guint
-g_node_n_children (GNode *node)
-{
-  guint n = 0;
-  
-  g_return_val_if_fail (node != NULL, 0);
-  
-  node = node->children;
-  while (node)
-    {
-      n++;
-      node = node->next;
-    }
-  
-  return n;
-}
-
-GNode*
-g_node_find_child (GNode	 *node,
-		   GTraverseFlags flags,
-		   gpointer	  data)
-{
-  g_return_val_if_fail (node != NULL, NULL);
-  g_return_val_if_fail (flags <= G_TRAVERSE_MASK, NULL);
-  
-  node = node->children;
-  while (node)
-    {
-      if (node->data == data)
-	{
-	  if (G_NODE_IS_LEAF (node))
-	    {
-	      if (flags & G_TRAVERSE_LEAFS)
-		return node;
-	    }
-	  else
-	    {
-	      if (flags & G_TRAVERSE_NON_LEAFS)
-		return node;
-	    }
-	}
-      node = node->next;
-    }
-  
-  return NULL;
-}
-
-gint
-g_node_child_position (GNode *node,
-		       GNode *child)
-{
-  register guint n = 0;
-  
-  g_return_val_if_fail (node != NULL, -1);
-  g_return_val_if_fail (child != NULL, -1);
-  g_return_val_if_fail (child->parent == node, -1);
-  
-  node = node->children;
-  while (node)
-    {
-      if (node == child)
-	return n;
-      n++;
-      node = node->next;
-    }
-  
-  return -1;
-}
-
-gint
-g_node_child_index (GNode   *node,
-		    gpointer data)
-{
-  register guint n = 0;
-  
-  g_return_val_if_fail (node != NULL, -1);
-  
-  node = node->children;
-  while (node)
-    {
-      if (node->data == data)
-	return n;
-      n++;
-      node = node->next;
-    }
-  
-  return -1;
-}
-
-GNode*
-g_node_first_sibling (GNode *node)
-{
-  g_return_val_if_fail (node != NULL, NULL);
-  
-  while (node->prev)
-    node = node->prev;
-  
-  return node;
-}
-
-GNode*
-g_node_last_sibling (GNode *node)
-{
-  g_return_val_if_fail (node != NULL, NULL);
-  
-  while (node->next)
-    node = node->next;
-  
-  return node;
-}
-
-void
-g_node_children_foreach (GNode		 *node,
-			 GTraverseFlags	  flags,
-			 GNodeForeachFunc func,
-			 gpointer	  data)
-{
-  g_return_if_fail (node != NULL);
-  g_return_if_fail (flags <= G_TRAVERSE_MASK);
-  g_return_if_fail (func != NULL);
-  
-  node = node->children;
-  while (node)
-    {
-      register GNode *current;
-      
-      current = node;
-      node = current->next;
-      if (G_NODE_IS_LEAF (current))
-	{
-	  if (flags & G_TRAVERSE_LEAFS)
-	    func (current, data);
-	}
-      else
-	{
-	  if (flags & G_TRAVERSE_NON_LEAFS)
-	    func (current, data);
-	}
-    }
-}
diff --git a/glib/gprimes.c b/glib/gprimes.c
deleted file mode 100644
index c6109bf..0000000
--- a/glib/gprimes.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-static const guint g_primes[] =
-{
-  11,
-  19,
-  37,
-  73,
-  109,
-  163,
-  251,
-  367,
-  557,
-  823,
-  1237,
-  1861,
-  2777,
-  4177,
-  6247,
-  9371,
-  14057,
-  21089,
-  31627,
-  47431,
-  71143,
-  106721,
-  160073,
-  240101,
-  360163,
-  540217,
-  810343,
-  1215497,
-  1823231,
-  2734867,
-  4102283,
-  6153409,
-  9230113,
-  13845163,
-};
-
-static const guint g_nprimes = sizeof (g_primes) / sizeof (g_primes[0]);
-
-guint
-g_spaced_primes_closest (guint num)
-{
-  gint i;
-
-  for (i = 0; i < g_nprimes; i++)
-    if (g_primes[i] > num)
-      return g_primes[i];
-
-  return g_primes[g_nprimes - 1];
-}
diff --git a/glib/grel.c b/glib/grel.c
deleted file mode 100644
index 4358cdc..0000000
--- a/glib/grel.c
+++ /dev/null
@@ -1,459 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-#include <stdarg.h>
-#include <string.h>
-
-typedef struct _GRealRelation      GRealRelation;
-typedef struct _GRealTuples        GRealTuples;
-
-struct _GRealRelation
-{
-  gint fields;
-  gint current_field;
-  
-  GHashTable   *all_tuples;
-  GHashTable  **hashed_tuple_tables;
-  GMemChunk    *tuple_chunk;
-  
-  gint count;
-};
-
-struct _GRealTuples
-{
-  gint      len;
-  gint      width;
-  gpointer *data;
-};
-
-static gboolean
-tuple_equal_2 (gconstpointer v_a,
-	       gconstpointer v_b)
-{
-  gpointer* a = (gpointer*) v_a;
-  gpointer* b = (gpointer*) v_b;
-  
-  return a[0] == b[0] && a[1] == b[1];
-}
-
-static guint
-tuple_hash_2 (gconstpointer v_a)
-{
-  gpointer* a = (gpointer*) v_a;
-  
-  return (gulong)a[0] ^ (gulong)a[1];
-}
-
-static GHashFunc
-tuple_hash (gint fields)
-{
-  switch (fields)
-    {
-    case 2:
-      return tuple_hash_2;
-    default:
-      g_error ("no tuple hash for %d", fields);
-    }
-  
-  return NULL;
-}
-
-static GCompareFunc
-tuple_equal (gint fields)
-{
-  switch (fields)
-    {
-    case 2:
-      return tuple_equal_2;
-    default:
-      g_error ("no tuple equal for %d", fields);
-    }
-  
-  return NULL;
-}
-
-GRelation*
-g_relation_new (gint fields)
-{
-  GRealRelation* rel = g_new0 (GRealRelation, 1);
-  
-  rel->fields = fields;
-  rel->tuple_chunk = g_mem_chunk_new ("Relation Chunk",
-				      fields * sizeof (gpointer),
-				      fields * sizeof (gpointer) * 128,
-				      G_ALLOC_AND_FREE);
-  rel->all_tuples = g_hash_table_new (tuple_hash (fields), tuple_equal (fields));
-  rel->hashed_tuple_tables = g_new0 (GHashTable*, fields);
-  
-  return (GRelation*) rel;
-}
-
-static void
-g_relation_free_array (gpointer key, gpointer value, gpointer user_data)
-{
-  g_hash_table_destroy ((GHashTable*) value);
-}
-
-void
-g_relation_destroy (GRelation *relation)
-{
-  GRealRelation *rel = (GRealRelation *) relation;
-  gint i;
-  
-  if (rel)
-    {
-      g_hash_table_destroy (rel->all_tuples);
-      g_mem_chunk_destroy (rel->tuple_chunk);
-      
-      for (i = 0; i < rel->fields; i += 1)
-	{
-	  if (rel->hashed_tuple_tables[i])
-	    {
-	      g_hash_table_foreach (rel->hashed_tuple_tables[i], g_relation_free_array, NULL);
-	      g_hash_table_destroy (rel->hashed_tuple_tables[i]);
-	    }
-	}
-      
-      g_free (rel->hashed_tuple_tables);
-      g_free (rel);
-    }
-}
-
-void
-g_relation_index (GRelation   *relation,
-		  gint         field,
-		  GHashFunc    hash_func,
-		  GCompareFunc key_compare_func)
-{
-  GRealRelation *rel = (GRealRelation *) relation;
-
-  g_return_if_fail (relation != NULL);
-  
-  g_return_if_fail (rel->count == 0 && rel->hashed_tuple_tables[field] == NULL);
-  
-  rel->hashed_tuple_tables[field] = g_hash_table_new (hash_func, key_compare_func);
-}
-
-void
-g_relation_insert (GRelation   *relation,
-		   ...)
-{
-  GRealRelation *rel = (GRealRelation *) relation;
-  gpointer* tuple = g_chunk_new (gpointer, rel->tuple_chunk);
-  va_list args;
-  gint i;
-  
-  va_start(args, relation);
-  
-  for (i = 0; i < rel->fields; i += 1)
-    tuple[i] = va_arg(args, gpointer);
-  
-  va_end(args);
-  
-  g_hash_table_insert (rel->all_tuples, tuple, tuple);
-  
-  rel->count += 1;
-  
-  for (i = 0; i < rel->fields; i += 1)
-    {
-      GHashTable *table;
-      gpointer    key;
-      GHashTable *per_key_table;
-      
-      table = rel->hashed_tuple_tables[i];
-      
-      if (table == NULL)
-	continue;
-      
-      key = tuple[i];
-      per_key_table = g_hash_table_lookup (table, key);
-      
-      if (per_key_table == NULL)
-	{
-	  per_key_table = g_hash_table_new (tuple_hash (rel->fields), tuple_equal (rel->fields));
-	  g_hash_table_insert (table, key, per_key_table);
-	}
-      
-      g_hash_table_insert (per_key_table, tuple, tuple);
-    }
-}
-
-static void
-g_relation_delete_tuple (gpointer tuple_key,
-			 gpointer tuple_value,
-			 gpointer user_data)
-{
-  gpointer      *tuple = (gpointer*) tuple_value;
-  GRealRelation *rel = (GRealRelation *) user_data;
-  gint           j;
-  
-  g_assert (tuple_key == tuple_value);
-  
-  for (j = 0; j < rel->fields; j += 1)
-    {
-      GHashTable *one_table = rel->hashed_tuple_tables[j];
-      gpointer    one_key;
-      GHashTable *per_key_table;
-      
-      if (one_table == NULL)
-	continue;
-      
-      if (j == rel->current_field)
-	/* can't delete from the table we're foreaching in */
-	continue;
-      
-      one_key = tuple[j];
-      
-      per_key_table = g_hash_table_lookup (one_table, one_key);
-      
-      g_hash_table_remove (per_key_table, tuple);
-    }
-  
-  g_hash_table_remove (rel->all_tuples, tuple);
-  
-  rel->count -= 1;
-}
-
-gint
-g_relation_delete  (GRelation     *relation,
-		    gconstpointer  key,
-		    gint           field)
-{
-  GRealRelation *rel = (GRealRelation *) relation;
-  GHashTable *table = rel->hashed_tuple_tables[field];
-  GHashTable *key_table;
-  gint        count = rel->count;
-  
-  g_return_val_if_fail (relation != NULL, 0);
-  g_return_val_if_fail (table != NULL, 0);
-  
-  key_table = g_hash_table_lookup (table, key);
-  
-  if (!key_table)
-    return 0;
-  
-  rel->current_field = field;
-  
-  g_hash_table_foreach (key_table, g_relation_delete_tuple, rel);
-  
-  g_hash_table_remove (table, key);
-  
-  g_hash_table_destroy (key_table);
-  
-  /* @@@ FIXME: Remove empty hash tables. */
-  
-  return count - rel->count;
-}
-
-static void
-g_relation_select_tuple (gpointer tuple_key,
-			 gpointer tuple_value,
-			 gpointer user_data)
-{
-  gpointer    *tuple = (gpointer*) tuple_value;
-  GRealTuples *tuples = (GRealTuples*) user_data;
-  gint stride = sizeof (gpointer) * tuples->width;
-  
-  g_assert (tuple_key == tuple_value);
-  
-  memcpy (tuples->data + (tuples->len * tuples->width),
-	  tuple,
-	  stride);
-  
-  tuples->len += 1;
-}
-
-GTuples*
-g_relation_select (GRelation     *relation,
-		   gconstpointer  key,
-		   gint           field)
-{
-  GRealRelation *rel = (GRealRelation *) relation;
-  GHashTable  *table = rel->hashed_tuple_tables[field];
-  GHashTable  *key_table;
-  GRealTuples *tuples = g_new0 (GRealTuples, 1);
-  gint count;
-  
-  g_return_val_if_fail (relation != NULL, NULL);
-  g_return_val_if_fail (table != NULL, NULL);
-  
-  key_table = g_hash_table_lookup (table, key);
-  
-  if (!key_table)
-    return (GTuples*)tuples;
-  
-  count = g_relation_count (relation, key, field);
-  
-  tuples->data = g_malloc (sizeof (gpointer) * rel->fields * count);
-  tuples->width = rel->fields;
-  
-  g_hash_table_foreach (key_table, g_relation_select_tuple, tuples);
-  
-  g_assert (count == tuples->len);
-  
-  return (GTuples*)tuples;
-}
-
-gint
-g_relation_count (GRelation     *relation,
-		  gconstpointer  key,
-		  gint           field)
-{
-  GRealRelation *rel = (GRealRelation *) relation;
-  GHashTable  *table = rel->hashed_tuple_tables[field];
-  GHashTable  *key_table;
-  
-  g_return_val_if_fail (relation != NULL, 0);
-  g_return_val_if_fail (table != NULL, 0);
-  
-  key_table = g_hash_table_lookup (table, key);
-  
-  if (!key_table)
-    return 0;
-  
-  return g_hash_table_size (key_table);
-}
-
-gboolean
-g_relation_exists (GRelation   *relation, ...)
-{
-  GRealRelation *rel = (GRealRelation *) relation;
-  gpointer* tuple = g_chunk_new (gpointer, rel->tuple_chunk);
-  va_list args;
-  gint i;
-  gboolean result;
-  
-  va_start(args, relation);
-  
-  for (i = 0; i < rel->fields; i += 1)
-    tuple[i] = va_arg(args, gpointer);
-  
-  va_end(args);
-  
-  result = g_hash_table_lookup (rel->all_tuples, tuple) != NULL;
-  
-  g_mem_chunk_free (rel->tuple_chunk, tuple);
-  
-  return result;
-}
-
-void
-g_tuples_destroy (GTuples *tuples0)
-{
-  GRealTuples *tuples = (GRealTuples*) tuples0;
-  
-  if (tuples)
-    {
-      g_free (tuples->data);
-      g_free (tuples);
-    }
-}
-
-gpointer
-g_tuples_index (GTuples     *tuples0,
-		gint         index,
-		gint         field)
-{
-  GRealTuples *tuples = (GRealTuples*) tuples0;
-  
-  g_return_val_if_fail (tuples0 != NULL, NULL);
-  g_return_val_if_fail (field < tuples->width, NULL);
-  
-  return tuples->data[index * tuples->width + field];
-}
-
-/* Print
- */
-
-static void
-g_relation_print_one (gpointer tuple_key,
-		      gpointer tuple_value,
-		      gpointer user_data)
-{
-  gint i;
-  GString *gstring;
-  GRealRelation* rel = (GRealRelation*) user_data;
-  gpointer* tuples = (gpointer*) tuple_value;
-
-  gstring = g_string_new ("[");
-  
-  for (i = 0; i < rel->fields; i += 1)
-    {
-      g_string_sprintfa (gstring, "%p", tuples[i]);
-      
-      if (i < (rel->fields - 1))
-	g_string_append (gstring, ",");
-    }
-  
-  g_string_append (gstring, "]");
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, gstring->str);
-  g_string_free (gstring, TRUE);
-}
-
-static void
-g_relation_print_index (gpointer tuple_key,
-			gpointer tuple_value,
-			gpointer user_data)
-{
-  GRealRelation* rel = (GRealRelation*) user_data;
-  GHashTable* table = (GHashTable*) tuple_value;
-  
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "*** key %p", tuple_key);
-  
-  g_hash_table_foreach (table,
-			g_relation_print_one,
-			rel);
-}
-
-void
-g_relation_print (GRelation *relation)
-{
-  gint i;
-  GRealRelation* rel = (GRealRelation*) relation;
-  
-  g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "*** all tuples (%d)", rel->count);
-  
-  g_hash_table_foreach (rel->all_tuples,
-			g_relation_print_one,
-			rel);
-  
-  for (i = 0; i < rel->fields; i += 1)
-    {
-      if (rel->hashed_tuple_tables[i] == NULL)
-	continue;
-      
-      g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "*** index %d", i);
-      
-      g_hash_table_foreach (rel->hashed_tuple_tables[i],
-			    g_relation_print_index,
-			    rel);
-    }
-  
-}
diff --git a/glib/gscanner.c b/glib/gscanner.c
deleted file mode 100644
index becead8..0000000
--- a/glib/gscanner.c
+++ /dev/null
@@ -1,1752 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * GScanner: Flexible lexical scanner for general purpose.
- * Copyright (C) 1997, 1998 Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#define		__gscanner_c__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include	<stdlib.h>
-#include	<stdarg.h>
-#include	<string.h>
-#include	<stdio.h>
-#include	"glib.h"
-#ifdef HAVE_UNISTD_H
-#include	<unistd.h>
-#endif
-#include	<errno.h>
-#include	<sys/types.h>	/* needed for sys/stat.h */
-#include	<sys/stat.h>
-#ifdef _MSC_VER
-#include	<io.h>		/* For _read() */
-#endif
-
-/* --- defines --- */
-#define	to_lower(c)				( \
-	(guchar) (							\
-	  ( (((guchar)(c))>='A' && ((guchar)(c))<='Z') * ('a'-'A') ) |	\
-	  ( (((guchar)(c))>=192 && ((guchar)(c))<=214) * (224-192) ) |	\
-	  ( (((guchar)(c))>=216 && ((guchar)(c))<=222) * (248-216) ) |	\
-	  ((guchar)(c))							\
-	)								\
-)
-#define	READ_BUFFER_SIZE	(4000)
-
-
-/* --- typedefs --- */
-typedef	struct	_GScannerKey	GScannerKey;
-
-struct	_GScannerKey
-{
-  guint		 scope_id;
-  gchar		*symbol;
-  gpointer	 value;
-};
-
-
-
-/* --- variables --- */
-static GScannerConfig g_scanner_config_template =
-{
-  (
-   " \t\r\n"
-   )			/* cset_skip_characters */,
-  (
-   G_CSET_a_2_z
-   "_"
-   G_CSET_A_2_Z
-   )			/* cset_identifier_first */,
-  (
-   G_CSET_a_2_z
-   "_0123456789"
-   G_CSET_A_2_Z
-   G_CSET_LATINS
-   G_CSET_LATINC
-   )			/* cset_identifier_nth */,
-  ( "#\n" )		/* cpair_comment_single */,
-  
-  FALSE			/* case_sensitive */,
-  
-  TRUE			/* skip_comment_multi */,
-  TRUE			/* skip_comment_single */,
-  TRUE			/* scan_comment_multi */,
-  TRUE			/* scan_identifier */,
-  FALSE			/* scan_identifier_1char */,
-  FALSE			/* scan_identifier_NULL */,
-  TRUE			/* scan_symbols */,
-  FALSE			/* scan_binary */,
-  TRUE			/* scan_octal */,
-  TRUE			/* scan_float */,
-  TRUE			/* scan_hex */,
-  FALSE			/* scan_hex_dollar */,
-  TRUE			/* scan_string_sq */,
-  TRUE			/* scan_string_dq */,
-  TRUE			/* numbers_2_int */,
-  FALSE			/* int_2_float */,
-  FALSE			/* identifier_2_string */,
-  TRUE			/* char_2_token */,
-  FALSE			/* symbol_2_token */,
-  FALSE			/* scope_0_fallback */,
-};
-
-
-/* --- prototypes --- */
-static inline
-GScannerKey*	g_scanner_lookup_internal (GScanner	*scanner,
-					   guint	 scope_id,
-					   const gchar	*symbol);
-static gint	g_scanner_key_equal	  (gconstpointer v1,
-					   gconstpointer v2);
-static guint	g_scanner_key_hash	  (gconstpointer v);
-static void	g_scanner_get_token_ll	  (GScanner	*scanner,
-					   GTokenType	*token_p,
-					   GTokenValue	*value_p,
-					   guint	*line_p,
-					   guint	*position_p);
-static void	g_scanner_get_token_i	  (GScanner	*scanner,
-					   GTokenType	*token_p,
-					   GTokenValue	*value_p,
-					   guint	*line_p,
-					   guint	*position_p);
-
-static guchar	g_scanner_peek_next_char  (GScanner	*scanner);
-static guchar	g_scanner_get_char	  (GScanner	*scanner,
-					   guint	*line_p,
-					   guint	*position_p);
-static void	g_scanner_msg_handler	  (GScanner	*scanner,
-					   gchar	*message,
-					   gint		 is_error);
-
-
-/* --- functions --- */
-static inline gint
-g_scanner_char_2_num (guchar	c,
-		      guchar	base)
-{
-  if (c >= '0' && c <= '9')
-    c -= '0';
-  else if (c >= 'A' && c <= 'Z')
-    c -= 'A' - 10;
-  else if (c >= 'a' && c <= 'z')
-    c -= 'a' - 10;
-  else
-    return -1;
-  
-  if (c < base)
-    return c;
-  
-  return -1;
-}
-
-GScanner*
-g_scanner_new (GScannerConfig	*config_templ)
-{
-  GScanner *scanner;
-  
-  if (!config_templ)
-    config_templ = &g_scanner_config_template;
-  
-  scanner = g_new0 (GScanner, 1);
-  
-  scanner->user_data = NULL;
-  scanner->max_parse_errors = 0;
-  scanner->parse_errors	= 0;
-  scanner->input_name = NULL;
-  scanner->derived_data = NULL;
-  
-  scanner->config = g_new0 (GScannerConfig, 1);
-  
-  scanner->config->case_sensitive	= config_templ->case_sensitive;
-  scanner->config->cset_skip_characters	= config_templ->cset_skip_characters;
-  if (!scanner->config->cset_skip_characters)
-    scanner->config->cset_skip_characters = "";
-  scanner->config->cset_identifier_first= config_templ->cset_identifier_first;
-  scanner->config->cset_identifier_nth	= config_templ->cset_identifier_nth;
-  scanner->config->cpair_comment_single	= config_templ->cpair_comment_single;
-  scanner->config->skip_comment_multi	= config_templ->skip_comment_multi;
-  scanner->config->skip_comment_single	= config_templ->skip_comment_single;
-  scanner->config->scan_comment_multi	= config_templ->scan_comment_multi;
-  scanner->config->scan_identifier	= config_templ->scan_identifier;
-  scanner->config->scan_identifier_1char= config_templ->scan_identifier_1char;
-  scanner->config->scan_identifier_NULL	= config_templ->scan_identifier_NULL;
-  scanner->config->scan_symbols		= config_templ->scan_symbols;
-  scanner->config->scan_binary		= config_templ->scan_binary;
-  scanner->config->scan_octal		= config_templ->scan_octal;
-  scanner->config->scan_float		= config_templ->scan_float;
-  scanner->config->scan_hex		= config_templ->scan_hex;
-  scanner->config->scan_hex_dollar	= config_templ->scan_hex_dollar;
-  scanner->config->scan_string_sq	= config_templ->scan_string_sq;
-  scanner->config->scan_string_dq	= config_templ->scan_string_dq;
-  scanner->config->numbers_2_int	= config_templ->numbers_2_int;
-  scanner->config->int_2_float		= config_templ->int_2_float;
-  scanner->config->identifier_2_string	= config_templ->identifier_2_string;
-  scanner->config->char_2_token		= config_templ->char_2_token;
-  scanner->config->symbol_2_token	= config_templ->symbol_2_token;
-  scanner->config->scope_0_fallback	= config_templ->scope_0_fallback;
-  
-  scanner->token = G_TOKEN_NONE;
-  scanner->value.v_int = 0;
-  scanner->line = 1;
-  scanner->position = 0;
-  
-  scanner->next_token = G_TOKEN_NONE;
-  scanner->next_value.v_int = 0;
-  scanner->next_line = 1;
-  scanner->next_position = 0;
-  
-  scanner->symbol_table = g_hash_table_new (g_scanner_key_hash, g_scanner_key_equal);
-  scanner->input_fd = -1;
-  scanner->text = NULL;
-  scanner->text_end = NULL;
-  scanner->buffer = NULL;
-  scanner->scope_id = 0;
-  
-  scanner->msg_handler = g_scanner_msg_handler;
-  
-  return scanner;
-}
-
-static inline void
-g_scanner_free_value (GTokenType     *token_p,
-		      GTokenValue     *value_p)
-{
-  switch (*token_p)
-    {
-    case G_TOKEN_STRING:
-    case G_TOKEN_IDENTIFIER:
-    case G_TOKEN_IDENTIFIER_NULL:
-    case G_TOKEN_COMMENT_SINGLE:
-    case G_TOKEN_COMMENT_MULTI:
-      g_free (value_p->v_string);
-      break;
-      
-    default:
-      break;
-    }
-  
-  *token_p = G_TOKEN_NONE;
-}
-
-static void
-g_scanner_destroy_symbol_table_entry (gpointer _key,
-				      gpointer _value,
-				      gpointer _data)
-{
-  GScannerKey *key = _key;
-  
-  g_free (key->symbol);
-  g_free (key);
-}
-
-void
-g_scanner_destroy (GScanner	*scanner)
-{
-  g_return_if_fail (scanner != NULL);
-  
-  g_hash_table_foreach (scanner->symbol_table, 
-			g_scanner_destroy_symbol_table_entry, NULL);
-  g_hash_table_destroy (scanner->symbol_table);
-  g_scanner_free_value (&scanner->token, &scanner->value);
-  g_scanner_free_value (&scanner->next_token, &scanner->next_value);
-  g_free (scanner->config);
-  g_free (scanner->buffer);
-  g_free (scanner);
-}
-
-static void
-g_scanner_msg_handler (GScanner		*scanner,
-		       gchar		*message,
-		       gint		 is_error)
-{
-  g_return_if_fail (scanner != NULL);
-  
-  fprintf (stdout, "%s:%d: ", scanner->input_name, scanner->line);
-  if (is_error)
-    fprintf (stdout, "error: ");
-  fprintf (stdout, "%s\n", message);
-}
-
-void
-g_scanner_error (GScanner	*scanner,
-		 const gchar	*format,
-		 ...)
-{
-  g_return_if_fail (scanner != NULL);
-  g_return_if_fail (format != NULL);
-  
-  scanner->parse_errors++;
-  
-  if (scanner->msg_handler)
-    {
-      va_list args;
-      gchar *string;
-      
-      va_start (args, format);
-      string = g_strdup_vprintf (format, args);
-      va_end (args);
-      
-      scanner->msg_handler (scanner, string, TRUE);
-      
-      g_free (string);
-    }
-}
-
-void
-g_scanner_warn (GScanner       *scanner,
-		const gchar    *format,
-		...)
-{
-  g_return_if_fail (scanner != NULL);
-  g_return_if_fail (format != NULL);
-  
-  if (scanner->msg_handler)
-    {
-      va_list args;
-      gchar *string;
-      
-      va_start (args, format);
-      string = g_strdup_vprintf (format, args);
-      va_end (args);
-      
-      scanner->msg_handler (scanner, string, FALSE);
-      
-      g_free (string);
-    }
-}
-
-static gint
-g_scanner_key_equal (gconstpointer v1,
-		     gconstpointer v2)
-{
-  const GScannerKey *key1 = v1;
-  const GScannerKey *key2 = v2;
-  
-  return (key1->scope_id == key2->scope_id) && (strcmp (key1->symbol, key2->symbol) == 0);
-}
-
-static guint
-g_scanner_key_hash (gconstpointer v)
-{
-  const GScannerKey *key = v;
-  gchar *c;
-  guint h;
-  
-  h = key->scope_id;
-  for (c = key->symbol; *c; c++)
-    {
-      guint g;
-      
-      h = (h << 4) + *c;
-      g = h & 0xf0000000;
-      if (g)
-	{
-	  h = h ^ (g >> 24);
-	  h = h ^ g;
-	}
-    }
-  
-  return h;
-}
-
-static inline GScannerKey*
-g_scanner_lookup_internal (GScanner	*scanner,
-			   guint	 scope_id,
-			   const gchar	*symbol)
-{
-  GScannerKey	*key_p;
-  GScannerKey key;
-  
-  key.scope_id = scope_id;
-  
-  if (!scanner->config->case_sensitive)
-    {
-      gchar *d;
-      const gchar *c;
-      
-      key.symbol = g_new (gchar, strlen (symbol) + 1);
-      for (d = key.symbol, c = symbol; *c; c++, d++)
-	*d = to_lower (*c);
-      *d = 0;
-      key_p = g_hash_table_lookup (scanner->symbol_table, &key);
-      g_free (key.symbol);
-    }
-  else
-    {
-      key.symbol = (gchar*) symbol;
-      key_p = g_hash_table_lookup (scanner->symbol_table, &key);
-    }
-  
-  return key_p;
-}
-
-void
-g_scanner_scope_add_symbol (GScanner	*scanner,
-			    guint	 scope_id,
-			    const gchar	*symbol,
-			    gpointer	 value)
-{
-  GScannerKey	*key;
-  
-  g_return_if_fail (scanner != NULL);
-  g_return_if_fail (symbol != NULL);
-  
-  key = g_scanner_lookup_internal (scanner, scope_id, symbol);
-  
-  if (!key)
-    {
-      key = g_new (GScannerKey, 1);
-      key->scope_id = scope_id;
-      key->symbol = g_strdup (symbol);
-      key->value = value;
-      if (!scanner->config->case_sensitive)
-	{
-	  gchar *c;
-	  
-	  c = key->symbol;
-	  while (*c != 0)
-	    {
-	      *c = to_lower (*c);
-	      c++;
-	    }
-	}
-      g_hash_table_insert (scanner->symbol_table, key, key);
-    }
-  else
-    key->value = value;
-}
-
-void
-g_scanner_scope_remove_symbol (GScanner	   *scanner,
-			       guint	    scope_id,
-			       const gchar *symbol)
-{
-  GScannerKey	*key;
-  
-  g_return_if_fail (scanner != NULL);
-  g_return_if_fail (symbol != NULL);
-  
-  key = g_scanner_lookup_internal (scanner, scope_id, symbol);
-  
-  if (key)
-    {
-      g_hash_table_remove (scanner->symbol_table, key);
-      g_free (key->symbol);
-      g_free (key);
-    }
-}
-
-gpointer
-g_scanner_lookup_symbol (GScanner	*scanner,
-			 const gchar	*symbol)
-{
-  GScannerKey	*key;
-  guint scope_id;
-  
-  g_return_val_if_fail (scanner != NULL, NULL);
-  
-  if (!symbol)
-    return NULL;
-  
-  scope_id = scanner->scope_id;
-  key = g_scanner_lookup_internal (scanner, scope_id, symbol);
-  if (!key && scope_id && scanner->config->scope_0_fallback)
-    key = g_scanner_lookup_internal (scanner, 0, symbol);
-  
-  if (key)
-    return key->value;
-  else
-    return NULL;
-}
-
-gpointer
-g_scanner_scope_lookup_symbol (GScanner	      *scanner,
-			       guint	       scope_id,
-			       const gchar    *symbol)
-{
-  GScannerKey	*key;
-  
-  g_return_val_if_fail (scanner != NULL, NULL);
-  
-  if (!symbol)
-    return NULL;
-  
-  key = g_scanner_lookup_internal (scanner, scope_id, symbol);
-  
-  if (key)
-    return key->value;
-  else
-    return NULL;
-}
-
-guint
-g_scanner_set_scope (GScanner	    *scanner,
-		     guint	     scope_id)
-{
-  guint old_scope_id;
-  
-  g_return_val_if_fail (scanner != NULL, 0);
-  
-  old_scope_id = scanner->scope_id;
-  scanner->scope_id = scope_id;
-  
-  return old_scope_id;
-}
-
-static void
-g_scanner_foreach_internal (gpointer  _key,
-			    gpointer  _value,
-			    gpointer  _user_data)
-{
-  GScannerKey *key;
-  gpointer *d;
-  GHFunc func;
-  gpointer user_data;
-  guint *scope_id;
-  
-  d = _user_data;
-  func = (GHFunc) d[0];
-  user_data = d[1];
-  scope_id = d[2];
-  key = _value;
-  
-  if (key->scope_id == *scope_id)
-    func (key->symbol, key->value, user_data);
-}
-
-void
-g_scanner_scope_foreach_symbol (GScanner       *scanner,
-				guint		scope_id,
-				GHFunc		func,
-				gpointer	user_data)
-{
-  gpointer d[3];
-  
-  g_return_if_fail (scanner != NULL);
-  
-  d[0] = (gpointer) func;
-  d[1] = user_data;
-  d[2] = &scope_id;
-  
-  g_hash_table_foreach (scanner->symbol_table, g_scanner_foreach_internal, d);
-}
-
-void
-g_scanner_freeze_symbol_table (GScanner *scanner)
-{
-  g_return_if_fail (scanner != NULL);
-  
-  g_hash_table_freeze (scanner->symbol_table);
-}
-
-void
-g_scanner_thaw_symbol_table (GScanner *scanner)
-{
-  g_return_if_fail (scanner != NULL);
-  
-  g_hash_table_thaw (scanner->symbol_table);
-}
-
-GTokenType
-g_scanner_peek_next_token (GScanner	*scanner)
-{
-  g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF);
-  
-  if (scanner->next_token == G_TOKEN_NONE)
-    {
-      scanner->next_line = scanner->line;
-      scanner->next_position = scanner->position;
-      g_scanner_get_token_i (scanner,
-			     &scanner->next_token,
-			     &scanner->next_value,
-			     &scanner->next_line,
-			     &scanner->next_position);
-    }
-  
-  return scanner->next_token;
-}
-
-GTokenType
-g_scanner_get_next_token (GScanner	*scanner)
-{
-  g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF);
-  
-  if (scanner->next_token != G_TOKEN_NONE)
-    {
-      g_scanner_free_value (&scanner->token, &scanner->value);
-      
-      scanner->token = scanner->next_token;
-      scanner->value = scanner->next_value;
-      scanner->line = scanner->next_line;
-      scanner->position = scanner->next_position;
-      scanner->next_token = G_TOKEN_NONE;
-    }
-  else
-    g_scanner_get_token_i (scanner,
-			   &scanner->token,
-			   &scanner->value,
-			   &scanner->line,
-			   &scanner->position);
-  
-  return scanner->token;
-}
-
-GTokenType
-g_scanner_cur_token (GScanner *scanner)
-{
-  g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF);
-  
-  return scanner->token;
-}
-
-GTokenValue
-g_scanner_cur_value (GScanner *scanner)
-{
-  GTokenValue v;
-  
-  v.v_int = 0;
-  
-  g_return_val_if_fail (scanner != NULL, v);
-
-  /* MSC isn't capable of handling return scanner->value; ? */
-
-  v = scanner->value;
-
-  return v;
-}
-
-guint
-g_scanner_cur_line (GScanner *scanner)
-{
-  g_return_val_if_fail (scanner != NULL, 0);
-  
-  return scanner->line;
-}
-
-guint
-g_scanner_cur_position (GScanner *scanner)
-{
-  g_return_val_if_fail (scanner != NULL, 0);
-  
-  return scanner->position;
-}
-
-gboolean
-g_scanner_eof (GScanner	*scanner)
-{
-  g_return_val_if_fail (scanner != NULL, TRUE);
-  
-  return scanner->token == G_TOKEN_EOF;
-}
-
-void
-g_scanner_input_file (GScanner *scanner,
-		      gint	input_fd)
-{
-  g_return_if_fail (scanner != NULL);
-  g_return_if_fail (input_fd >= 0);
-
-  if (scanner->input_fd >= 0)
-    g_scanner_sync_file_offset (scanner);
-
-  scanner->token = G_TOKEN_NONE;
-  scanner->value.v_int = 0;
-  scanner->line = 1;
-  scanner->position = 0;
-  scanner->next_token = G_TOKEN_NONE;
-
-  scanner->input_fd = input_fd;
-  scanner->text = NULL;
-  scanner->text_end = NULL;
-
-  if (!scanner->buffer)
-    scanner->buffer = g_new (gchar, READ_BUFFER_SIZE + 1);
-}
-
-void
-g_scanner_input_text (GScanner	  *scanner,
-		      const gchar *text,
-		      guint	   text_len)
-{
-  g_return_if_fail (scanner != NULL);
-  if (text_len)
-    g_return_if_fail (text != NULL);
-  else
-    text = NULL;
-
-  if (scanner->input_fd >= 0)
-    g_scanner_sync_file_offset (scanner);
-
-  scanner->token = G_TOKEN_NONE;
-  scanner->value.v_int = 0;
-  scanner->line = 1;
-  scanner->position = 0;
-  scanner->next_token = G_TOKEN_NONE;
-
-  scanner->input_fd = -1;
-  scanner->text = text;
-  scanner->text_end = text + text_len;
-
-  if (scanner->buffer)
-    {
-      g_free (scanner->buffer);
-      scanner->buffer = NULL;
-    }
-}
-
-static guchar
-g_scanner_peek_next_char (GScanner *scanner)
-{
-  if (scanner->text < scanner->text_end)
-    {
-      return *scanner->text;
-    }
-  else if (scanner->input_fd >= 0)
-    {
-      gint count;
-      gchar *buffer;
-
-      buffer = scanner->buffer;
-      do
-	{
-	  count = read (scanner->input_fd, buffer, READ_BUFFER_SIZE);
-	}
-      while (count == -1 && (errno == EINTR || errno == EAGAIN));
-
-      if (count < 1)
-	{
-	  scanner->input_fd = -1;
-
-	  return 0;
-	}
-      else
-	{
-	  scanner->text = buffer;
-	  scanner->text_end = buffer + count;
-
-	  return *buffer;
-	}
-    }
-  else
-    return 0;
-}
-
-void
-g_scanner_sync_file_offset (GScanner *scanner)
-{
-  g_return_if_fail (scanner != NULL);
-
-  /* for file input, rewind the filedescriptor to the current
-   * buffer position and blow the file read ahead buffer. usefull for
-   * third party uses of our filedescriptor, which hooks onto the current
-   * scanning position.
-   */
-
-  if (scanner->input_fd >= 0 && scanner->text_end > scanner->text)
-    {
-      gint buffered;
-
-      buffered = scanner->text_end - scanner->text;
-      if (lseek (scanner->input_fd, - buffered, SEEK_CUR) >= 0)
-	{
-	  /* we succeeded, blow our buffer's contents now */
-	  scanner->text = NULL;
-	  scanner->text_end = NULL;
-	}
-      else
-	errno = 0;
-    }
-}
-
-static guchar
-g_scanner_get_char (GScanner	*scanner,
-		    guint	*line_p,
-		    guint	*position_p)
-{
-  guchar fchar;
-
-  if (scanner->text < scanner->text_end)
-    fchar = *(scanner->text++);
-  else if (scanner->input_fd >= 0)
-    {
-      gint count;
-      gchar *buffer;
-
-      buffer = scanner->buffer;
-      do
-	{
-	  count = read (scanner->input_fd, buffer, READ_BUFFER_SIZE);
-	}
-      while (count == -1 && (errno == EINTR || errno == EAGAIN));
-
-      if (count < 1)
-	{
-	  scanner->input_fd = -1;
-	  fchar = 0;
-	}
-      else
-	{
-	  scanner->text = buffer + 1;
-	  scanner->text_end = buffer + count;
-	  fchar = *buffer;
-	  if (!fchar)
-	    {
-	      g_scanner_sync_file_offset (scanner);
-	      scanner->text_end = scanner->text;
-	      scanner->input_fd = -1;
-	    }
-	}
-    }
-  else
-    fchar = 0;
-  
-  if (fchar == '\n')
-    {
-      (*position_p) = 0;
-      (*line_p)++;
-    }
-  else if (fchar)
-    {
-      (*position_p)++;
-    }
-  
-  return fchar;
-}
-
-void
-g_scanner_unexp_token (GScanner		*scanner,
-		       GTokenType	 expected_token,
-		       const gchar	*identifier_spec,
-		       const gchar	*symbol_spec,
-		       const gchar	*symbol_name,
-		       const gchar	*message,
-		       gint		 is_error)
-{
-  gchar	*token_string;
-  guint	token_string_len;
-  gchar	*expected_string;
-  guint	expected_string_len;
-  gchar	*message_prefix;
-  gboolean print_unexp;
-  void (*msg_handler)	(GScanner*, const gchar*, ...);
-  
-  g_return_if_fail (scanner != NULL);
-  
-  if (is_error)
-    msg_handler = g_scanner_error;
-  else
-    msg_handler = g_scanner_warn;
-  
-  if (!identifier_spec)
-    identifier_spec = "identifier";
-  if (!symbol_spec)
-    symbol_spec = "symbol";
-  
-  token_string_len = 56;
-  token_string = g_new (gchar, token_string_len + 1);
-  expected_string_len = 64;
-  expected_string = g_new (gchar, expected_string_len + 1);
-  print_unexp = TRUE;
-  
-  switch (scanner->token)
-    {
-    case G_TOKEN_EOF:
-      g_snprintf (token_string, token_string_len, "end of file");
-      break;
-      
-    default:
-      if (scanner->token >= 1 && scanner->token <= 255)
-	{
-	  if ((scanner->token >= ' ' && scanner->token <= '~') ||
-	      strchr (scanner->config->cset_identifier_first, scanner->token) ||
-	      strchr (scanner->config->cset_identifier_nth, scanner->token))
-	    g_snprintf (token_string, expected_string_len, "character `%c'", scanner->token);
-	  else
-	    g_snprintf (token_string, expected_string_len, "character `\\%o'", scanner->token);
-	  break;
-	}
-      else if (!scanner->config->symbol_2_token)
-	{
-	  g_snprintf (token_string, token_string_len, "(unknown) token <%d>", scanner->token);
-	  break;
-	}
-      /* fall through */
-    case G_TOKEN_SYMBOL:
-      if (expected_token == G_TOKEN_SYMBOL ||
-	  (scanner->config->symbol_2_token &&
-	   expected_token > G_TOKEN_LAST))
-	print_unexp = FALSE;
-      if (symbol_name)
-	g_snprintf (token_string,
-		    token_string_len,
-		    "%s%s `%s'",
-		    print_unexp ? "" : "invalid ",
-		    symbol_spec,
-		    symbol_name);
-      else
-	g_snprintf (token_string,
-		    token_string_len,
-		    "%s%s",
-		    print_unexp ? "" : "invalid ",
-		    symbol_spec);
-      break;
-      
-    case G_TOKEN_ERROR:
-      print_unexp = FALSE;
-      expected_token = G_TOKEN_NONE;
-      switch (scanner->value.v_error)
-	{
-	case G_ERR_UNEXP_EOF:
-	  g_snprintf (token_string, token_string_len, "scanner: unexpected end of file");
-	  break;
-	  
-	case G_ERR_UNEXP_EOF_IN_STRING:
-	  g_snprintf (token_string, token_string_len, "scanner: unterminated string constant");
-	  break;
-	  
-	case G_ERR_UNEXP_EOF_IN_COMMENT:
-	  g_snprintf (token_string, token_string_len, "scanner: unterminated comment");
-	  break;
-	  
-	case G_ERR_NON_DIGIT_IN_CONST:
-	  g_snprintf (token_string, token_string_len, "scanner: non digit in constant");
-	  break;
-	  
-	case G_ERR_FLOAT_RADIX:
-	  g_snprintf (token_string, token_string_len, "scanner: invalid radix for floating constant");
-	  break;
-	  
-	case G_ERR_FLOAT_MALFORMED:
-	  g_snprintf (token_string, token_string_len, "scanner: malformed floating constant");
-	  break;
-	  
-	case G_ERR_DIGIT_RADIX:
-	  g_snprintf (token_string, token_string_len, "scanner: digit is beyond radix");
-	  break;
-	  
-	case G_ERR_UNKNOWN:
-	default:
-	  g_snprintf (token_string, token_string_len, "scanner: unknown error");
-	  break;
-	}
-      break;
-      
-    case G_TOKEN_CHAR:
-      g_snprintf (token_string, token_string_len, "character `%c'", scanner->value.v_char);
-      break;
-      
-    case G_TOKEN_IDENTIFIER:
-    case G_TOKEN_IDENTIFIER_NULL:
-      if (expected_token == G_TOKEN_IDENTIFIER ||
-	  expected_token == G_TOKEN_IDENTIFIER_NULL)
-	print_unexp = FALSE;
-      g_snprintf (token_string,
-		  token_string_len,
-		  "%s%s `%s'",
-		  print_unexp ? "" : "invalid ",
-		  identifier_spec,
-		  scanner->token == G_TOKEN_IDENTIFIER ? scanner->value.v_string : "null");
-      break;
-      
-    case G_TOKEN_BINARY:
-    case G_TOKEN_OCTAL:
-    case G_TOKEN_INT:
-    case G_TOKEN_HEX:
-      g_snprintf (token_string, token_string_len, "number `%ld'", scanner->value.v_int);
-      break;
-      
-    case G_TOKEN_FLOAT:
-      g_snprintf (token_string, token_string_len, "number `%.3f'", scanner->value.v_float);
-      break;
-      
-    case G_TOKEN_STRING:
-      if (expected_token == G_TOKEN_STRING)
-	print_unexp = FALSE;
-      g_snprintf (token_string,
-		  token_string_len,
-		  "%s%sstring constant \"%s\"",
-		  print_unexp ? "" : "invalid ",
-		  scanner->value.v_string[0] == 0 ? "empty " : "",
-		  scanner->value.v_string);
-      token_string[token_string_len - 2] = '"';
-      token_string[token_string_len - 1] = 0;
-      break;
-      
-    case G_TOKEN_COMMENT_SINGLE:
-    case G_TOKEN_COMMENT_MULTI:
-      g_snprintf (token_string, token_string_len, "comment");
-      break;
-      
-    case G_TOKEN_NONE:
-      /* somehow the user's parsing code is screwed, there isn't much
-       * we can do about it.
-       * Note, a common case to trigger this is
-       * g_scanner_peek_next_token(); g_scanner_unexp_token();
-       * without an intermediate g_scanner_get_next_token().
-       */
-      g_assert_not_reached ();
-      break;
-    }
-  
-  
-  switch (expected_token)
-    {
-      gboolean need_valid;
-      
-    default:
-      if (expected_token >= 1 && expected_token <= 255)
-	{
-	  if ((expected_token >= ' ' && expected_token <= '~') ||
-	      strchr (scanner->config->cset_identifier_first, expected_token) ||
-	      strchr (scanner->config->cset_identifier_nth, expected_token))
-	    g_snprintf (expected_string, expected_string_len, "character `%c'", expected_token);
-	  else
-	    g_snprintf (expected_string, expected_string_len, "character `\\%o'", expected_token);
-	  break;
-	}
-      else if (!scanner->config->symbol_2_token)
-	{
-	  g_snprintf (expected_string, expected_string_len, "(unknown) token <%d>", expected_token);
-	  break;
-	}
-      /* fall through */
-    case G_TOKEN_SYMBOL:
-      need_valid = (scanner->token == G_TOKEN_SYMBOL ||
-		    (scanner->config->symbol_2_token &&
-		     scanner->token > G_TOKEN_LAST));
-      g_snprintf (expected_string,
-		  expected_string_len,
-		  "%s%s",
-		  need_valid ? "valid " : "",
-		  symbol_spec);
-      /* FIXME: should we attempt to lookup the symbol_name for symbol_2_token? */
-      break;
-      
-    case G_TOKEN_INT:
-      g_snprintf (expected_string, expected_string_len, "number (integer)");
-      break;
-      
-    case G_TOKEN_FLOAT:
-      g_snprintf (expected_string, expected_string_len, "number (float)");
-      break;
-      
-    case G_TOKEN_STRING:
-      g_snprintf (expected_string,
-		  expected_string_len,
-		  "%sstring constant",
-		  scanner->token == G_TOKEN_STRING ? "valid " : "");
-      break;
-      
-    case G_TOKEN_IDENTIFIER:
-    case G_TOKEN_IDENTIFIER_NULL:
-      g_snprintf (expected_string,
-		  expected_string_len,
-		  "%s%s",
-		  (scanner->token == G_TOKEN_IDENTIFIER_NULL ||
-		   scanner->token == G_TOKEN_IDENTIFIER ? "valid " : ""),
-		  identifier_spec);
-      break;
-      
-    case G_TOKEN_EOF:
-      g_snprintf (expected_string, expected_string_len, "end of file");
-      break;
-
-    case G_TOKEN_NONE:
-      break;
-    }
-  
-  if (message && message[0] != 0)
-    message_prefix = " - ";
-  else
-    {
-      message_prefix = "";
-      message = "";
-    }
-  
-  if (expected_token != G_TOKEN_NONE)
-    {
-      if (print_unexp)
-	msg_handler (scanner,
-		     "unexpected %s, expected %s%s%s",
-		     token_string,
-		     expected_string,
-		     message_prefix,
-		     message);
-      else
-	msg_handler (scanner,
-		     "%s, expected %s%s%s",
-		     token_string,
-		     expected_string,
-		     message_prefix,
-		     message);
-    }
-  else
-    {
-      if (print_unexp)
-	msg_handler (scanner,
-		     "unexpected %s%s%s",
-		     token_string,
-		     message_prefix,
-		     message);
-      else
-	msg_handler (scanner,
-		     "%s%s%s",
-		     token_string,
-		     message_prefix,
-		     message);
-    }
-  
-  g_free (token_string);
-  g_free (expected_string);
-}
-
-gint
-g_scanner_stat_mode (const gchar *filename)
-{
-  struct stat  *stat_buf;
-  gint		st_mode;
-  
-  stat_buf = g_new0 (struct stat, 1);
-#ifdef HAVE_LSTAT  
-  lstat (filename, stat_buf);
-#else
-  stat (filename, stat_buf);
-#endif
-  st_mode = stat_buf->st_mode;
-  
-  g_free (stat_buf);
-  
-  return st_mode;
-}
-
-static void
-g_scanner_get_token_i (GScanner	*scanner,
-		       GTokenType	*token_p,
-		       GTokenValue	*value_p,
-		       guint		*line_p,
-		       guint		*position_p)
-{
-  do
-    {
-      g_scanner_free_value (token_p, value_p);
-      g_scanner_get_token_ll (scanner, token_p, value_p, line_p, position_p);
-    }
-  while (((*token_p > 0 && *token_p < 256) &&
-	  strchr (scanner->config->cset_skip_characters, *token_p)) ||
-	 (*token_p == G_TOKEN_CHAR &&
-	  strchr (scanner->config->cset_skip_characters, value_p->v_char)) ||
-	 (*token_p == G_TOKEN_COMMENT_MULTI &&
-	  scanner->config->skip_comment_multi) ||
-	 (*token_p == G_TOKEN_COMMENT_SINGLE &&
-	  scanner->config->skip_comment_single));
-  
-  switch (*token_p)
-    {
-    case G_TOKEN_IDENTIFIER:
-      if (scanner->config->identifier_2_string)
-	*token_p = G_TOKEN_STRING;
-      break;
-      
-    case G_TOKEN_SYMBOL:
-      if (scanner->config->symbol_2_token)
-	*token_p = (GTokenType) value_p->v_symbol;
-      break;
-      
-    case G_TOKEN_BINARY:
-    case G_TOKEN_OCTAL:
-    case G_TOKEN_HEX:
-      if (scanner->config->numbers_2_int)
-	*token_p = G_TOKEN_INT;
-      break;
-      
-    default:
-      break;
-    }
-  
-  if (*token_p == G_TOKEN_INT &&
-      scanner->config->int_2_float)
-    {
-      *token_p = G_TOKEN_FLOAT;
-      value_p->v_float = value_p->v_int;
-    }
-  
-  errno = 0;
-}
-
-static void
-g_scanner_get_token_ll	(GScanner	*scanner,
-			 GTokenType	*token_p,
-			 GTokenValue	*value_p,
-			 guint		*line_p,
-			 guint		*position_p)
-{
-  GScannerConfig *config;
-  GTokenType	   token;
-  gboolean	   in_comment_multi;
-  gboolean	   in_comment_single;
-  gboolean	   in_string_sq;
-  gboolean	   in_string_dq;
-  GString	  *gstring;
-  GTokenValue	   value;
-  guchar	   ch;
-  
-  config = scanner->config;
-  (*value_p).v_int = 0;
-  
-  if ((scanner->text >= scanner->text_end && scanner->input_fd < 0) ||
-      scanner->token == G_TOKEN_EOF)
-    {
-      *token_p = G_TOKEN_EOF;
-      return;
-    }
-  
-  in_comment_multi = FALSE;
-  in_comment_single = FALSE;
-  in_string_sq = FALSE;
-  in_string_dq = FALSE;
-  gstring = NULL;
-  
-  do /* while (ch != 0) */
-    {
-      gboolean dotted_float = FALSE;
-      
-      ch = g_scanner_get_char (scanner, line_p, position_p);
-      
-      value.v_int = 0;
-      token = G_TOKEN_NONE;
-      
-      /* this is *evil*, but needed ;(
-       * we first check for identifier first character, because	 it
-       * might interfere with other key chars like slashes or numbers
-       */
-      if (config->scan_identifier &&
-	  ch && strchr (config->cset_identifier_first, ch))
-	goto identifier_precedence;
-      
-      switch (ch)
-	{
-	case 0:
-	  token = G_TOKEN_EOF;
-	  (*position_p)++;
-	  /* ch = 0; */
-	  break;
-	  
-	case '/':
-	  if (!config->scan_comment_multi ||
-	      g_scanner_peek_next_char (scanner) != '*')
-	    goto default_case;
-	  g_scanner_get_char (scanner, line_p, position_p);
-	  token = G_TOKEN_COMMENT_MULTI;
-	  in_comment_multi = TRUE;
-	  gstring = g_string_new ("");
-	  while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0)
-	    {
-	      if (ch == '*' && g_scanner_peek_next_char (scanner) == '/')
-		{
-		  g_scanner_get_char (scanner, line_p, position_p);
-		  in_comment_multi = FALSE;
-		  break;
-		}
-	      else
-		gstring = g_string_append_c (gstring, ch);
-	    }
-	  ch = 0;
-	  break;
-	  
-	case '\'':
-	  if (!config->scan_string_sq)
-	    goto default_case;
-	  token = G_TOKEN_STRING;
-	  in_string_sq = TRUE;
-	  gstring = g_string_new ("");
-	  while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0)
-	    {
-	      if (ch == '\'')
-		{
-		  in_string_sq = FALSE;
-		  break;
-		}
-	      else
-		gstring = g_string_append_c (gstring, ch);
-	    }
-	  ch = 0;
-	  break;
-	  
-	case '"':
-	  if (!config->scan_string_dq)
-	    goto default_case;
-	  token = G_TOKEN_STRING;
-	  in_string_dq = TRUE;
-	  gstring = g_string_new ("");
-	  while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0)
-	    {
-	      if (ch == '"')
-		{
-		  in_string_dq = FALSE;
-		  break;
-		}
-	      else
-		{
-		  if (ch == '\\')
-		    {
-		      ch = g_scanner_get_char (scanner, line_p, position_p);
-		      switch (ch)
-			{
-			  guint	i;
-			  guint	fchar;
-			  
-			case 0:
-			  break;
-			  
-			case '\\':
-			  gstring = g_string_append_c (gstring, '\\');
-			  break;
-			  
-			case 'n':
-			  gstring = g_string_append_c (gstring, '\n');
-			  break;
-			  
-			case 't':
-			  gstring = g_string_append_c (gstring, '\t');
-			  break;
-			  
-			case 'r':
-			  gstring = g_string_append_c (gstring, '\r');
-			  break;
-			  
-			case 'b':
-			  gstring = g_string_append_c (gstring, '\b');
-			  break;
-			  
-			case 'f':
-			  gstring = g_string_append_c (gstring, '\f');
-			  break;
-			  
-			case '0':
-			case '1':
-			case '2':
-			case '3':
-			case '4':
-			case '5':
-			case '6':
-			case '7':
-			  i = ch - '0';
-			  fchar = g_scanner_peek_next_char (scanner);
-			  if (fchar >= '0' && fchar <= '7')
-			    {
-			      ch = g_scanner_get_char (scanner, line_p, position_p);
-			      i = i * 8 + ch - '0';
-			      fchar = g_scanner_peek_next_char (scanner);
-			      if (fchar >= '0' && fchar <= '7')
-				{
-				  ch = g_scanner_get_char (scanner, line_p, position_p);
-				  i = i * 8 + ch - '0';
-				}
-			    }
-			  gstring = g_string_append_c (gstring, i);
-			  break;
-			  
-			default:
-			  gstring = g_string_append_c (gstring, ch);
-			  break;
-			}
-		    }
-		  else
-		    gstring = g_string_append_c (gstring, ch);
-		}
-	    }
-	  ch = 0;
-	  break;
-	  
-	case '.':
-	  if (!config->scan_float)
-	    goto default_case;
-	  token = G_TOKEN_FLOAT;
-	  dotted_float = TRUE;
-	  ch = g_scanner_get_char (scanner, line_p, position_p);
-	  goto number_parsing;
-	  
-	case '$':
-	  if (!config->scan_hex_dollar)
-	    goto default_case;
-	  token = G_TOKEN_HEX;
-	  ch = g_scanner_get_char (scanner, line_p, position_p);
-	  goto number_parsing;
-	  
-	case '0':
-	  if (config->scan_octal)
-	    token = G_TOKEN_OCTAL;
-	  else
-	    token = G_TOKEN_INT;
-	  ch = g_scanner_peek_next_char (scanner);
-	  if (config->scan_hex && (ch == 'x' || ch == 'X'))
-	    {
-	      token = G_TOKEN_HEX;
-	      g_scanner_get_char (scanner, line_p, position_p);
-	      ch = g_scanner_get_char (scanner, line_p, position_p);
-	      if (ch == 0)
-		{
-		  token = G_TOKEN_ERROR;
-		  value.v_error = G_ERR_UNEXP_EOF;
-		  (*position_p)++;
-		  break;
-		}
-	      if (g_scanner_char_2_num (ch, 16) < 0)
-		{
-		  token = G_TOKEN_ERROR;
-		  value.v_error = G_ERR_DIGIT_RADIX;
-		  ch = 0;
-		  break;
-		}
-	    }
-	  else if (config->scan_binary && (ch == 'b' || ch == 'B'))
-	    {
-	      token = G_TOKEN_BINARY;
-	      g_scanner_get_char (scanner, line_p, position_p);
-	      ch = g_scanner_get_char (scanner, line_p, position_p);
-	      if (ch == 0)
-		{
-		  token = G_TOKEN_ERROR;
-		  value.v_error = G_ERR_UNEXP_EOF;
-		  (*position_p)++;
-		  break;
-		}
-	      if (g_scanner_char_2_num (ch, 10) < 0)
-		{
-		  token = G_TOKEN_ERROR;
-		  value.v_error = G_ERR_NON_DIGIT_IN_CONST;
-		  ch = 0;
-		  break;
-		}
-	    }
-	  else
-	    ch = '0';
-	  /* fall through */
-	case '1':
-	case '2':
-	case '3':
-	case '4':
-	case '5':
-	case '6':
-	case '7':
-	case '8':
-	case '9':
-	number_parsing:
-	{
-          gboolean in_number = TRUE;
-	  gchar *endptr;
-	  
-	  if (token == G_TOKEN_NONE)
-	    token = G_TOKEN_INT;
-	  
-	  gstring = g_string_new (dotted_float ? "0." : "");
-	  gstring = g_string_append_c (gstring, ch);
-	  
-	  do /* while (in_number) */
-	    {
-	      gboolean is_E;
-	      
-	      is_E = token == G_TOKEN_FLOAT && (ch == 'e' || ch == 'E');
-	      
-	      ch = g_scanner_peek_next_char (scanner);
-	      
-	      if (g_scanner_char_2_num (ch, 36) >= 0 ||
-		  (config->scan_float && ch == '.') ||
-		  (is_E && (ch == '+' || ch == '-')))
-		{
-		  ch = g_scanner_get_char (scanner, line_p, position_p);
-		  
-		  switch (ch)
-		    {
-		    case '.':
-		      if (token != G_TOKEN_INT && token != G_TOKEN_OCTAL)
-			{
-			  value.v_error = token == G_TOKEN_FLOAT ? G_ERR_FLOAT_MALFORMED : G_ERR_FLOAT_RADIX;
-			  token = G_TOKEN_ERROR;
-			  in_number = FALSE;
-			}
-		      else
-			{
-			  token = G_TOKEN_FLOAT;
-			  gstring = g_string_append_c (gstring, ch);
-			}
-		      break;
-		      
-		    case '0':
-		    case '1':
-		    case '2':
-		    case '3':
-		    case '4':
-		    case '5':
-		    case '6':
-		    case '7':
-		    case '8':
-		    case '9':
-		      gstring = g_string_append_c (gstring, ch);
-		      break;
-		      
-		    case '-':
-		    case '+':
-		      if (token != G_TOKEN_FLOAT)
-			{
-			  token = G_TOKEN_ERROR;
-			  value.v_error = G_ERR_NON_DIGIT_IN_CONST;
-			  in_number = FALSE;
-			}
-		      else
-			gstring = g_string_append_c (gstring, ch);
-		      break;
-		      
-		    case 'e':
-		    case 'E':
-		      if ((token != G_TOKEN_HEX && !config->scan_float) ||
-			  (token != G_TOKEN_HEX &&
-			   token != G_TOKEN_OCTAL &&
-			   token != G_TOKEN_FLOAT &&
-			   token != G_TOKEN_INT))
-			{
-			  token = G_TOKEN_ERROR;
-			  value.v_error = G_ERR_NON_DIGIT_IN_CONST;
-			  in_number = FALSE;
-			}
-		      else
-			{
-			  if (token != G_TOKEN_HEX)
-			    token = G_TOKEN_FLOAT;
-			  gstring = g_string_append_c (gstring, ch);
-			}
-		      break;
-		      
-		    default:
-		      if (token != G_TOKEN_HEX)
-			{
-			  token = G_TOKEN_ERROR;
-			  value.v_error = G_ERR_NON_DIGIT_IN_CONST;
-			  in_number = FALSE;
-			}
-		      else
-			gstring = g_string_append_c (gstring, ch);
-		      break;
-		    }
-		}
-	      else
-		in_number = FALSE;
-	    }
-	  while (in_number);
-	  
-	  endptr = NULL;
-	  switch (token)
-	    {
-	    case G_TOKEN_BINARY:
-	      value.v_binary = strtol (gstring->str, &endptr, 2);
-	      break;
-	      
-	    case G_TOKEN_OCTAL:
-	      value.v_octal = strtol (gstring->str, &endptr, 8);
-	      break;
-	      
-	    case G_TOKEN_INT:
-	      value.v_int = strtol (gstring->str, &endptr, 10);
-	      break;
-	      
-	    case G_TOKEN_FLOAT:
-	      value.v_float = g_strtod (gstring->str, &endptr);
-	      break;
-	      
-	    case G_TOKEN_HEX:
-	      value.v_hex = strtol (gstring->str, &endptr, 16);
-	      break;
-	      
-	    default:
-	      break;
-	    }
-	  if (endptr && *endptr)
-	    {
-	      token = G_TOKEN_ERROR;
-	      if (*endptr == 'e' || *endptr == 'E')
-		value.v_error = G_ERR_NON_DIGIT_IN_CONST;
-	      else
-		value.v_error = G_ERR_DIGIT_RADIX;
-	    }
-	  g_string_free (gstring, TRUE);
-	  gstring = NULL;
-	  ch = 0;
-	} /* number_parsing:... */
-	break;
-	
-	default:
-	default_case:
-	{
-	  if (config->cpair_comment_single &&
-	      ch == config->cpair_comment_single[0])
-	    {
-	      token = G_TOKEN_COMMENT_SINGLE;
-	      in_comment_single = TRUE;
-	      gstring = g_string_new ("");
-              ch = g_scanner_get_char (scanner, line_p, position_p);
-	      while (ch != 0)
-		{
-		  if (ch == config->cpair_comment_single[1])
-		    {
-		      in_comment_single = FALSE;
-		      ch = 0;
-		      break;
-		    }
-		  
-		  gstring = g_string_append_c (gstring, ch);
-		  ch = g_scanner_get_char (scanner, line_p, position_p);
-		}
-	    }
-	  else if (config->scan_identifier && ch &&
-		   strchr (config->cset_identifier_first, ch))
-	    {
-	    identifier_precedence:
-	      
-	      if (config->cset_identifier_nth && ch &&
-		  strchr (config->cset_identifier_nth,
-			  g_scanner_peek_next_char (scanner)))
-		{
-		  token = G_TOKEN_IDENTIFIER;
-		  gstring = g_string_new ("");
-		  gstring = g_string_append_c (gstring, ch);
-		  do
-		    {
-		      ch = g_scanner_get_char (scanner, line_p, position_p);
-		      gstring = g_string_append_c (gstring, ch);
-		      ch = g_scanner_peek_next_char (scanner);
-		    }
-		  while (ch && strchr (config->cset_identifier_nth, ch));
-		  ch = 0;
-		}
-	      else if (config->scan_identifier_1char)
-		{
-		  token = G_TOKEN_IDENTIFIER;
-		  value.v_identifier = g_new0 (gchar, 2);
-		  value.v_identifier[0] = ch;
-		  ch = 0;
-		}
-	    }
-	  if (ch)
-	    {
-	      if (config->char_2_token)
-		token = ch;
-	      else
-		{
-		  token = G_TOKEN_CHAR;
-		  value.v_char = ch;
-		}
-	      ch = 0;
-	    }
-	} /* default_case:... */
-	break;
-	}
-      g_assert (ch == 0 && token != G_TOKEN_NONE); /* paranoid */
-    }
-  while (ch != 0);
-  
-  if (in_comment_multi || in_comment_single ||
-      in_string_sq || in_string_dq)
-    {
-      token = G_TOKEN_ERROR;
-      if (gstring)
-	{
-	  g_string_free (gstring, TRUE);
-	  gstring = NULL;
-	}
-      (*position_p)++;
-      if (in_comment_multi || in_comment_single)
-	value.v_error = G_ERR_UNEXP_EOF_IN_COMMENT;
-      else /* (in_string_sq || in_string_dq) */
-	value.v_error = G_ERR_UNEXP_EOF_IN_STRING;
-    }
-  
-  if (gstring)
-    {
-      value.v_string = gstring->str;
-      g_string_free (gstring, FALSE);
-      gstring = NULL;
-    }
-  
-  if (token == G_TOKEN_IDENTIFIER)
-    {
-      if (config->scan_symbols)
-	{
-	  GScannerKey *key;
-	  guint scope_id;
-	  
-	  scope_id = scanner->scope_id;
-	  key = g_scanner_lookup_internal (scanner, scope_id, value.v_identifier);
-	  if (!key && scope_id && scanner->config->scope_0_fallback)
-	    key = g_scanner_lookup_internal (scanner, 0, value.v_identifier);
-	  
-	  if (key)
-	    {
-	      g_free (value.v_identifier);
-	      token = G_TOKEN_SYMBOL;
-	      value.v_symbol = key->value;
-	    }
-	}
-      
-      if (token == G_TOKEN_IDENTIFIER &&
-	  config->scan_identifier_NULL &&
-	  strlen (value.v_identifier) == 4)
-	{
-	  gchar *null_upper = "NULL";
-	  gchar *null_lower = "null";
-	  
-	  if (scanner->config->case_sensitive)
-	    {
-	      if (value.v_identifier[0] == null_upper[0] &&
-		  value.v_identifier[1] == null_upper[1] &&
-		  value.v_identifier[2] == null_upper[2] &&
-		  value.v_identifier[3] == null_upper[3])
-		token = G_TOKEN_IDENTIFIER_NULL;
-	    }
-	  else
-	    {
-	      if ((value.v_identifier[0] == null_upper[0] ||
-		   value.v_identifier[0] == null_lower[0]) &&
-		  (value.v_identifier[1] == null_upper[1] ||
-		   value.v_identifier[1] == null_lower[1]) &&
-		  (value.v_identifier[2] == null_upper[2] ||
-		   value.v_identifier[2] == null_lower[2]) &&
-		  (value.v_identifier[3] == null_upper[3] ||
-		   value.v_identifier[3] == null_lower[3]))
-		token = G_TOKEN_IDENTIFIER_NULL;
-	    }
-	}
-    }
-  
-  *token_p = token;
-  *value_p = value;
-}
diff --git a/glib/gslist.c b/glib/gslist.c
deleted file mode 100644
index eed0007..0000000
--- a/glib/gslist.c
+++ /dev/null
@@ -1,595 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-
-struct _GAllocator /* from gmem.c */
-{
-  gchar         *name;
-  guint16        n_preallocs;
-  guint          is_unused : 1;
-  guint          type : 4;
-  GAllocator    *last;
-  GMemChunk     *mem_chunk;
-  GSList        *free_lists; /* implementation specific */
-};
-
-G_LOCK_DEFINE_STATIC (current_allocator);
-static GAllocator       *current_allocator = NULL;
-
-/* HOLDS: current_allocator_lock */
-static void
-g_slist_validate_allocator (GAllocator *allocator)
-{
-  g_return_if_fail (allocator != NULL);
-  g_return_if_fail (allocator->is_unused == TRUE);
-
-  if (allocator->type != G_ALLOCATOR_SLIST)
-    {
-      allocator->type = G_ALLOCATOR_SLIST;
-      if (allocator->mem_chunk)
-	{
-	  g_mem_chunk_destroy (allocator->mem_chunk);
-	  allocator->mem_chunk = NULL;
-	}
-    }
-
-  if (!allocator->mem_chunk)
-    {
-      allocator->mem_chunk = g_mem_chunk_new (allocator->name,
-					      sizeof (GSList),
-					      sizeof (GSList) * allocator->n_preallocs,
-					      G_ALLOC_ONLY);
-      allocator->free_lists = NULL;
-    }
-
-  allocator->is_unused = FALSE;
-}
-
-void
-g_slist_push_allocator (GAllocator *allocator)
-{
-  G_LOCK (current_allocator);
-  g_slist_validate_allocator (allocator);
-  allocator->last = current_allocator;
-  current_allocator = allocator;
-  G_UNLOCK (current_allocator);
-}
-
-void
-g_slist_pop_allocator (void)
-{
-  G_LOCK (current_allocator);
-  if (current_allocator)
-    {
-      GAllocator *allocator;
-
-      allocator = current_allocator;
-      current_allocator = allocator->last;
-      allocator->last = NULL;
-      allocator->is_unused = TRUE;
-    }
-  G_UNLOCK (current_allocator);
-}
-
-GSList*
-g_slist_alloc (void)
-{
-  GSList *list;
-
-  G_LOCK (current_allocator);
-  if (!current_allocator)
-    {
-      GAllocator *allocator = g_allocator_new ("GLib default GSList allocator",
-					       128);
-      g_slist_validate_allocator (allocator);
-      allocator->last = NULL;
-      current_allocator = allocator; 
-    }
-  if (!current_allocator->free_lists)
-    {
-      list = g_chunk_new (GSList, current_allocator->mem_chunk);
-      list->data = NULL;
-    }
-  else
-    {
-      if (current_allocator->free_lists->data)
-	{
-	  list = current_allocator->free_lists->data;
-	  current_allocator->free_lists->data = list->next;
-	  list->data = NULL;
-	}
-      else
-	{
-	  list = current_allocator->free_lists;
-	  current_allocator->free_lists = list->next;
-	}
-    }
-  G_UNLOCK (current_allocator);
-  
-  list->next = NULL;
-
-  return list;
-}
-
-void
-g_slist_free (GSList *list)
-{
-  if (list)
-    {
-      list->data = list->next;
-      G_LOCK (current_allocator);
-      list->next = current_allocator->free_lists;
-      current_allocator->free_lists = list;
-      G_UNLOCK (current_allocator);
-    }
-}
-
-void
-g_slist_free_1 (GSList *list)
-{
-  if (list)
-    {
-      list->data = NULL;
-      G_LOCK (current_allocator);
-      list->next = current_allocator->free_lists;
-      current_allocator->free_lists = list;
-      G_UNLOCK (current_allocator);
-    }
-}
-
-GSList*
-g_slist_append (GSList   *list,
-		gpointer  data)
-{
-  GSList *new_list;
-  GSList *last;
-
-  new_list = g_slist_alloc ();
-  new_list->data = data;
-
-  if (list)
-    {
-      last = g_slist_last (list);
-      /* g_assert (last != NULL); */
-      last->next = new_list;
-
-      return list;
-    }
-  else
-      return new_list;
-}
-
-GSList*
-g_slist_prepend (GSList   *list,
-		 gpointer  data)
-{
-  GSList *new_list;
-
-  new_list = g_slist_alloc ();
-  new_list->data = data;
-  new_list->next = list;
-
-  return new_list;
-}
-
-GSList*
-g_slist_insert (GSList   *list,
-		gpointer  data,
-		gint      position)
-{
-  GSList *prev_list;
-  GSList *tmp_list;
-  GSList *new_list;
-
-  if (position < 0)
-    return g_slist_append (list, data);
-  else if (position == 0)
-    return g_slist_prepend (list, data);
-
-  new_list = g_slist_alloc ();
-  new_list->data = data;
-
-  if (!list)
-    return new_list;
-
-  prev_list = NULL;
-  tmp_list = list;
-
-  while ((position-- > 0) && tmp_list)
-    {
-      prev_list = tmp_list;
-      tmp_list = tmp_list->next;
-    }
-
-  if (prev_list)
-    {
-      new_list->next = prev_list->next;
-      prev_list->next = new_list;
-    }
-  else
-    {
-      new_list->next = list;
-      list = new_list;
-    }
-
-  return list;
-}
-
-GSList *
-g_slist_concat (GSList *list1, GSList *list2)
-{
-  if (list2)
-    {
-      if (list1)
-	g_slist_last (list1)->next = list2;
-      else
-	list1 = list2;
-    }
-
-  return list1;
-}
-
-GSList*
-g_slist_remove (GSList   *list,
-		gpointer  data)
-{
-  GSList *tmp;
-  GSList *prev;
-
-  prev = NULL;
-  tmp = list;
-
-  while (tmp)
-    {
-      if (tmp->data == data)
-	{
-	  if (prev)
-	    prev->next = tmp->next;
-	  if (list == tmp)
-	    list = list->next;
-
-	  tmp->next = NULL;
-	  g_slist_free (tmp);
-
-	  break;
-	}
-
-      prev = tmp;
-      tmp = tmp->next;
-    }
-
-  return list;
-}
-
-GSList*
-g_slist_remove_link (GSList *list,
-		     GSList *link)
-{
-  GSList *tmp;
-  GSList *prev;
-
-  prev = NULL;
-  tmp = list;
-
-  while (tmp)
-    {
-      if (tmp == link)
-	{
-	  if (prev)
-	    prev->next = tmp->next;
-	  if (list == tmp)
-	    list = list->next;
-
-	  tmp->next = NULL;
-	  break;
-	}
-
-      prev = tmp;
-      tmp = tmp->next;
-    }
-
-  return list;
-}
-
-GSList*
-g_slist_copy (GSList *list)
-{
-  GSList *new_list = NULL;
-
-  if (list)
-    {
-      GSList *last;
-
-      new_list = g_slist_alloc ();
-      new_list->data = list->data;
-      last = new_list;
-      list = list->next;
-      while (list)
-	{
-	  last->next = g_slist_alloc ();
-	  last = last->next;
-	  last->data = list->data;
-	  list = list->next;
-	}
-    }
-
-  return new_list;
-}
-
-GSList*
-g_slist_reverse (GSList *list)
-{
-  GSList *prev = NULL;
-
-  while (list)
-    {
-      GSList *next = list->next;
-
-      list->next = prev;
-
-      prev = list;
-      list = next;
-    }
-
-  return prev;
-}
-
-GSList*
-g_slist_nth (GSList *list,
-	     guint   n)
-{
-  while ((n-- > 0) && list)
-    list = list->next;
-
-  return list;
-}
-
-gpointer
-g_slist_nth_data (GSList   *list,
-		  guint     n)
-{
-  while ((n-- > 0) && list)
-    list = list->next;
-
-  return list ? list->data : NULL;
-}
-
-GSList*
-g_slist_find (GSList   *list,
-	      gpointer  data)
-{
-  while (list)
-    {
-      if (list->data == data)
-	break;
-      list = list->next;
-    }
-
-  return list;
-}
-
-GSList*
-g_slist_find_custom (GSList      *list,
-		     gpointer     data,
-		     GCompareFunc func)
-{
-  g_return_val_if_fail (func != NULL, list);
-
-  while (list)
-    {
-      if (! func (list->data, data))
-	return list;
-      list = list->next;
-    }
-
-  return NULL;
-}
-
-gint
-g_slist_position (GSList *list,
-		  GSList *link)
-{
-  gint i;
-
-  i = 0;
-  while (list)
-    {
-      if (list == link)
-	return i;
-      i++;
-      list = list->next;
-    }
-
-  return -1;
-}
-
-gint
-g_slist_index (GSList   *list,
-	       gpointer data)
-{
-  gint i;
-
-  i = 0;
-  while (list)
-    {
-      if (list->data == data)
-	return i;
-      i++;
-      list = list->next;
-    }
-
-  return -1;
-}
-
-GSList*
-g_slist_last (GSList *list)
-{
-  if (list)
-    {
-      while (list->next)
-	list = list->next;
-    }
-
-  return list;
-}
-
-guint
-g_slist_length (GSList *list)
-{
-  guint length;
-
-  length = 0;
-  while (list)
-    {
-      length++;
-      list = list->next;
-    }
-
-  return length;
-}
-
-void
-g_slist_foreach (GSList   *list,
-		 GFunc     func,
-		 gpointer  user_data)
-{
-  while (list)
-    {
-      (*func) (list->data, user_data);
-      list = list->next;
-    }
-}
-
-GSList*
-g_slist_insert_sorted (GSList       *list,
-                       gpointer      data,
-                       GCompareFunc  func)
-{
-  GSList *tmp_list = list;
-  GSList *prev_list = NULL;
-  GSList *new_list;
-  gint cmp;
- 
-  g_return_val_if_fail (func != NULL, list);
-
-  if (!list)
-    {
-      new_list = g_slist_alloc();
-      new_list->data = data;
-      return new_list;
-    }
- 
-  cmp = (*func) (data, tmp_list->data);
- 
-  while ((tmp_list->next) && (cmp > 0))
-    {
-      prev_list = tmp_list;
-      tmp_list = tmp_list->next;
-      cmp = (*func) (data, tmp_list->data);
-    }
-
-  new_list = g_slist_alloc();
-  new_list->data = data;
-
-  if ((!tmp_list->next) && (cmp > 0))
-    {
-      tmp_list->next = new_list;
-      return list;
-    }
-  
-  if (prev_list)
-    {
-      prev_list->next = new_list;
-      new_list->next = tmp_list;
-      return list;
-    }
-  else
-    {
-      new_list->next = list;
-      return new_list;
-    }
-}
-
-static GSList* 
-g_slist_sort_merge  (GSList      *l1, 
-		     GSList      *l2,
-		     GCompareFunc compare_func)
-{
-  GSList list, *l;
-
-  l=&list;
-
-  while (l1 && l2)
-    {
-      if (compare_func(l1->data,l2->data) < 0)
-        {
-	  l=l->next=l1;
-	  l1=l1->next;
-        } 
-      else 
-	{
-	  l=l->next=l2;
-	  l2=l2->next;
-        }
-    }
-  l->next= l1 ? l1 : l2;
-  
-  return list.next;
-}
-
-GSList* 
-g_slist_sort (GSList       *list,
-	      GCompareFunc compare_func)
-{
-  GSList *l1, *l2;
-
-  if (!list) 
-    return NULL;
-  if (!list->next) 
-    return list;
-
-  l1 = list; 
-  l2 = list->next;
-
-  while ((l2 = l2->next) != NULL)
-    {
-      if ((l2 = l2->next) == NULL) 
-	break;
-      l1=l1->next;
-    }
-  l2 = l1->next; 
-  l1->next = NULL;
-
-  return g_slist_sort_merge (g_slist_sort (list, compare_func),
-			     g_slist_sort (l2,   compare_func),
-			     compare_func);
-}
diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
deleted file mode 100644
index 5bac6bf..0000000
--- a/glib/gstrfuncs.c
+++ /dev/null
@@ -1,1294 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/*
- * MT safe
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <locale.h>
-#include <ctype.h>		/* For tolower() */
-#if !defined (HAVE_STRSIGNAL) || !defined(NO_SYS_SIGLIST_DECL)
-#include <signal.h>
-#endif
-#include "glib.h"
-/* do not include <unistd.h> in this place since it
- * inteferes with g_strsignal() on some OSes
- */
-
-gchar*
-g_strdup (const gchar *str)
-{
-  gchar *new_str;
-
-  if (str)
-    {
-      new_str = g_new (char, strlen (str) + 1);
-      strcpy (new_str, str);
-    }
-  else
-    new_str = NULL;
-
-  return new_str;
-}
-
-gpointer
-g_memdup (gconstpointer mem,
-	  guint         byte_size)
-{
-  gpointer new_mem;
-
-  if (mem)
-    {
-      new_mem = g_malloc (byte_size);
-      memcpy (new_mem, mem, byte_size);
-    }
-  else
-    new_mem = NULL;
-
-  return new_mem;
-}
-
-gchar*
-g_strndup (const gchar *str,
-	   guint        n)
-{
-  gchar *new_str;
-
-  if (str)
-    {
-      new_str = g_new (gchar, n + 1);
-      strncpy (new_str, str, n);
-      new_str[n] = '\0';
-    }
-  else
-    new_str = NULL;
-
-  return new_str;
-}
-
-gchar*
-g_strnfill (guint length,
-	    gchar fill_char)
-{
-  register gchar *str, *s, *end;
-
-  str = g_new (gchar, length + 1);
-  s = str;
-  end = str + length;
-  while (s < end)
-    *(s++) = fill_char;
-  *s = 0;
-
-  return str;
-}
-
-gchar*
-g_strdup_vprintf (const gchar *format,
-		  va_list      args1)
-{
-  gchar *buffer;
-  va_list args2;
-
-  G_VA_COPY (args2, args1);
-
-  buffer = g_new (gchar, g_printf_string_upper_bound (format, args1));
-
-  vsprintf (buffer, format, args2);
-  va_end (args2);
-
-  return buffer;
-}
-
-gchar*
-g_strdup_printf (const gchar *format,
-		 ...)
-{
-  gchar *buffer;
-  va_list args;
-
-  va_start (args, format);
-  buffer = g_strdup_vprintf (format, args);
-  va_end (args);
-
-  return buffer;
-}
-
-gchar*
-g_strconcat (const gchar *string1, ...)
-{
-  guint	  l;
-  va_list args;
-  gchar	  *s;
-  gchar	  *concat;
-
-  g_return_val_if_fail (string1 != NULL, NULL);
-
-  l = 1 + strlen (string1);
-  va_start (args, string1);
-  s = va_arg (args, gchar*);
-  while (s)
-    {
-      l += strlen (s);
-      s = va_arg (args, gchar*);
-    }
-  va_end (args);
-
-  concat = g_new (gchar, l);
-  concat[0] = 0;
-
-  strcat (concat, string1);
-  va_start (args, string1);
-  s = va_arg (args, gchar*);
-  while (s)
-    {
-      strcat (concat, s);
-      s = va_arg (args, gchar*);
-    }
-  va_end (args);
-
-  return concat;
-}
-
-gdouble
-g_strtod (const gchar *nptr,
-	  gchar **endptr)
-{
-  gchar *fail_pos_1;
-  gchar *fail_pos_2;
-  gdouble val_1;
-  gdouble val_2 = 0;
-
-  g_return_val_if_fail (nptr != NULL, 0);
-
-  fail_pos_1 = NULL;
-  fail_pos_2 = NULL;
-
-  val_1 = strtod (nptr, &fail_pos_1);
-
-  if (fail_pos_1 && fail_pos_1[0] != 0)
-    {
-      gchar *old_locale;
-
-      old_locale = g_strdup (setlocale (LC_NUMERIC, NULL));
-      setlocale (LC_NUMERIC, "C");
-      val_2 = strtod (nptr, &fail_pos_2);
-      setlocale (LC_NUMERIC, old_locale);
-      g_free (old_locale);
-    }
-
-  if (!fail_pos_1 || fail_pos_1[0] == 0 || fail_pos_1 >= fail_pos_2)
-    {
-      if (endptr)
-	*endptr = fail_pos_1;
-      return val_1;
-    }
-  else
-    {
-      if (endptr)
-	*endptr = fail_pos_2;
-      return val_2;
-    }
-}
-
-gchar*
-g_strerror (gint errnum)
-{
-  static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT;
-  char *msg;
-
-#ifdef HAVE_STRERROR
-  return strerror (errnum);
-#elif NO_SYS_ERRLIST
-  switch (errnum)
-    {
-#ifdef E2BIG
-    case E2BIG: return "argument list too long";
-#endif
-#ifdef EACCES
-    case EACCES: return "permission denied";
-#endif
-#ifdef EADDRINUSE
-    case EADDRINUSE: return "address already in use";
-#endif
-#ifdef EADDRNOTAVAIL
-    case EADDRNOTAVAIL: return "can't assign requested address";
-#endif
-#ifdef EADV
-    case EADV: return "advertise error";
-#endif
-#ifdef EAFNOSUPPORT
-    case EAFNOSUPPORT: return "address family not supported by protocol family";
-#endif
-#ifdef EAGAIN
-    case EAGAIN: return "try again";
-#endif
-#ifdef EALIGN
-    case EALIGN: return "EALIGN";
-#endif
-#ifdef EALREADY
-    case EALREADY: return "operation already in progress";
-#endif
-#ifdef EBADE
-    case EBADE: return "bad exchange descriptor";
-#endif
-#ifdef EBADF
-    case EBADF: return "bad file number";
-#endif
-#ifdef EBADFD
-    case EBADFD: return "file descriptor in bad state";
-#endif
-#ifdef EBADMSG
-    case EBADMSG: return "not a data message";
-#endif
-#ifdef EBADR
-    case EBADR: return "bad request descriptor";
-#endif
-#ifdef EBADRPC
-    case EBADRPC: return "RPC structure is bad";
-#endif
-#ifdef EBADRQC
-    case EBADRQC: return "bad request code";
-#endif
-#ifdef EBADSLT
-    case EBADSLT: return "invalid slot";
-#endif
-#ifdef EBFONT
-    case EBFONT: return "bad font file format";
-#endif
-#ifdef EBUSY
-    case EBUSY: return "mount device busy";
-#endif
-#ifdef ECHILD
-    case ECHILD: return "no children";
-#endif
-#ifdef ECHRNG
-    case ECHRNG: return "channel number out of range";
-#endif
-#ifdef ECOMM
-    case ECOMM: return "communication error on send";
-#endif
-#ifdef ECONNABORTED
-    case ECONNABORTED: return "software caused connection abort";
-#endif
-#ifdef ECONNREFUSED
-    case ECONNREFUSED: return "connection refused";
-#endif
-#ifdef ECONNRESET
-    case ECONNRESET: return "connection reset by peer";
-#endif
-#if defined(EDEADLK) && (!defined(EWOULDBLOCK) || (EDEADLK != EWOULDBLOCK))
-    case EDEADLK: return "resource deadlock avoided";
-#endif
-#ifdef EDEADLOCK
-    case EDEADLOCK: return "resource deadlock avoided";
-#endif
-#ifdef EDESTADDRREQ
-    case EDESTADDRREQ: return "destination address required";
-#endif
-#ifdef EDIRTY
-    case EDIRTY: return "mounting a dirty fs w/o force";
-#endif
-#ifdef EDOM
-    case EDOM: return "math argument out of range";
-#endif
-#ifdef EDOTDOT
-    case EDOTDOT: return "cross mount point";
-#endif
-#ifdef EDQUOT
-    case EDQUOT: return "disk quota exceeded";
-#endif
-#ifdef EDUPPKG
-    case EDUPPKG: return "duplicate package name";
-#endif
-#ifdef EEXIST
-    case EEXIST: return "file already exists";
-#endif
-#ifdef EFAULT
-    case EFAULT: return "bad address in system call argument";
-#endif
-#ifdef EFBIG
-    case EFBIG: return "file too large";
-#endif
-#ifdef EHOSTDOWN
-    case EHOSTDOWN: return "host is down";
-#endif
-#ifdef EHOSTUNREACH
-    case EHOSTUNREACH: return "host is unreachable";
-#endif
-#ifdef EIDRM
-    case EIDRM: return "identifier removed";
-#endif
-#ifdef EINIT
-    case EINIT: return "initialization error";
-#endif
-#ifdef EINPROGRESS
-    case EINPROGRESS: return "operation now in progress";
-#endif
-#ifdef EINTR
-    case EINTR: return "interrupted system call";
-#endif
-#ifdef EINVAL
-    case EINVAL: return "invalid argument";
-#endif
-#ifdef EIO
-    case EIO: return "I/O error";
-#endif
-#ifdef EISCONN
-    case EISCONN: return "socket is already connected";
-#endif
-#ifdef EISDIR
-    case EISDIR: return "illegal operation on a directory";
-#endif
-#ifdef EISNAME
-    case EISNAM: return "is a name file";
-#endif
-#ifdef ELBIN
-    case ELBIN: return "ELBIN";
-#endif
-#ifdef EL2HLT
-    case EL2HLT: return "level 2 halted";
-#endif
-#ifdef EL2NSYNC
-    case EL2NSYNC: return "level 2 not synchronized";
-#endif
-#ifdef EL3HLT
-    case EL3HLT: return "level 3 halted";
-#endif
-#ifdef EL3RST
-    case EL3RST: return "level 3 reset";
-#endif
-#ifdef ELIBACC
-    case ELIBACC: return "can not access a needed shared library";
-#endif
-#ifdef ELIBBAD
-    case ELIBBAD: return "accessing a corrupted shared library";
-#endif
-#ifdef ELIBEXEC
-    case ELIBEXEC: return "can not exec a shared library directly";
-#endif
-#ifdef ELIBMAX
-    case ELIBMAX: return "attempting to link in more shared libraries than system limit";
-#endif
-#ifdef ELIBSCN
-    case ELIBSCN: return ".lib section in a.out corrupted";
-#endif
-#ifdef ELNRNG
-    case ELNRNG: return "link number out of range";
-#endif
-#ifdef ELOOP
-    case ELOOP: return "too many levels of symbolic links";
-#endif
-#ifdef EMFILE
-    case EMFILE: return "too many open files";
-#endif
-#ifdef EMLINK
-    case EMLINK: return "too many links";
-#endif
-#ifdef EMSGSIZE
-    case EMSGSIZE: return "message too long";
-#endif
-#ifdef EMULTIHOP
-    case EMULTIHOP: return "multihop attempted";
-#endif
-#ifdef ENAMETOOLONG
-    case ENAMETOOLONG: return "file name too long";
-#endif
-#ifdef ENAVAIL
-    case ENAVAIL: return "not available";
-#endif
-#ifdef ENET
-    case ENET: return "ENET";
-#endif
-#ifdef ENETDOWN
-    case ENETDOWN: return "network is down";
-#endif
-#ifdef ENETRESET
-    case ENETRESET: return "network dropped connection on reset";
-#endif
-#ifdef ENETUNREACH
-    case ENETUNREACH: return "network is unreachable";
-#endif
-#ifdef ENFILE
-    case ENFILE: return "file table overflow";
-#endif
-#ifdef ENOANO
-    case ENOANO: return "anode table overflow";
-#endif
-#if defined(ENOBUFS) && (!defined(ENOSR) || (ENOBUFS != ENOSR))
-    case ENOBUFS: return "no buffer space available";
-#endif
-#ifdef ENOCSI
-    case ENOCSI: return "no CSI structure available";
-#endif
-#ifdef ENODATA
-    case ENODATA: return "no data available";
-#endif
-#ifdef ENODEV
-    case ENODEV: return "no such device";
-#endif
-#ifdef ENOENT
-    case ENOENT: return "no such file or directory";
-#endif
-#ifdef ENOEXEC
-    case ENOEXEC: return "exec format error";
-#endif
-#ifdef ENOLCK
-    case ENOLCK: return "no locks available";
-#endif
-#ifdef ENOLINK
-    case ENOLINK: return "link has be severed";
-#endif
-#ifdef ENOMEM
-    case ENOMEM: return "not enough memory";
-#endif
-#ifdef ENOMSG
-    case ENOMSG: return "no message of desired type";
-#endif
-#ifdef ENONET
-    case ENONET: return "machine is not on the network";
-#endif
-#ifdef ENOPKG
-    case ENOPKG: return "package not installed";
-#endif
-#ifdef ENOPROTOOPT
-    case ENOPROTOOPT: return "bad proocol option";
-#endif
-#ifdef ENOSPC
-    case ENOSPC: return "no space left on device";
-#endif
-#ifdef ENOSR
-    case ENOSR: return "out of stream resources";
-#endif
-#ifdef ENOSTR
-    case ENOSTR: return "not a stream device";
-#endif
-#ifdef ENOSYM
-    case ENOSYM: return "unresolved symbol name";
-#endif
-#ifdef ENOSYS
-    case ENOSYS: return "function not implemented";
-#endif
-#ifdef ENOTBLK
-    case ENOTBLK: return "block device required";
-#endif
-#ifdef ENOTCONN
-    case ENOTCONN: return "socket is not connected";
-#endif
-#ifdef ENOTDIR
-    case ENOTDIR: return "not a directory";
-#endif
-#ifdef ENOTEMPTY
-    case ENOTEMPTY: return "directory not empty";
-#endif
-#ifdef ENOTNAM
-    case ENOTNAM: return "not a name file";
-#endif
-#ifdef ENOTSOCK
-    case ENOTSOCK: return "socket operation on non-socket";
-#endif
-#ifdef ENOTTY
-    case ENOTTY: return "inappropriate device for ioctl";
-#endif
-#ifdef ENOTUNIQ
-    case ENOTUNIQ: return "name not unique on network";
-#endif
-#ifdef ENXIO
-    case ENXIO: return "no such device or address";
-#endif
-#ifdef EOPNOTSUPP
-    case EOPNOTSUPP: return "operation not supported on socket";
-#endif
-#ifdef EPERM
-    case EPERM: return "not owner";
-#endif
-#ifdef EPFNOSUPPORT
-    case EPFNOSUPPORT: return "protocol family not supported";
-#endif
-#ifdef EPIPE
-    case EPIPE: return "broken pipe";
-#endif
-#ifdef EPROCLIM
-    case EPROCLIM: return "too many processes";
-#endif
-#ifdef EPROCUNAVAIL
-    case EPROCUNAVAIL: return "bad procedure for program";
-#endif
-#ifdef EPROGMISMATCH
-    case EPROGMISMATCH: return "program version wrong";
-#endif
-#ifdef EPROGUNAVAIL
-    case EPROGUNAVAIL: return "RPC program not available";
-#endif
-#ifdef EPROTO
-    case EPROTO: return "protocol error";
-#endif
-#ifdef EPROTONOSUPPORT
-    case EPROTONOSUPPORT: return "protocol not suppored";
-#endif
-#ifdef EPROTOTYPE
-    case EPROTOTYPE: return "protocol wrong type for socket";
-#endif
-#ifdef ERANGE
-    case ERANGE: return "math result unrepresentable";
-#endif
-#if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED))
-    case EREFUSED: return "EREFUSED";
-#endif
-#ifdef EREMCHG
-    case EREMCHG: return "remote address changed";
-#endif
-#ifdef EREMDEV
-    case EREMDEV: return "remote device";
-#endif
-#ifdef EREMOTE
-    case EREMOTE: return "pathname hit remote file system";
-#endif
-#ifdef EREMOTEIO
-    case EREMOTEIO: return "remote i/o error";
-#endif
-#ifdef EREMOTERELEASE
-    case EREMOTERELEASE: return "EREMOTERELEASE";
-#endif
-#ifdef EROFS
-    case EROFS: return "read-only file system";
-#endif
-#ifdef ERPCMISMATCH
-    case ERPCMISMATCH: return "RPC version is wrong";
-#endif
-#ifdef ERREMOTE
-    case ERREMOTE: return "object is remote";
-#endif
-#ifdef ESHUTDOWN
-    case ESHUTDOWN: return "can't send afer socket shutdown";
-#endif
-#ifdef ESOCKTNOSUPPORT
-    case ESOCKTNOSUPPORT: return "socket type not supported";
-#endif
-#ifdef ESPIPE
-    case ESPIPE: return "invalid seek";
-#endif
-#ifdef ESRCH
-    case ESRCH: return "no such process";
-#endif
-#ifdef ESRMNT
-    case ESRMNT: return "srmount error";
-#endif
-#ifdef ESTALE
-    case ESTALE: return "stale remote file handle";
-#endif
-#ifdef ESUCCESS
-    case ESUCCESS: return "Error 0";
-#endif
-#ifdef ETIME
-    case ETIME: return "timer expired";
-#endif
-#ifdef ETIMEDOUT
-    case ETIMEDOUT: return "connection timed out";
-#endif
-#ifdef ETOOMANYREFS
-    case ETOOMANYREFS: return "too many references: can't splice";
-#endif
-#ifdef ETXTBSY
-    case ETXTBSY: return "text file or pseudo-device busy";
-#endif
-#ifdef EUCLEAN
-    case EUCLEAN: return "structure needs cleaning";
-#endif
-#ifdef EUNATCH
-    case EUNATCH: return "protocol driver not attached";
-#endif
-#ifdef EUSERS
-    case EUSERS: return "too many users";
-#endif
-#ifdef EVERSION
-    case EVERSION: return "version mismatch";
-#endif
-#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
-    case EWOULDBLOCK: return "operation would block";
-#endif
-#ifdef EXDEV
-    case EXDEV: return "cross-domain link";
-#endif
-#ifdef EXFULL
-    case EXFULL: return "message tables full";
-#endif
-    }
-#else /* NO_SYS_ERRLIST */
-  extern int sys_nerr;
-  extern char *sys_errlist[];
-
-  if ((errnum > 0) && (errnum <= sys_nerr))
-    return sys_errlist [errnum];
-#endif /* NO_SYS_ERRLIST */
-
-  msg = g_static_private_get (&msg_private);
-  if (!msg)
-    {
-      msg = g_new (gchar, 64);
-      g_static_private_set (&msg_private, msg, g_free);
-    }
-
-  sprintf (msg, "unknown error (%d)", errnum);
-
-  return msg;
-}
-
-gchar*
-g_strsignal (gint signum)
-{
-  static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT;
-  char *msg;
-
-#ifdef HAVE_STRSIGNAL
-  extern char *strsignal (int sig);
-  return strsignal (signum);
-#elif NO_SYS_SIGLIST
-  switch (signum)
-    {
-#ifdef SIGHUP
-    case SIGHUP: return "Hangup";
-#endif
-#ifdef SIGINT
-    case SIGINT: return "Interrupt";
-#endif
-#ifdef SIGQUIT
-    case SIGQUIT: return "Quit";
-#endif
-#ifdef SIGILL
-    case SIGILL: return "Illegal instruction";
-#endif
-#ifdef SIGTRAP
-    case SIGTRAP: return "Trace/breakpoint trap";
-#endif
-#ifdef SIGABRT
-    case SIGABRT: return "IOT trap/Abort";
-#endif
-#ifdef SIGBUS
-    case SIGBUS: return "Bus error";
-#endif
-#ifdef SIGFPE
-    case SIGFPE: return "Floating point exception";
-#endif
-#ifdef SIGKILL
-    case SIGKILL: return "Killed";
-#endif
-#ifdef SIGUSR1
-    case SIGUSR1: return "User defined signal 1";
-#endif
-#ifdef SIGSEGV
-    case SIGSEGV: return "Segmentation fault";
-#endif
-#ifdef SIGUSR2
-    case SIGUSR2: return "User defined signal 2";
-#endif
-#ifdef SIGPIPE
-    case SIGPIPE: return "Broken pipe";
-#endif
-#ifdef SIGALRM
-    case SIGALRM: return "Alarm clock";
-#endif
-#ifdef SIGTERM
-    case SIGTERM: return "Terminated";
-#endif
-#ifdef SIGSTKFLT
-    case SIGSTKFLT: return "Stack fault";
-#endif
-#ifdef SIGCHLD
-    case SIGCHLD: return "Child exited";
-#endif
-#ifdef SIGCONT
-    case SIGCONT: return "Continued";
-#endif
-#ifdef SIGSTOP
-    case SIGSTOP: return "Stopped (signal)";
-#endif
-#ifdef SIGTSTP
-    case SIGTSTP: return "Stopped";
-#endif
-#ifdef SIGTTIN
-    case SIGTTIN: return "Stopped (tty input)";
-#endif
-#ifdef SIGTTOU
-    case SIGTTOU: return "Stopped (tty output)";
-#endif
-#ifdef SIGURG
-    case SIGURG: return "Urgent condition";
-#endif
-#ifdef SIGXCPU
-    case SIGXCPU: return "CPU time limit exceeded";
-#endif
-#ifdef SIGXFSZ
-    case SIGXFSZ: return "File size limit exceeded";
-#endif
-#ifdef SIGVTALRM
-    case SIGVTALRM: return "Virtual time alarm";
-#endif
-#ifdef SIGPROF
-    case SIGPROF: return "Profile signal";
-#endif
-#ifdef SIGWINCH
-    case SIGWINCH: return "Window size changed";
-#endif
-#ifdef SIGIO
-    case SIGIO: return "Possible I/O";
-#endif
-#ifdef SIGPWR
-    case SIGPWR: return "Power failure";
-#endif
-#ifdef SIGUNUSED
-    case SIGUNUSED: return "Unused signal";
-#endif
-    }
-#else /* NO_SYS_SIGLIST */
-
-#ifdef NO_SYS_SIGLIST_DECL
-  extern char *sys_siglist[];	/*(see Tue Jan 19 00:44:24 1999 in changelog)*/
-#endif
-
-  return (char*) /* this function should return const --josh */ sys_siglist [signum];
-#endif /* NO_SYS_SIGLIST */
-
-  msg = g_static_private_get (&msg_private);
-  if (!msg)
-    {
-      msg = g_new (gchar, 64);
-      g_static_private_set (&msg_private, msg, g_free);
-    }
-
-  sprintf (msg, "unknown signal (%d)", signum);
-
-  return msg;
-}
-
-guint
-g_printf_string_upper_bound (const gchar* format,
-			     va_list      args)
-{
-  guint len = 1;
-
-  while (*format)
-    {
-      gboolean long_int = FALSE;
-      gboolean extra_long = FALSE;
-      gchar c;
-
-      c = *format++;
-
-      if (c == '%')
-	{
-	  gboolean done = FALSE;
-
-	  while (*format && !done)
-	    {
-	      switch (*format++)
-		{
-		  gchar *string_arg;
-
-		case '*':
-		  len += va_arg (args, int);
-		  break;
-		case '1':
-		case '2':
-		case '3':
-		case '4':
-		case '5':
-		case '6':
-		case '7':
-		case '8':
-		case '9':
-		  /* add specified format length, since it might exceed the
-		   * size we assume it to have.
-		   */
-		  format -= 1;
-		  len += strtol (format, (char**) &format, 10);
-		  break;
-		case 'h':
-		  /* ignore short int flag, since all args have at least the
-		   * same size as an int
-		   */
-		  break;
-		case 'l':
-		  if (long_int)
-		    extra_long = TRUE; /* linux specific */
-		  else
-		    long_int = TRUE;
-		  break;
-		case 'q':
-		case 'L':
-		  long_int = TRUE;
-		  extra_long = TRUE;
-		  break;
-		case 's':
-		  string_arg = va_arg (args, char *);
-		  if (string_arg)
-		    len += strlen (string_arg);
-		  else
-		    {
-		      /* add enough padding to hold "(null)" identifier */
-		      len += 16;
-		    }
-		  done = TRUE;
-		  break;
-		case 'd':
-		case 'i':
-		case 'o':
-		case 'u':
-		case 'x':
-		case 'X':
-#ifdef	G_HAVE_GINT64
-		  if (extra_long)
-		    (void) va_arg (args, gint64);
-		  else
-#endif	/* G_HAVE_GINT64 */
-		    {
-		      if (long_int)
-			(void) va_arg (args, long);
-		      else
-			(void) va_arg (args, int);
-		    }
-		  len += extra_long ? 64 : 32;
-		  done = TRUE;
-		  break;
-		case 'D':
-		case 'O':
-		case 'U':
-		  (void) va_arg (args, long);
-		  len += 32;
-		  done = TRUE;
-		  break;
-		case 'e':
-		case 'E':
-		case 'f':
-		case 'g':
-#ifdef HAVE_LONG_DOUBLE
-		  if (extra_long)
-		    (void) va_arg (args, long double);
-		  else
-#endif	/* HAVE_LONG_DOUBLE */
-		    (void) va_arg (args, double);
-		  len += extra_long ? 128 : 64;
-		  done = TRUE;
-		  break;
-		case 'c':
-		  (void) va_arg (args, int);
-		  len += 1;
-		  done = TRUE;
-		  break;
-		case 'p':
-		case 'n':
-		  (void) va_arg (args, void*);
-		  len += 32;
-		  done = TRUE;
-		  break;
-		case '%':
-		  len += 1;
-		  done = TRUE;
-		  break;
-		default:
-		  /* ignore unknow/invalid flags */
-		  break;
-		}
-	    }
-	}
-      else
-	len += 1;
-    }
-
-  return len;
-}
-
-void
-g_strdown (gchar *string)
-{
-  register guchar *s;
-
-  g_return_if_fail (string != NULL);
-
-  s = string;
-
-  while (*s)
-    {
-      *s = tolower (*s);
-      s++;
-    }
-}
-
-void
-g_strup (gchar *string)
-{
-  register guchar *s;
-
-  g_return_if_fail (string != NULL);
-
-  s = string;
-
-  while (*s)
-    {
-      *s = toupper (*s);
-      s++;
-    }
-}
-
-void
-g_strreverse (gchar *string)
-{
-  g_return_if_fail (string != NULL);
-
-  if (*string)
-    {
-      register gchar *h, *t;
-
-      h = string;
-      t = string + strlen (string) - 1;
-
-      while (h < t)
-	{
-	  register gchar c;
-
-	  c = *h;
-	  *h = *t;
-	  h++;
-	  *t = c;
-	  t--;
-	}
-    }
-}
-
-gint
-g_strcasecmp (const gchar *s1,
-	      const gchar *s2)
-{
-#ifdef HAVE_STRCASECMP
-  g_return_val_if_fail (s1 != NULL, 0);
-  g_return_val_if_fail (s2 != NULL, 0);
-
-  return strcasecmp (s1, s2);
-#else
-  gint c1, c2;
-
-  g_return_val_if_fail (s1 != NULL, 0);
-  g_return_val_if_fail (s2 != NULL, 0);
-
-  while (*s1 && *s2)
-    {
-      /* According to A. Cox, some platforms have islower's that
-       * don't work right on non-uppercase
-       */
-      c1 = isupper ((guchar)*s1) ? tolower ((guchar)*s1) : *s1;
-      c2 = isupper ((guchar)*s2) ? tolower ((guchar)*s2) : *s2;
-      if (c1 != c2)
-	return (c1 - c2);
-      s1++; s2++;
-    }
-
-  return (((gint)(guchar) *s1) - ((gint)(guchar) *s2));
-#endif
-}
-
-gint
-g_strncasecmp (const gchar *s1,
-	       const gchar *s2,
-	       guint n)
-{
-#ifdef HAVE_STRNCASECMP
-  return strncasecmp (s1, s2, n);
-#else
-  gint c1, c2;
-
-  g_return_val_if_fail (s1 != NULL, 0);
-  g_return_val_if_fail (s2 != NULL, 0);
-
-  while (n-- && *s1 && *s2)
-    {
-      /* According to A. Cox, some platforms have islower's that
-       * don't work right on non-uppercase
-       */
-      c1 = isupper ((guchar)*s1) ? tolower ((guchar)*s1) : *s1;
-      c2 = isupper ((guchar)*s2) ? tolower ((guchar)*s2) : *s2;
-      if (c1 != c2)
-	return (c1 - c2);
-      s1++; s2++;
-    }
-
-  if (n)
-    return (((gint)(guchar) *s1) - ((gint)(guchar) *s2));
-  else
-    return 0;
-#endif
-}
-
-gchar*
-g_strdelimit (gchar	  *string,
-	      const gchar *delimiters,
-	      gchar	   new_delim)
-{
-  register gchar *c;
-
-  g_return_val_if_fail (string != NULL, NULL);
-
-  if (!delimiters)
-    delimiters = G_STR_DELIMITERS;
-
-  for (c = string; *c; c++)
-    {
-      if (strchr (delimiters, *c))
-	*c = new_delim;
-    }
-
-  return string;
-}
-
-gchar*
-g_strescape (gchar *string)
-{
-  gchar *q;
-  gchar *escaped;
-  guint backslashes = 0;
-  gchar *p = string;
-
-  g_return_val_if_fail (string != NULL, NULL);
-
-  while (*p != '\000')
-    backslashes += (*p++ == '\\');
-
-  if (!backslashes)
-    return g_strdup (string);
-
-  escaped = g_new (gchar, strlen (string) + backslashes + 1);
-
-  p = string;
-  q = escaped;
-
-  while (*p != '\000')
-    {
-      if (*p == '\\')
-	*q++ = '\\';
-      *q++ = *p++;
-    }
-  *q = '\000';
-
-  return escaped;
-}
-
-/* blame Elliot for these next five routines */
-gchar*
-g_strchug (gchar *string)
-{
-  guchar *start;
-
-  g_return_val_if_fail (string != NULL, NULL);
-
-  for (start = string; *start && isspace (*start); start++)
-    ;
-
-  g_memmove(string, start, strlen(start) + 1);
-
-  return string;
-}
-
-gchar*
-g_strchomp (gchar *string)
-{
-  gchar *s;
-
-  g_return_val_if_fail (string != NULL, NULL);
-
-  if (!*string)
-    return string;
-
-  for (s = string + strlen (string) - 1; s >= string && isspace ((guchar)*s); 
-       s--)
-    *s = '\0';
-
-  return string;
-}
-
-gchar**
-g_strsplit (const gchar *string,
-	    const gchar *delimiter,
-	    gint         max_tokens)
-{
-  GSList *string_list = NULL, *slist;
-  gchar **str_array, *s;
-  guint i, n = 1;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_return_val_if_fail (delimiter != NULL, NULL);
-
-  if (max_tokens < 1)
-    max_tokens = G_MAXINT;
-
-  s = strstr (string, delimiter);
-  if (s)
-    {
-      guint delimiter_len = strlen (delimiter);
-
-      do
-	{
-	  guint len;
-	  gchar *new_string;
-
-	  len = s - string;
-	  new_string = g_new (gchar, len + 1);
-	  strncpy (new_string, string, len);
-	  new_string[len] = 0;
-	  string_list = g_slist_prepend (string_list, new_string);
-	  n++;
-	  string = s + delimiter_len;
-	  s = strstr (string, delimiter);
-	}
-      while (--max_tokens && s);
-    }
-  if (*string)
-    {
-      n++;
-      string_list = g_slist_prepend (string_list, g_strdup (string));
-    }
-
-  str_array = g_new (gchar*, n);
-
-  i = n - 1;
-
-  str_array[i--] = NULL;
-  for (slist = string_list; slist; slist = slist->next)
-    str_array[i--] = slist->data;
-
-  g_slist_free (string_list);
-
-  return str_array;
-}
-
-void
-g_strfreev (gchar **str_array)
-{
-  if (str_array)
-    {
-      int i;
-
-      for(i = 0; str_array[i] != NULL; i++)
-	g_free(str_array[i]);
-
-      g_free (str_array);
-    }
-}
-
-gchar*
-g_strjoinv (const gchar  *separator,
-	    gchar       **str_array)
-{
-  gchar *string;
-
-  g_return_val_if_fail (str_array != NULL, NULL);
-
-  if (separator == NULL)
-    separator = "";
-
-  if (*str_array)
-    {
-      guint i, len;
-      guint separator_len;
-
-      separator_len = strlen (separator);
-      len = 1 + strlen (str_array[0]);
-      for(i = 1; str_array[i] != NULL; i++)
-	len += separator_len + strlen(str_array[i]);
-
-      string = g_new (gchar, len);
-      *string = 0;
-      strcat (string, *str_array);
-      for (i = 1; str_array[i] != NULL; i++)
-	{
-	  strcat (string, separator);
-	  strcat (string, str_array[i]);
-	}
-      }
-  else
-    string = g_strdup ("");
-
-  return string;
-}
-
-gchar*
-g_strjoin (const gchar  *separator,
-	   ...)
-{
-  gchar *string, *s;
-  va_list args;
-  guint len;
-  guint separator_len;
-
-  if (separator == NULL)
-    separator = "";
-
-  separator_len = strlen (separator);
-
-  va_start (args, separator);
-
-  s = va_arg (args, gchar*);
-
-  if (s)
-    {
-      len = strlen (s);
-      
-      s = va_arg (args, gchar*);
-      while (s)
-	{
-	  len += separator_len + strlen (s);
-	  s = va_arg (args, gchar*);
-	}
-      va_end (args);
-      
-      string = g_new (gchar, len + 1);
-      *string = 0;
-      
-      va_start (args, separator);
-      
-      s = va_arg (args, gchar*);
-      strcat (string, s);
-      
-      s = va_arg (args, gchar*);
-      while (s)
-	{
-	  strcat (string, separator);
-	  strcat (string, s);
-	  s = va_arg (args, gchar*);
-	}
-    }
-  else
-    string = g_strdup ("");
-  
-  va_end (args);
-
-  return string;
-}
diff --git a/glib/gstring.c b/glib/gstring.c
deleted file mode 100644
index a7ed5c6..0000000
--- a/glib/gstring.c
+++ /dev/null
@@ -1,512 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <stdarg.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include "glib.h"
-
-
-typedef struct _GRealStringChunk GRealStringChunk;
-typedef struct _GRealString      GRealString;
-
-struct _GRealStringChunk
-{
-  GHashTable *const_table;
-  GSList     *storage_list;
-  gint        storage_next;
-  gint        this_size;
-  gint        default_size;
-};
-
-struct _GRealString
-{
-  gchar *str;
-  gint   len;
-  gint   alloc;
-};
-
-G_LOCK_DEFINE_STATIC (string_mem_chunk);
-static GMemChunk *string_mem_chunk = NULL;
-
-/* Hash Functions.
- */
-
-gint
-g_str_equal (gconstpointer v, gconstpointer v2)
-{
-  return strcmp ((const gchar*) v, (const gchar*)v2) == 0;
-}
-
-/* 31 bit hash function */
-guint
-g_str_hash (gconstpointer key)
-{
-  const char *p = key;
-  guint h = *p;
-  
-  if (h)
-    for (p += 1; *p != '\0'; p++)
-      h = (h << 5) - h + *p;
-  
-  return h;
-}
-
-/* String Chunks.
- */
-
-GStringChunk*
-g_string_chunk_new (gint default_size)
-{
-  GRealStringChunk *new_chunk = g_new (GRealStringChunk, 1);
-  gint size = 1;
-
-  while (size < default_size)
-    size <<= 1;
-
-  new_chunk->const_table       = NULL;
-  new_chunk->storage_list      = NULL;
-  new_chunk->storage_next      = size;
-  new_chunk->default_size      = size;
-  new_chunk->this_size         = size;
-
-  return (GStringChunk*) new_chunk;
-}
-
-void
-g_string_chunk_free (GStringChunk *fchunk)
-{
-  GRealStringChunk *chunk = (GRealStringChunk*) fchunk;
-  GSList *tmp_list;
-
-  g_return_if_fail (chunk != NULL);
-
-  if (chunk->storage_list)
-    {
-      for (tmp_list = chunk->storage_list; tmp_list; tmp_list = tmp_list->next)
-	g_free (tmp_list->data);
-
-      g_slist_free (chunk->storage_list);
-    }
-
-  if (chunk->const_table)
-    g_hash_table_destroy (chunk->const_table);
-
-  g_free (chunk);
-}
-
-gchar*
-g_string_chunk_insert (GStringChunk *fchunk,
-		       const gchar  *string)
-{
-  GRealStringChunk *chunk = (GRealStringChunk*) fchunk;
-  gint len = strlen (string);
-  char* pos;
-
-  g_return_val_if_fail (chunk != NULL, NULL);
-
-  if ((chunk->storage_next + len + 1) > chunk->this_size)
-    {
-      gint new_size = chunk->default_size;
-
-      while (new_size < len+1)
-	new_size <<= 1;
-
-      chunk->storage_list = g_slist_prepend (chunk->storage_list,
-					     g_new (char, new_size));
-
-      chunk->this_size = new_size;
-      chunk->storage_next = 0;
-    }
-
-  pos = ((char*)chunk->storage_list->data) + chunk->storage_next;
-
-  strcpy (pos, string);
-
-  chunk->storage_next += len + 1;
-
-  return pos;
-}
-
-gchar*
-g_string_chunk_insert_const (GStringChunk *fchunk,
-			     const gchar  *string)
-{
-  GRealStringChunk *chunk = (GRealStringChunk*) fchunk;
-  char* lookup;
-
-  g_return_val_if_fail (chunk != NULL, NULL);
-
-  if (!chunk->const_table)
-    chunk->const_table = g_hash_table_new (g_str_hash, g_str_equal);
-
-  lookup = (char*) g_hash_table_lookup (chunk->const_table, (gchar *)string);
-
-  if (!lookup)
-    {
-      lookup = g_string_chunk_insert (fchunk, string);
-      g_hash_table_insert (chunk->const_table, lookup, lookup);
-    }
-
-  return lookup;
-}
-
-/* Strings.
- */
-static gint
-nearest_pow (gint num)
-{
-  gint n = 1;
-
-  while (n < num)
-    n <<= 1;
-
-  return n;
-}
-
-static void
-g_string_maybe_expand (GRealString* string, gint len)
-{
-  if (string->len + len >= string->alloc)
-    {
-      string->alloc = nearest_pow (string->len + len + 1);
-      string->str = g_realloc (string->str, string->alloc);
-    }
-}
-
-GString*
-g_string_sized_new (guint dfl_size)
-{
-  GRealString *string;
-
-  G_LOCK (string_mem_chunk);
-  if (!string_mem_chunk)
-    string_mem_chunk = g_mem_chunk_new ("string mem chunk",
-					sizeof (GRealString),
-					1024, G_ALLOC_AND_FREE);
-
-  string = g_chunk_new (GRealString, string_mem_chunk);
-  G_UNLOCK (string_mem_chunk);
-
-  string->alloc = 0;
-  string->len   = 0;
-  string->str   = NULL;
-
-  g_string_maybe_expand (string, MAX (dfl_size, 2));
-  string->str[0] = 0;
-
-  return (GString*) string;
-}
-
-GString*
-g_string_new (const gchar *init)
-{
-  GString *string;
-
-  string = g_string_sized_new (2);
-
-  if (init)
-    g_string_append (string, init);
-
-  return string;
-}
-
-void
-g_string_free (GString *string,
-	       gint free_segment)
-{
-  g_return_if_fail (string != NULL);
-
-  if (free_segment)
-    g_free (string->str);
-
-  G_LOCK (string_mem_chunk);
-  g_mem_chunk_free (string_mem_chunk, string);
-  G_UNLOCK (string_mem_chunk);
-}
-
-GString*
-g_string_assign (GString *lval,
-		 const gchar *rval)
-{
-  g_return_val_if_fail (lval != NULL, NULL);
-  g_return_val_if_fail (rval != NULL, NULL);
-  
-  g_string_truncate (lval, 0);
-  g_string_append (lval, rval);
-
-  return lval;
-}
-
-GString*
-g_string_truncate (GString* fstring,
-		   gint len)
-{
-  GRealString *string = (GRealString*)fstring;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_return_val_if_fail (len >= 0, NULL);
-
-  string->len = len;
-
-  string->str[len] = 0;
-
-  return fstring;
-}
-
-GString*
-g_string_append (GString *fstring,
-		 const gchar *val)
-{
-  GRealString *string = (GRealString*)fstring;
-  int len;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_return_val_if_fail (val != NULL, fstring);
-  
-  len = strlen (val);
-  g_string_maybe_expand (string, len);
-
-  strcpy (string->str + string->len, val);
-
-  string->len += len;
-
-  return fstring;
-}
-
-GString*
-g_string_append_c (GString *fstring,
-		   gchar c)
-{
-  GRealString *string = (GRealString*)fstring;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_string_maybe_expand (string, 1);
-
-  string->str[string->len++] = c;
-  string->str[string->len] = 0;
-
-  return fstring;
-}
-
-GString*
-g_string_prepend (GString *fstring,
-		  const gchar *val)
-{
-  GRealString *string = (GRealString*)fstring;
-  gint len;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_return_val_if_fail (val != NULL, fstring);
-
-  len = strlen (val);
-  g_string_maybe_expand (string, len);
-
-  g_memmove (string->str + len, string->str, string->len);
-
-  strncpy (string->str, val, len);
-
-  string->len += len;
-
-  string->str[string->len] = 0;
-
-  return fstring;
-}
-
-GString*
-g_string_prepend_c (GString *fstring,
-		    gchar    c)
-{
-  GRealString *string = (GRealString*)fstring;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_string_maybe_expand (string, 1);
-
-  g_memmove (string->str + 1, string->str, string->len);
-
-  string->str[0] = c;
-
-  string->len += 1;
-
-  string->str[string->len] = 0;
-
-  return fstring;
-}
-
-GString*
-g_string_insert (GString     *fstring,
-		 gint         pos,
-		 const gchar *val)
-{
-  GRealString *string = (GRealString*)fstring;
-  gint len;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_return_val_if_fail (val != NULL, fstring);
-  g_return_val_if_fail (pos >= 0, fstring);
-  g_return_val_if_fail (pos <= string->len, fstring);
-
-  len = strlen (val);
-  g_string_maybe_expand (string, len);
-
-  g_memmove (string->str + pos + len, string->str + pos, string->len - pos);
-
-  strncpy (string->str + pos, val, len);
-
-  string->len += len;
-
-  string->str[string->len] = 0;
-
-  return fstring;
-}
-
-GString *
-g_string_insert_c (GString *fstring,
-		   gint     pos,
-		   gchar    c)
-{
-  GRealString *string = (GRealString*)fstring;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_return_val_if_fail (pos <= string->len, fstring);
-
-  g_string_maybe_expand (string, 1);
-
-  g_memmove (string->str + pos + 1, string->str + pos, string->len - pos);
-
-  string->str[pos] = c;
-
-  string->len += 1;
-
-  string->str[string->len] = 0;
-
-  return fstring;
-}
-
-GString*
-g_string_erase (GString *fstring,
-		gint pos,
-		gint len)
-{
-  GRealString *string = (GRealString*)fstring;
-
-  g_return_val_if_fail (string != NULL, NULL);
-  g_return_val_if_fail (len >= 0, fstring);
-  g_return_val_if_fail (pos >= 0, fstring);
-  g_return_val_if_fail (pos <= string->len, fstring);
-  g_return_val_if_fail (pos + len <= string->len, fstring);
-
-  if (pos + len < string->len)
-    g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len));
-
-  string->len -= len;
-  
-  string->str[string->len] = 0;
-
-  return fstring;
-}
-
-GString*
-g_string_down (GString *fstring)
-{
-  GRealString *string = (GRealString*)fstring;
-  guchar *s;
-
-  g_return_val_if_fail (string != NULL, NULL);
-
-  s = string->str;
-
-  while (*s)
-    {
-      *s = tolower (*s);
-      s++;
-    }
-
-  return fstring;
-}
-
-GString*
-g_string_up (GString *fstring)
-{
-  GRealString *string = (GRealString*)fstring;
-  guchar *s;
-
-  g_return_val_if_fail (string != NULL, NULL);
-
-  s = string->str;
-
-  while (*s)
-    {
-      *s = toupper (*s);
-      s++;
-    }
-
-  return fstring;
-}
-
-static void
-g_string_sprintfa_int (GString     *string,
-		       const gchar *fmt,
-		       va_list      args)
-{
-  gchar *buffer;
-
-  buffer = g_strdup_vprintf (fmt, args);
-  g_string_append (string, buffer);
-  g_free (buffer);
-}
-
-void
-g_string_sprintf (GString *string,
-		  const gchar *fmt,
-		  ...)
-{
-  va_list args;
-
-  g_string_truncate (string, 0);
-
-  va_start (args, fmt);
-  g_string_sprintfa_int (string, fmt, args);
-  va_end (args);
-}
-
-void
-g_string_sprintfa (GString *string,
-		   const gchar *fmt,
-		   ...)
-{
-  va_list args;
-
-  va_start (args, fmt);
-  g_string_sprintfa_int (string, fmt, args);
-  va_end (args);
-}
diff --git a/glib/gthread/ChangeLog b/glib/gthread/ChangeLog
deleted file mode 100644
index 788ff37..0000000
--- a/glib/gthread/ChangeLog
+++ /dev/null
@@ -1,69 +0,0 @@
-1999-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gthread-posix.c: Fixed broken mutex_trylock and slightly broken
-	cond_timed_wait functions.
-
-1999-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* testgthread.c (test_mutexes): Use new signature of
-	g_static_mutex* functions.
-
-1999-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* gthread-posix.c (g_private_get_posix_impl): Use the
-	HAVE_PTHREAD_GETSPECIFIC_POSIX macro to determine, which signature
-	to use for pthread_getspecific.
-
-Tue Jan 19 20:56:02 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* Makefile.am (EXTRA_DIST): Added gthread.def.
-
-Sun Jan 17 10:58:19 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* gthread.def: New file.
-
-1999-01-16 1999  Tor Lillqvist  <tml@iki.fi>
-
-	* gthread-posix.c: Conditionalize <sys/time.h> inclusion.
-
-1999-01-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* testgthread.c: conditionally compile according to the
-	G_THREADS_IMPL_??? macros.
-	(test_private_func): use rand_r instead of rand to make it
-	thread safe.
-
-1998-12-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* testgthread.c (new_thread): As a joinable thread seems to be the
-	default on posix, leave the explicit setting out, as it causes
-	problems on some older platforms.
-
-Wed Dec 16 22:21:33 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-	* gthread-posix.c: use g_free in mutex_free (from Tim Janik)
-
-Thu Dec 17 03:38:57 1998  Tim Janik  <timj@gtk.org>
-
-	* Makefile.am: -DG_LOG_DOMAIN="GThread", we don't need an extern
-	variable for that (noticed by Joel Becker <jlbec@ocala.cs.miami.edu>)
-
-Wed Dec 16 03:16:16 1998  Tim Janik  <timj@gtk.org>
-
-	* testgthread.c: s/g_thread_supported/g_thread_supported ()/
-	* gthread.c: s/g_thread_supported/g_threads_got_initialized/
-	(g_thread_init): bail out if G_THREADS_ENABLED is not defined.
-
-1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-	* Makefile.am (EXTRA_DIST): updated.
-
-	* testgthread.c, gthread-*.c: Changed private to private_key to
-	avoid problems when compiling with under C++.
-
-	* gthread-none.c: 
-	s/g_mutex_functions_for_glib_use/g_thread_functions_for_glib_use/
-
-	* ChangeLog: from now on there is an extra ChangeLog for gthread
-	
-
diff --git a/glib/gthread/Makefile.am b/glib/gthread/Makefile.am
deleted file mode 100644
index 985fa17..0000000
--- a/glib/gthread/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/gthread -DG_LOG_DOMAIN=\"GThread\"
-
-EXTRA_DIST =				\
-		gthread-posix.c		\
-		gthread-solaris.c	\
-		gthread-nspr.c		\
-		gthread-none.c		\
-		gthread.def
-
-libglib = $(top_builddir)/libglib.la # -lglib
-
-lib_LTLIBRARIES = libgthread.la
-
-libgthread_la_SOURCES = gthread.c
-libgthread_la_LDFLAGS = \
-	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-	-release $(LT_RELEASE) \
-	-export-dynamic
-
-libgthread_la_LIBADD = @G_THREAD_LIBS@
-
-noinst_PROGRAMS = testgthread
-testgthread_LDADD = ../libglib.la libgthread.la 
diff --git a/glib/gthread/Makefile.in b/glib/gthread/Makefile.in
deleted file mode 100644
index c82acf9..0000000
--- a/glib/gthread/Makefile.in
+++ /dev/null
@@ -1,361 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@
-ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@
-GLIB_BINARY_AGE = @GLIB_BINARY_AGE@
-GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@
-GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@
-GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@
-GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@
-GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@
-GLIB_VERSION = @GLIB_VERSION@
-G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@
-G_MODULE_IMPL = @G_MODULE_IMPL@
-G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@
-G_MODULE_LIBS = @G_MODULE_LIBS@
-G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@
-G_THREAD_CFLAGS = @G_THREAD_CFLAGS@
-G_THREAD_LIBS = @G_THREAD_LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_RELEASE = @LT_RELEASE@
-LT_REVISION = @LT_REVISION@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-
-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/gthread -DG_LOG_DOMAIN=\"GThread\"
-
-EXTRA_DIST =  		gthread-posix.c				gthread-solaris.c			gthread-nspr.c				gthread-none.c				gthread.def
-
-
-libglib = $(top_builddir)/libglib.la # -lglib
-
-lib_LTLIBRARIES = libgthread.la
-
-libgthread_la_SOURCES = gthread.c
-libgthread_la_LDFLAGS =  	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) 	-release $(LT_RELEASE) 	-export-dynamic
-
-
-libgthread_la_LIBADD = @G_THREAD_LIBS@
-
-noinst_PROGRAMS = testgthread
-testgthread_LDADD = ../libglib.la libgthread.la 
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LTLIBRARIES =  $(lib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I..
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libgthread_la_DEPENDENCIES = 
-libgthread_la_OBJECTS =  gthread.lo
-PROGRAMS =  $(noinst_PROGRAMS)
-
-testgthread_SOURCES = testgthread.c
-testgthread_OBJECTS =  testgthread.o
-testgthread_DEPENDENCIES =  ../libglib.la libgthread.la
-testgthread_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libgthread_la_SOURCES) testgthread.c
-OBJECTS = $(libgthread_la_OBJECTS) testgthread.o
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gthread/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-libLTLIBRARIES:
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-
-distclean-libLTLIBRARIES:
-
-maintainer-clean-libLTLIBRARIES:
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(libdir)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "$(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
-	    $(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
-	  else :; fi; \
-	done
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
-	done
-
-.c.o:
-	$(COMPILE) -c $<
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libgthread.la: $(libgthread_la_OBJECTS) $(libgthread_la_DEPENDENCIES)
-	$(LINK) -rpath $(libdir) $(libgthread_la_LDFLAGS) $(libgthread_la_OBJECTS) $(libgthread_la_LIBADD) $(LIBS)
-
-mostlyclean-noinstPROGRAMS:
-
-clean-noinstPROGRAMS:
-	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-
-testgthread: $(testgthread_OBJECTS) $(testgthread_DEPENDENCIES)
-	@rm -f testgthread
-	$(LINK) $(testgthread_LDFLAGS) $(testgthread_OBJECTS) $(testgthread_LDADD) $(LIBS)
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-	-rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = gthread
-
-distdir: $(DISTFILES)
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
-	  fi; \
-	done
-
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-libLTLIBRARIES
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-libLTLIBRARIES
-uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(libdir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-libLTLIBRARIES mostlyclean-compile \
-		mostlyclean-libtool mostlyclean-noinstPROGRAMS \
-		mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-libLTLIBRARIES clean-compile clean-libtool \
-		clean-noinstPROGRAMS clean-tags clean-generic \
-		mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-libLTLIBRARIES distclean-compile \
-		distclean-libtool distclean-noinstPROGRAMS \
-		distclean-tags distclean-generic clean-am
-	-rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am:  maintainer-clean-libLTLIBRARIES \
-		maintainer-clean-compile maintainer-clean-libtool \
-		maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
-uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
-distclean-compile clean-compile maintainer-clean-compile \
-mostlyclean-libtool distclean-libtool clean-libtool \
-maintainer-clean-libtool mostlyclean-noinstPROGRAMS \
-distclean-noinstPROGRAMS clean-noinstPROGRAMS \
-maintainer-clean-noinstPROGRAMS tags mostlyclean-tags distclean-tags \
-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/glib/gthread/gthread-none.c b/glib/gthread/gthread-none.c
deleted file mode 100644
index 1b936a2..0000000
--- a/glib/gthread/gthread-none.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gthread.c: fallback thread system implementation
- * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-static GThreadFunctions
-g_thread_functions_for_glib_use_default; /* is NULLified */
diff --git a/glib/gthread/gthread-nspr.c b/glib/gthread/gthread-nspr.c
deleted file mode 100644
index 2fe44b7..0000000
--- a/glib/gthread/gthread-nspr.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gthread.c: nspr thread system implementation
- * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <prpdce.h>
-#include <prthread.h>
-#include <stdlib.h>
-
-#ifdef G_DISABLE_ASSERT
-
-#define STDERR_ASSERT(expr)
-
-#else /* G_DISABLE_ASSERT */
-
-#define STDERR_ASSERT(expr)                  G_STMT_START{      \
-     if (!(expr))                                               \
-       g_log (G_LOG_DOMAIN,                                     \
-              G_LOG_LEVEL_ERROR,                                \
-              "file %s: line %d: assertion failed: (%s)",       \
-              __FILE__,                                         \
-              __LINE__,                                         \
-              #expr);                   }G_STMT_END
-
-#endif /* G_DISABLE_ASSERT */
-
-/* NOTE: the functions g_mutex_lock and g_mutex_unlock may not use
-   functions from gmem.c and gmessages.c; */
-
-static gboolean
-g_mutex_trylock_nspr_impl (GMutex * mutex)
-{
-  PRStatus status = PRP_TryLock ((PRLock *) mutex);
-  if (status == PR_SUCCESS)
-    {
-      return TRUE;
-    }
-  return FALSE;
-}
-
-static void
-g_cond_wait_nspr_impl (GCond * cond,
-		       GMutex * entered_mutex)
-{
-  PRStatus status = PRP_NakedWait ((PRCondVar *) cond, 
-				   (PRLock *) entered_mutex,
-				   PR_INTERVAL_NO_TIMEOUT);
-  g_assert (status == PR_SUCCESS);
-}
-
-#define G_MICROSEC 1000000
-
-static gboolean
-g_cond_timed_wait_nspr_impl (GCond * cond,
-			     GMutex * entered_mutex,
-			     GTimeVal * abs_time)
-{
-  PRStatus status;
-  PRIntervalTime interval;
-  GTimeVal current_time;
-  glong microsecs;
-
-  g_return_val_if_fail (cond != NULL, FALSE);
-  g_return_val_if_fail (entered_mutex != NULL, FALSE);
-
-  g_get_current_time (&current_time);
-
-  if (abs_time->tv_sec < current_time.tv_sec ||
-      (abs_time->tv_sec == current_time.tv_sec &&
-       abs_time->tv_usec < current_time.tv_usec))
-    return FALSE;
-
-  interval = PR_SecondsToInterval (abs_time->tv_sec - current_time.tv_sec);
-  microsecs = abs_time->tv_usec - current_time.tv_usec;
-  if (microsecs < 0)
-    interval -= PR_MicrosecondsToInterval (-microsecs);
-  else
-    interval += PR_MicrosecondsToInterval (microsecs);
-
-  status = PRP_NakedWait ((PRCondVar *) cond, (PRLock *) entered_mutex,
-			  interval);
-
-  g_assert (status == PR_SUCCESS);
-
-  g_get_current_time (&current_time);
-
-  if (abs_time->tv_sec < current_time.tv_sec ||
-      (abs_time->tv_sec == current_time.tv_sec &&
-       abs_time->tv_usec < current_time.tv_usec))
-    return FALSE;
-  return TRUE;
-}
-
-typedef struct _GPrivateNSPRData GPrivateNSPRData;
-struct _GPrivateNSPRData
-  {
-    gpointer data;
-    GDestroyNotify destructor;
-  };
-
-typedef struct _GPrivateNSPR GPrivateNSPR;
-struct _GPrivateNSPR
-  {
-    PRUintn private_key;
-    GDestroyNotify destructor;
-  };
-
-static GPrivateNSPRData *
-g_private_nspr_data_constructor (GDestroyNotify destructor, gpointer data)
-{
-  /* we can not use g_new and friends, as they might use private data by
-     themself */
-  GPrivateNSPRData *private_key = malloc (sizeof (GPrivateNSPRData));
-  g_assert (private_key);
-  private_key->data = data;
-  private_key->destructor = destructor;
-
-  return private_key;
-}
-
-static void
-g_private_nspr_data_destructor (gpointer data)
-{
-  GPrivateNSPRData *private_key = data;
-  if (private_key->destructor && private_key->data)
-    (*private_key->destructor) (private_key->data);
-  free (private_key);
-}
-
-static GPrivate *
-g_private_new_nspr_impl (GDestroyNotify destructor)
-{
-  GPrivateNSPR *result = g_new (GPrivateNSPR, 1);
-  PRStatus status = PR_NewThreadPrivateIndex (&result->private_key,
-					    g_private_nspr_data_destructor);
-  g_assert (status == PR_SUCCESS);
-
-  result->destructor = destructor;
-  return (GPrivate *) result;
-}
-
-/* NOTE: the functions g_private_get and g_private_set may not use
-   functions from gmem.c and gmessages.c */
-
-static GPrivateNSPRData *
-g_private_nspr_data_get (GPrivateNSPR * private_key)
-{
-  GPrivateNSPRData *data;
-
-  STDERR_ASSERT (private_key);
-
-  data = PR_GetThreadPrivate (private_key->private_key);
-  if (!data)
-    {
-      data = g_private_nspr_data_constructor (private_key->destructor, NULL);
-      STDERR_ASSERT (PR_SetThreadPrivate (private_key->private_key, data)
-		     == PR_SUCCESS);
-    }
-
-  return data;
-}
-
-static void
-g_private_set_nspr_impl (GPrivate * private_key, gpointer value)
-{
-  if (!private_key)
-    return;
-
-  g_private_nspr_data_get ((GPrivateNSPR *) private_key)->data = value;
-}
-
-static gpointer
-g_private_get_nspr_impl (GPrivate * private_key)
-{
-  if (!private_key)
-    return NULL;
-
-  return g_private_nspr_data_get ((GPrivateNSPR *) private_key)->data;
-}
-
-static GThreadFunctions g_thread_functions_for_glib_use_default =
-{
-  (GMutex * (*)())PR_NewLock,
-  (void (*)(GMutex *)) PR_Lock,
-  g_mutex_trylock_nspr_impl,
-  (void (*)(GMutex *)) PR_Unlock,
-  (void (*)(GMutex *)) PR_DestroyLock,
-  (GCond * (*)())PRP_NewNakedCondVar,
-  (void (*)(GCond *)) PRP_NakedNotify,
-  (void (*)(GCond *)) PRP_NakedBroadcast,
-  g_cond_wait_nspr_impl,
-  g_cond_timed_wait_nspr_impl,
-  (void (*)(GCond *)) PRP_DestroyNakedCondVar,
-  g_private_new_nspr_impl,
-  g_private_get_nspr_impl,
-  g_private_set_nspr_impl
-};
diff --git a/glib/gthread/gthread-posix.c b/glib/gthread/gthread-posix.c
deleted file mode 100644
index a62ab91..0000000
--- a/glib/gthread/gthread-posix.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gthread.c: posix thread system implementation
- * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <pthread.h>
-#include <errno.h>
-#include <stdlib.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#define posix_print_error( name, num )                          \
-  g_error( "file %s: line %d (%s): error %s during %s",         \
-           __FILE__, __LINE__, G_GNUC_PRETTY_FUNCTION,          \
-           g_strerror((num)), #name )
-
-#define posix_check_for_error( what ) G_STMT_START{             \
-  int error = (what);                                           \
-  if( error ) { posix_print_error( what, error ); }             \
-  }G_STMT_END
-
-static GMutex *
-g_mutex_new_posix_impl (void)
-{
-  GMutex *result = (GMutex *) g_new (pthread_mutex_t, 1);
-  posix_check_for_error (pthread_mutex_init ((pthread_mutex_t *) result, NULL));
-  return result;
-}
-
-static void
-g_mutex_free_posix_impl (GMutex * mutex)
-{
-  posix_check_for_error (pthread_mutex_destroy ((pthread_mutex_t *) mutex));
-  g_free (mutex);
-}
-
-/* NOTE: the functions g_mutex_lock and g_mutex_unlock may not use
-   functions from gmem.c and gmessages.c; */
-
-/* pthread_mutex_lock, pthread_mutex_unlock can be taken directly, as
-   signature and semantic are right, but without error check then!!!!,
-   we might want to change this therefore. */
-
-static gboolean
-g_mutex_trylock_posix_impl (GMutex * mutex)
-{
-  int result;
-
-  result = pthread_mutex_trylock ((pthread_mutex_t *) mutex);
-#ifdef HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX
-  if (result == EBUSY)
-    return FALSE;
-  posix_check_for_error (result);
-#else
-  if (result == 0)
-    return FALSE;
-#endif
-  return TRUE;
-}
-
-static GCond *
-g_cond_new_posix_impl (void)
-{
-  GCond *result = (GCond *) g_new (pthread_cond_t, 1);
-  posix_check_for_error (pthread_cond_init ((pthread_cond_t *) result, NULL));
-  return result;
-}
-
-/* pthread_cond_signal, pthread_cond_broadcast and pthread_cond_wait
-   can be taken directly, as signature and semantic are right, but
-   without error check then!!!!, we might want to change this
-   therfore. */
-
-#define G_MICROSEC 1000000
-#define G_NANOSEC 1000000000
-
-static gboolean
-g_cond_timed_wait_posix_impl (GCond * cond,
-			      GMutex * entered_mutex,
-			      GTimeVal * abs_time)
-{
-  int result;
-  struct timespec end_time;
-  gboolean timed_out;
-
-  g_return_val_if_fail (cond != NULL, FALSE);
-  g_return_val_if_fail (entered_mutex != NULL, FALSE);
-
-  if (!abs_time)
-    {
-      g_cond_wait (cond, entered_mutex);
-      return TRUE;
-    }
-
-  end_time.tv_sec = abs_time->tv_sec;
-  end_time.tv_nsec = abs_time->tv_usec * (G_NANOSEC / G_MICROSEC);
-  g_assert (end_time.tv_nsec < G_NANOSEC);
-  result = pthread_cond_timedwait ((pthread_cond_t *) cond,
-				   (pthread_mutex_t *) entered_mutex,
-				   &end_time);
-#ifdef HAVE_PTHREAD_COND_TIMEDWAIT_POSIX
-  timed_out = (result == ETIMEDOUT);
-#else
-  timed_out = (result == -1 && errno == EAGAIN);
-#endif
-  if (!timed_out)
-    posix_check_for_error (result);
-  return !timed_out;
-}
-
-static void
-g_cond_free_posix_impl (GCond * cond)
-{
-  posix_check_for_error (pthread_cond_destroy ((pthread_cond_t *) cond));
-  g_free (cond);
-}
-
-static GPrivate *
-g_private_new_posix_impl (GDestroyNotify destructor)
-{
-  GPrivate *result = (GPrivate *) g_new (pthread_key_t, 1);
-  posix_check_for_error (pthread_key_create ((pthread_key_t *) result,
-					     destructor));
-  return result;
-}
-
-/* NOTE: the functions g_private_get and g_private_set may not use
-   functions from gmem.c and gmessages.c */
-
-static void
-g_private_set_posix_impl (GPrivate * private_key, gpointer value)
-{
-  if (!private_key)
-    return;
-
-  pthread_setspecific (*(pthread_key_t *) private_key, value);
-}
-
-static gpointer
-g_private_get_posix_impl (GPrivate * private_key)
-{
-  if (!private_key)
-    return NULL;
-#ifdef HAVE_PTHREAD_GETSPECIFIC_POSIX
-  return pthread_getspecific (*(pthread_key_t *) private_key);
-#else /* HAVE_PTHREAD_GETSPECIFIC_POSIX */
-  {
-    void* data;
-    pthread_getspecific (*(pthread_key_t *) private_key, &data);
-    return data;
-  }
-#endif /* HAVE_PTHREAD_GETSPECIFIC_POSIX */
-}
-
-static GThreadFunctions g_thread_functions_for_glib_use_default =
-{
-  g_mutex_new_posix_impl,
-  (void (*)(GMutex *)) pthread_mutex_lock,
-  g_mutex_trylock_posix_impl,
-  (void (*)(GMutex *)) pthread_mutex_unlock,
-  g_mutex_free_posix_impl,
-  g_cond_new_posix_impl,
-  (void (*)(GCond *)) pthread_cond_signal,
-  (void (*)(GCond *)) pthread_cond_broadcast,
-  (void (*)(GCond *, GMutex *)) pthread_cond_wait,
-  g_cond_timed_wait_posix_impl,
-  g_cond_free_posix_impl,
-  g_private_new_posix_impl,
-  g_private_get_posix_impl,
-  g_private_set_posix_impl
-};
diff --git a/glib/gthread/gthread-solaris.c b/glib/gthread/gthread-solaris.c
deleted file mode 100644
index 4d9c375..0000000
--- a/glib/gthread/gthread-solaris.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gthread.c: solaris thread system implementation
- * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include <thread.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#define solaris_print_error( name, num )                        \
-  g_error( "file %s: line %d (%s): error %s during %s",         \
-           __FILE__, __LINE__, G_GNUC_PRETTY_FUNCTION,          \
-           g_strerror((num)), #name )
-
-#define solaris_check_for_error( what ) G_STMT_START{           \
-  int error = (what);                                           \
-  if( error ) { solaris_print_error( what, error ); }           \
-  }G_STMT_END
-
-static GMutex *
-g_mutex_new_solaris_impl (void)
-{
-  GMutex *result = (GMutex *) g_new (mutex_t, 1);
-  solaris_check_for_error (mutex_init ((mutex_t *) result, USYNC_PROCESS, 0));
-  return result;
-}
-
-static void
-g_mutex_free_solaris_impl (GMutex * mutex)
-{
-  solaris_check_for_error (mutex_destroy ((mutex_t *) mutex));
-  free (mutex);
-}
-
-/* NOTE: the functions g_mutex_lock and g_mutex_unlock may not use
-   functions from gmem.c and gmessages.c; */
-
-/* mutex_lock, mutex_unlock can be taken directly, as
-   signature and semantic are right, but without error check then!!!!,
-   we might want to change this therefore. */
-
-static gboolean
-g_mutex_trylock_solaris_impl (GMutex * mutex)
-{
-  int result;
-  result = mutex_trylock ((mutex_t *) mutex);
-  if (result == EBUSY)
-    return FALSE;
-  solaris_check_for_error (result);
-  return TRUE;
-}
-
-static GCond *
-g_cond_new_solaris_impl ()
-{
-  GCond *result = (GCond *) g_new (cond_t, 1);
-  solaris_check_for_error (cond_init ((cond_t *) result, USYNC_THREAD, 0));
-  return result;
-}
-
-/* cond_signal, cond_broadcast and cond_wait
-   can be taken directly, as signature and semantic are right, but
-   without error check then!!!!, we might want to change this
-   therfore. */
-
-#define G_MICROSEC 1000000
-#define G_NANOSEC 1000000000
-
-static gboolean
-g_cond_timed_wait_solaris_impl (GCond * cond, 
-				GMutex * entered_mutex,
-				GTimeVal * abs_time)
-{
-  int result;
-  timestruc_t end_time;
-  gboolean timed_out;
-
-  g_return_val_if_fail (cond != NULL, FALSE);
-  g_return_val_if_fail (entered_mutex != NULL, FALSE);
-
-  if (!abs_time)
-    {
-      g_cond_wait (cond, entered_mutex);
-      return TRUE;
-    }
-
-  end_time.tv_sec = abs_time->tv_sec;
-  end_time.tv_nsec = abs_time->tv_usec * (G_NANOSEC / G_MICROSEC);
-  g_assert (end_time.tv_nsec < G_NANOSEC);
-  result = cond_timedwait ((cond_t *) cond, (mutex_t *) entered_mutex,
-			   &end_time);
-  timed_out = (result == ETIME);
-  if (!timed_out)
-    solaris_check_for_error (result);
-  return !timed_out;
-}
-
-static void
-g_cond_free_solaris_impl (GCond * cond)
-{
-  solaris_check_for_error (cond_destroy ((cond_t *) cond));
-  g_free (cond);
-}
-
-static GPrivate *
-g_private_new_solaris_impl (GDestroyNotify destructor)
-{
-  GPrivate *result = (GPrivate *) g_new (thread_key_t,1);
-  solaris_check_for_error (thr_keycreate ((thread_key_t *) result,
-					  destructor));
-  return result;
-}
-
-/* NOTE: the functions g_private_get and g_private_set may not use
-   functions from gmem.c and gmessages.c */
-
-static void
-g_private_set_solaris_impl (GPrivate * private_key, gpointer value)
-{
-  if (!private_key)
-    return;
-
-  thr_setspecific (*(thread_key_t *) private_key, value);
-}
-
-static gpointer
-g_private_get_solaris_impl (GPrivate * private_key)
-{
-  gpointer result;
-
-  if (!private_key)
-    return NULL;
-  
-  thr_getspecific (*(thread_key_t *) private_key, &result);
-
-  return result;
-}
-
-static GThreadFunctions g_thread_functions_for_glib_use_default =
-{
-  g_mutex_new_solaris_impl,
-  (void (*)(GMutex *)) mutex_lock,
-  g_mutex_trylock_solaris_impl,
-  (void (*)(GMutex *)) mutex_unlock,
-  g_mutex_free_solaris_impl,
-  g_cond_new_solaris_impl,
-  (void (*)(GCond *)) cond_signal,
-  (void (*)(GCond *)) cond_broadcast,
-  (void (*)(GCond *, GMutex *)) cond_wait,
-  g_cond_timed_wait_solaris_impl,
-  g_cond_free_solaris_impl,
-  g_private_new_solaris_impl,
-  g_private_get_solaris_impl,
-  g_private_set_solaris_impl
-};
diff --git a/glib/gthread/gthread.c b/glib/gthread/gthread.c
deleted file mode 100644
index f7d76be..0000000
--- a/glib/gthread/gthread.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * gthread.c: thread related functions
- * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib.h>
-
-static gboolean thread_system_already_initialized = FALSE;
-
-#include G_THREAD_SOURCE
-
-void g_mutex_init (void);
-void g_mem_init (void);
-void g_messages_init (void);
-
-void
-g_thread_init (GThreadFunctions* init)
-{
-  gboolean supported;
-
-#ifndef	G_THREADS_ENABLED
-  g_error ("GLib thread support is disabled.");
-#endif	/* !G_THREADS_ENABLED */
-
-  if (thread_system_already_initialized)
-    g_error ("GThread system may only be initialized once.");
-    
-  thread_system_already_initialized = TRUE;
-
-  if (init == NULL)
-    init = &g_thread_functions_for_glib_use_default;
-  else
-    g_thread_use_default_impl = FALSE;
-
-  g_thread_functions_for_glib_use = *init;
-
-  /* It is important, that g_threads_got_initialized is not set before the
-   * thread initialization functions of the different modules are called
-   */
-
-  supported = (init->mutex_new &&  
-	       init->mutex_lock && 
-	       init->mutex_trylock && 
-	       init->mutex_unlock && 
-	       init->mutex_free && 
-	       init->cond_new && 
-	       init->cond_signal && 
-	       init->cond_broadcast && 
-	       init->cond_wait && 
-	       init->cond_timed_wait &&
-	       init->cond_free &&
-	       init->private_new &&
-	       init->private_get &&
-	       init->private_get);
-
-  /* if somebody is calling g_thread_init (), it means that he wants to
-   * have thread support, so check this
-   */
-  if (!supported)
-    {
-      if (g_thread_use_default_impl)
-	g_error ("Threads are not supported on this platform.");
-      else
-	g_error ("The supplied thread function vector is invalid.");
-    }
-
-  /* now call the thread initialization functions of the different
-   * glib modules. order does matter, g_mutex_init MUST come first.
-   */
-  g_mutex_init ();
-  g_mem_init ();
-  g_messages_init ();
-
-  /* now we can set g_threads_got_initialized and thus enable
-   * all the thread functions
-   */
-  g_threads_got_initialized = TRUE;
-}
diff --git a/glib/gthread/gthread.def b/glib/gthread/gthread.def
deleted file mode 100644
index 3622c35..0000000
--- a/glib/gthread/gthread.def
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORTS
-	g_thread_init
diff --git a/glib/gthread/testgthread.c b/glib/gthread/testgthread.c
deleted file mode 100644
index 72874cc..0000000
--- a/glib/gthread/testgthread.c
+++ /dev/null
@@ -1,217 +0,0 @@
-#include "config.h"
-
-#include <stdlib.h>
-
-#define main testglib_main
-#include <testglib.c>
-#undef main
-
-#define TEST_PRIVATE_THREADS 9
-#define TEST_PRIVATE_ROUNDS 5
-
-void
-test_mutexes (void)
-{
-  GMutex *mutex = NULL;
-  GCond *cond = NULL;
-  GStaticMutex static_mutex = G_STATIC_MUTEX_INIT;
-  G_LOCK_DEFINE (test_me);
-
-  if (g_thread_supported ())
-    {
-      mutex = g_mutex_new ();
-      cond = g_cond_new ();
-    }
-
-  g_mutex_lock (mutex);
-  g_mutex_unlock (mutex);
-
-  g_static_mutex_lock (&static_mutex);
-  g_static_mutex_unlock (&static_mutex);
-
-  g_cond_signal (cond);
-  g_cond_broadcast (cond);
-
-  G_LOCK (test_me);
-  G_UNLOCK (test_me);
-
-  if (g_thread_supported ())
-    {
-      g_cond_free (cond);
-      g_mutex_free (mutex);
-    }
-}
-
-#if defined(G_THREADS_IMPL_NSPR)	
-#warning "note, that you have to link with whatever library"
-#warning "nspr is building upon, it might otherwise (as on solaris) lead to"
-#warning "run time failure, as the mutex functions are defined in libc, but"
-#warning "as noops, that will make some nspr assertions fail."
-#include <prthread.h>
-
-gpointer
-new_thread (GHookFunc func, gpointer data)
-{
-  PRThread *thread = PR_CreateThread (PR_SYSTEM_THREAD, func, data,
-				      PR_PRIORITY_NORMAL, PR_LOCAL_THREAD,
-				      PR_JOINABLE_THREAD, 0);
-  return thread;
-}
-#define join_thread(thread) PR_JoinThread (thread)
-#define self_thread() PR_GetCurrentThread ()
-
-#elif defined(G_THREADS_IMPL_SOLARIS)	
-#include <thread.h>
-
-gpointer
-new_thread (GHookFunc func, gpointer data)
-{
-  thread_t thread;
-  thr_create (NULL, 0, (void *(*)(void *)) func, data, THR_BOUND, &thread);
-  return GUINT_TO_POINTER (thread);
-}
-#define join_thread(thread) \
-  thr_join ((thread_t)GPOINTER_TO_UINT (thread), NULL, NULL)
-#define self_thread()  GUINT_TO_POINTER (thr_self ())
-
-#elif defined(G_THREADS_IMPL_POSIX)
-#include <pthread.h>
-
-gpointer
-new_thread(GHookFunc func, gpointer data)
-{
-  pthread_t thread;
-  pthread_attr_t pthread_attr;
-  pthread_attr_init (&pthread_attr);
-  /* This is the default, it seems, so leave that out for now 
-     pthread_attr_setdetachstate (&pthread_attr, PTHREAD_CREATE_JOINABLE);
-  */
-  pthread_create (&thread, &pthread_attr, (void *(*)(void *)) func, data);
-  return GUINT_TO_POINTER (thread);
-}
-#define join_thread(thread) \
-  pthread_join ((pthread_t)GPOINTER_TO_UINT (thread), NULL)
-#define self_thread() GUINT_TO_POINTER (pthread_self ())
-
-#else /* we are not having a thread implementation, do nothing */
-
-#define new_thread(func,data) (NULL)
-#define join_thread(thread) ((void)0)
-#define self_thread() NULL
-
-#endif
-
-#define G_MICROSEC 1000000
-
-void
-wait_thread (double seconds)
-{
-  GMutex *mutex;
-  GCond *cond;
-  GTimeVal current_time;
-
-  g_get_current_time (&current_time);
-  mutex = g_mutex_new ();
-  cond = g_cond_new ();
-
-  current_time.tv_sec += (guint) seconds;
-  seconds -= (guint) seconds;
-  current_time.tv_usec += (guint) (seconds * G_MICROSEC);
-  while (current_time.tv_usec >= G_MICROSEC)
-    {
-      current_time.tv_usec -= G_MICROSEC;
-      current_time.tv_sec++;
-    }
-
-  g_mutex_lock (mutex);
-  g_cond_timed_wait (cond, mutex, &current_time);
-  g_mutex_unlock (mutex);
-
-  g_mutex_free (mutex);
-  g_cond_free (cond);
-}
-
-gpointer
-private_constructor (void)
-{
-  gpointer *result = g_new (gpointer, 2);
-  result[0] = 0;
-  result[1] = self_thread ();
-  g_print ("allocating data for the thread %p.\n", result[1]);
-  return result;
-}
-
-void
-private_destructor (gpointer data)
-{
-  gpointer *real = data;
-  g_print ("freeing data for the thread %p.\n", real[1]);
-  g_free (real);
-}
-
-GStaticPrivate private_key;
-
-void
-test_private_func (void *data)
-{
-  guint i = 0;
-  static unsigned int seed = 0;
-  if (!seed)
-    {
-      GTimeVal now;
-      g_get_current_time (&now);
-      seed = now.tv_usec;
-    }
-  wait_thread (1);
-  while (i < TEST_PRIVATE_ROUNDS)
-    {
-#ifdef HAVE_RAND_R
-      guint random_value = rand_r (&seed) % 10000;
-#else
-      guint random_value = rand() % 10000;
-#endif
-      guint *data = g_static_private_get (&private_key);
-      if (!data)
-	{
-	  data = private_constructor ();
-	  g_static_private_set (&private_key, data, private_destructor);
-	}
-      *data = random_value;
-      wait_thread (.2);
-      g_assert (*(guint *) g_static_private_get (&private_key) == random_value);
-      i++;
-    }
-}
-
-void
-test_private (void)
-{
-  int i;
-  gpointer threads[TEST_PRIVATE_THREADS];
-  for (i = 0; i < TEST_PRIVATE_THREADS; i++)
-    {
-      threads[i] = new_thread (test_private_func, GINT_TO_POINTER(i));
-    }
-  for (i = 0; i < TEST_PRIVATE_THREADS; i++)
-    {
-      join_thread (threads[i]);
-    }
-  g_print ("\n");
-}
-
-int
-main (void)
-{
-  test_mutexes ();
-
-  g_thread_init (NULL);
-
-  test_mutexes ();
-
-  test_private ();
-
-  /* later we might want to start n copies of that */
-  testglib_main (0, NULL);
-
-  return 0;
-}
diff --git a/glib/gtimer.c b/glib/gtimer.c
deleted file mode 100644
index f4b72ed..0000000
--- a/glib/gtimer.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "glib.h"
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#ifndef NATIVE_WIN32
-#include <sys/time.h>
-#endif /* NATIVE_WIN32 */
-
-#ifdef NATIVE_WIN32
-#include <windows.h>
-#endif /* NATIVE_WIN32 */
-
-typedef struct _GRealTimer GRealTimer;
-
-struct _GRealTimer
-{
-#ifdef NATIVE_WIN32
-  DWORD start;
-  DWORD end;
-#else /* !NATIVE_WIN32 */
-  struct timeval start;
-  struct timeval end;
-#endif /* !NATIVE_WIN32 */
-
-  guint active : 1;
-};
-
-GTimer*
-g_timer_new (void)
-{
-  GRealTimer *timer;
-
-  timer = g_new (GRealTimer, 1);
-  timer->active = TRUE;
-
-#ifdef NATIVE_WIN32
-  timer->start = GetTickCount ();
-#else /* !NATIVE_WIN32 */
-  gettimeofday (&timer->start, NULL);
-#endif /* !NATIVE_WIN32 */
-
-  return ((GTimer*) timer);
-}
-
-void
-g_timer_destroy (GTimer *timer)
-{
-  g_return_if_fail (timer != NULL);
-
-  g_free (timer);
-}
-
-void
-g_timer_start (GTimer *timer)
-{
-  GRealTimer *rtimer;
-
-  g_return_if_fail (timer != NULL);
-
-  rtimer = (GRealTimer*) timer;
-  rtimer->active = TRUE;
-
-#ifdef NATIVE_WIN32
-  rtimer->start = GetTickCount ();
-#else /* !NATIVE_WIN32 */
-  gettimeofday (&rtimer->start, NULL);
-#endif /* !NATIVE_WIN32 */
-}
-
-void
-g_timer_stop (GTimer *timer)
-{
-  GRealTimer *rtimer;
-
-  g_return_if_fail (timer != NULL);
-
-  rtimer = (GRealTimer*) timer;
-  rtimer->active = FALSE;
-
-#ifdef NATIVE_WIN32
-  rtimer->end = GetTickCount ();
-#else /* !NATIVE_WIN32 */
-  gettimeofday (&rtimer->end, NULL);
-#endif /* !NATIVE_WIN32 */
-}
-
-void
-g_timer_reset (GTimer *timer)
-{
-  GRealTimer *rtimer;
-
-  g_return_if_fail (timer != NULL);
-
-  rtimer = (GRealTimer*) timer;
-
-#ifdef NATIVE_WIN32
-   rtimer->start = GetTickCount ();
-#else /* !NATIVE_WIN32 */
-  gettimeofday (&rtimer->start, NULL);
-#endif /* !NATIVE_WIN32 */
-}
-
-gdouble
-g_timer_elapsed (GTimer *timer,
-		 gulong *microseconds)
-{
-  GRealTimer *rtimer;
-  gdouble total;
-#ifndef NATIVE_WIN32
-  struct timeval elapsed;
-#endif /* NATIVE_WIN32 */
-
-  g_return_val_if_fail (timer != NULL, 0);
-
-  rtimer = (GRealTimer*) timer;
-
-#ifdef NATIVE_WIN32
-  if (rtimer->active)
-    rtimer->end = GetTickCount ();
-
-  /* Check for wraparound, which happens every 49.7 days.
-   * No, Win95 machines probably are never running for that long,
-   * but NT machines are.
-   */
-  if (rtimer->end < rtimer->start)
-    total = (UINT_MAX - (rtimer->start - rtimer->end)) / 1000.0;
-  else
-    total = (rtimer->end - rtimer->start) / 1000.0;
-
-  if (microseconds)
-    {
-      if (rtimer->end < rtimer->start)
-	*microseconds =
-	  ((UINT_MAX - (rtimer->start - rtimer->end)) % 1000) * 1000;
-      else
-	*microseconds =
-	  ((rtimer->end - rtimer->start) % 1000) * 1000;
-    }
-#else /* !NATIVE_WIN32 */
-  if (rtimer->active)
-    gettimeofday (&rtimer->end, NULL);
-
-  if (rtimer->start.tv_usec > rtimer->end.tv_usec)
-    {
-      rtimer->end.tv_usec += 1000000;
-      rtimer->end.tv_sec--;
-    }
-
-  elapsed.tv_usec = rtimer->end.tv_usec - rtimer->start.tv_usec;
-  elapsed.tv_sec = rtimer->end.tv_sec - rtimer->start.tv_sec;
-
-  total = elapsed.tv_sec + ((gdouble) elapsed.tv_usec / 1e6);
-  if (total < 0)
-    {
-      total = 0;
-      
-      if (microseconds)
-	*microseconds = 0;
-    }
-  else
-    if (microseconds)
-      *microseconds = elapsed.tv_usec;
-  
-#endif /* !NATIVE_WIN32 */
-
-  return total;
-}
diff --git a/glib/gtree.c b/glib/gtree.c
deleted file mode 100644
index e6c3f19..0000000
--- a/glib/gtree.c
+++ /dev/null
@@ -1,744 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe
- */
-
-#include "glib.h"
-
-
-typedef struct _GRealTree  GRealTree;
-typedef struct _GTreeNode  GTreeNode;
-
-struct _GRealTree
-{
-  GTreeNode *root;
-  GCompareFunc key_compare;
-};
-
-struct _GTreeNode
-{
-  gint balance;      /* height (left) - height (right) */
-  GTreeNode *left;   /* left subtree */
-  GTreeNode *right;  /* right subtree */
-  gpointer key;      /* key for this node */
-  gpointer value;    /* value stored at this node */
-};
-
-
-static GTreeNode* g_tree_node_new                   (gpointer        key,
-						     gpointer        value);
-static void       g_tree_node_destroy               (GTreeNode      *node);
-static GTreeNode* g_tree_node_insert                (GTreeNode      *node,
-						     GCompareFunc    compare,
-						     gpointer        key,
-						     gpointer        value,
-						     gint           *inserted);
-static GTreeNode* g_tree_node_remove                (GTreeNode      *node,
-						     GCompareFunc    compare,
-						     gpointer        key);
-static GTreeNode* g_tree_node_balance               (GTreeNode      *node);
-static GTreeNode* g_tree_node_remove_leftmost       (GTreeNode      *node,
-						     GTreeNode     **leftmost);
-static GTreeNode* g_tree_node_restore_left_balance  (GTreeNode      *node,
-						     gint            old_balance);
-static GTreeNode* g_tree_node_restore_right_balance (GTreeNode      *node,
-						     gint            old_balance);
-static gpointer   g_tree_node_lookup                (GTreeNode      *node,
-						     GCompareFunc    compare,
-						     gpointer        key);
-static gint       g_tree_node_count                 (GTreeNode      *node);
-static gint       g_tree_node_pre_order             (GTreeNode      *node,
-						     GTraverseFunc   traverse_func,
-						     gpointer        data);
-static gint       g_tree_node_in_order              (GTreeNode      *node,
-						     GTraverseFunc   traverse_func,
-						     gpointer        data);
-static gint       g_tree_node_post_order            (GTreeNode      *node,
-						     GTraverseFunc   traverse_func,
-						     gpointer        data);
-static gpointer   g_tree_node_search                (GTreeNode      *node,
-						     GSearchFunc     search_func,
-						     gpointer        data);
-static gint       g_tree_node_height                (GTreeNode      *node);
-static GTreeNode* g_tree_node_rotate_left           (GTreeNode      *node);
-static GTreeNode* g_tree_node_rotate_right          (GTreeNode      *node);
-static void       g_tree_node_check                 (GTreeNode      *node);
-
-
-G_LOCK_DEFINE_STATIC (g_tree_global);
-static GMemChunk *node_mem_chunk = NULL;
-static GTreeNode *node_free_list = NULL;
-
-
-static GTreeNode*
-g_tree_node_new (gpointer key,
-		 gpointer value)
-{
-  GTreeNode *node;
-
-  G_LOCK (g_tree_global);
-  if (node_free_list)
-    {
-      node = node_free_list;
-      node_free_list = node->right;
-    }
-  else
-    {
-      if (!node_mem_chunk)
-	node_mem_chunk = g_mem_chunk_new ("GLib GTreeNode mem chunk",
-					  sizeof (GTreeNode),
-					  1024,
-					  G_ALLOC_ONLY);
-
-      node = g_chunk_new (GTreeNode, node_mem_chunk);
-   }
-  G_UNLOCK (g_tree_global);
-
-  node->balance = 0;
-  node->left = NULL;
-  node->right = NULL;
-  node->key = key;
-  node->value = value;
-
-  return node;
-}
-
-static void
-g_tree_node_destroy (GTreeNode *node)
-{
-  if (node)
-    {
-      g_tree_node_destroy (node->right);
-      g_tree_node_destroy (node->left);
-      G_LOCK (g_tree_global);
-      node->right = node_free_list;
-      node_free_list = node;
-      G_UNLOCK (g_tree_global);
-   }
-}
-
-
-GTree*
-g_tree_new (GCompareFunc key_compare_func)
-{
-  GRealTree *rtree;
-
-  g_return_val_if_fail (key_compare_func != NULL, NULL);
-
-  rtree = g_new (GRealTree, 1);
-  rtree->root = NULL;
-  rtree->key_compare = key_compare_func;
-
-  return (GTree*) rtree;
-}
-
-void
-g_tree_destroy (GTree *tree)
-{
-  GRealTree *rtree;
-
-  g_return_if_fail (tree != NULL);
-
-  rtree = (GRealTree*) tree;
-
-  g_tree_node_destroy (rtree->root);
-  g_free (rtree);
-}
-
-void
-g_tree_insert (GTree    *tree,
-	       gpointer  key,
-	       gpointer  value)
-{
-  GRealTree *rtree;
-  gint inserted;
-
-  g_return_if_fail (tree != NULL);
-
-  rtree = (GRealTree*) tree;
-
-  inserted = FALSE;
-  rtree->root = g_tree_node_insert (rtree->root, rtree->key_compare,
-				    key, value, &inserted);
-}
-
-void
-g_tree_remove (GTree    *tree,
-	       gpointer  key)
-{
-  GRealTree *rtree;
-
-  g_return_if_fail (tree != NULL);
-
-  rtree = (GRealTree*) tree;
-
-  rtree->root = g_tree_node_remove (rtree->root, rtree->key_compare, key);
-}
-
-gpointer
-g_tree_lookup (GTree    *tree,
-	       gpointer  key)
-{
-  GRealTree *rtree;
-
-  g_return_val_if_fail (tree != NULL, NULL);
-
-  rtree = (GRealTree*) tree;
-
-  return g_tree_node_lookup (rtree->root, rtree->key_compare, key);
-}
-
-void
-g_tree_traverse (GTree         *tree,
-		 GTraverseFunc  traverse_func,
-		 GTraverseType  traverse_type,
-		 gpointer       data)
-{
-  GRealTree *rtree;
-
-  g_return_if_fail (tree != NULL);
-
-  rtree = (GRealTree*) tree;
-
-  if (!rtree->root)
-    return;
-
-  switch (traverse_type)
-    {
-    case G_PRE_ORDER:
-      g_tree_node_pre_order (rtree->root, traverse_func, data);
-      break;
-
-    case G_IN_ORDER:
-      g_tree_node_in_order (rtree->root, traverse_func, data);
-      break;
-
-    case G_POST_ORDER:
-      g_tree_node_post_order (rtree->root, traverse_func, data);
-      break;
-    
-    case G_LEVEL_ORDER:
-      g_warning ("g_tree_traverse(): traverse type G_LEVEL_ORDER isn't implemented.");
-      break;
-    }
-}
-
-gpointer
-g_tree_search (GTree       *tree,
-	       GSearchFunc  search_func,
-	       gpointer     data)
-{
-  GRealTree *rtree;
-
-  g_return_val_if_fail (tree != NULL, NULL);
-
-  rtree = (GRealTree*) tree;
-
-  if (rtree->root)
-    return g_tree_node_search (rtree->root, search_func, data);
-  else
-    return NULL;
-}
-
-gint
-g_tree_height (GTree *tree)
-{
-  GRealTree *rtree;
-
-  g_return_val_if_fail (tree != NULL, 0);
-
-  rtree = (GRealTree*) tree;
-
-  if (rtree->root)
-    return g_tree_node_height (rtree->root);
-  else
-    return 0;
-}
-
-gint
-g_tree_nnodes (GTree *tree)
-{
-  GRealTree *rtree;
-
-  g_return_val_if_fail (tree != NULL, 0);
-
-  rtree = (GRealTree*) tree;
-
-  if (rtree->root)
-    return g_tree_node_count (rtree->root);
-  else
-    return 0;
-}
-
-static GTreeNode*
-g_tree_node_insert (GTreeNode    *node,
-		    GCompareFunc  compare,
-		    gpointer      key,
-		    gpointer      value,
-		    gint         *inserted)
-{
-  gint old_balance;
-  gint cmp;
-
-  if (!node)
-    {
-      *inserted = TRUE;
-      return g_tree_node_new (key, value);
-    }
-
-  cmp = (* compare) (key, node->key);
-  if (cmp == 0)
-    {
-      *inserted = FALSE;
-      node->value = value;
-      return node;
-    }
-
-  if (cmp < 0)
-    {
-      if (node->left)
-	{
-	  old_balance = node->left->balance;
-	  node->left = g_tree_node_insert (node->left, compare, key, value, inserted);
-
-	  if ((old_balance != node->left->balance) && node->left->balance)
-	    node->balance -= 1;
-	}
-      else
-	{
-	  *inserted = TRUE;
-	  node->left = g_tree_node_new (key, value);
-	  node->balance -= 1;
-	}
-    }
-  else if (cmp > 0)
-    {
-      if (node->right)
-	{
-	  old_balance = node->right->balance;
-	  node->right = g_tree_node_insert (node->right, compare, key, value, inserted);
-
-	  if ((old_balance != node->right->balance) && node->right->balance)
-	    node->balance += 1;
-	}
-      else
-	{
-	  *inserted = TRUE;
-	  node->right = g_tree_node_new (key, value);
-	  node->balance += 1;
-	}
-    }
-
-  if (*inserted)
-    {
-      if ((node->balance < -1) || (node->balance > 1))
-	node = g_tree_node_balance (node);
-    }
-
-  return node;
-}
-
-static GTreeNode*
-g_tree_node_remove (GTreeNode    *node,
-		    GCompareFunc  compare,
-		    gpointer      key)
-{
-  GTreeNode *new_root;
-  gint old_balance;
-  gint cmp;
-
-  if (!node)
-    return NULL;
-
-  cmp = (* compare) (key, node->key);
-  if (cmp == 0)
-    {
-      GTreeNode *garbage;
-
-      garbage = node;
-
-      if (!node->right)
-	{
-	  node = node->left;
-	}
-      else
-	{
-	  old_balance = node->right->balance;
-	  node->right = g_tree_node_remove_leftmost (node->right, &new_root);
-	  new_root->left = node->left;
-	  new_root->right = node->right;
-	  new_root->balance = node->balance;
-	  node = g_tree_node_restore_right_balance (new_root, old_balance);
-	}
-
-      G_LOCK (g_tree_global);
-      garbage->right = node_free_list;
-      node_free_list = garbage;
-      G_UNLOCK (g_tree_global);
-   }
-  else if (cmp < 0)
-    {
-      if (node->left)
-	{
-	  old_balance = node->left->balance;
-	  node->left = g_tree_node_remove (node->left, compare, key);
-	  node = g_tree_node_restore_left_balance (node, old_balance);
-	}
-    }
-  else if (cmp > 0)
-    {
-      if (node->right)
-	{
-	  old_balance = node->right->balance;
-	  node->right = g_tree_node_remove (node->right, compare, key);
-	  node = g_tree_node_restore_right_balance (node, old_balance);
-	}
-    }
-
-  return node;
-}
-
-static GTreeNode*
-g_tree_node_balance (GTreeNode *node)
-{
-  if (node->balance < -1)
-    {
-      if (node->left->balance > 0)
-	node->left = g_tree_node_rotate_left (node->left);
-      node = g_tree_node_rotate_right (node);
-    }
-  else if (node->balance > 1)
-    {
-      if (node->right->balance < 0)
-	node->right = g_tree_node_rotate_right (node->right);
-      node = g_tree_node_rotate_left (node);
-    }
-
-  return node;
-}
-
-static GTreeNode*
-g_tree_node_remove_leftmost (GTreeNode  *node,
-			     GTreeNode **leftmost)
-{
-  gint old_balance;
-
-  if (!node->left)
-    {
-      *leftmost = node;
-      return node->right;
-    }
-
-  old_balance = node->left->balance;
-  node->left = g_tree_node_remove_leftmost (node->left, leftmost);
-  return g_tree_node_restore_left_balance (node, old_balance);
-}
-
-static GTreeNode*
-g_tree_node_restore_left_balance (GTreeNode *node,
-				  gint       old_balance)
-{
-  if (!node->left)
-    node->balance += 1;
-  else if ((node->left->balance != old_balance) &&
-	   (node->left->balance == 0))
-    node->balance += 1;
-
-  if (node->balance > 1)
-    return g_tree_node_balance (node);
-  return node;
-}
-
-static GTreeNode*
-g_tree_node_restore_right_balance (GTreeNode *node,
-				   gint       old_balance)
-{
-  if (!node->right)
-    node->balance -= 1;
-  else if ((node->right->balance != old_balance) &&
-	   (node->right->balance == 0))
-    node->balance -= 1;
-
-  if (node->balance < -1)
-    return g_tree_node_balance (node);
-  return node;
-}
-
-static gpointer
-g_tree_node_lookup (GTreeNode    *node,
-		    GCompareFunc  compare,
-		    gpointer      key)
-{
-  gint cmp;
-
-  if (!node)
-    return NULL;
-
-  cmp = (* compare) (key, node->key);
-  if (cmp == 0)
-    return node->value;
-
-  if (cmp < 0)
-    {
-      if (node->left)
-	return g_tree_node_lookup (node->left, compare, key);
-    }
-  else if (cmp > 0)
-    {
-      if (node->right)
-	return g_tree_node_lookup (node->right, compare, key);
-    }
-
-  return NULL;
-}
-
-static gint
-g_tree_node_count (GTreeNode *node)
-{
-  gint count;
-
-  count = 1;
-  if (node->left)
-    count += g_tree_node_count (node->left);
-  if (node->right)
-    count += g_tree_node_count (node->right);
-
-  return count;
-}
-
-static gint
-g_tree_node_pre_order (GTreeNode     *node,
-		       GTraverseFunc  traverse_func,
-		       gpointer       data)
-{
-  if ((*traverse_func) (node->key, node->value, data))
-    return TRUE;
-  if (node->left)
-    {
-      if (g_tree_node_pre_order (node->left, traverse_func, data))
-	return TRUE;
-    }
-  if (node->right)
-    {
-      if (g_tree_node_pre_order (node->right, traverse_func, data))
-	return TRUE;
-    }
-
-  return FALSE;
-}
-
-static gint
-g_tree_node_in_order (GTreeNode     *node,
-		      GTraverseFunc  traverse_func,
-		      gpointer       data)
-{
-  if (node->left)
-    {
-      if (g_tree_node_in_order (node->left, traverse_func, data))
-	return TRUE;
-    }
-  if ((*traverse_func) (node->key, node->value, data))
-    return TRUE;
-  if (node->right)
-    {
-      if (g_tree_node_in_order (node->right, traverse_func, data))
-	return TRUE;
-    }
-
-  return FALSE;
-}
-
-static gint
-g_tree_node_post_order (GTreeNode     *node,
-			GTraverseFunc  traverse_func,
-			gpointer       data)
-{
-  if (node->left)
-    {
-      if (g_tree_node_post_order (node->left, traverse_func, data))
-	return TRUE;
-    }
-  if (node->right)
-    {
-      if (g_tree_node_post_order (node->right, traverse_func, data))
-	return TRUE;
-    }
-  if ((*traverse_func) (node->key, node->value, data))
-    return TRUE;
-
-  return FALSE;
-}
-
-static gpointer
-g_tree_node_search (GTreeNode   *node,
-		    GSearchFunc  search_func,
-		    gpointer     data)
-{
-  gint dir;
-
-  if (!node)
-    return NULL;
-
-  do {
-    dir = (* search_func) (node->key, data);
-    if (dir == 0)
-      return node->value;
-
-    if (dir < 0)
-      node = node->left;
-    else if (dir > 0)
-      node = node->right;
-  } while (node && (dir != 0));
-
-  return NULL;
-}
-
-static gint
-g_tree_node_height (GTreeNode *node)
-{
-  gint left_height;
-  gint right_height;
-
-  if (node)
-    {
-      left_height = 0;
-      right_height = 0;
-
-      if (node->left)
-	left_height = g_tree_node_height (node->left);
-
-      if (node->right)
-	right_height = g_tree_node_height (node->right);
-
-      return MAX (left_height, right_height) + 1;
-    }
-
-  return 0;
-}
-
-static GTreeNode*
-g_tree_node_rotate_left (GTreeNode *node)
-{
-  GTreeNode *left;
-  GTreeNode *right;
-  gint a_bal;
-  gint b_bal;
-
-  left = node->left;
-  right = node->right;
-
-  node->right = right->left;
-  right->left = node;
-
-  a_bal = node->balance;
-  b_bal = right->balance;
-
-  if (b_bal <= 0)
-    {
-      if (a_bal >= 1)
-	right->balance = b_bal - 1;
-      else
-	right->balance = a_bal + b_bal - 2;
-      node->balance = a_bal - 1;
-    }
-  else
-    {
-      if (a_bal <= b_bal)
-	right->balance = a_bal - 2;
-      else
-	right->balance = b_bal - 1;
-      node->balance = a_bal - b_bal - 1;
-    }
-
-  return right;
-}
-
-static GTreeNode*
-g_tree_node_rotate_right (GTreeNode *node)
-{
-  GTreeNode *left;
-  gint a_bal;
-  gint b_bal;
-
-  left = node->left;
-
-  node->left = left->right;
-  left->right = node;
-
-  a_bal = node->balance;
-  b_bal = left->balance;
-
-  if (b_bal <= 0)
-    {
-      if (b_bal > a_bal)
-	left->balance = b_bal + 1;
-      else
-	left->balance = a_bal + 2;
-      node->balance = a_bal - b_bal + 1;
-    }
-  else
-    {
-      if (a_bal <= -1)
-	left->balance = b_bal + 1;
-      else
-	left->balance = a_bal + b_bal + 2;
-      node->balance = a_bal + 1;
-    }
-
-  return left;
-}
-
-static void
-g_tree_node_check (GTreeNode *node)
-{
-  gint left_height;
-  gint right_height;
-  gint balance;
-  
-  if (node)
-    {
-      left_height = 0;
-      right_height = 0;
-      
-      if (node->left)
-	left_height = g_tree_node_height (node->left);
-      if (node->right)
-	right_height = g_tree_node_height (node->right);
-      
-      balance = right_height - left_height;
-      if (balance != node->balance)
-	g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
-	       "g_tree_node_check: failed: %d ( %d )\n",
-	       balance, node->balance);
-      
-      if (node->left)
-	g_tree_node_check (node->left);
-      if (node->right)
-	g_tree_node_check (node->right);
-    }
-}
diff --git a/glib/gutils.c b/glib/gutils.c
deleted file mode 100644
index a52baaa..0000000
--- a/glib/gutils.c
+++ /dev/null
@@ -1,922 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1998  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-/* 
- * MT safe for the unix part, FIXME: make the win32 part MT safe as well.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "glibconfig.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdarg.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifdef NATIVE_WIN32
-#  define STRICT			/* Strict typing, please */
-#  include <windows.h>
-#  include <direct.h>
-#  include <errno.h>
-#  include <ctype.h>
-#  ifdef _MSC_VER
-#    include <io.h>
-#  endif /* _MSC_VER */
-#endif /* NATIVE_WIN32 */
-
-/* implement Glib's inline functions
- */
-#define	G_INLINE_FUNC extern
-#define	G_CAN_INLINE 1
-#include "glib.h"
-
-#ifdef	MAXPATHLEN
-#define	G_PATH_LENGTH	(MAXPATHLEN + 1)
-#elif	defined (PATH_MAX)
-#define	G_PATH_LENGTH	(PATH_MAX + 1)
-#else	/* !MAXPATHLEN */
-#define G_PATH_LENGTH   (2048 + 1)
-#endif	/* !MAXPATHLEN && !PATH_MAX */
-
-const guint glib_major_version = GLIB_MAJOR_VERSION;
-const guint glib_minor_version = GLIB_MINOR_VERSION;
-const guint glib_micro_version = GLIB_MICRO_VERSION;
-const guint glib_interface_age = GLIB_INTERFACE_AGE;
-const guint glib_binary_age = GLIB_BINARY_AGE;
-
-#if defined (NATIVE_WIN32) && defined (__LCC__)
-int __stdcall 
-LibMain (void         *hinstDll,
-	 unsigned long dwReason,
-	 void         *reserved)
-{
-  return 1;
-}
-#endif /* NATIVE_WIN32 && __LCC__ */
-
-void
-g_atexit (GVoidFunc func)
-{
-  gint result;
-  gchar *error = NULL;
-
-  /* keep this in sync with glib.h */
-
-#ifdef	G_NATIVE_ATEXIT
-  result = ATEXIT (func);
-  if (result)
-    error = g_strerror (errno);
-#elif defined (HAVE_ATEXIT)
-#  ifdef NeXT /* @#%@! NeXTStep */
-  result = !atexit ((void (*)(void)) func);
-  if (result)
-    error = g_strerror (errno);
-#  else
-  result = atexit ((void (*)(void)) func);
-  if (result)
-    error = g_strerror (errno);
-#  endif /* NeXT */
-#elif defined (HAVE_ON_EXIT)
-  result = on_exit ((void (*)(int, void *)) func, NULL);
-  if (result)
-    error = g_strerror (errno);
-#else
-  result = 0;
-  error = "no implementation";
-#endif /* G_NATIVE_ATEXIT */
-
-  if (error)
-    g_error ("Could not register atexit() function: %s", error);
-}
-
-gint
-g_snprintf (gchar	*str,
-	    gulong	 n,
-	    gchar const *fmt,
-	    ...)
-{
-#ifdef	HAVE_VSNPRINTF
-  va_list args;
-  gint retval;
-  
-  g_return_val_if_fail (str != NULL, 0);
-  g_return_val_if_fail (n > 0, 0);
-  g_return_val_if_fail (fmt != NULL, 0);
-
-  va_start (args, fmt);
-  retval = vsnprintf (str, n, fmt, args);
-  va_end (args);
-
-  if (retval < 0)
-    {
-      str[n-1] = '\0';
-      retval = strlen (str);
-    }
-
-  return retval;
-#else	/* !HAVE_VSNPRINTF */
-  gchar *printed;
-  va_list args;
-  
-  g_return_val_if_fail (str != NULL, 0);
-  g_return_val_if_fail (n > 0, 0);
-  g_return_val_if_fail (fmt != NULL, 0);
-
-  va_start (args, fmt);
-  printed = g_strdup_vprintf (fmt, args);
-  va_end (args);
-  
-  strncpy (str, printed, n);
-  str[n-1] = '\0';
-
-  g_free (printed);
-  
-  return strlen (str);
-#endif	/* !HAVE_VSNPRINTF */
-}
-
-gint
-g_vsnprintf (gchar	 *str,
-	     gulong	  n,
-	     gchar const *fmt,
-	     va_list      args)
-{
-#ifdef	HAVE_VSNPRINTF
-  gint retval;
-
-  g_return_val_if_fail (str != NULL, 0);
-  g_return_val_if_fail (n > 0, 0);
-  g_return_val_if_fail (fmt != NULL, 0);
-  
-  retval = vsnprintf (str, n, fmt, args);
-  
-  if (retval < 0)
-    {
-      str[n-1] = '\0';
-      retval = strlen (str);
-    }
-
-  return retval;
-#else	/* !HAVE_VSNPRINTF */
-  gchar *printed;
-  
-  g_return_val_if_fail (str != NULL, 0);
-  g_return_val_if_fail (n > 0, 0);
-  g_return_val_if_fail (fmt != NULL, 0);
-
-  printed = g_strdup_vprintf (fmt, args);
-  strncpy (str, printed, n);
-  str[n-1] = '\0';
-
-  g_free (printed);
-  
-  return strlen (str);
-#endif /* !HAVE_VSNPRINTF */
-}
-
-guint	     
-g_parse_debug_string  (const gchar *string, 
-		       GDebugKey   *keys, 
-		       guint	    nkeys)
-{
-  guint i;
-  guint result = 0;
-  
-  g_return_val_if_fail (string != NULL, 0);
-  
-  if (!g_strcasecmp (string, "all"))
-    {
-      for (i=0; i<nkeys; i++)
-	result |= keys[i].value;
-    }
-  else
-    {
-      gchar *str = g_strdup (string);
-      gchar *p = str;
-      gchar *q;
-      gboolean done = FALSE;
-      
-      while (*p && !done)
-	{
-	  q = strchr (p, ':');
-	  if (!q)
-	    {
-	      q = p + strlen(p);
-	      done = TRUE;
-	    }
-	  
-	  *q = 0;
-	  
-	  for (i=0; i<nkeys; i++)
-	    if (!g_strcasecmp(keys[i].key, p))
-	      result |= keys[i].value;
-	  
-	  p = q+1;
-	}
-      
-      g_free (str);
-    }
-  
-  return result;
-}
-
-gchar*
-g_basename (const gchar	   *file_name)
-{
-  register gchar *base;
-  
-  g_return_val_if_fail (file_name != NULL, NULL);
-  
-  base = strrchr (file_name, G_DIR_SEPARATOR);
-  if (base)
-    return base + 1;
-
-#ifdef NATIVE_WIN32
-  if (isalpha (file_name[0]) && file_name[1] == ':')
-    return (gchar*) file_name + 2;
-#endif /* NATIVE_WIN32 */
-  
-  return (gchar*) file_name;
-}
-
-gboolean
-g_path_is_absolute (const gchar *file_name)
-{
-  g_return_val_if_fail (file_name != NULL, FALSE);
-  
-  if (file_name[0] == G_DIR_SEPARATOR)
-    return TRUE;
-
-#ifdef NATIVE_WIN32
-  if (isalpha (file_name[0]) && file_name[1] == ':' && file_name[2] == G_DIR_SEPARATOR)
-    return TRUE;
-#endif
-
-  return FALSE;
-}
-
-gchar*
-g_path_skip_root (gchar *file_name)
-{
-  g_return_val_if_fail (file_name != NULL, NULL);
-  
-  if (file_name[0] == G_DIR_SEPARATOR)
-    return file_name + 1;
-
-#ifdef NATIVE_WIN32
-  if (isalpha (file_name[0]) && file_name[1] == ':' && file_name[2] == G_DIR_SEPARATOR)
-    return file_name + 3;
-#endif
-
-  return NULL;
-}
-
-gchar*
-g_dirname (const gchar	   *file_name)
-{
-  register gchar *base;
-  register guint len;
-  
-  g_return_val_if_fail (file_name != NULL, NULL);
-  
-  base = strrchr (file_name, G_DIR_SEPARATOR);
-  if (!base)
-    return g_strdup (".");
-  while (base > file_name && *base == G_DIR_SEPARATOR)
-    base--;
-  len = (guint) 1 + base - file_name;
-  
-  base = g_new (gchar, len + 1);
-  g_memmove (base, file_name, len);
-  base[len] = 0;
-  
-  return base;
-}
-
-gchar*
-g_get_current_dir (void)
-{
-  gchar *buffer;
-  gchar *dir;
-
-  buffer = g_new (gchar, G_PATH_LENGTH);
-  *buffer = 0;
-  
-  /* We don't use getcwd(3) on SUNOS, because, it does a popen("pwd")
-   * and, if that wasn't bad enough, hangs in doing so.
-   */
-#if	defined (sun) && !defined (__SVR4)
-  dir = getwd (buffer);
-#else	/* !sun */
-  dir = getcwd (buffer, G_PATH_LENGTH - 1);
-#endif	/* !sun */
-  
-  if (!dir || !*buffer)
-    {
-      /* hm, should we g_error() out here?
-       * this can happen if e.g. "./" has mode \0000
-       */
-      buffer[0] = G_DIR_SEPARATOR;
-      buffer[1] = 0;
-    }
-
-  dir = g_strdup (buffer);
-  g_free (buffer);
-  
-  return dir;
-}
-
-gchar*
-g_getenv (const gchar *variable)
-{
-#ifndef NATIVE_WIN32
-  g_return_val_if_fail (variable != NULL, NULL);
-
-  return getenv (variable);
-#else
-  gchar *v;
-  guint k;
-  static gchar *p = NULL;
-  static gint l;
-  gchar dummy[2];
-
-  g_return_val_if_fail (variable != NULL, NULL);
-  
-  v = getenv (variable);
-  if (!v)
-    return NULL;
-  
-  /* On Windows NT, it is relatively typical that environment variables
-   * contain references to other environment variables. Handle that by
-   * calling ExpandEnvironmentStrings.
-   */
-
-  /* First check how much space we need */
-  k = ExpandEnvironmentStrings (v, dummy, 2);
-  /* Then allocate that much, and actualy do the expansion */
-  if (p == NULL)
-    {
-      p = g_malloc (k);
-      l = k;
-    }
-  else if (k > l)
-    {
-      p = g_realloc (p, k);
-      l = k;
-    }
-  ExpandEnvironmentStrings (v, p, k);
-  return p;
-#endif
-}
-
-
-G_LOCK_DEFINE_STATIC (g_utils_global);
-
-static	gchar	*g_tmp_dir = NULL;
-static	gchar	*g_user_name = NULL;
-static	gchar	*g_real_name = NULL;
-static	gchar	*g_home_dir = NULL;
-
-/* HOLDS: g_utils_global_lock */
-static void
-g_get_any_init (void)
-{
-  if (!g_tmp_dir)
-    {
-      g_tmp_dir = g_strdup (g_getenv ("TMPDIR"));
-      if (!g_tmp_dir)
-	g_tmp_dir = g_strdup (g_getenv ("TMP"));
-      if (!g_tmp_dir)
-	g_tmp_dir = g_strdup (g_getenv ("TEMP"));
-      
-#ifdef P_tmpdir
-      if (!g_tmp_dir)
-	{
-	  int k;
-	  g_tmp_dir = g_strdup (P_tmpdir);
-	  k = strlen (g_tmp_dir);
-	  if (g_tmp_dir[k-1] == G_DIR_SEPARATOR)
-	    g_tmp_dir[k-1] = '\0';
-	}
-#endif
-      
-      if (!g_tmp_dir)
-	{
-#ifndef NATIVE_WIN32
-	  g_tmp_dir = g_strdup ("/tmp");
-#else /* NATIVE_WIN32 */
-	  g_tmp_dir = g_strdup ("C:\\");
-#endif /* NATIVE_WIN32 */
-	}
-      
-      if (!g_home_dir)
-	g_home_dir = g_strdup (g_getenv ("HOME"));
-      
-#ifdef NATIVE_WIN32
-      if (!g_home_dir)
-	{
-	  /* The official way to specify a home directory on NT is
-	   * the HOMEDRIVE and HOMEPATH environment variables.
-	   *
-	   * This is inside #ifdef NATIVE_WIN32 because with the cygwin dll,
-	   * HOME should be a POSIX style pathname.
-	   */
-	  
-	  if (getenv ("HOMEDRIVE") != NULL && getenv ("HOMEPATH") != NULL)
-	    {
-	      gchar *homedrive, *homepath;
-	      
-	      homedrive = g_strdup (g_getenv ("HOMEDRIVE"));
-	      homepath = g_strdup (g_getenv ("HOMEPATH"));
-	      
-	      g_home_dir = g_strconcat (homedrive, homepath, NULL);
-	      g_free (homedrive);
-	      g_free (homepath);
-	    }
-	}
-#endif /* !NATIVE_WIN32 */
-      
-#ifdef HAVE_PWD_H
-      {
-	struct passwd *pw = NULL;
-	gpointer buffer = NULL;
-	
-#  ifdef HAVE_GETPWUID_R
-        struct passwd pwd;
-        guint bufsize = 64;
-        gint error;
-	
-        do
-          {
-            g_free (buffer);
-            buffer = g_malloc (bufsize);
-	    errno = 0;
-	    
-#    ifdef HAVE_GETPWUID_R_POSIX
-	    error = getpwuid_r (getuid (), &pwd, buffer, bufsize, &pw);
-            error = error < 0 ? errno : error;
-#    else /* !HAVE_GETPWUID_R_POSIX */
-#      ifdef _AIX
-	    error = getpwuid_r (getuid (), &pwd, buffer, bufsize);
-	    pw = error == 0 ? &pwd : NULL;
-#      else /* !_AIX */
-            pw = getpwuid_r (getuid (), &pwd, buffer, bufsize);
-            error = pw ? 0 : errno;
-#      endif /* !_AIX */            
-#    endif /* !HAVE_GETPWUID_R_POSIX */
-	    
-	    if (!pw)
-	      {
-		/* we bail out prematurely if the user id can't be found
-		 * (should be pretty rare case actually), or if the buffer
-		 * should be sufficiently big and lookups are still not
-		 * successfull.
-		 */
-		if (error == 0 || error == ENOENT)
-		  {
-		    g_warning ("getpwuid_r(): failed due to: No such user %d.",
-			       getuid ());
-		    break;
-		  }
-		if (bufsize > 32 * 1024)
-		  {
-		    g_warning ("getpwuid_r(): failed due to: %s.",
-			       g_strerror (error));
-		    break;
-		  }
-		
-		bufsize *= 2;
-	      }
-	  }
-	while (!pw);
-#  endif /* !HAVE_GETPWUID_R */
-	
-	if (!pw)
-	  {
-	    setpwent ();
-	    pw = getpwuid (getuid ());
-	    endpwent ();
-	  }
-	if (pw)
-	  {
-	    g_user_name = g_strdup (pw->pw_name);
-	    g_real_name = g_strdup (pw->pw_gecos);
-	    if (!g_home_dir)
-	      g_home_dir = g_strdup (pw->pw_dir);
-	  }
-	g_free (buffer);
-      }
-      
-#else /* !HAVE_PWD_H */
-      
-#  ifdef NATIVE_WIN32
-      {
-	guint len = 17;
-	gchar buffer[17];
-	
-	if (GetUserName (buffer, &len))
-	  {
-	    g_user_name = g_strdup (buffer);
-	    g_real_name = g_strdup (buffer);
-	  }
-      }
-#  endif /* NATIVE_WIN32 */
-      
-#endif /* !HAVE_PWD_H */
-      
-      if (!g_user_name)
-	g_user_name = g_strdup ("somebody");
-      if (!g_real_name)
-	g_real_name = g_strdup ("Unknown");
-      else
-	{
-	  gchar *p;
-
-	  for (p = g_real_name; *p; p++)
-	    if (*p == ',')
-	      {
-		*p = 0;
-		p = g_strdup (g_real_name);
-		g_free (g_real_name);
-		g_real_name = p;
-		break;
-	      }
-	}
-    }
-}
-
-gchar*
-g_get_user_name (void)
-{
-  G_LOCK (g_utils_global);
-  if (!g_tmp_dir)
-    g_get_any_init ();
-  G_UNLOCK (g_utils_global);
-  
-  return g_user_name;
-}
-
-gchar*
-g_get_real_name (void)
-{
-  G_LOCK (g_utils_global);
-  if (!g_tmp_dir)
-    g_get_any_init ();
-  G_UNLOCK (g_utils_global);
- 
-  return g_real_name;
-}
-
-/* Return the home directory of the user. If there is a HOME
- * environment variable, its value is returned, otherwise use some
- * system-dependent way of finding it out. If no home directory can be
- * deduced, return NULL.
- */
-
-gchar*
-g_get_home_dir (void)
-{
-  G_LOCK (g_utils_global);
-  if (!g_tmp_dir)
-    g_get_any_init ();
-  G_UNLOCK (g_utils_global);
-  
-  return g_home_dir;
-}
-
-/* Return a directory to be used to store temporary files. This is the
- * value of the TMPDIR, TMP or TEMP environment variables (they are
- * checked in that order). If none of those exist, use P_tmpdir from
- * stdio.h.  If that isn't defined, return "/tmp" on POSIXly systems,
- * and C:\ on Windows.
- */
-
-gchar*
-g_get_tmp_dir (void)
-{
-  G_LOCK (g_utils_global);
-  if (!g_tmp_dir)
-    g_get_any_init ();
-  G_UNLOCK (g_utils_global);
-  
-  return g_tmp_dir;
-}
-
-static gchar *g_prgname = NULL;
-
-gchar*
-g_get_prgname (void)
-{
-  gchar* retval;
-
-  G_LOCK (g_utils_global);
-  retval = g_prgname;
-  G_UNLOCK (g_utils_global);
-
-  return retval;
-}
-
-void
-g_set_prgname (const gchar *prgname)
-{
-  gchar *c;
-    
-  G_LOCK (g_utils_global);
-  c = g_prgname;
-  g_prgname = g_strdup (prgname);
-  g_free (c);
-  G_UNLOCK (g_utils_global);
-}
-
-guint
-g_direct_hash (gconstpointer v)
-{
-  return GPOINTER_TO_UINT (v);
-}
-
-gint
-g_direct_equal (gconstpointer v1,
-		gconstpointer v2)
-{
-  return v1 == v2;
-}
-
-gint
-g_int_equal (gconstpointer v1,
-	     gconstpointer v2)
-{
-  return *((const gint*) v1) == *((const gint*) v2);
-}
-
-guint
-g_int_hash (gconstpointer v)
-{
-  return *(const gint*) v;
-}
-
-#if 0 /* Old IO Channels */
-
-GIOChannel*
-g_iochannel_new (gint fd)
-{
-  GIOChannel *channel = g_new (GIOChannel, 1);
-
-  channel->fd = fd;
-
-#ifdef NATIVE_WIN32
-  channel->peer = 0;
-  channel->peer_fd = 0;
-  channel->offset = 0;
-  channel->need_wakeups = 0;
-#endif /* NATIVE_WIN32 */
-
-  return channel;
-}
-
-void
-g_iochannel_free (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  g_free (channel);
-}
-
-void
-g_iochannel_close_and_free (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  close (channel->fd);
-
-  g_iochannel_free (channel);
-}
-
-#undef g_iochannel_wakeup_peer
-
-void
-g_iochannel_wakeup_peer (GIOChannel *channel)
-{
-#ifdef NATIVE_WIN32
-  static guint message = 0;
-#endif
-
-  g_return_if_fail (channel != NULL);
-
-#ifdef NATIVE_WIN32
-  if (message == 0)
-    message = RegisterWindowMessage ("gdk-pipe-readable");
-
-#  if 0
-  g_print ("g_iochannel_wakeup_peer: calling PostThreadMessage (%#x, %d, %d, %d)\n",
-	   channel->peer, message, channel->peer_fd, channel->offset);
-#  endif
-  PostThreadMessage (channel->peer, message,
-		     channel->peer_fd, channel->offset);
-#endif /* NATIVE_WIN32 */
-}
-
-#endif /* Old IO Channels */
-
-#ifdef NATIVE_WIN32
-#ifdef _MSC_VER
-
-int
-gwin_ftruncate (gint  fd,
-		guint size)
-{
-  HANDLE hfile;
-  guint curpos;
-
-  g_return_val_if_fail (fd >= 0, -1);
-  
-  hfile = (HANDLE) _get_osfhandle (fd);
-  curpos = SetFilePointer (hfile, 0, NULL, FILE_CURRENT);
-  if (curpos == 0xFFFFFFFF
-      || SetFilePointer (hfile, size, NULL, FILE_BEGIN) == 0xFFFFFFFF
-      || !SetEndOfFile (hfile))
-    {
-      gint error = GetLastError ();
-
-      switch (error)
-	{
-	case ERROR_INVALID_HANDLE:
-	  errno = EBADF;
-	  break;
-	default:
-	  errno = EIO;
-	  break;
-	}
-
-      return -1;
-    }
-
-  return 0;
-}
-
-DIR*
-gwin_opendir (const char *dirname)
-{
-  DIR *result;
-  gchar *mask;
-  guint k;
-
-  g_return_val_if_fail (dirname != NULL, NULL);
-
-  result = g_new0 (DIR, 1);
-  result->find_file_data = g_new0 (WIN32_FIND_DATA, 1);
-  result->dir_name = g_strdup (dirname);
-  
-  k = strlen (result->dir_name);
-  if (k && result->dir_name[k - 1] == '\\')
-    {
-      result->dir_name[k - 1] = '\0';
-      k--;
-    }
-  mask = g_strdup_printf ("%s\\*", result->dir_name);
-
-  result->find_file_handle = (guint) FindFirstFile (mask,
-					     (LPWIN32_FIND_DATA) result->find_file_data);
-  g_free (mask);
-
-  if (result->find_file_handle == (guint) INVALID_HANDLE_VALUE)
-    {
-      int error = GetLastError ();
-
-      g_free (result->dir_name);
-      g_free (result->find_file_data);
-      g_free (result);
-      switch (error)
-	{
-	default:
-	  errno = EIO;
-	  return NULL;
-	}
-    }
-  result->just_opened = TRUE;
-
-  return result;
-}
-
-struct dirent*
-gwin_readdir (DIR *dir)
-{
-  static struct dirent result;
-
-  g_return_val_if_fail (dir != NULL, NULL);
-
-  if (dir->just_opened)
-    dir->just_opened = FALSE;
-  else
-    {
-      if (!FindNextFile ((HANDLE) dir->find_file_handle,
-			 (LPWIN32_FIND_DATA) dir->find_file_data))
-	{
-	  int error = GetLastError ();
-
-	  switch (error)
-	    {
-	    case ERROR_NO_MORE_FILES:
-	      return NULL;
-	    default:
-	      errno = EIO;
-	      return NULL;
-	    }
-	}
-    }
-  strcpy (result.d_name, g_basename (((LPWIN32_FIND_DATA) dir->find_file_data)->cFileName));
-      
-  return &result;
-}
-
-void
-gwin_rewinddir (DIR *dir)
-{
-  gchar *mask;
-
-  g_return_if_fail (dir != NULL);
-
-  if (!FindClose ((HANDLE) dir->find_file_handle))
-    g_warning ("gwin_rewinddir(): FindClose() failed\n");
-
-  mask = g_strdup_printf ("%s\\*", dir->dir_name);
-  dir->find_file_handle = (guint) FindFirstFile (mask,
-					  (LPWIN32_FIND_DATA) dir->find_file_data);
-  g_free (mask);
-
-  if (dir->find_file_handle == (guint) INVALID_HANDLE_VALUE)
-    {
-      int error = GetLastError ();
-
-      switch (error)
-	{
-	default:
-	  errno = EIO;
-	  return;
-	}
-    }
-  dir->just_opened = TRUE;
-}  
-
-gint
-gwin_closedir (DIR *dir)
-{
-  g_return_val_if_fail (dir != NULL, -1);
-
-  if (!FindClose ((HANDLE) dir->find_file_handle))
-    {
-      int error = GetLastError ();
-
-      switch (error)
-	{
-	default:
-	  errno = EIO; return -1;
-	}
-    }
-
-  g_free (dir->dir_name);
-  g_free (dir->find_file_data);
-  g_free (dir);
-
-  return 0;
-}
-
-#endif /* _MSC_VER */
-
-#endif /* NATIVE_WIN32 */
diff --git a/glib/install-sh b/glib/install-sh
deleted file mode 100755
index e9de238..0000000
--- a/glib/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-	-c) instcmd="$cpprog"
-	    shift
-	    continue;;
-
-	-d) dir_arg=true
-	    shift
-	    continue;;
-
-	-m) chmodcmd="$chmodprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-o) chowncmd="$chownprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-g) chgrpcmd="$chgrpprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-s) stripcmd="$stripprog"
-	    shift
-	    continue;;
-
-	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
-	    shift
-	    continue;;
-
-	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-	    shift
-	    continue;;
-
-	*)  if [ x"$src" = x ]
-	    then
-		src=$1
-	    else
-		# this colon is to work around a 386BSD /bin/sh bug
-		:
-		dst=$1
-	    fi
-	    shift
-	    continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-	echo "install:	no input file specified"
-	exit 1
-else
-	true
-fi
-
-if [ x"$dir_arg" != x ]; then
-	dst=$src
-	src=""
-	
-	if [ -d $dst ]; then
-		instcmd=:
-		chmodcmd=""
-	else
-		instcmd=mkdir
-	fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-	if [ -f $src -o -d $src ]
-	then
-		true
-	else
-		echo "install:  $src does not exist"
-		exit 1
-	fi
-	
-	if [ x"$dst" = x ]
-	then
-		echo "install:	no destination specified"
-		exit 1
-	else
-		true
-	fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-	if [ -d $dst ]
-	then
-		dst="$dst"/`basename $src`
-	else
-		true
-	fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='	
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-	pathcomp="${pathcomp}${1}"
-	shift
-
-	if [ ! -d "${pathcomp}" ] ;
-        then
-		$mkdirprog "${pathcomp}"
-	else
-		true
-	fi
-
-	pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-	$doit $instcmd $dst &&
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-	if [ x"$transformarg" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		dstfile=`basename $dst $transformbasename | 
-			sed $transformarg`$transformbasename
-	fi
-
-# don't allow the sed command to completely eliminate the filename
-
-	if [ x"$dstfile" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		true
-	fi
-
-# Make a temp file name in the proper directory.
-
-	dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-	$doit $instcmd $src $dsttmp &&
-
-	trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/glib/ltconfig b/glib/ltconfig
deleted file mode 100755
index a01334f..0000000
--- a/glib/ltconfig
+++ /dev/null
@@ -1,3078 +0,0 @@
-#! /bin/sh
-
-# ltconfig - Create a system-specific libtool.
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A lot of this script is taken from autoconf-2.10.
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-echo=echo
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec "$SHELL" "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# Find the correct PATH separator.  Usually this is `:', but
-# DJGPP uses `;' like DOS.
-if test "X${PATH_SEPARATOR+set}" != Xset; then
-  UNAME=${UNAME-`uname 2>/dev/null`}
-  case X$UNAME in
-    *-DOS) PATH_SEPARATOR=';' ;;
-    *)     PATH_SEPARATOR=':' ;;
-  esac
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test "X${echo_test_string+set}" != Xset; then
-  # find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
-   test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-  for dir in $PATH /usr/ucb; do
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running ltconfig again with it.
-      ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
-    else
-      # Try using printf.
-      echo='printf "%s\n"'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
-	   test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
-	CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL $0 --fallback-echo"
-      elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
-	   test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
-	echo="$CONFIG_SHELL $0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "$0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# The name of this program.
-progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
-
-# Constants:
-PROGRAM=ltconfig
-PACKAGE=libtool
-VERSION=1.3.4
-TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-rm="rm -f"
-
-help="Try \`$progname --help' for more information."
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-enable_shared=yes
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-enable_static=yes
-enable_fast_install=yes
-enable_dlopen=unknown
-enable_win32_dll=no
-ltmain=
-silent=
-srcdir=
-ac_config_guess=
-ac_config_sub=
-host=
-nonopt=
-ofile="$default_ofile"
-verify_host=yes
-with_gcc=no
-with_gnu_ld=no
-need_locks=yes
-ac_ext=c
-objext=o
-libext=a
-exeext=
-cache_file=
-
-old_AR="$AR"
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-old_CPPFLAGS="$CPPFLAGS"
-old_LDFLAGS="$LDFLAGS"
-old_LD="$LD"
-old_LN_S="$LN_S"
-old_LIBS="$LIBS"
-old_NM="$NM"
-old_RANLIB="$RANLIB"
-old_DLLTOOL="$DLLTOOL"
-old_OBJDUMP="$OBJDUMP"
-old_AS="$AS"
-
-# Parse the command line options.
-args=
-prev=
-for option
-do
-  case "$option" in
-  -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    eval "$prev=\$option"
-    prev=
-    continue
-  fi
-
-  case "$option" in
-  --help) cat <<EOM
-Usage: $progname [OPTION]... [HOST [LTMAIN]]
-
-Generate a system-specific libtool script.
-
-    --debug                enable verbose shell tracing
-    --disable-shared       do not build shared libraries
-    --disable-static       do not build static libraries
-    --disable-fast-install do not optimize for fast installation
-    --enable-dlopen        enable dlopen support
-    --enable-win32-dll     enable building dlls on win32 hosts
-    --help                 display this help and exit
-    --no-verify            do not verify that HOST is a valid host type
--o, --output=FILE          specify the output file [default=$default_ofile]
-    --quiet                same as \`--silent'
-    --silent               do not print informational messages
-    --srcdir=DIR           find \`config.guess' in DIR
-    --version              output version information and exit
-    --with-gcc             assume that the GNU C compiler will be used
-    --with-gnu-ld          assume that the C compiler uses the GNU linker
-    --disable-lock         disable file locking
-    --cache-file=FILE      configure cache file
-
-LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
-that provides basic libtool functionality.
-
-HOST is the canonical host system name [default=guessed].
-EOM
-  exit 0
-  ;;
-
-  --debug)
-    echo "$progname: enabling shell trace mode"
-    set -x
-    ;;
-
-  --disable-shared) enable_shared=no ;;
-
-  --disable-static) enable_static=no ;;
-
-  --disable-fast-install) enable_fast_install=no ;;
-
-  --enable-dlopen) enable_dlopen=yes ;;
-
-  --enable-win32-dll) enable_win32_dll=yes ;;
-
-  --quiet | --silent) silent=yes ;;
-
-  --srcdir) prev=srcdir ;;
-  --srcdir=*) srcdir="$optarg" ;;
-
-  --no-verify) verify_host=no ;;
-
-  --output | -o) prev=ofile ;;
-  --output=*) ofile="$optarg" ;;
-
-  --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
-
-  --with-gcc) with_gcc=yes ;;
-  --with-gnu-ld) with_gnu_ld=yes ;;
-
-  --disable-lock) need_locks=no ;;
-
-  --cache-file=*) cache_file="$optarg" ;;
-
-  -*)
-    echo "$progname: unrecognized option \`$option'" 1>&2
-    echo "$help" 1>&2
-    exit 1
-    ;;
-
-  *)
-    if test -z "$ltmain"; then
-      ltmain="$option"
-    elif test -z "$host"; then
-# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
-#      if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
-#        echo "$progname: warning \`$option' is not a valid host type" 1>&2
-#      fi
-      host="$option"
-    else
-      echo "$progname: too many arguments" 1>&2
-      echo "$help" 1>&2
-      exit 1
-    fi ;;
-  esac
-done
-
-if test -z "$ltmain"; then
-  echo "$progname: you must specify a LTMAIN file" 1>&2
-  echo "$help" 1>&2
-  exit 1
-fi
-
-if test ! -f "$ltmain"; then
-  echo "$progname: \`$ltmain' does not exist" 1>&2
-  echo "$help" 1>&2
-  exit 1
-fi
-
-# Quote any args containing shell metacharacters.
-ltconfig_args=
-for arg
-do
-  case "$arg" in
-  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-  ltconfig_args="$ltconfig_args '$arg'" ;;
-  *) ltconfig_args="$ltconfig_args $arg" ;;
-  esac
-done
-
-# A relevant subset of AC_INIT.
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 5 compiler messages saved in config.log
-# 6 checking for... messages and results
-if test "$silent" = yes; then
-  exec 6>/dev/null
-else
-  exec 6>&1
-fi
-exec 5>>./config.log
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
-if test "X${LANG+set}"   = Xset; then LANG=C;   export LANG;   fi
-
-if test -n "$cache_file" && test -r "$cache_file"; then
-  echo "loading cache $cache_file within ltconfig"
-  . $cache_file
-fi
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    ac_n= ac_c='
-' ac_t='	'
-  else
-    ac_n=-n ac_c= ac_t=
-  fi
-else
-  ac_n= ac_c='\c' ac_t=
-fi
-
-if test -z "$srcdir"; then
-  # Assume the source directory is the same one as the path to LTMAIN.
-  srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
-  test "$srcdir" = "$ltmain" && srcdir=.
-fi
-
-trap "$rm conftest*; exit 1" 1 2 15
-if test "$verify_host" = yes; then
-  # Check for config.guess and config.sub.
-  ac_aux_dir=
-  for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-    if test -f $ac_dir/config.guess; then
-      ac_aux_dir=$ac_dir
-      break
-    fi
-  done
-  if test -z "$ac_aux_dir"; then
-    echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
-    echo "$help" 1>&2
-    exit 1
-  fi
-  ac_config_guess=$ac_aux_dir/config.guess
-  ac_config_sub=$ac_aux_dir/config.sub
-
-  # Make sure we can run config.sub.
-  if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
-  else
-    echo "$progname: cannot run $ac_config_sub" 1>&2
-    echo "$help" 1>&2
-    exit 1
-  fi
-
-  echo $ac_n "checking host system type""... $ac_c" 1>&6
-
-  host_alias=$host
-  case "$host_alias" in
-  "")
-    if host_alias=`$SHELL $ac_config_guess`; then :
-    else
-      echo "$progname: cannot guess host type; you must specify one" 1>&2
-      echo "$help" 1>&2
-      exit 1
-    fi ;;
-  esac
-  host=`$SHELL $ac_config_sub $host_alias`
-  echo "$ac_t$host" 1>&6
-
-  # Make sure the host verified.
-  test -z "$host" && exit 1
-
-elif test -z "$host"; then
-  echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
-  echo "$help" 1>&2
-  exit 1
-else
-  host_alias=$host
-fi
-
-# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
-case "$host_os" in
-linux-gnu*) ;;
-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
-esac
-
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-case "$host_os" in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR cru $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-# Set a sane default for `AR'.
-test -z "$AR" && AR=ar
-
-# Set a sane default for `OBJDUMP'.
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-# If RANLIB is not set, then run the test.
-if test "${RANLIB+set}" != "set"; then
-  result=no
-
-  echo $ac_n "checking for ranlib... $ac_c" 1>&6
-  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-  for dir in $PATH; do
-    test -z "$dir" && dir=.
-    if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
-      RANLIB="ranlib"
-      result="ranlib"
-      break
-    fi
-  done
-  IFS="$save_ifs"
-
-  echo "$ac_t$result" 1>&6
-fi
-
-if test -n "$RANLIB"; then
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-fi
-
-# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$AS" && AS=as
-
-# Check to see if we are using GCC.
-if test "$with_gcc" != yes || test -z "$CC"; then
-  # If CC is not set, then try to find GCC or a usable CC.
-  if test -z "$CC"; then
-    echo $ac_n "checking for gcc... $ac_c" 1>&6
-    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-    for dir in $PATH; do
-      test -z "$dir" && dir=.
-      if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
-	CC="gcc"
-	break
-      fi
-    done
-    IFS="$save_ifs"
-
-    if test -n "$CC"; then
-      echo "$ac_t$CC" 1>&6
-    else
-      echo "$ac_t"no 1>&6
-    fi
-  fi
-
-  # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
-  if test -z "$CC"; then
-    echo $ac_n "checking for cc... $ac_c" 1>&6
-    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-    cc_rejected=no
-    for dir in $PATH; do
-      test -z "$dir" && dir=.
-      if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
-	if test "$dir/cc" = "/usr/ucb/cc"; then
-	  cc_rejected=yes
-	  continue
-	fi
-	CC="cc"
-	break
-      fi
-    done
-    IFS="$save_ifs"
-    if test $cc_rejected = yes; then
-      # We found a bogon in the path, so make sure we never use it.
-      set dummy $CC
-      shift
-      if test $# -gt 0; then
-	# We chose a different compiler from the bogus one.
-	# However, it has the same name, so the bogon will be chosen
-	# first if we set CC to just the name; use the full file name.
-	shift
-	set dummy "$dir/cc" "$@"
-	shift
-	CC="$@"
-      fi
-    fi
-
-    if test -n "$CC"; then
-      echo "$ac_t$CC" 1>&6
-    else
-      echo "$ac_t"no 1>&6
-    fi
-
-    if test -z "$CC"; then
-      echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
-      exit 1
-    fi
-  fi
-
-  # Now see if the compiler is really GCC.
-  with_gcc=no
-  echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
-  echo "$progname:581: checking whether we are using GNU C" >&5
-
-  $rm conftest.c
-  cat > conftest.c <<EOF
-#ifdef __GNUC__
-  yes;
-#endif
-EOF
-  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-    with_gcc=yes
-  fi
-  $rm conftest.c
-  echo "$ac_t$with_gcc" 1>&6
-fi
-
-# Allow CC to be a program name with arguments.
-set dummy $CC
-compiler="$2"
-
-echo $ac_n "checking for object suffix... $ac_c" 1>&6
-$rm conftest*
-echo 'int i = 1;' > conftest.c
-echo "$progname:603: checking for object suffix" >& 5
-if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
-  # Append any warnings to the config.log.
-  cat conftest.err 1>&5
-
-  for ac_file in conftest.*; do
-    case $ac_file in
-    *.c) ;;
-    *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
-    esac
-  done
-else
-  cat conftest.err 1>&5
-  echo "$progname: failed program was:" >&5
-  cat conftest.c >&5
-fi
-$rm conftest*
-echo "$ac_t$objext" 1>&6
-
-echo $ac_n "checking for executable suffix... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_cv_exeext="no"
-  $rm conftest*
-  echo 'main () { return 0; }' > conftest.c
-  echo "$progname:629: checking for executable suffix" >& 5
-  if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
-    # Append any warnings to the config.log.
-    cat conftest.err 1>&5
-
-    for ac_file in conftest.*; do
-      case $ac_file in
-      *.c | *.err | *.$objext ) ;;
-      *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
-      esac
-    done
-  else
-    cat conftest.err 1>&5
-    echo "$progname: failed program was:" >&5
-    cat conftest.c >&5
-  fi
-  $rm conftest*
-fi
-if test "X$ac_cv_exeext" = Xno; then
-  exeext=""
-else
-  exeext="$ac_cv_exeext"
-fi
-echo "$ac_t$ac_cv_exeext" 1>&6
-
-echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
-pic_flag=
-special_shlib_compile_flags=
-wl=
-link_static_flag=
-no_builtin_flag=
-
-if test "$with_gcc" = yes; then
-  wl='-Wl,'
-  link_static_flag='-static'
-
-  case "$host_os" in
-  beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
-    # PIC is the default for these OSes.
-    ;;
-  aix*)
-    # Below there is a dirty hack to force normal static linking with -ldl
-    # The problem is because libdl dynamically linked with both libc and
-    # libC (AIX C++ library), which obviously doesn't included in libraries
-    # list by gcc. This cause undefined symbols with -static flags.
-    # This hack allows C programs to be linked with "-static -ldl", but
-    # we not sure about C++ programs.
-    link_static_flag="$link_static_flag ${wl}-lC"
-    ;;
-  cygwin* | mingw* | os2*)
-    # We can build DLLs from non-PIC.
-    ;;
-  amigaos*)
-    # FIXME: we need at least 68020 code to build shared libraries, but
-    # adding the `-m68020' flag to GCC prevents building anything better,
-    # like `-m68040'.
-    pic_flag='-m68020 -resident32 -malways-restore-a4'
-    ;;
-  sysv4*MP*)
-    if test -d /usr/nec; then
-       pic_flag=-Kconform_pic
-    fi
-    ;;
-  *)
-    pic_flag='-fPIC'
-    ;;
-  esac
-else
-  # PORTME Check for PIC flags for the system compiler.
-  case "$host_os" in
-  aix3* | aix4*)
-    # All AIX code is PIC.
-    link_static_flag='-bnso -bI:/lib/syscalls.exp'
-    ;;
-
-  hpux9* | hpux10* | hpux11*)
-    # Is there a better link_static_flag that works with the bundled CC?
-    wl='-Wl,'
-    link_static_flag="${wl}-a ${wl}archive"
-    pic_flag='+Z'
-    ;;
-
-  irix5* | irix6*)
-    wl='-Wl,'
-    link_static_flag='-non_shared'
-    # PIC (with -KPIC) is the default.
-    ;;
-
-  cygwin* | mingw* | os2*)
-    # We can build DLLs from non-PIC.
-    ;;
-
-  osf3* | osf4* | osf5*)
-    # All OSF/1 code is PIC.
-    wl='-Wl,'
-    link_static_flag='-non_shared'
-    ;;
-
-  sco3.2v5*)
-    pic_flag='-Kpic'
-    link_static_flag='-dn'
-    special_shlib_compile_flags='-belf'
-    ;;
-
-  solaris*)
-    pic_flag='-KPIC'
-    link_static_flag='-Bstatic'
-    wl='-Wl,'
-    ;;
-
-  sunos4*)
-    pic_flag='-PIC'
-    link_static_flag='-Bstatic'
-    wl='-Qoption ld '
-    ;;
-
-  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-    pic_flag='-KPIC'
-    link_static_flag='-Bstatic'
-    wl='-Wl,'
-    ;;
-
-  uts4*)
-    pic_flag='-pic'
-    link_static_flag='-Bstatic'
-    ;;
-  sysv4*MP*)
-    if test -d /usr/nec ;then
-      pic_flag='-Kconform_pic'
-      link_static_flag='-Bstatic'
-    fi
-    ;;
-  *)
-    can_build_shared=no
-    ;;
-  esac
-fi
-
-if test -n "$pic_flag"; then
-  echo "$ac_t$pic_flag" 1>&6
-
-  # Check to make sure the pic_flag actually works.
-  echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
-  $rm conftest*
-  echo "int some_variable = 0;" > conftest.c
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $pic_flag -DPIC"
-  echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5
-  if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
-    # Append any warnings to the config.log.
-    cat conftest.err 1>&5
-    
-    case "$host_os" in
-    hpux9* | hpux10* | hpux11*)
-      # On HP-UX, both CC and GCC only warn that PIC is supported... then they
-      # create non-PIC objects.  So, if there were any warnings, we assume that
-      # PIC is not supported.
-      if test -s conftest.err; then
-	echo "$ac_t"no 1>&6
-	can_build_shared=no
-	pic_flag=
-      else
-	echo "$ac_t"yes 1>&6
-	pic_flag=" $pic_flag"
-      fi
-      ;;
-    *)
-      echo "$ac_t"yes 1>&6
-      pic_flag=" $pic_flag"
-      ;;
-    esac
-  else
-    # Append any errors to the config.log.
-    cat conftest.err 1>&5
-    can_build_shared=no
-    pic_flag=
-    echo "$ac_t"no 1>&6
-  fi
-  CFLAGS="$save_CFLAGS"
-  $rm conftest*
-else
-  echo "$ac_t"none 1>&6
-fi
-
-# Check to see if options -o and -c are simultaneously supported by compiler
-echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
-$rm -r conftest 2>/dev/null
-mkdir conftest
-cd conftest
-$rm conftest*
-echo "int some_variable = 0;" > conftest.c
-mkdir out
-# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-# that will create temporary files in the current directory regardless of
-# the output directory.  Thus, making CWD read-only will cause this test
-# to fail, enabling locking or at least warning the user not to do parallel
-# builds.
-chmod -w .
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -o out/conftest2.o"
-echo "$progname:829: checking if $compiler supports -c -o file.o" >&5
-if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
-
-  # The compiler can only warn and ignore the option if not recognized
-  # So say no if there are warnings
-    if test -s out/conftest.err; then
-      echo "$ac_t"no 1>&6
-      compiler_c_o=no
-    else
-      echo "$ac_t"yes 1>&6
-      compiler_c_o=yes
-    fi
-else
-  # Append any errors to the config.log.
-  cat out/conftest.err 1>&5
-  compiler_c_o=no
-  echo "$ac_t"no 1>&6
-fi
-CFLAGS="$save_CFLAGS"
-chmod u+w .
-$rm conftest* out/*
-rmdir out
-cd ..
-rmdir conftest
-$rm -r conftest 2>/dev/null
-
-if test x"$compiler_c_o" = x"yes"; then
-  # Check to see if we can write to a .lo
-  echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
-  $rm conftest*
-  echo "int some_variable = 0;" > conftest.c
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -c -o conftest.lo"
-  echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5
-if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
-
-    # The compiler can only warn and ignore the option if not recognized
-    # So say no if there are warnings
-      if test -s conftest.err; then
-	echo "$ac_t"no 1>&6
-	compiler_o_lo=no
-      else
-	echo "$ac_t"yes 1>&6
-	compiler_o_lo=yes
-      fi
-  else
-    # Append any errors to the config.log.
-    cat conftest.err 1>&5
-    compiler_o_lo=no
-    echo "$ac_t"no 1>&6
-  fi
-  CFLAGS="$save_CFLAGS"
-  $rm conftest*
-else
-  compiler_o_lo=no
-fi
-
-# Check to see if we can do hard links to lock some files if needed
-hard_links="nottested"
-if test "$compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$ac_t$hard_links" 1>&6
-  $rm conftest*
-  if test "$hard_links" = no; then
-    echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-if test "$with_gcc" = yes; then
-  # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
-  echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
-  $rm conftest*
-  echo "int some_variable = 0;" > conftest.c
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
-  echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-  if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
-
-    # The compiler can only warn and ignore the option if not recognized
-    # So say no if there are warnings
-      if test -s conftest.err; then
-	echo "$ac_t"no 1>&6
-	compiler_rtti_exceptions=no
-      else
-	echo "$ac_t"yes 1>&6
-	compiler_rtti_exceptions=yes
-      fi
-  else
-    # Append any errors to the config.log.
-    cat conftest.err 1>&5
-    compiler_rtti_exceptions=no
-    echo "$ac_t"no 1>&6
-  fi
-  CFLAGS="$save_CFLAGS"
-  $rm conftest*
-
-  if test "$compiler_rtti_exceptions" = "yes"; then
-    no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
-  else
-    no_builtin_flag=' -fno-builtin'
-  fi
-  
-fi
-
-# Check for any special shared library compilation flags.
-if test -n "$special_shlib_compile_flags"; then
-  echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
-  if echo "$old_CC $old_CFLAGS " | egrep -e "[ 	]$special_shlib_compile_flags[ 	]" >/dev/null; then :
-  else
-    echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
-    can_build_shared=no
-  fi
-fi
-
-echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
-$rm conftest*
-echo 'main(){return(0);}' > conftest.c
-save_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS $link_static_flag"
-echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  echo "$ac_t$link_static_flag" 1>&6
-else
-  echo "$ac_t"none 1>&6
-  link_static_flag=
-fi
-LDFLAGS="$save_LDFLAGS"
-$rm conftest*
-
-if test -z "$LN_S"; then
-  # Check to see if we can use ln -s, or we need hard links.
-  echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
-  $rm conftest.dat
-  if ln -s X conftest.dat 2>/dev/null; then
-    $rm conftest.dat
-    LN_S="ln -s"
-  else
-    LN_S=ln
-  fi
-  if test "$LN_S" = "ln -s"; then
-    echo "$ac_t"yes 1>&6
-  else
-    echo "$ac_t"no 1>&6
-  fi
-fi
-
-# Make sure LD is an absolute path.
-if test -z "$LD"; then
-  ac_prog=ld
-  if test "$with_gcc" = yes; then
-    # Check if gcc -print-prog-name=ld gives a path.
-    echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
-    echo "$progname:991: checking for ld used by GCC" >&5
-    ac_prog=`($CC -print-prog-name=ld) 2>&5`
-    case "$ac_prog" in
-    # Accept absolute paths.
-    [\\/]* | [A-Za-z]:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-    "")
-      # If it fails, then pretend we are not using GCC.
-      ac_prog=ld
-      ;;
-    *)
-      # If it is relative, then search for the first ld in PATH.
-      with_gnu_ld=unknown
-      ;;
-    esac
-  elif test "$with_gnu_ld" = yes; then
-    echo $ac_n "checking for GNU ld... $ac_c" 1>&6
-    echo "$progname:1015: checking for GNU ld" >&5
-  else
-    echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-    echo "$progname:1018: checking for non-GNU ld" >&5
-  fi
-
-  if test -z "$LD"; then
-    IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-    for ac_dir in $PATH; do
-      test -z "$ac_dir" && ac_dir=.
-      if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-	LD="$ac_dir/$ac_prog"
-	# Check to see if the program is GNU ld.  I'd rather use --version,
-	# but apparently some GNU ld's only accept -v.
-	# Break only if it was the GNU/non-GNU ld that we prefer.
-	if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-	  test "$with_gnu_ld" != no && break
-	else
-	  test "$with_gnu_ld" != yes && break
-	fi
-      fi
-    done
-    IFS="$ac_save_ifs"
-  fi
-
-  if test -n "$LD"; then
-    echo "$ac_t$LD" 1>&6
-  else
-    echo "$ac_t"no 1>&6
-  fi
-
-  if test -z "$LD"; then
-    echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
-    exit 1
-  fi
-fi
-
-# Check to see if it really is or is not GNU ld.
-echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
-# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-echo "$ac_t$with_gnu_ld" 1>&6
-
-# See if the linker supports building shared libraries.
-echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
-
-allow_undefined_flag=
-no_undefined_flag=
-need_lib_prefix=unknown
-need_version=unknown
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-archive_cmds=
-archive_expsym_cmds=
-old_archive_from_new_cmds=
-export_dynamic_flag_spec=
-whole_archive_flag_spec=
-thread_safe_flag_spec=
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-hardcode_shlibpath_var=unsupported
-runpath_var=
-always_export_symbols=no
-export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
-# include_expsyms should be a list of space-separated symbols to be *always*
-# included in the symbol list
-include_expsyms=
-# exclude_expsyms can be an egrep regular expression of symbols to exclude
-# it will be wrapped by ` (' and `)$', so one must not match beginning or
-# end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-# as well as any symbol that contains `d'.
-exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
-# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-# platforms (ab)use it in PIC code, but their linkers get confused if
-# the symbol is explicitly referenced.  Since portable code cannot
-# rely on this symbol name, it's probably fine to never include it in
-# preloaded symbol tables.
-
-case "$host_os" in
-cygwin* | mingw*)
-  # FIXME: the MSVC++ port hasn't been tested in a loooong time
-  # When not using gcc, we currently assume that we are using
-  # Microsoft Visual C++.
-  if test "$with_gcc" != yes; then
-    with_gnu_ld=no
-  fi
-  ;;
-
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
-  # If archive_cmds runs LD, not CC, wlarc should be empty
-  wlarc='${wl}'
-
-  # See if GNU ld supports shared libraries.
-  case "$host_os" in
-  aix3* | aix4*)
-    # On AIX, the GNU linker is very broken
-    ld_shlibs=no
-    cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-    ;;
-
-  amigaos*)
-    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-
-    # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-    # that the semantics of dynamic libraries on AmigaOS, at least up
-    # to version 4, is to share data among multiple programs linked
-    # with the same dynamic library.  Since this doesn't match the
-    # behavior of shared libraries on other platforms, we can use
-    # them.
-    ld_shlibs=no
-    ;;
-
-  beos*)
-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      allow_undefined_flag=unsupported
-      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-      # support --undefined.  This deserves some investigation.  FIXME
-      archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-  cygwin* | mingw*)
-    # hardcode_libdir_flag_spec is actually meaningless, as there is
-    # no search path for DLLs.
-    hardcode_libdir_flag_spec='-L$libdir'
-    allow_undefined_flag=unsupported
-    always_export_symbols=yes
-
-    # Extract the symbol export list from an `--export-all' def file,
-    # then regenerate the def file from the symbol export list, so that
-    # the compiled dll only exports the symbol export list.
-    export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
-      test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
-      $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def  $objdir/$soname-ltdll.$objext $libobjs $convenience~
-      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols'
-
-    archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
-      _lt_hint=1;
-      for symbol in `cat $export_symbols`; do
-	echo "	\$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
-	_lt_hint=`expr 1 + \$_lt_hint`;
-      done~
-      test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
-      test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
-      $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
-      $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
-      $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
-
-      old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' 
-    ;;
-
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    else
-      archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
-      # can we support soname and/or expsyms with a.out? -oliva
-    fi
-    ;;
-
-  solaris* | sysv5*)
-    if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
-      ld_shlibs=no
-      cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-    elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;      
-
-  sunos4*)
-    archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
-    wlarc=
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  *)
-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-  esac
-
-  if test "$ld_shlibs" = yes; then
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    case $host_os in
-    cygwin* | mingw*)
-      # dlltool doesn't understand --whole-archive et. al.
-      whole_archive_flag_spec=
-      ;;
-    *)
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
-        whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-        whole_archive_flag_spec=
-      fi
-      ;;
-    esac
-  fi
-else
-  # PORTME fill in a description of your system's linker (not GNU ld)
-  case "$host_os" in
-  aix3*)
-    allow_undefined_flag=unsupported
-    always_export_symbols=yes
-    archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
-    # Note: this linker hardcodes the directories in LIBPATH if there
-    # are no directories specified by -L.
-    hardcode_minus_L=yes
-    if test "$with_gcc" = yes && test -z "$link_static_flag"; then
-      # Neither direct hardcoding nor static linking is supported with a
-      # broken collect2.
-      hardcode_direct=unsupported
-    fi
-    ;;
-
-  aix4*)
-    hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
-    hardcode_libdir_separator=':'
-    if test "$with_gcc" = yes; then
-      collect2name=`${CC} -print-prog-name=collect2`
-      if test -f "$collect2name" && \
-	 strings "$collect2name" | grep resolve_lib_name >/dev/null
-      then
-	# We have reworked collect2
-	hardcode_direct=yes
-      else
-	# We have old collect2
-	hardcode_direct=unsupported
-	# It fails to find uninstalled libraries when the uninstalled
-	# path is not listed in the libpath.  Setting hardcode_minus_L
-	# to unsupported forces relinking
-	hardcode_minus_L=yes
-	hardcode_libdir_flag_spec='-L$libdir'
-	hardcode_libdir_separator=
-      fi
-      shared_flag='-shared'
-    else
-      shared_flag='${wl}-bM:SRE'
-      hardcode_direct=yes
-    fi
-    allow_undefined_flag=' ${wl}-berok'
-    archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
-    archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
-    case "$host_os" in aix4.[01]|aix4.[01].*)
-      # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
-      always_export_symbols=yes ;;
-    esac
-   ;;
-
-  amigaos*)
-    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-    # see comment about different semantics on the GNU ld section
-    ld_shlibs=no
-    ;;
-
-  cygwin* | mingw*)
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    # hardcode_libdir_flag_spec is actually meaningless, as there is
-    # no search path for DLLs.
-    hardcode_libdir_flag_spec=' '
-    allow_undefined_flag=unsupported
-    # Tell ltmain to make .lib files, not .a files.
-    libext=lib
-    # FIXME: Setting linknames here is a bad hack.
-    archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-    # The linker will automatically build a .lib file if we build a DLL.
-    old_archive_from_new_cmds='true'
-    # FIXME: Should let the user specify the lib program.
-    old_archive_cmds='lib /OUT:$oldlib$oldobjs'
-    fix_srcfile_path='`cygpath -w $srcfile`'
-    ;;
-
-  freebsd1*)
-    ld_shlibs=no
-    ;;
-
-  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-  # support.  Future versions do this automatically, but an explicit c++rt0.o
-  # does not break anything, and helps significantly (at the cost of a little
-  # extra space).
-  freebsd2.2*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-  freebsd2*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
-    hardcode_direct=yes
-    hardcode_minus_L=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-  freebsd*)
-    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  hpux9* | hpux10* | hpux11*)
-    case "$host_os" in
-    hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
-    *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
-    esac
-    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-    hardcode_libdir_separator=:
-    hardcode_direct=yes
-    hardcode_minus_L=yes # Not in the search PATH, but as the default
-			 # location of the library.
-    export_dynamic_flag_spec='${wl}-E'
-    ;;
-
-  irix5* | irix6*)
-    if test "$with_gcc" = yes; then
-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-    else
-      archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-    fi
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    ;;
-
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'  # a.out
-    else
-      archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts'      # ELF
-    fi
-    hardcode_libdir_flag_spec='${wl}-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  openbsd*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  os2*)
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-    allow_undefined_flag=unsupported
-    archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
-    old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
-    ;;
-
-  osf3*)
-    if test "$with_gcc" = yes; then
-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-    else
-      allow_undefined_flag=' -expect_unresolved \*'
-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-    fi
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    ;;
-
-  osf4* | osf5*)  # As osf3* with the addition of the -msym flag
-    if test "$with_gcc" = yes; then
-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-    else
-      allow_undefined_flag=' -expect_unresolved \*'
-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-    fi
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    ;;
-
-  sco3.2v5*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    hardcode_shlibpath_var=no
-    runpath_var=LD_RUN_PATH
-    hardcode_runpath_var=yes
-    ;;
-
-  solaris*)
-    no_undefined_flag=' -z text'
-    # $CC -shared without GNU ld will not create a library from C++
-    # object files and a static libstdc++, better avoid it by now
-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_shlibpath_var=no
-    case "$host_os" in
-    solaris2.[0-5] | solaris2.[0-5].*) ;;
-    *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-      whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
-    esac
-    ;;
-
-  sunos4*)
-    archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_direct=yes
-    hardcode_minus_L=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    runpath_var='LD_RUN_PATH'
-    hardcode_shlibpath_var=no
-    hardcode_direct=no #Motorola manual says yes, but my tests say they lie 
-    ;;  
-
-  sysv4.3*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    hardcode_shlibpath_var=no
-    export_dynamic_flag_spec='-Bexport'
-    ;;
-
-  sysv5*)
-    no_undefined_flag=' -z text'
-    # $CC -shared without GNU ld will not create a library from C++
-    # object files and a static libstdc++, better avoid it by now
-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
-    hardcode_libdir_flag_spec=
-    hardcode_shlibpath_var=no
-    runpath_var='LD_RUN_PATH'
-    ;;
-
-  uts4*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_shlibpath_var=no
-    ;;
-
-  dgux*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4*MP*)
-    if test -d /usr/nec; then
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-      hardcode_shlibpath_var=no
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ld_shlibs=yes
-    fi
-    ;;
-
-  sysv4.2uw2*)
-    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
-    hardcode_direct=yes
-    hardcode_minus_L=no
-    hardcode_shlibpath_var=no
-    hardcode_runpath_var=yes
-    runpath_var=LD_RUN_PATH
-    ;;
-
-  unixware7*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    runpath_var='LD_RUN_PATH'
-    hardcode_shlibpath_var=no
-    ;;
-
-  *)
-    ld_shlibs=no
-    ;;
-  esac
-fi
-echo "$ac_t$ld_shlibs" 1>&6
-test "$ld_shlibs" = no && can_build_shared=no
-
-if test -z "$NM"; then
-  echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
-  case "$NM" in
-  [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
-  *)
-    IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-    for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
-      test -z "$ac_dir" && ac_dir=.
-      if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	  NM="$ac_dir/nm -B"
-	  break
-	elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-	  NM="$ac_dir/nm -p"
-	  break
-	else
-	  NM=${NM="$ac_dir/nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
-	fi
-      fi
-    done
-    IFS="$ac_save_ifs"
-    test -z "$NM" && NM=nm
-    ;;
-  esac
-  echo "$ac_t$NM" 1>&6
-fi
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case "$host_os" in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
-  ;;
-irix*)
-  symcode='[BCDEGRST]'
-  ;;
-solaris*)
-  symcode='[BDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
-  symcode='[ABCDGISTW]'
-fi
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode\)[ 	][ 	]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-  $rm conftest*
-  cat > conftest.c <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  echo "$progname:1635: checking if global_symbol_pipe works" >&5
-  if { (eval echo $progname:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { echo "$progname:1639: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
-
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if egrep ' nm_test_var$' "$nlist" >/dev/null; then
-	if egrep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.c
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
-
-	  cat <<EOF >> conftest.c
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-	  sed 's/^. \(.*\) \(.*\)$/  {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
-	  cat <<\EOF >> conftest.c
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$objext conftstm.$objext
-	  save_LIBS="$LIBS"
-	  save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$objext"
-	  CFLAGS="$CFLAGS$no_builtin_flag"
-	  if { (eval echo $progname:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-	    pipe_works=yes
-	  else
-	    echo "$progname: failed program was:" >&5
-	    cat conftest.c >&5
-	  fi
-	  LIBS="$save_LIBS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.c >&5
-  fi
-  $rm conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    global_symbol_pipe=
-  fi
-done
-if test "$pipe_works" = yes; then
-  echo "${ac_t}ok" 1>&6
-else
-  echo "${ac_t}failed" 1>&6
-fi
-
-if test -z "$global_symbol_pipe"; then
-  global_symbol_to_cdecl=
-fi
-
-# Check hardcoding attributes.
-echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
-   test -n "$runpath_var"; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$hardcode_shlibpath_var" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-echo "$ac_t$hardcode_action" 1>&6
-
-
-reload_flag=
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
-# PORTME Some linkers may need a different reload flag.
-reload_flag='-r'
-echo "$ac_t$reload_flag" 1>&6
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-# PORTME Fill in your ld.so characteristics
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-file_magic_cmd=
-file_magic_test_file=
-deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
-case "$host_os" in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}.so$major'
-  ;;
-
-aix4*)
-  version_type=linux
-  # AIX has no versioning support, so currently we can not hardcode correct
-  # soname into executable. Probably we can add versioning support to
-  # collect2, so additional links can be useful in future.
-  # We preserve .a as extension for shared libraries though AIX4.2
-  # and later linker supports .so
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
-  shlibpath_var=LIBPATH
-  deplibs_check_method=pass_all
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}.so'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  deplibs_check_method=pass_all
-  lt_cv_dlopen="load_add_on"
-  lt_cv_dlopen_libs=
-  lt_cv_dlopen_self=yes
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  file_magic_cmd=/usr/bin/file
-  file_magic_test_file=/shlib/libc.so
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  export_dynamic_flag_spec=-rdynamic
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw*)
-  version_type=windows
-  need_version=no
-  need_lib_prefix=no
-  if test "$with_gcc" = yes; then
-    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
-  else
-    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
-  fi
-  dynamic_linker='Win32 ld.exe'
-  deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  file_magic_cmd='${OBJDUMP} -f'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  lt_cv_dlopen="LoadLibrary"
-  lt_cv_dlopen_libs=
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-  
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case "$version_type" in
-    freebsd-elf*)
-      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
-      file_magic_cmd=/usr/bin/file
-      file_magic_test_file=`echo /usr/lib/libc.so*`
-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      deplibs_check_method=unknown
-      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case "$host_os" in
-  freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  dynamic_linker="$host_os dld.sl"
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  shlibpath_var=SHLIB_PATH
-  shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-  library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
-  soname_spec='${libname}${release}.sl$major'
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6*)
-  version_type=irix
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}.so.$major'
-  library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
-  case "$host_os" in
-  irix5*)
-    libsuff= shlibsuff=
-    # this will be overridden with pass_all, but let us keep it just in case
-    deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
-    ;;
-  *)
-    case "$LD" in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  file_magic_cmd=/usr/bin/file
-  file_magic_test_file=`echo /lib${libsuff}/libc.so*`
-  deplibs_check_method='pass_all'
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-  file_magic_cmd=/usr/bin/file
-  file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-
-  if test -f /lib/ld.so.1; then
-    dynamic_linker='GNU ld.so'
-  else
-    # Only the GNU ld.so supports shared libraries on MkLinux.
-    case "$host_cpu" in
-    powerpc*) dynamic_linker=no ;;
-    *) dynamic_linker='Linux ld.so' ;;
-    esac
-  fi
-  ;;
-
-netbsd*)
-  version_type=sunos
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
-    soname_spec='${libname}${release}.so$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-openbsd*)
-  version_type=sunos
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-    need_version=no
-  fi
-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-os2*)
-  libname_spec='$name'
-  need_lib_prefix=no
-  library_names_spec='$libname.dll $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_version=no
-  soname_spec='${libname}${release}.so'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  # this will be overridden with pass_all, but let us keep it just in case
-  deplibs_check_method='file_magic COFF format alpha shared library'
-  file_magic_cmd=/usr/bin/file
-  file_magic_test_file=/shlib/libc.so
-  deplibs_check_method='pass_all'
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
-  file_magic_cmd=/usr/bin/file
-  file_magic_test_file=/lib/libc.so
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case "$host_vendor" in
-    ncr)
-      deplibs_check_method='pass_all'
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-      file_magic_cmd=/usr/bin/file
-      file_magic_test_file=`echo /usr/lib/libc.so*`
-      ;;
-  esac
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
-    soname_spec='$libname.so.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-echo "$ac_t$dynamic_linker" 1>&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-# Report the final consequences.
-echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
-
-# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
-# configure.in, otherwise build static only libraries.
-case "$host_os" in
-cygwin* | mingw* | os2*)
-  if test x$can_build_shared = xyes; then
-    test x$enable_win32_dll = xno && can_build_shared=no
-    echo "checking if package supports dlls... $can_build_shared" 1>&6
-  fi
-;;
-esac
-
-if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
-  case "$deplibs_check_method" in
-  "file_magic "*)
-    file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-    if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-       egrep "$file_magic_regex" > /dev/null; then
-      :
-    else
-      cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-    fi ;;
-  esac
-fi
-
-echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-
-echo "$ac_t$enable_shared" 1>&6
-
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-
-echo "checking whether to build static libraries... $enable_static" 1>&6
-
-if test "$hardcode_action" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-echo $ac_n "checking for objdir... $ac_c" 1>&6
-rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-echo "$ac_t$objdir" 1>&6
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
-  lt_cv_dlopen=no lt_cv_dlopen_libs=
-echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "$progname:2212: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldl  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2220 "ltconfig"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo $progname:2233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "$progname:2252: checking for dlopen" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2257 "ltconfig"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-dlopen();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo $progname:2282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_dlopen=yes"
-else
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_dlopen=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="dlopen"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "$progname:2299: checking for dld_link in -ldld" >&5
-ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldld  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2307 "ltconfig"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link();
-
-int main() {
-dld_link()
-; return 0; }
-EOF
-if { (eval echo $progname:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "$progname:2339: checking for shl_load" >&5
-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2344 "ltconfig"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-shl_load();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo $progname:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_shl_load=yes"
-else
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_shl_load=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="shl_load"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "$progname:2387: checking for shl_load in -ldld" >&5
-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldld  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2395 "ltconfig"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load();
-
-int main() {
-shl_load()
-; return 0; }
-EOF
-if { (eval echo $progname:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-    
-fi
-
-  
-fi
-
-
-fi
-
-fi
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  fi
-
-  case "$lt_cv_dlopen" in
-  dlopen)
-for ac_hdr in dlfcn.h; do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "$progname:2452: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2457 "ltconfig"
-#include <$ac_hdr>
-int fnord = 0;
-EOF
-ac_try="$ac_compile >/dev/null 2>conftest.out"
-{ (eval echo $progname:2462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-    if test "x$ac_cv_header_dlfcn_h" = xyes; then
-      CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-    fi
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-  echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:2490: checking whether a program can dlopen itself" >&5
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    lt_cv_dlopen_self=cross
-  else
-    cat > conftest.c <<EOF
-#line 2498 "ltconfig"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL	RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-#  define LTDL_GLOBAL	DL_GLOBAL
-# else
-#  define LTDL_GLOBAL	0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-#  define LTDL_LAZY_OR_NOW	RTLD_LAZY
-# else
-#  ifdef DL_LAZY
-#   define LTDL_LAZY_OR_NOW	DL_LAZY
-#  else
-#   ifdef RTLD_NOW
-#    define LTDL_LAZY_OR_NOW	RTLD_NOW
-#   else
-#    ifdef DL_NOW
-#     define LTDL_LAZY_OR_NOW	DL_NOW
-#    else
-#     define LTDL_LAZY_OR_NOW	0
-#    endif
-#   endif
-#  endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
-    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
-	       if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
-
-EOF
-if { (eval echo $progname:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
-  lt_cv_dlopen_self=yes
-else
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  lt_cv_dlopen_self=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self" 1>&6
-
-  if test "$lt_cv_dlopen_self" = yes; then
-    LDFLAGS="$LDFLAGS $link_static_flag"
-  echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:2563: checking whether a statically linked program can dlopen itself" >&5
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    lt_cv_dlopen_self_static=cross
-  else
-    cat > conftest.c <<EOF
-#line 2571 "ltconfig"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL	RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-#  define LTDL_GLOBAL	DL_GLOBAL
-# else
-#  define LTDL_GLOBAL	0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-#  define LTDL_LAZY_OR_NOW	RTLD_LAZY
-# else
-#  ifdef DL_LAZY
-#   define LTDL_LAZY_OR_NOW	DL_LAZY
-#  else
-#   ifdef RTLD_NOW
-#    define LTDL_LAZY_OR_NOW	RTLD_NOW
-#   else
-#    ifdef DL_NOW
-#     define LTDL_LAZY_OR_NOW	DL_NOW
-#    else
-#     define LTDL_LAZY_OR_NOW	0
-#    endif
-#   endif
-#  endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
-    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
-    if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
-
-EOF
-if { (eval echo $progname:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
-  lt_cv_dlopen_self_static=yes
-else
-  echo "$progname: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  lt_cv_dlopen_self_static=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
-fi
-    ;;
-  esac
-
-  case "$lt_cv_dlopen_self" in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case "$lt_cv_dlopen_self_static" in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-# Copy echo and quote the copy, instead of the original, because it is
-# used later.
-ltecho="$echo"
-if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   ltecho="$CONFIG_SHELL \$0 --fallback-echo"
-fi
-LTSHELL="$SHELL"
-
-LTCONFIG_VERSION="$VERSION"
-
-# Only quote variables if we're using ltmain.sh.
-case "$ltmain" in
-*.sh)
-  # Now quote all the things that may contain metacharacters.
-  for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
-    old_LD old_LDFLAGS old_LIBS \
-    old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
-    AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
-    reload_flag reload_cmds wl \
-    pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
-    thread_safe_flag_spec whole_archive_flag_spec libname_spec \
-    library_names_spec soname_spec \
-    RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
-    old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
-    file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
-    finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
-    hardcode_libdir_flag_spec hardcode_libdir_separator  \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
-
-    case "$var" in
-    reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case "$ltecho" in
-  *'\$0 --fallback-echo"')
-    ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-  trap "$rm \"$ofile\"; exit 1" 1 2 15
-  echo "creating $ofile"
-  $rm "$ofile"
-  cat <<EOF > "$ofile"
-#! $SHELL
-
-# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
-#
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="sed -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-### BEGIN LIBTOOL CONFIG
-EOF
-  cfgfile="$ofile"
-  ;;
-
-*)
-  # Double-quote the variables that need it (for aesthetics).
-  for var in old_CC old_CFLAGS old_CPPFLAGS \
-    old_LD old_LDFLAGS old_LIBS \
-    old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
-    eval "$var=\\\"\$var\\\""
-  done
-
-  # Just create a config file.
-  cfgfile="$ofile.cfg"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  echo "creating $cfgfile"
-  $rm "$cfgfile"
-  cat <<EOF > "$cfgfile"
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-EOF
-  ;;
-esac
-
-cat <<EOF >> "$cfgfile"
-# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
-# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
-# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
-# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
-#   $0$ltconfig_args
-#
-# Compiler and other test output produced by $progname, useful for
-# debugging $progname, is in ./config.log if it exists.
-
-# The version of $progname that generated this script.
-LTCONFIG_VERSION=$LTCONFIG_VERSION
-
-# Shell to use when invoking shell scripts.
-SHELL=$LTSHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$ltecho
-
-# The archiver.
-AR=$AR
-
-# The default C compiler.
-CC=$CC
-
-# The linker used to build libraries.
-LD=$LD
-
-# Whether we need hard or soft links.
-LN_S=$LN_S
-
-# A BSD-compatible nm program.
-NM=$NM
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$reload_flag
-reload_cmds=$reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$wl
-
-# Object file suffix (normally "o").
-objext="$objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$pic_flag
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$compiler_c_o
-
-# Can we write directly to a .lo ?
-compiler_o_lo=$compiler_o_lo
-
-# Must we lock files when doing compilation ?
-need_locks=$need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$link_static_flag
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$RANLIB
-old_archive_cmds=$old_archive_cmds
-old_postinstall_cmds=$old_postinstall_cmds
-old_postuninstall_cmds=$old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$old_archive_from_new_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$archive_cmds
-archive_expsym_cmds=$archive_expsym_cmds
-postinstall_cmds=$postinstall_cmds
-postuninstall_cmds=$postuninstall_cmds
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$global_symbol_to_cdecl
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$include_expsyms
-
-EOF
-
-case "$ltmain" in
-*.sh)
-  echo '### END LIBTOOL CONFIG' >> "$ofile"
-  echo >> "$ofile"
-  case "$host_os" in
-  aix3*)
-    cat <<\EOF >> "$ofile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # Append the ltmain.sh script.
-  sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-
-  chmod +x "$ofile"
-  ;;
-
-*)
-  # Compile the libtool program.
-  echo "FIXME: would compile $ltmain"
-  ;;
-esac
-
-test -n "$cache_file" || exit 0
-
-# AC_CACHE_SAVE
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
-  if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-exit 0
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/glib/ltmain.sh b/glib/ltmain.sh
deleted file mode 100644
index 50515ad..0000000
--- a/glib/ltmain.sh
+++ /dev/null
@@ -1,4012 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun ltconfig.
-#
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The name of this program.
-progname=`$echo "$0" | sed 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.3.4
-TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-SP2NL='tr \040 \012'
-NL2SP='tr \015\012 \040\040'
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-if test "$LTCONFIG_VERSION" != "$VERSION"; then
-  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
-  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  echo "$modename: not configured to build any kind of library" 1>&2
-  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-# Parse our command line options once, thoroughly.
-while test $# -gt 0
-do
-  arg="$1"
-  shift
-
-  case "$arg" in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case "$prev" in
-    execute_dlfiles)
-      eval "$prev=\"\$$prev \$arg\""
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case "$arg" in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    exit 0
-    ;;
-
-  --config)
-    sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
-    exit 0
-    ;;
-
-  --debug)
-    echo "$progname: enabling shell trace mode"
-    set -x
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --features)
-    echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      echo "enable shared libraries"
-    else
-      echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      echo "enable static libraries"
-    else
-      echo "disable static libraries"
-    fi
-    exit 0
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --quiet | --silent)
-    show=:
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-fi
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    case "$nonopt" in
-    *cc | *++ | gcc* | *-gcc*)
-      mode=link
-      for arg
-      do
-	case "$arg" in
-	-c)
-	   mode=compile
-	   break
-	   ;;
-	esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-	if test -n "$nonopt"; then
-	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-	else
-	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-	fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case "$mode" in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    lastarg=
-    srcfile="$nonopt"
-    suppress_output=
-
-    user_target=no
-    for arg
-    do
-      # Accept any command-line options.
-      case "$arg" in
-      -o)
-	if test "$user_target" != "no"; then
-	  $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-	  exit 1
-	fi
-	user_target=next
-	;;
-
-      -static)
-	build_old_libs=yes
-	continue
-	;;
-      esac
-
-      case "$user_target" in
-      next)
-	# The next one is the -o target name
-	user_target=yes
-	continue
-	;;
-      yes)
-	# We got the output file
-	user_target=set
-	libobj="$arg"
-	continue
-	;;
-      esac
-
-      # Accept the current argument as the source file.
-      lastarg="$srcfile"
-      srcfile="$arg"
-
-      # Aesthetically quote the previous argument.
-
-      # Backslashify any backslashes, double quotes, and dollar signs.
-      # These are the only characters that are still specially
-      # interpreted inside of double-quoted scrings.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly in scan
-      # sets, so we specify it separately.
-      case "$lastarg" in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	lastarg="\"$lastarg\""
-	;;
-      esac
-
-      # Add the previous argument to base_compile.
-      if test -z "$base_compile"; then
-	base_compile="$lastarg"
-      else
-	base_compile="$base_compile $lastarg"
-      fi
-    done
-
-    case "$user_target" in
-    set)
-      ;;
-    no)
-      # Get the name of the library object.
-      libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    *)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit 1
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSfmso]'
-    case "$libobj" in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case "$libobj" in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit 1
-      ;;
-    esac
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $libobj"
-    else
-      removelist="$libobj"
-    fi
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit 1" 1 2 15
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit 1" 1 2 15
-    else
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until ln "$0" "$lockfile" 2>/dev/null; do
-	$show "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-	echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit 1
-      fi
-      echo $srcfile > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      # All platforms use -DPIC, to notify preprocessed assembler code.
-      command="$base_compile $srcfile $pic_flag -DPIC"
-      if test "$build_old_libs" = yes; then
-	lo_libobj="$libobj"
-	dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
-	if test "X$dir" = "X$libobj"; then
-	  dir="$objdir"
-	else
-	  dir="$dir/$objdir"
-	fi
-	libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
-
-	if test -d "$dir"; then
-	  $show "$rm $libobj"
-	  $run $rm $libobj
-	else
-	  $show "$mkdir $dir"
-	  $run $mkdir $dir
-	  status=$?
-	  if test $status -ne 0 && test ! -d $dir; then
-	    exit $status
-	  fi
-	fi
-      fi
-      if test "$compiler_o_lo" = yes; then
-	output_obj="$libobj"
-	command="$command -o $output_obj"
-      elif test "$compiler_c_o" = yes; then
-	output_obj="$obj"
-	command="$command -o $output_obj"
-      fi
-
-      $run $rm "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	test -n "$output_obj" && $run $rm $removelist
-	exit 1
-      fi
-
-      if test "$need_locks" = warn &&
-	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
-	echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit 1
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test x"$output_obj" != x"$libobj"; then
-	$show "$mv $output_obj $libobj"
-	if $run $mv $output_obj $libobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # If we have no pic_flag, then copy the object into place and finish.
-      if test -z "$pic_flag" && test "$build_old_libs" = yes; then
-	# Rename the .lo from within objdir to obj
-	if test -f $obj; then
-	  $show $rm $obj
-	  $run $rm $obj
-	fi
-
-	$show "$mv $libobj $obj"
-	if $run $mv $libobj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-
-	xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-	if test "X$xdir" = "X$obj"; then
-	  xdir="."
-	else
-	  xdir="$xdir"
-	fi
-	baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
-	libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
-	# Now arrange that obj and lo_libobj become the same file
-	$show "(cd $xdir && $LN_S $baseobj $libobj)"
-	if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
-	  exit 0
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Allow error messages only from the first compilation.
-      suppress_output=' >/dev/null 2>&1'
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      command="$base_compile $srcfile"
-      if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
-	output_obj="$obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	$run $rm $removelist
-	exit 1
-      fi
-
-      if test "$need_locks" = warn &&
-	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
-	echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit 1
-      fi
-
-      # Just move the object if needed
-      if test x"$output_obj" != x"$obj"; then
-	$show "$mv $output_obj $obj"
-	if $run $mv $output_obj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Create an invalid libtool object if no PIC, so that we do not
-      # accidentally link it into a program.
-      if test "$build_libtool_libs" != yes; then
-	$show "echo timestamp > $libobj"
-	$run eval "echo timestamp > \$libobj" || exit $?
-      else
-	# Move the .lo from within objdir
-	$show "$mv $libobj $lo_libobj"
-	if $run $mv $libobj $lo_libobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-    fi
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $rm "$lockfile"
-    fi
-
-    exit 0
-    ;;
-
-  # libtool link mode
-  link)
-    modename="$modename: link"
-    case "$host" in
-    *-*-cygwin* | *-*-mingw* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invokation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-
-      # This is a source program that is used to create dlls on Windows
-      # Don't remove nor modify the starting and closing comments
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-      # This is a source program that is used to create import libraries
-      # on Windows for dlls which lack them. Don't remove nor modify the
-      # starting and closing comments
-# /* impgen.c starts here */
-# /*   Copyright (C) 1999 Free Software Foundation, Inc.
-# 
-#  This file is part of GNU libtool.
-# 
-#  This program is free software; you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-# 
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-# 
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#  */
-# 
-#  #include <stdio.h>		/* for printf() */
-#  #include <unistd.h>		/* for open(), lseek(), read() */
-#  #include <fcntl.h>		/* for O_RDONLY, O_BINARY */
-#  #include <string.h>		/* for strdup() */
-# 
-#  static unsigned int
-#  pe_get16 (fd, offset)
-#       int fd;
-#       int offset;
-#  {
-#    unsigned char b[2];
-#    lseek (fd, offset, SEEK_SET);
-#    read (fd, b, 2);
-#    return b[0] + (b[1]<<8);
-#  }
-# 
-#  static unsigned int
-#  pe_get32 (fd, offset)
-#      int fd;
-#      int offset;
-#  {
-#    unsigned char b[4];
-#    lseek (fd, offset, SEEK_SET);
-#    read (fd, b, 4);
-#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-#  }
-# 
-#  static unsigned int
-#  pe_as32 (ptr)
-#       void *ptr;
-#  {
-#    unsigned char *b = ptr;
-#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-#  }
-# 
-#  int
-#  main (argc, argv)
-#      int argc;
-#      char *argv[];
-#  {
-#      int dll;
-#      unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
-#      unsigned long export_rva, export_size, nsections, secptr, expptr;
-#      unsigned long name_rvas, nexp;
-#      unsigned char *expdata, *erva;
-#      char *filename, *dll_name;
-# 
-#      filename = argv[1];
-# 
-#      dll = open(filename, O_RDONLY|O_BINARY);
-#      if (!dll)
-#  	return 1;
-# 
-#      dll_name = filename;
-#    
-#      for (i=0; filename[i]; i++)
-#  	if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
-#  	    dll_name = filename + i +1;
-# 
-#      pe_header_offset = pe_get32 (dll, 0x3c);
-#      opthdr_ofs = pe_header_offset + 4 + 20;
-#      num_entries = pe_get32 (dll, opthdr_ofs + 92);
-# 
-#      if (num_entries < 1) /* no exports */
-#  	return 1;
-# 
-#      export_rva = pe_get32 (dll, opthdr_ofs + 96);
-#      export_size = pe_get32 (dll, opthdr_ofs + 100);
-#      nsections = pe_get16 (dll, pe_header_offset + 4 +2);
-#      secptr = (pe_header_offset + 4 + 20 +
-#  	      pe_get16 (dll, pe_header_offset + 4 + 16));
-# 
-#      expptr = 0;
-#      for (i = 0; i < nsections; i++)
-#      {
-#  	char sname[8];
-#  	unsigned long secptr1 = secptr + 40 * i;
-#  	unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
-#  	unsigned long vsize = pe_get32 (dll, secptr1 + 16);
-#  	unsigned long fptr = pe_get32 (dll, secptr1 + 20);
-#  	lseek(dll, secptr1, SEEK_SET);
-#  	read(dll, sname, 8);
-#  	if (vaddr <= export_rva && vaddr+vsize > export_rva)
-#  	{
-#  	    expptr = fptr + (export_rva - vaddr);
-#  	    if (export_rva + export_size > vaddr + vsize)
-#  		export_size = vsize - (export_rva - vaddr);
-#  	    break;
-#  	}
-#      }
-# 
-#      expdata = (unsigned char*)malloc(export_size);
-#      lseek (dll, expptr, SEEK_SET);
-#      read (dll, expdata, export_size);
-#      erva = expdata - export_rva;
-# 
-#      nexp = pe_as32 (expdata+24);
-#      name_rvas = pe_as32 (expdata+32);
-# 
-#      printf ("EXPORTS\n");
-#      for (i = 0; i<nexp; i++)
-#      {
-#  	unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
-#  	printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
-#      }
-# 
-#      return 0;
-#  }
-# /* impgen.c ends here */
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    compile_command="$nonopt"
-    finalize_command="$nonopt"
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    linkopts=
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      lib_search_path=
-    fi
-    # now prepend the system-specific ones
-    eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-    
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    link_against_libtool_libs=
-    ltlibs=
-    module=no
-    objs=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case "$arg" in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	else
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	fi
-	build_libtool_libs=no
-	build_old_libs=yes
-	prefer_static_libs=yes
-	break
-	;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test $# -gt 0; do
-      arg="$1"
-      shift
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case "$prev" in
-	output)
-	  compile_command="$compile_command @OUTPUT@"
-	  finalize_command="$finalize_command @OUTPUT@"
-	  ;;
-	esac
-
-	case "$prev" in
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    compile_command="$compile_command @SYMFILE@"
-	    finalize_command="$finalize_command @SYMFILE@"
-	    preload=yes
-	  fi
-	  case "$arg" in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
-	    else
-	      dlprefiles="$dlprefiles $arg"
-	    fi
-	    prev=
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  if test ! -f "$arg"; then
-	    $echo "$modename: symbol file \`$arg' does not exist"
-	    exit 1
-	  fi
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case "$arg" in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    $echo "$modename: only absolute run-paths are allowed" 1>&2
-	    exit 1
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	*)
-	  eval "$prev=\"\$arg\""
-	  prev=
-	  continue
-	  ;;
-	esac
-      fi
-
-      prevarg="$arg"
-
-      case "$arg" in
-      -all-static)
-	if test -n "$link_static_flag"; then
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-	continue
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  $echo "$modename: not more than one -exported-symbols argument allowed"
-	  exit 1
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -L*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-	# We need an absolute path.
-	case "$dir" in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  if test -z "$absdir"; then
-	    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	    absdir="$dir"
-	  fi
-	  dir="$absdir"
-	  ;;
-	esac
-	case " $deplibs " in
-	*" $arg "*) ;;
-	*) deplibs="$deplibs $arg";;
-	esac
-	case " $lib_search_path " in
-	*" $dir "*) ;;
-	*) lib_search_path="$lib_search_path $dir";;
-	esac
-	case "$host" in
-	*-*-cygwin* | *-*-mingw* | *-*-os2*)
-	  dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
-	  case ":$dllsearchpath:" in
-	  ::) dllsearchpath="$dllsearchdir";;
-	  *":$dllsearchdir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
-	  esac
-	  ;;
-	esac
-	;;
-
-      -l*)
-	if test "$arg" = "-lc"; then
-	  case "$host" in
-	  *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
-	    # These systems don't actually have c library (as such)
-	    continue
-	    ;;
-	  esac
-	elif test "$arg" = "-lm"; then
-	  case "$host" in
-	  *-*-cygwin* | *-*-beos*)
-	    # These systems don't actually have math library (as such)
-	    continue
-	    ;;
-	  esac
-	fi
-	deplibs="$deplibs $arg"
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-	# We need an absolute path.
-	case "$dir" in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  $echo "$modename: only absolute run-paths are allowed" 1>&2
-	  exit 1
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
-	esac
-	continue
-	;;
-
-      -static)
-	# If we have no pic_flag, then this is the same as -all-static.
-	if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -thread-safe)
-	thread_safe=yes
-	continue
-	;;
-
-      -version-info)
-	prev=vinfo
-	continue
-	;;
-
-      # Some other compiler flag.
-      -* | +*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case "$arg" in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-
-      *.o | *.obj | *.a | *.lib)
-	# A standard object.
-	objs="$objs $arg"
-	;;
-
-      *.lo)
-	# A library object.
-	if test "$prev" = dlfiles; then
-	  dlfiles="$dlfiles $arg"
-	  if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
-	    prev=
-	    continue
-	  else
-	    # If libtool objects are unsupported, then we need to preload.
-	    prev=dlprefiles
-	  fi
-	fi
-
-	if test "$prev" = dlprefiles; then
-	  # Preload the old-style object.
-	  dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
-	  prev=
-	fi
-	libobjs="$libobjs $arg"
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	dlname=
-	libdir=
-	library_names=
-	old_library=
-
-	# Check to see that this really is a libtool archive.
-	if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
-	  exit 1
-	fi
-
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variable installed.
-	installed=yes
-
-	# Read the .la file
-	# If there is no directory component, then add one.
-	case "$arg" in
-	*/* | *\\*) . $arg ;;
-	*) . ./$arg ;;
-	esac
-
-	# Get the name of the library we link against.
-	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
-
-	if test -z "$linklib"; then
-	  $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
-	  exit 1
-	fi
-
-	# Find the relevant object directory and library name.
-	name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
-
-	if test "X$installed" = Xyes; then
-	  dir="$libdir"
-	else
-	  dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$dir" = "X$arg"; then
-	    dir="$objdir"
-	  else
-	    dir="$dir/$objdir"
-	  fi
-	fi
-
-	if test -n "$dependency_libs"; then
-	  # Extract -R and -L from dependency_libs
-	  temp_deplibs=
-	  for deplib in $dependency_libs; do
-	    case "$deplib" in
-	    -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-		 case " $rpath $xrpath " in
-		 *" $temp_xrpath "*) ;;
-		 *) xrpath="$xrpath $temp_xrpath";;
-		 esac;;
-	    -L*) case "$compile_command $temp_deplibs " in
-		 *" $deplib "*) ;;
-		 *) temp_deplibs="$temp_deplibs $deplib";;
-		 esac
-		 temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-		 case " $lib_search_path " in
-		 *" $temp_dir "*) ;;
-		 *) lib_search_path="$lib_search_path $temp_dir";;
-		 esac
-		 ;;
-	    *) temp_deplibs="$temp_deplibs $deplib";;
-	    esac
-	  done
-	  dependency_libs="$temp_deplibs"
-	fi
-
-	if test -z "$libdir"; then
-	  # It is a libtool convenience library, so add in its objects.
-	  convenience="$convenience $dir/$old_library"
-	  old_convenience="$old_convenience $dir/$old_library"
-	  deplibs="$deplibs$dependency_libs"
-	  compile_command="$compile_command $dir/$old_library$dependency_libs"
-	  finalize_command="$finalize_command $dir/$old_library$dependency_libs"
-	  continue
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$prev" = dlfiles; then
-	  dlfiles="$dlfiles $arg"
-	  if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking statically,
-	    # we need to preload.
-	    prev=dlprefiles
-	  else
-	    # We should not create a dependency on this library, but we
-	    # may need any libraries it requires.
-	    compile_command="$compile_command$dependency_libs"
-	    finalize_command="$finalize_command$dependency_libs"
-	    prev=
-	    continue
-	  fi
-	fi
-
-	# The library was specified with -dlpreopen.
-	if test "$prev" = dlprefiles; then
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    dlprefiles="$dlprefiles $dir/$old_library"
-	  else
-	    dlprefiles="$dlprefiles $dir/$linklib"
-	  fi
-	  prev=
-	fi
-
-	if test -n "$library_names" &&
-	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	  link_against_libtool_libs="$link_against_libtool_libs $arg"
-	  if test -n "$shlibpath_var"; then
-	    # Make sure the rpath contains only unique directories.
-	    case "$temp_rpath " in
-	    *" $dir "*) ;;
-	    *) temp_rpath="$temp_rpath $dir" ;;
-	    esac
-	  fi
-
-	  # We need an absolute path.
-	  case "$dir" in
-	  [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-	  *)
-	    absdir=`cd "$dir" && pwd`
-	    if test -z "$absdir"; then
-	      $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-	      $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	      absdir="$dir"
-	    fi
-	    ;;
-	  esac
-	  
-	  # This is the magic to use -rpath.
-	  # Skip directories that are in the system default run-time
-	  # search path, unless they have been requested with -R.
-	  case " $sys_lib_dlsearch_path " in
-	  *" $absdir "*) ;;
-	  *)
-	    case "$compile_rpath " in
-	    *" $absdir "*) ;;
-	    *) compile_rpath="$compile_rpath $absdir" 
-	    esac
-	    ;;
-	  esac
-
-	  case " $sys_lib_dlsearch_path " in
-	  *" $libdir "*) ;;
-	  *)
-	    case "$finalize_rpath " in
-	    *" $libdir "*) ;;
-	    *) finalize_rpath="$finalize_rpath $libdir"
-	    esac
-	    ;;
-	  esac
-
-	  lib_linked=yes
-	  case "$hardcode_action" in
-	  immediate | unsupported)
-	    if test "$hardcode_direct" = no; then
-	      compile_command="$compile_command $dir/$linklib"
-	      deplibs="$deplibs $dir/$linklib"
-	      case "$host" in
-	      *-*-cygwin* | *-*-mingw* | *-*-os2*)
-		dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
-		if test -n "$dllsearchpath"; then
-		  dllsearchpath="$dllsearchpath:$dllsearchdir"
-		else
-		  dllsearchpath="$dllsearchdir"
-		fi
-		;;
-	      esac
-	    elif test "$hardcode_minus_L" = no; then
-	      case "$host" in
-	      *-*-sunos*)
-		compile_shlibpath="$compile_shlibpath$dir:"
-		;;
-	      esac
-	      case "$compile_command " in
-	      *" -L$dir "*) ;;
-	      *) compile_command="$compile_command -L$dir";;
-	      esac
-	      compile_command="$compile_command -l$name"
-	      deplibs="$deplibs -L$dir -l$name"
-	    elif test "$hardcode_shlibpath_var" = no; then
-	      case ":$compile_shlibpath:" in
-	      *":$dir:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$dir:";;
-	      esac
-	      compile_command="$compile_command -l$name"
-	      deplibs="$deplibs -l$name"
-	    else
-	      lib_linked=no
-	    fi
-	    ;;
-
-	  relink)
-	    if test "$hardcode_direct" = yes; then
-	      compile_command="$compile_command $absdir/$linklib"
-	      deplibs="$deplibs $absdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      case "$compile_command " in
-	      *" -L$absdir "*) ;;
-	      *) compile_command="$compile_command -L$absdir";;
-	      esac
-	      compile_command="$compile_command -l$name"
-	      deplibs="$deplibs -L$absdir -l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case ":$compile_shlibpath:" in
-	      *":$absdir:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$absdir:";;
-	      esac
-	      compile_command="$compile_command -l$name"
-	      deplibs="$deplibs -l$name"
-	    else
-	      lib_linked=no
-	    fi
-	    ;;
-
-	  *)
-	    lib_linked=no
-	    ;;
-	  esac
-
-	  if test "$lib_linked" != yes; then
-	    $echo "$modename: configuration error: unsupported hardcode properties"
-	    exit 1
-	  fi
-
-	  # Finalize command for both is simple: just hardcode it.
-	  if test "$hardcode_direct" = yes; then
-	    finalize_command="$finalize_command $libdir/$linklib"
-	  elif test "$hardcode_minus_L" = yes; then
-	    case "$finalize_command " in
-	    *" -L$libdir "*) ;;
-	    *) finalize_command="$finalize_command -L$libdir";;
-	    esac
-	    finalize_command="$finalize_command -l$name"
-	  elif test "$hardcode_shlibpath_var" = yes; then
-	    case ":$finalize_shlibpath:" in
-	    *":$libdir:"*) ;;
-	    *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
-	    esac
-	    finalize_command="$finalize_command -l$name"
-	  else
-	    # We cannot seem to hardcode it, guess we'll fake it.
-	    case "$finalize_command " in
-	    *" -L$dir "*) ;;
-	    *) finalize_command="$finalize_command -L$libdir";;
-	    esac
-	    finalize_command="$finalize_command -l$name"
-	  fi
-	else
-	  # Transform directly to old archives if we don't build new libraries.
-	  if test -n "$pic_flag" && test -z "$old_library"; then
-	    $echo "$modename: cannot find static library for \`$arg'" 1>&2
-	    exit 1
-	  fi
-
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_command="$compile_command $dir/$linklib"
-	    finalize_command="$finalize_command $dir/$linklib"
-	  else
-	    case "$compile_command " in
-	    *" -L$dir "*) ;;
-	    *) compile_command="$compile_command -L$dir";;
-	    esac
-	    compile_command="$compile_command -l$name"
-	    case "$finalize_command " in
-	    *" -L$dir "*) ;;
-	    *) finalize_command="$finalize_command -L$dir";;
-	    esac
-	    finalize_command="$finalize_command -l$name"
-	  fi
-	fi
-
-	# Add in any libraries that this one depends upon.
-	compile_command="$compile_command$dependency_libs"
-	finalize_command="$finalize_command$dependency_libs"
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case "$arg" in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-      esac
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-      fi
-    done
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    case "$output" in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-      ;;
-
-    *.a | *.lib)
-      if test -n "$link_against_libtool_libs"; then
-	$echo "$modename: error: cannot link libtool libraries into archives" 1>&2
-	exit 1
-      fi
-
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      ;;
-
-    *.la)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case "$outputname" in
-      lib*)
-	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	if test "$module" = no; then
-	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	  eval libname=\"$libname_spec\"
-	else
-	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	fi
-	;;
-      esac
-
-      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$output_objdir" = "X$output"; then
-	output_objdir="$objdir"
-      else
-	output_objdir="$output_objdir/$objdir"
-      fi
-
-      if test -n "$objs"; then
-	$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
-	exit 1
-      fi
-
-      # How the heck are we supposed to write a wrapper for a shared library?
-      if test -n "$link_against_libtool_libs"; then
-	 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
-	 exit 1
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test $# -gt 2; then
-	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      oldlibs=
-      if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
-	  # Building a libtool convenience library.
-	  libext=al
-	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-	  build_libtool_libs=convenience
-	  build_old_libs=yes
-	fi
-	dependency_libs="$deplibs"
-
-	if test -n "$vinfo"; then
-	  $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
-	fi
-
-	if test -n "$release"; then
-	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-	fi
-      else
-
-	# Parse the version information argument.
-	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	IFS="$save_ifs"
-
-	if test -n "$8"; then
-	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	current="$2"
-	revision="$3"
-	age="$4"
-
-	# Check that each of the things are valid numbers.
-	case "$current" in
-	0 | [1-9] | [1-9][0-9]*) ;;
-	*)
-	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case "$revision" in
-	0 | [1-9] | [1-9][0-9]*) ;;
-	*)
-	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case "$age" in
-	0 | [1-9] | [1-9][0-9]*) ;;
-	*)
-	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	if test $age -gt $current; then
-	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	fi
-
-	# Calculate the version variables.
-	major=
-	versuffix=
-	verstring=
-	case "$version_type" in
-	none) ;;
-
-	irix)
-	  major=`expr $current - $age + 1`
-	  versuffix="$major.$revision"
-	  verstring="sgi$major.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$revision
-	  while test $loop != 0; do
-	    iface=`expr $revision - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="sgi$major.$iface:$verstring"
-	  done
-	  ;;
-
-	linux)
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  major=`expr $current - $age`
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$age
-	  while test $loop != 0; do
-	    iface=`expr $current - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current";
-	  ;;
-
-	windows)
-	  # Like Linux, but with '-' rather than '.', since we only
-	  # want one extension on Windows 95.
-	  major=`expr $current - $age`
-	  versuffix="-$major-$age-$revision"
-	  ;;
-
-	*)
-	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
-	  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	# Clear the version info if we defaulted, and they specified a release.
-	if test -z "$vinfo" && test -n "$release"; then
-	  major=
-	  verstring="0.0"
-	  if test "$need_version" = no; then
-	    versuffix=
-	  else
-	    versuffix=".0.0"
-	  fi
-	fi
-
-	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
-	  major=
-	  versuffix=
-	  verstring=""
-	fi
-	
-	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-
-	dependency_libs="$deplibs"
-	case "$host" in
-	*-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
-	  # these systems don't actually have a c library (as such)!
-	  ;;
-	*)
-	  # Add libc to deplibs on all other systems.
-	  deplibs="$deplibs -lc"
-	  ;;
-	esac
-      fi
-
-      # Create the output directory, or remove our outputs if we need to.
-      if test -d $output_objdir; then
-	$show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
-	$run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
-      else
-	$show "$mkdir $output_objdir"
-	$run $mkdir $output_objdir
-	status=$?
-	if test $status -ne 0 && test ! -d $output_objdir; then
-	  exit $status
-	fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      if test "$build_libtool_libs" = yes; then
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case "$deplibs_check_method" in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behaviour.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $rm conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $rm conftest
-	  $CC -o conftest conftest.c $deplibs
-	  if test $? -eq 0 ; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-	      if test "$name" != "" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		set dummy $deplib_matches
-		deplib_match=$2
-		if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		  newdeplibs="$newdeplibs $i"
-		else
-		  droppeddeps=yes
-		  echo
-		  echo "*** Warning: This library needs some functionality provided by $i."
-		  echo "*** I have the capability to make that library automatically link in when"
-		  echo "*** you link to this library.  But I can only do this if you have a"
-		  echo "*** shared version of the library, which you do not appear to have."
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  else
-	    # Error occured in the first compile.  Let's try to salvage the situation:
-	    # Compile a seperate program for each library.
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	     # If $name is empty we are operating on a -L argument.
-	      if test "$name" != "" ; then
-		$rm conftest
-		$CC -o conftest conftest.c $i
-		# Did it work?
-		if test $? -eq 0 ; then
-		  ldd_output=`ldd conftest`
-		  libname=`eval \\$echo \"$libname_spec\"`
-		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		  set dummy $deplib_matches
-		  deplib_match=$2
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$newdeplibs $i"
-		  else
-		    droppeddeps=yes
-		    echo
-		    echo "*** Warning: This library needs some functionality provided by $i."
-		    echo "*** I have the capability to make that library automatically link in when"
-		    echo "*** you link to this library.  But I can only do this if you have a"
-		    echo "*** shared version of the library, which you do not appear to have."
-		  fi
-		else
-		  droppeddeps=yes
-		  echo
-		  echo "*** Warning!  Library $i is needed by this library but I was not able to"
-		  echo "***  make it link in!  You will probably need to install it or some"
-		  echo "*** library that it depends on before this library will be fully"
-		  echo "*** functional.  Installing it before continuing would be even better."
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method
-	  file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-	    if test "$name" != "" ; then
-	      libname=`eval \\$echo \"$libname_spec\"`
-	      for i in $lib_search_path; do
-		    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		    for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null \
-			 | grep " -> " >/dev/null; then
-			continue 
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | sed 's/.* -> //'`
-			case "$potliblink" in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-			 | sed 10q \
-			 | egrep "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		    done
-	      done
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		echo
-		echo "*** Warning: This library needs some functionality provided by $a_deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have."
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-	       -e 's/ -[LR][^ ]*//g' -e 's/[ 	]//g' |
-	     grep . >/dev/null; then
-	    echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	  fi
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
-	    echo
-	    echo "*** Warning: libtool could not satisfy all declared inter-library"
-	    echo "*** dependencies of module $libname.  Therefore, libtool will create"
-	    echo "*** a static module, that should work as long as the dlopening"
-	    echo "*** application is linked with the -dlopen flag."
-	    if test -z "$global_symbol_pipe"; then
-	      echo
-	      echo "*** However, this would only work if libtool was able to extract symbol"
-	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      echo "*** not find such a program.  So, this module is probably useless."
-	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
-	      build_libtool_libs=module
-	      build_old_libs=yes
-	    else
-	      build_libtool_libs=no
-	    fi
-	  else
-	    echo "*** The inter-library dependencies that have been dropped here will be"
-	    echo "*** automatically added whenever a program is linked with this library"
-	    echo "*** or is declared to -dlopen it."
-	  fi
-	fi
-	# Done checking deplibs!
-	deplibs=$newdeplibs
-      fi
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-      
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	# Get the real and link names of the library.
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	realname="$2"
-	shift; shift
-
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-
-	lib="$output_objdir/$realname"
-	for link
-	do
-	  linknames="$linknames $link"
-	done
-
-	# Ensure that we have .o objects for linkers which dislike .lo
-	# (e.g. aix) in case we are running --disable-static
-	for obj in $libobjs; do
-	  xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$xdir" = "X$obj"; then
-	    xdir="."
-	  else
-	    xdir="$xdir"
-	  fi
-	  baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-	  oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-	  if test ! -f $xdir/$oldobj; then
-	    $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
-	    $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
-	  fi
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    eval cmds=\"$export_symbols_cmds\"
-	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      $show "$cmd"
-	      $run eval "$cmd" || exit $?
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex"; then
-	      $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-	      $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-	fi
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec"; then
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    $show "${rm}r $gentop"
-	    $run ${rm}r "$gentop"
-	    $show "mkdir $gentop"
-	    $run mkdir "$gentop"
-	    status=$?
-	    if test $status -ne 0 && test ! -d "$gentop"; then
-	      exit $status
-	    fi
-	    generated="$generated $gentop"
-
-	    for xlib in $convenience; do
-	      # Extract the objects.
-	      case "$xlib" in
-	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	      *) xabs=`pwd`"/$xlib" ;;
-	      esac
-	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	      xdir="$gentop/$xlib"
-
-	      $show "${rm}r $xdir"
-	      $run ${rm}r "$xdir"
-	      $show "mkdir $xdir"
-	      $run mkdir "$xdir"
-	      status=$?
-	      if test $status -ne 0 && test ! -d "$xdir"; then
-		exit $status
-	      fi
-	      $show "(cd $xdir && $AR x $xabs)"
-	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
-	      libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
-	    done
-	  fi
-	fi
-
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  linkopts="$linkopts $flag"
-	fi
-
-	# Do each of the archive commands.
-	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	  eval cmds=\"$archive_expsym_cmds\"
-	else
-	  eval cmds=\"$archive_cmds\"
-	fi
-	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
-	  fi
-	done
-
-	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
-	  # On all known operating systems, these are identical.
-	  dlname="$soname"
-	fi
-      fi
-      ;;
-
-    *.lo | *.o | *.obj)
-      if test -n "$link_against_libtool_libs"; then
-	$echo "$modename: error: cannot link libtool libraries into objects" 1>&2
-	exit 1
-      fi
-
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case "$output" in
-      *.lo)
-	if test -n "$objs"; then
-	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-	  exit 1
-	fi
-	libobj="$output"
-	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $run $rm $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec
-      wl= 
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-	else
-	  gentop="$output_objdir/${obj}x"
-	  $show "${rm}r $gentop"
-	  $run ${rm}r "$gentop"
-	  $show "mkdir $gentop"
-	  $run mkdir "$gentop"
-	  status=$?
-	  if test $status -ne 0 && test ! -d "$gentop"; then
-	    exit $status
-	  fi
-	  generated="$generated $gentop"
-
-	  for xlib in $convenience; do
-	    # Extract the objects.
-	    case "$xlib" in
-	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	    *) xabs=`pwd`"/$xlib" ;;
-	    esac
-	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	    xdir="$gentop/$xlib"
-
-	    $show "${rm}r $xdir"
-	    $run ${rm}r "$xdir"
-	    $show "mkdir $xdir"
-	    $run mkdir "$xdir"
-	    status=$?
-	    if test $status -ne 0 && test ! -d "$xdir"; then
-	      exit $status
-	    fi
-	    $show "(cd $xdir && $AR x $xabs)"
-	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
-	    reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
-	  done
-	fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
-
-      output="$obj"
-      eval cmds=\"$reload_cmds\"
-      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	exit 0
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	# Create an invalid libtool object if no PIC, so that we don't
-	# accidentally link it into a program.
-	$show "echo timestamp > $libobj"
-	$run eval "echo timestamp > $libobj" || exit $?
-	exit 0
-      fi
-
-      if test -n "$pic_flag"; then
-	# Only do commands if we really have different PIC objects.
-	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
-	eval cmds=\"$reload_cmds\"
-	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-      else
-	# Just create a symlink.
-	$show $rm $libobj
-	$run $rm $libobj
-	xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
-	if test "X$xdir" = "X$libobj"; then
-	  xdir="."
-	else
-	  xdir="$xdir"
-	fi
-	baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
-	oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-	$show "(cd $xdir && $LN_S $oldobj $baseobj)"
-	$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
-      fi
-
-      if test -n "$gentop"; then
-	$show "${rm}r $gentop"
-	$run ${rm}r $gentop
-      fi
-
-      exit 0
-      ;;
-
-    # Anything else should be a program.
-    *)
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-	if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
-	   test "$dlopen_self_static" = unknown; then
-	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-	fi 
-      fi
-    
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$compile_rpath " in
-	  *" $libdir "*) ;;
-	  *) compile_rpath="$compile_rpath $libdir" ;;
-	  esac
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$output_objdir" = "X$output"; then
-	output_objdir="$objdir"
-      else
-	output_objdir="$output_objdir/$objdir"
-      fi
-
-      # Create the binary in the object directory, then wrap it.
-      if test ! -d $output_objdir; then
-	$show "$mkdir $output_objdir"
-	$run $mkdir $output_objdir
-	status=$?
-	if test $status -ne 0 && test ! -d $output_objdir; then
-	  exit $status
-	fi
-      fi
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	  dlsyms="${outputname}S.c"
-	else
-	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-	fi
-      fi
-
-      if test -n "$dlsyms"; then
-	case "$dlsyms" in
-	"") ;;
-	*.c)
-	  # Discover the nlist of each of the dlfiles.
-	  nlist="$output_objdir/${outputname}.nm"
-
-	  $show "$rm $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Parse the name list into a source file.
-	  $show "creating $output_objdir/$dlsyms"
-
-	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-	  if test "$dlself" = yes; then
-	    $show "generating symbol list for \`$output'"
-
-	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-	    # Add our own program objects to the symbol list.
-	    progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	    for arg in $progfiles; do
-	      $show "extracting global C symbols from \`$arg'"
-	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	    done
-
-	    if test -n "$exclude_expsyms"; then
-	      $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-	    
-	    if test -n "$export_symbols_regex"; then
-	      $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    # Prepare the list of exported symbols
-	    if test -z "$export_symbols"; then
-	      export_symbols="$output_objdir/$output.exp"
-	      $run $rm $export_symbols
-	      $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	    else
-	      $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-	      $run eval 'mv "$nlist"T "$nlist"'
-	    fi
-	  fi
-
-	  for arg in $dlprefiles; do
-	    $show "extracting global C symbols from \`$arg'"
-	    name=`echo "$arg" | sed -e 's%^.*/%%'`
-	    $run eval 'echo ": $name " >> "$nlist"'
-	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -z "$run"; then
-	    # Make sure we have at least an empty file.
-	    test -f "$nlist" || : > "$nlist"
-
-	    if test -n "$exclude_expsyms"; then
-	      egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-	      $mv "$nlist"T "$nlist"
-	    fi
-
-	    # Try sorting and uniquifying the output.
-	    if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
-	      :
-	    else
-	      grep -v "^: " < "$nlist" > "$nlist"S
-	    fi
-
-	    if test -f "$nlist"S; then
-	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
-	    else
-	      echo '/* NONE */' >> "$output_objdir/$dlsyms"
-	    fi
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-	    sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
-		-e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
-		  < "$nlist" >> "$output_objdir/$dlsyms"
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr_t) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	  fi
-
-	  pic_flag_for_symtable=
-	  case "$host" in
-	  # compiling the symbol table file with pic_flag works around
-	  # a FreeBSD bug that causes programs to crash when -lm is
-	  # linked before any other PIC object.  But we must not use
-	  # pic_flag when linking with -static.  The problem exists in
-	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)

-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
-	    esac;;
-	  *-*-hpux*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DPIC";;
-	    esac
-	  esac
-
-	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-	  # Clean up the generated files.
-	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Transform the symbol file into the correct name.
-	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  ;;
-	*)
-	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-	  exit 1
-	  ;;
-	esac
-      else
-	# We keep going just in case the user didn't refer to
-	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-	# really was required.
-
-	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
-	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	$show "$link_command"
-	$run eval "$link_command"
-	status=$?
-	
-	# Delete the generated files.
-	if test -n "$dlsyms"; then
-	  $show "$rm $output_objdir/${outputname}S.${objext}"
-	  $run $rm "$output_objdir/${outputname}S.${objext}"
-	fi
-
-	exit $status
-      fi
-
-      if test -n "$shlibpath_var"; then
-	# We should set the shlibpath_var
-	rpath=
-	for dir in $temp_rpath; do
-	  case "$dir" in
-	  [\\/]* | [A-Za-z]:[\\/]*)
-	    # Absolute path.
-	    rpath="$rpath$dir:"
-	    ;;
-	  *)
-	    # Relative path: add a thisdir entry.
-	    rpath="$rpath\$thisdir/$dir:"
-	    ;;
-	  esac
-	done
-	temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
-	
-	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-	$echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-      
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-	case "$0" in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
-	esac
-	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
-	esac
-	$rm $output
-	trap "$rm $output; exit 1" 1 2 15
-
-	$echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  link_against_libtool_libs='$link_against_libtool_libs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-	$echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  echo >> $output "\
-  program=lt-'$outputname'
-  progdir=\"\$thisdir/$objdir\"
-  
-  if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $mkdir \"\$progdir\"
-    else
-      $rm \"\$progdir/\$file\"
-    fi"
-
-	  echo >> $output "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if (cd \"\$thisdir\" && eval \$relink_command); then :
-      else
-	$rm \"\$progdir/\$file\"
-	exit 1
-      fi
-    fi
-
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-	else
-	  echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	$echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-	case $host in
-	*-*-cygwin* | *-*-mingw | *-*-os2*)
-	  # win32 systems need to use the prog path for dll
-	  # lookup to work
-	  $echo >> $output "\
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
-	  ;;
-	*)
-	  $echo >> $output "\
-      # Export the path to the program.
-      PATH=\"\$progdir:\$PATH\"
-      export PATH
-
-      exec \$program \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-	chmod +x $output
-      fi
-      exit 0
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
-	  build_libtool_libs=no
-	else
-	  oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	$show "${rm}r $gentop"
-	$run ${rm}r "$gentop"
-	$show "mkdir $gentop"
-	$run mkdir "$gentop"
-	status=$?
-	if test $status -ne 0 && test ! -d "$gentop"; then
-	  exit $status
-	fi
-	generated="$generated $gentop"
-	  
-	# Add in members from convenience archives.
-	for xlib in $addlibs; do
-	  # Extract the objects.
-	  case "$xlib" in
-	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	  *) xabs=`pwd`"/$xlib" ;;
-	  esac
-	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	  xdir="$gentop/$xlib"
-
-	  $show "${rm}r $xdir"
-	  $run ${rm}r "$xdir"
-	  $show "mkdir $xdir"
-	  $run mkdir "$xdir"
-	  status=$?
-	  if test $status -ne 0 && test ! -d "$xdir"; then
-	    exit $status
-	  fi
-	  $show "(cd $xdir && $AR x $xabs)"
-	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
-	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
-	done
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-	eval cmds=\"$old_archive_from_new_cmds\"
-      else
-	# Ensure that we have .o objects in place in case we decided
-	# not to build a shared library, and have fallen back to building
-	# static libs even though --disable-static was passed!
-	for oldobj in $oldobjs; do
-	  if test ! -f $oldobj; then
-	    xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
-	    if test "X$xdir" = "X$oldobj"; then
-	      xdir="."
-	    else
-	      xdir="$xdir"
-	    fi
-	    baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
-	    obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
-	    $show "(cd $xdir && ${LN_S} $obj $baseobj)"
-	    $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
-	  fi
-	done
-
-	eval cmds=\"$old_archive_cmds\"
-      fi
-      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case "$output" in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "creating $output"
-
-      if test -n "$xrpath"; then
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
-	done
-	dependency_libs="$temp_xrpath $dependency_libs"
-      fi
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-	for installed in no yes; do
-	  if test "$installed" = yes; then
-	    if test -z "$install_libdir"; then
-	      break
-	    fi
-	    output="$output_objdir/$outputname"i
-	  fi
-	  $rm $output
-	  $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$dlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'\
-"
-	done
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
-      ;;
-    esac
-    exit 0
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case "$arg" in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg="$nonopt"
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case "$arg" in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-	files="$files $dest"
-	dest="$arg"
-	continue
-      fi
-
-      case "$arg" in
-      -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*) ;;
-
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  prev=
-	else
-	  dest="$arg"
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case "$arg" in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	$echo "$modename: no file or destination specified" 1>&2
-      else
-	$echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test $# -gt 2; then
-	$echo "$modename: \`$dest' is not a directory" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-    fi
-    case "$destdir" in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case "$file" in
-	*.lo) ;;
-	*)
-	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case "$file" in
-      *.a | *.lib)
-	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
-	;;
-
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	library_names=
-	old_library=
-	# If there is no directory component, then add one.
-	case "$file" in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
-	  esac
-	fi
-
-	dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
-	test "X$dir" = "X$file/" && dir=
-	dir="$dir$objdir"
-
-	# See the names of the shared library.
-	set dummy $library_names
-	if test -n "$2"; then
-	  realname="$2"
-	  shift
-	  shift
-
-	  # Install the shared library and build the symlinks.
-	  $show "$install_prog $dir/$realname $destdir/$realname"
-	  $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
-
-	  if test $# -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    for linkname
-	    do
-	      if test "$linkname" != "$realname"; then
-		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-	      fi
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  eval cmds=\"$postinstall_cmds\"
-	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-	fi
-
-	# Install the pseudo-library for information purposes.
-	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	instname="$dir/$name"i
-	$show "$install_prog $instname $destdir/$name"
-	$run eval "$install_prog $instname $destdir/$name" || exit $?
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case "$destfile" in
-	*.lo)
-	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-	  ;;
-	*.o | *.obj)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	if test -n "$destfile"; then
-	  $show "$install_prog $file $destfile"
-	  $run eval "$install_prog $file $destfile" || exit $?
-	fi
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-	  $show "$install_prog $staticobj $staticdest"
-	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-	fi
-	exit 0
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Do a test to see if this is really a libtool program.
-	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  link_against_libtool_libs=
-	  relink_command=
-
-	  # If there is no directory component, then add one.
-	  case "$file" in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Check the variables that should have been set.
-	  if test -z "$link_against_libtool_libs"; then
-	    $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
-	    exit 1
-	  fi
-
-	  finalize=yes
-	  for lib in $link_against_libtool_libs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      # If there is no directory component, then add one.
-	      case "$lib" in
-	      */* | *\\*) . $lib ;;
-	      *) . ./$lib ;;
-	      esac
-	    fi
-	    libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-	      finalize=no
-	    fi
-	  done
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir="/tmp"
-	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
-	      tmpdir="$tmpdir/libtool-$$"
-	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
-	      else
-		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-		continue
-	      fi
-	      outputname="$tmpdir/$file"
-	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-	      $show "$relink_command"
-	      if $run eval "$relink_command"; then :
-	      else
-		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-		${rm}r "$tmpdir"
-		continue
-	      fi
-	      file="$outputname"
-	    else
-	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
-	    fi
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	$show "$install_prog$stripme $file $destfile"
-	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-	test -n "$outputname" && ${rm}r "$tmpdir"
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      # Do each command in the postinstall commands.
-      eval cmds=\"$old_postinstall_cmds\"
-      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec $SHELL $0 --finish$current_libdirs
-      exit 1
-    fi
-
-    exit 0
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  eval cmds=\"$finish_cmds\"
-	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-	  done
-	  IFS="$save_ifs"
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit 0
-
-    echo "----------------------------------------------------------------------"
-    echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      echo "   $libdir"
-    done
-    echo
-    echo "If you ever happen to want to link against installed libraries"
-    echo "in a given directory, LIBDIR, you must either use libtool, and"
-    echo "specify the full pathname of the library, or use \`-LLIBDIR'"
-    echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
-
-      echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    echo
-    echo "See any operating system documentation about shared libraries for"
-    echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    echo "----------------------------------------------------------------------"
-    exit 0
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit 1
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-	$echo "$modename: \`$file' is not a file" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-
-      dir=
-      case "$file" in
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-
-	# If there is no directory component, then add one.
-	case "$file" in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
-	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit 1
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-	;;
-
-      *)
-	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case "$file" in
-      -*) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  # If there is no directory component, then add one.
-	  case "$file" in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-        # Export the shlibpath_var.
-        eval "export $shlibpath_var"
-      fi
-
-      # Restore saved enviroment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
-
-      # Now actually exec the command.
-      eval "exec \$cmd$args"
-
-      $echo "$modename: cannot exec \$cmd$args"
-      exit 1
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
-        $echo "export $shlibpath_var"
-      fi
-      $echo "$cmd$args"
-      exit 0
-    fi
-    ;;
-
-  # libtool uninstall mode
-  uninstall)
-    modename="$modename: uninstall"
-    rm="$nonopt"
-    files=
-
-    for arg
-    do
-      case "$arg" in
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$dir" = "X$file" && dir=.
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      rmfiles="$file"
-
-      case "$name" in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  . $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    rmfiles="$rmfiles $dir/$n"
-	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
-
-	  $show "$rm $rmfiles"
-	  $run $rm $rmfiles
-
-	  if test -n "$library_names"; then
-	    # Do each command in the postuninstall commands.
-	    eval cmds=\"$postuninstall_cmds\"
-	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      $show "$cmd"
-	      $run eval "$cmd"
-	    done
-	    IFS="$save_ifs"
-	  fi
-
-	  if test -n "$old_library"; then
-	    # Do each command in the old_postuninstall commands.
-	    eval cmds=\"$old_postuninstall_cmds\"
-	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      $show "$cmd"
-	      $run eval "$cmd"
-	    done
-	    IFS="$save_ifs"
-	  fi
-
-	  # FIXME: should reinstall the best remaining shared library.
-	fi
-	;;
-
-      *.lo)
-	if test "$build_old_libs" = yes; then
-	  oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
-	  rmfiles="$rmfiles $dir/$oldobj"
-	fi
-	$show "$rm $rmfiles"
-	$run $rm $rmfiles
-	;;
-
-      *)
-	$show "$rm $rmfiles"
-	$run $rm $rmfiles
-	;;
-      esac
-    done
-    exit 0
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-    ;;
-  esac
-
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$generic_help" 1>&2
-  exit 1
-fi # test -z "$show_help"
-
-# We need to display help for each of the modes.
-case "$mode" in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config          show all configuration variables
-    --debug           enable verbose shell tracing
--n, --dry-run         display commands without modifying any files
-    --features        display basic configuration information and exit
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --version         print version information
-
-MODE must be one of the following:
-
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE."
-  exit 0
-  ;;
-
-compile)
-  $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-  ;;
-
-finish)
-  $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-  ;;
-
-install)
-  $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-  ;;
-
-uninstall)
-  $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-  ;;
-esac
-
-echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/glib/makefile.msc b/glib/makefile.msc
deleted file mode 100644
index a46a686..0000000
--- a/glib/makefile.msc
+++ /dev/null
@@ -1,165 +0,0 @@
-## Makefile for building the GLib, gmodule and gthread dlls with Microsoft C
-## Use: nmake -f makefile.msc install
-
-# Change this to wherever you want to install the DLLs. This directory
-# should be in your PATH.
-BIN = C:\bin
-
-# This is the location of pthreads for Win32, 
-# see http://sourceware.cygnus.com/pthreads-win32/
-# We want the 1999-04-07 snapshot.
-PTHREADS = ..\pthreads-snap-1999-04-07
-PTHREAD_LIB = $(PTHREADS)\pthread.lib
-PTHREAD_INC = -I$(PTHREADS)
-
-################################################################
-
-# Nothing much configurable below
-
-# cl -? describes the options
-CC = cl -G5 -GF -Ox -W3 -MD -nologo
-
-# No general LDFLAGS needed
-LDFLAGS = /link
-INSTALL = copy
-
-GLIB_VER = 1.2
-
-CFLAGS = -I. -DHAVE_CONFIG_H
-
-all : \
-	glibconfig.h	\
-	config.h	\
-	glib-$(GLIB_VER).dll	\
-	gmodule\gmoduleconf.h \
-	gmodule-$(GLIB_VER).dll	\
-	gthread-$(GLIB_VER).dll \
-	testglib.exe	\
-	testgmodule.exe	\
-	testgdate.exe	\
-	testgdateparser.exe \
-	testgthread.exe
-
-install : all
-	$(INSTALL) glib-$(GLIB_VER).dll $(BIN)
-	$(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)
-	$(INSTALL) gthread-$(GLIB_VER).dll $(BIN)
-
-glib_OBJECTS = \
-	garray.obj	\
-	gcache.obj	\
-	gcompletion.obj	\
-	gdataset.obj	\
-	gdate.obj	\
-	gerror.obj	\
-	ghook.obj	\
-	ghash.obj	\
-	giochannel.obj	\
-	giowin32.obj	\
-	glist.obj	\
-	gmain.obj	\
-	gmem.obj	\
-	gmessages.obj	\
-	gmutex.obj	\
-	gnode.obj	\
-	gprimes.obj	\
-	gslist.obj	\
-	gtimer.obj	\
-	gtree.obj	\
-	grel.obj	\
-	gstring.obj	\
-	gstrfuncs.obj	\
-	gscanner.obj	\
-	gutils.obj
-
-glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def
-	$(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:glib.def
-
-glibconfig.h: glibconfig.h.win32
-	copy glibconfig.h.win32 glibconfig.h
-
-config.h: config.h.win32
-	copy config.h.win32 config.h
-
-.c.obj :
-	$(CC) $(CFLAGS) -GD -c -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $<
-
-gmodule_OBJECTS = \
-	gmodule.obj
-
-gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS)
-	$(CC) $(CFLAGS) -LD -Fegmodule-$(GLIB_VER).dll $(gmodule_OBJECTS) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gmodule\gmodule.def
-
-gmodule.obj : gmodule\gmodule.c gmodule\gmodule-win32.c
-	$(CC) $(CFLAGS) -GD -Igmodule -c -DG_LOG_DOMAIN=g_log_domain_gmodule gmodule\gmodule.c
-
-gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
-	copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h
-
-gthread_OBJECTS = \
-	gthread.obj
-
-gthread-$(GLIB_VER).dll : $(gthread_OBJECTS)
-	$(CC) $(CFLAGS) -LD -Fegthread-$(GLIB_VER).dll $(gthread_OBJECTS) glib-$(GLIB_VER).lib $(PTHREAD_LIB) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gthread\gthread.def
-
-gthread.obj : gthread\gthread.c gthread\gthread-posix.c
-	$(CC) $(CFLAGS) -GD $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread\gthread.c
-
-testglib.exe : glib-$(GLIB_VER).dll testglib.obj
-	$(CC) $(CFLAGS) -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testglib.obj : testglib.c
-	$(CC) -c $(CFLAGS) testglib.c
-
-testgdate.exe : glib-$(GLIB_VER).dll testgdate.obj
-	$(CC) $(CFLAGS) -Fetestgdate.exe testgdate.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testgdate.obj : testgdate.c
-	$(CC) -c $(CFLAGS) testgdate.c
-
-testgdateparser.exe : glib-$(GLIB_VER).dll testgdateparser.obj
-	$(CC) $(CFLAGS) -Fetestgdateparser.exe testgdateparser.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testgdateparser.obj : testgdateparser.c
-	$(CC) -c $(CFLAGS) testgdateparser.c
-
-testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
-	$(CC) $(CFLAGS) testgmodule.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console 
-
-testgmodule.obj : gmodule\testgmodule.c
-	$(CC) $(CFLAGS) -Igmodule -c gmodule\testgmodule.c
-
-libgplugin_a.dll : libgplugin_a.obj
-	$(CC) $(CFLAGS) -LD libgplugin_a.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
-
-libgplugin_a.obj : gmodule\libgplugin_a.c
-	$(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_a.c
-
-libgplugin_b.dll : libgplugin_b.obj
-	$(CC) $(CFLAGS) -LD libgplugin_b.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib  $(LDFLAGS)
-
-libgplugin_b.obj : gmodule\libgplugin_b.c
-	$(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_b.c
-
-testgthread.exe : glib-$(GLIB_VER).dll gthread-$(GLIB_VER).dll testgthread.obj
-	$(CC) $(CFLAGS) testgthread.obj glib-$(GLIB_VER).lib gthread-$(GLIB_VER).lib $(PTHREAD_LIB) $(LDFLAGS) /subsystem:console 
-
-testgthread.obj : gthread\testgthread.c
-	$(CC) $(CFLAGS) $(PTHREAD_INC) -c gthread\testgthread.c
-
-clean:
-	del config.h
-	del glibconfig.h
-	del gmodule\gmoduleconf.h
-	del *.exe
-	del *.obj
-	del *.dll
-	del *.lib
-	del *.err
-	del *.map
-	del *.sym
-	del *.exp
-	del *.lk1
-	del *.mk1
-	del *.pdb
-	del *.ilk
diff --git a/glib/makefile.msc.in b/glib/makefile.msc.in
deleted file mode 100644
index a0215f1..0000000
--- a/glib/makefile.msc.in
+++ /dev/null
@@ -1,165 +0,0 @@
-## Makefile for building the GLib, gmodule and gthread dlls with Microsoft C
-## Use: nmake -f makefile.msc install
-
-# Change this to wherever you want to install the DLLs. This directory
-# should be in your PATH.
-BIN = C:\bin
-
-# This is the location of pthreads for Win32, 
-# see http://sourceware.cygnus.com/pthreads-win32/
-# We want the 1999-04-07 snapshot.
-PTHREADS = ..\pthreads-snap-1999-04-07
-PTHREAD_LIB = $(PTHREADS)\pthread.lib
-PTHREAD_INC = -I$(PTHREADS)
-
-################################################################
-
-# Nothing much configurable below
-
-# cl -? describes the options
-CC = cl -G5 -GF -Ox -W3 -MD -nologo
-
-# No general LDFLAGS needed
-LDFLAGS = /link
-INSTALL = copy
-
-GLIB_VER = @GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@
-
-CFLAGS = -I. -DHAVE_CONFIG_H
-
-all : \
-	glibconfig.h	\
-	config.h	\
-	glib-$(GLIB_VER).dll	\
-	gmodule\gmoduleconf.h \
-	gmodule-$(GLIB_VER).dll	\
-	gthread-$(GLIB_VER).dll \
-	testglib.exe	\
-	testgmodule.exe	\
-	testgdate.exe	\
-	testgdateparser.exe \
-	testgthread.exe
-
-install : all
-	$(INSTALL) glib-$(GLIB_VER).dll $(BIN)
-	$(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)
-	$(INSTALL) gthread-$(GLIB_VER).dll $(BIN)
-
-glib_OBJECTS = \
-	garray.obj	\
-	gcache.obj	\
-	gcompletion.obj	\
-	gdataset.obj	\
-	gdate.obj	\
-	gerror.obj	\
-	ghook.obj	\
-	ghash.obj	\
-	giochannel.obj	\
-	giowin32.obj	\
-	glist.obj	\
-	gmain.obj	\
-	gmem.obj	\
-	gmessages.obj	\
-	gmutex.obj	\
-	gnode.obj	\
-	gprimes.obj	\
-	gslist.obj	\
-	gtimer.obj	\
-	gtree.obj	\
-	grel.obj	\
-	gstring.obj	\
-	gstrfuncs.obj	\
-	gscanner.obj	\
-	gutils.obj
-
-glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def
-	$(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:glib.def
-
-glibconfig.h: glibconfig.h.win32
-	copy glibconfig.h.win32 glibconfig.h
-
-config.h: config.h.win32
-	copy config.h.win32 config.h
-
-.c.obj :
-	$(CC) $(CFLAGS) -GD -c -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $<
-
-gmodule_OBJECTS = \
-	gmodule.obj
-
-gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS)
-	$(CC) $(CFLAGS) -LD -Fegmodule-$(GLIB_VER).dll $(gmodule_OBJECTS) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gmodule\gmodule.def
-
-gmodule.obj : gmodule\gmodule.c gmodule\gmodule-win32.c
-	$(CC) $(CFLAGS) -GD -Igmodule -c -DG_LOG_DOMAIN=g_log_domain_gmodule gmodule\gmodule.c
-
-gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
-	copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h
-
-gthread_OBJECTS = \
-	gthread.obj
-
-gthread-$(GLIB_VER).dll : $(gthread_OBJECTS)
-	$(CC) $(CFLAGS) -LD -Fegthread-$(GLIB_VER).dll $(gthread_OBJECTS) glib-$(GLIB_VER).lib $(PTHREAD_LIB) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gthread\gthread.def
-
-gthread.obj : gthread\gthread.c gthread\gthread-posix.c
-	$(CC) $(CFLAGS) -GD $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread\gthread.c
-
-testglib.exe : glib-$(GLIB_VER).dll testglib.obj
-	$(CC) $(CFLAGS) -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testglib.obj : testglib.c
-	$(CC) -c $(CFLAGS) testglib.c
-
-testgdate.exe : glib-$(GLIB_VER).dll testgdate.obj
-	$(CC) $(CFLAGS) -Fetestgdate.exe testgdate.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testgdate.obj : testgdate.c
-	$(CC) -c $(CFLAGS) testgdate.c
-
-testgdateparser.exe : glib-$(GLIB_VER).dll testgdateparser.obj
-	$(CC) $(CFLAGS) -Fetestgdateparser.exe testgdateparser.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testgdateparser.obj : testgdateparser.c
-	$(CC) -c $(CFLAGS) testgdateparser.c
-
-testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
-	$(CC) $(CFLAGS) testgmodule.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console 
-
-testgmodule.obj : gmodule\testgmodule.c
-	$(CC) $(CFLAGS) -Igmodule -c gmodule\testgmodule.c
-
-libgplugin_a.dll : libgplugin_a.obj
-	$(CC) $(CFLAGS) -LD libgplugin_a.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
-
-libgplugin_a.obj : gmodule\libgplugin_a.c
-	$(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_a.c
-
-libgplugin_b.dll : libgplugin_b.obj
-	$(CC) $(CFLAGS) -LD libgplugin_b.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib  $(LDFLAGS)
-
-libgplugin_b.obj : gmodule\libgplugin_b.c
-	$(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_b.c
-
-testgthread.exe : glib-$(GLIB_VER).dll gthread-$(GLIB_VER).dll testgthread.obj
-	$(CC) $(CFLAGS) testgthread.obj glib-$(GLIB_VER).lib gthread-$(GLIB_VER).lib $(PTHREAD_LIB) $(LDFLAGS) /subsystem:console 
-
-testgthread.obj : gthread\testgthread.c
-	$(CC) $(CFLAGS) $(PTHREAD_INC) -c gthread\testgthread.c
-
-clean:
-	del config.h
-	del glibconfig.h
-	del gmodule\gmoduleconf.h
-	del *.exe
-	del *.obj
-	del *.dll
-	del *.lib
-	del *.err
-	del *.map
-	del *.sym
-	del *.exp
-	del *.lk1
-	del *.mk1
-	del *.pdb
-	del *.ilk
diff --git a/glib/missing b/glib/missing
deleted file mode 100755
index 7789652..0000000
--- a/glib/missing
+++ /dev/null
@@ -1,190 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
-  exit 1
-fi
-
-case "$1" in
-
-  -h|--h|--he|--hel|--help)
-    echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
-  -h, --help      display this help and exit
-  -v, --version   output version information and exit
-
-Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
-    ;;
-
-  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing - GNU libit 0.0"
-    ;;
-
-  -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
-    exit 1
-    ;;
-
-  aclocal)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acinclude.m4' or \`configure.in'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`configure.in'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acconfig.h' or \`configure.in'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case "$f" in
-      *:*) touch_files="$touch_files "`echo "$f" |
-				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-	   sed 's/\.am$/.in/' |
-	   while read f; do touch "$f"; done
-    ;;
-
-  bison|yacc)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-	case "$LASTARG" in
-	*.y)
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if [ -f "$SRCFILE" ]; then
-	         cp "$SRCFILE" y.tab.c
-	    fi
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if [ -f "$SRCFILE" ]; then
-	         cp "$SRCFILE" y.tab.h
-	    fi
-	  ;;
-	esac
-    fi
-    if [ ! -f y.tab.h ]; then
-	echo >y.tab.h
-    fi
-    if [ ! -f y.tab.c ]; then
-	echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex|flex)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-	case "$LASTARG" in
-	*.l)
-	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if [ -f "$SRCFILE" ]; then
-	         cp "$SRCFILE" lex.yy.c
-	    fi
-	  ;;
-	esac
-    fi
-    if [ ! -f lex.yy.c ]; then
-	echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  makeinfo)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
-    fi
-    touch $file
-    ;;
-
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
-         system.  You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequirements for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
-    ;;
-esac
-
-exit 0
diff --git a/glib/mkinstalldirs b/glib/mkinstalldirs
deleted file mode 100755
index 4f58503..0000000
--- a/glib/mkinstalldirs
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
-
-errstatus=0
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp"
-
-        mkdir "$pathcomp" || lasterr=$?
-
-        if test ! -d "$pathcomp"; then
-  	  errstatus=$lasterr
-        fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/glib/sanity_check b/glib/sanity_check
deleted file mode 100755
index ddde3eb..0000000
--- a/glib/sanity_check
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-
-VERSION=$1
-
-if [ ! -f glib-$VERSION.tar.gz ]; then
-	echo "ERROR: glib-$VERSION.tar.gz does not exist..."
-	exit 1
-fi
-
-echo ""
-
-echo "Checking glib-$VERSION.tar.gz..."
-tar xfz glib-$VERSION.tar.gz
-
-
-for file in README NEWS
-do
-	echo -n "$file... "
-	if [ "x`grep $VERSION glib-$VERSION/$file | wc -l | awk -F' ' '{print $1}'`" == "x1" ]; then
-		echo "ok"
-	else
-		echo "failed."
-		exit 1
-	fi
-done
-
-echo -n "INSTALL..."
-if [ "x`grep $VERSION glib-$VERSION/INSTALL | wc -l | awk -F' ' '{print $1}'`" == "x2" ]; then 
-	echo "ok" 
-else
-	echo "failed."
-	exit 1
-fi
-
-echo ""
-echo "Number of lines in created documentation files:"
-
-wc -l glib-$VERSION/docs/*.html | grep -v total
-wc -l glib-$VERSION/docs/*.info | grep -v total
-
-rm -rf glib-$VERSION
diff --git a/glib/stamp-h.in b/glib/stamp-h.in
deleted file mode 100644
index 9788f70..0000000
--- a/glib/stamp-h.in
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/glib/testgdate.c b/glib/testgdate.c
deleted file mode 100644
index f74e00a..0000000
--- a/glib/testgdate.c
+++ /dev/null
@@ -1,486 +0,0 @@
-
-#include "glib.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <locale.h>
-#include <time.h>
-
-gboolean failed = FALSE;
-guint32 passed = 0;
-guint32 notpassed = 0;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { ++notpassed; \
-    if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  ++passed;    \
-  if ((passed+notpassed) % 10000 == 0) g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-void g_date_debug_print(GDate* d)
-{
-  if (!d) g_print("NULL!\n");
-  else 
-    g_print("julian: %u (%s) DMY: %u %u %u (%s)\n",
-	    d->julian_days, 
-	    d->julian ? "valid" : "invalid",
-	    d->day,
-	    d->month,
-	    d->year,
-	    d->dmy ? "valid" : "invalid");
-  
-  fflush(stdout);
-}
-
-int main(int argc, char** argv)
-{
-  GDate* d;
-  guint32 j;
-  GDateMonth m;
-  GDateYear y, prev_y;
-  GDateDay day;
-  gchar buf[101];
-  gchar* loc;
-  /* Try to get all the leap year cases. */
-  GDateYear check_years[] = { 
-    1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-    11, 12, 13, 14, 98, 99, 100, 101, 102, 103, 397, 
-    398, 399, 400, 401, 402, 403, 404, 405, 406,
-    1598, 1599, 1600, 1601, 1602, 1650, 1651,
-    1897, 1898, 1899, 1900, 1901, 1902, 1903, 
-    1961, 1962, 1963, 1964, 1965, 1967,
-    1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976,
-    1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 
-    1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 
-    1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 
-    2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
-    3000, 3001, 3002, 3998, 3999, 4000, 4001, 4002, 4003
-  };
-  guint n_check_years = sizeof(check_years)/sizeof(GDateYear);
-  guint i;
-  gboolean discontinuity;
-
-  g_print("checking GDate...");
-  
-  TEST("sizeof(GDate) is not more than 8 bytes on this platform", sizeof(GDate) < 9);
-
-  d = g_date_new();
-
-  TEST("Empty constructor produces invalid date", !g_date_valid(d));
-
-  g_date_free(d);
-
-  d = g_date_new_dmy(1,1,1);
-
-  TEST("January 1, Year 1 created and valid", g_date_valid(d));
-
-  j = g_date_julian(d);
-  
-  TEST("January 1, Year 1 is Julian date 1", j == 1);
-
-  TEST("Returned month is January", g_date_month(d) == G_DATE_JANUARY);
-  TEST("Returned day is 1", g_date_day(d) == 1);
-  TEST("Returned year is 1", g_date_year(d) == 1);
-
-  TEST("Bad month is invalid", !g_date_valid_month(G_DATE_BAD_MONTH));
-  TEST("Month 13 is invalid",  !g_date_valid_month(13));
-  TEST("Bad day is invalid",   !g_date_valid_day(G_DATE_BAD_DAY));
-  TEST("Day 32 is invalid",     !g_date_valid_day(32));
-  TEST("Bad year is invalid",  !g_date_valid_year(G_DATE_BAD_YEAR));
-  TEST("Bad julian is invalid", !g_date_valid_julian(G_DATE_BAD_JULIAN));
-  TEST("Bad weekday is invalid", !g_date_valid_weekday(G_DATE_BAD_WEEKDAY));
-  TEST("Year 2000 is a leap year", g_date_is_leap_year(2000));
-  TEST("Year 1999 is not a leap year", !g_date_is_leap_year(1999));
-  TEST("Year 1996 is a leap year", g_date_is_leap_year(1996));
-  TEST("Year 1600 is a leap year", g_date_is_leap_year(1600));
-  TEST("Year 2100 is not a leap year", !g_date_is_leap_year(2100));
-  TEST("Year 1800 is not a leap year", !g_date_is_leap_year(1800));
-
-  g_date_free(d);
-  
-  loc = setlocale(LC_ALL,"");
-  if (loc) 
-    g_print("\nLocale set to %s\n", loc);
-  else 
-    g_print("\nLocale unchanged\n");
-
-  d = g_date_new();
-  g_date_set_time(d, time(NULL));
-  TEST("Today is valid", g_date_valid(d));
-
-  g_date_strftime(buf,100,"Today is a %A, %x\n", d);
-  g_print("%s", buf);
-
-  g_date_set_time(d, 1);
-  TEST("Beginning of Unix epoch is valid", g_date_valid(d));
-
-  g_date_strftime(buf,100,"1 second into the Unix epoch it was a %A, in the month of %B, %x\n", d);
-  g_print("%s", buf);
-
-  g_date_set_julian(d, 1);
-  TEST("GDate's \"Julian\" epoch's first day is valid", g_date_valid(d));
-
-  g_date_strftime(buf,100,"Our \"Julian\" epoch begins on a %A, in the month of %B, %x\n",
-		  d);
-  g_print("%s", buf);
-
-  g_date_set_dmy(d, 10, 1, 2000);
-
-  g_date_strftime(buf,100,"%x", d);
-
-  g_date_set_parse(d, buf);
-  /* Note: this test will hopefully work, but no promises. */
-  TEST("Successfully parsed a %x-formatted string", 
-       g_date_valid(d) && 
-       g_date_month(d) == 1 && 
-       g_date_day(d) == 10 && 
-       g_date_year(d) == 2000);
-  if (failed)
-    g_date_debug_print(d);
-  
-  g_date_free(d);
-
-  j = G_DATE_BAD_JULIAN;
-
-  i = 0;
-  discontinuity = TRUE;
-  y      = check_years[0];
-  prev_y = G_DATE_BAD_YEAR;
-  while (i < n_check_years) 
-    {
-      guint32 first_day_of_year = G_DATE_BAD_JULIAN;
-      guint16 days_in_year = g_date_is_leap_year(y) ? 366 : 365;
-      guint   sunday_week_of_year = 0;
-      guint   sunday_weeks_in_year = g_date_sunday_weeks_in_year(y);
-      guint   monday_week_of_year = 0;
-      guint   monday_weeks_in_year = g_date_monday_weeks_in_year(y);
-
-      if (discontinuity)
-        g_print(" (Break in sequence of requested years to check)\n");
-
-      g_print("Checking year %u", y);
-
-      TEST("Year is valid", g_date_valid_year(y));
-
-      TEST("Number of Sunday weeks in year is 52 or 53", 
-	   sunday_weeks_in_year == 52 || sunday_weeks_in_year == 53);
-      
-      TEST("Number of Monday weeks in year is 52 or 53", 
-	   monday_weeks_in_year == 52 || monday_weeks_in_year == 53);
-	   
-      m = 1;
-      while (m < 13) 
-	{
-	  guint8 dim = g_date_days_in_month(m,y);
-	  GDate days[31];         /* This is the fast way, no allocation */
-
-	  TEST("Sensible number of days in month", (dim > 0 && dim < 32));
-
-	  TEST("Month between 1 and 12 is valid", g_date_valid_month(m));
-
-	  day = 1;
-
-	  g_date_clear(days, 31);
-
-	  while (day <= dim) 
-	    {
-	      guint i;
-              GDate tmp;
-
-	      TEST("DMY triplet is valid", g_date_valid_dmy(day,m,y));
-
-	      /* Create GDate with triplet */
-	      
-	      d = &days[day-1];
-
-	      TEST("Cleared day is invalid", !g_date_valid(d));
-
-	      g_date_set_dmy(d,day,m,y);
-
-	      TEST("Set day is valid", g_date_valid(d));
-
-	      if (m == G_DATE_JANUARY && day == 1) 
-		{
-		  first_day_of_year = g_date_julian(d);
-		}
-
-	      g_assert(first_day_of_year != G_DATE_BAD_JULIAN);
-
-	      TEST("Date with DMY triplet is valid", g_date_valid(d));
-	      TEST("Month accessor works", g_date_month(d) == m);
-	      TEST("Year accessor works", g_date_year(d) == y);
-	      TEST("Day of month accessor works", g_date_day(d) == day);
-
-	      TEST("Day of year is consistent with Julian dates",
-		   ((g_date_julian(d) + 1 - first_day_of_year) ==
-		    (g_date_day_of_year(d))));
-
-	      if (failed) 
-		{
-		  g_print("first day: %u this day: %u day of year: %u\n", 
-			  first_day_of_year, 
-			  g_date_julian(d),
-			  g_date_day_of_year(d));
-		}
-	      
-	      if (m == G_DATE_DECEMBER && day == 31) 
-		{
-		  TEST("Last day of year equals number of days in year", 
-		       g_date_day_of_year(d) == days_in_year);
-		  if (failed) 
-		    {
-		      g_print("last day: %u days in year: %u\n", 
-			      g_date_day_of_year(d), days_in_year);
-		    }
-		}
-
-	      TEST("Day of year is not more than number of days in the year",
-		   g_date_day_of_year(d) <= days_in_year);
-
-	      TEST("Monday week of year is not more than number of weeks in the year",
-		   g_date_monday_week_of_year(d) <= monday_weeks_in_year);
-	      if (failed)
-		{
-		  g_print("Weeks in year: %u\n", monday_weeks_in_year);
-		  g_date_debug_print(d);
-		}
-	      TEST("Monday week of year is >= than last week of year",
-		   g_date_monday_week_of_year(d) >= monday_week_of_year);
-
-	      if (g_date_weekday(d) == G_DATE_MONDAY) 
-		{
-		  
-		  TEST("Monday week of year on Monday 1 more than previous day's week of year",
-		       (g_date_monday_week_of_year(d) - monday_week_of_year) == 1);
-		}
-	      else 
-		{
-		  TEST("Monday week of year on non-Monday 0 more than previous day's week of year",
-		       (g_date_monday_week_of_year(d) - monday_week_of_year) == 0);
-		}
-
-
-	      monday_week_of_year = g_date_monday_week_of_year(d);
-
-
-	      TEST("Sunday week of year is not more than number of weeks in the year",
-		   g_date_sunday_week_of_year(d) <= sunday_weeks_in_year);
-	      if (failed)
-		{
-		  g_date_debug_print(d);
-		}
-	      TEST("Sunday week of year is >= than last week of year",
-		   g_date_sunday_week_of_year(d) >= sunday_week_of_year);
-
-	      if (g_date_weekday(d) == G_DATE_SUNDAY) 
-		{
-		  TEST("Sunday week of year on Sunday 1 more than previous day's week of year",
-		       (g_date_sunday_week_of_year(d) - sunday_week_of_year) == 1);
-		}
-	      else 
-		{
-		  TEST("Sunday week of year on non-Sunday 0 more than previous day's week of year",
-		       (g_date_sunday_week_of_year(d) - sunday_week_of_year) == 0);
-		}
-
-	      sunday_week_of_year = g_date_sunday_week_of_year(d);
-
-	      TEST("Date is equal to itself",
-		   g_date_compare(d,d) == 0);
-
-
-	      /*************** Increments ***********/
-
-              i = 1;
-              while (i < 402) /* Need to get 400 year increments in */ 
-                {
-	      
-                  /***** Days ******/
-                  tmp = *d;
-                  g_date_add_days(d, i);
-
-                  TEST("Adding days gives a value greater than previous",
-                       g_date_compare(d, &tmp) > 0);
-
-                  g_date_subtract_days(d, i);
-                  TEST("Forward days then backward days returns us to current day",
-                       g_date_day(d) == day);
-
-                  if (failed) 
-                    {
-                      g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                      g_date_debug_print(d);
-                    }
-
-                  TEST("Forward days then backward days returns us to current month",
-                       g_date_month(d) == m);
-
-                  if (failed) 
-                    {
-                      g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                      g_date_debug_print(d);
-                    }
-
-                  TEST("Forward days then backward days returns us to current year",
-                       g_date_year(d) == y);
-
-                  if (failed) 
-                    {
-                      g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                      g_date_debug_print(d);
-                    }
-
-                  /******* Months ********/
-
-                  tmp = *d;
-                  g_date_add_months(d, i);
-                  TEST("Adding months gives a larger value",
-                       g_date_compare(d, &tmp) > 0);
-                  g_date_subtract_months(d, i);
-
-                  TEST("Forward months then backward months returns us to current month",
-                       g_date_month(d) == m);
-
-                  if (failed) 
-                    {
-                      g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                      g_date_debug_print(d);
-                    }
-
-                  TEST("Forward months then backward months returns us to current year",
-                       g_date_year(d) == y);
-
-                  if (failed) 
-                    {
-                      g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                      g_date_debug_print(d);
-                    }
-
-		  
-                  if (day < 29) 
-                    {
-                      /* Day should be unchanged */
-		      
-                      TEST("Forward months then backward months returns us to current day",
-                           g_date_day(d) == day);
-		      
-                      if (failed) 
-                        {
-                          g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                          g_date_debug_print(d);
-                        }
-                    }
-                  else 
-                    {
-                      /* reset the day for later tests */
-                      g_date_set_day(d, day);
-                    }
-
-                  /******* Years ********/
-
-                  tmp = *d;
-                  g_date_add_years(d, i);
-
-                  TEST("Adding years gives a larger value",
-                       g_date_compare(d,&tmp) > 0);
-		      
-                  g_date_subtract_years(d, i);
-
-                  TEST("Forward years then backward years returns us to current month",
-                       g_date_month(d) == m);
-
-                  if (failed) 
-                    {
-                      g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                      g_date_debug_print(d);
-                    }
-
-                  TEST("Forward years then backward years returns us to current year",
-                       g_date_year(d) == y);
-
-                  if (failed) 
-                    {
-                      g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                      g_date_debug_print(d);
-                    }
-
-                  if (m != 2 && day != 29) 
-                    {
-                      TEST("Forward years then backward years returns us to current day",
-                           g_date_day(d) == day);
-		      
-                      if (failed) 
-                        {
-                          g_print("  (increment %u, dmy %u %u %u) ", i, day, m, y);
-                          g_date_debug_print(d);
-                        }
-                    }
-                  else 
-                    {
-                      g_date_set_day(d, day); /* reset */
-                    }
-
-                  i += 10;
-                }
-
-	      /*****  increment test relative to our local Julian count */
-
-              if (!discontinuity) {
-
-                /* We can only run sequence tests between sequential years */
-                
-                TEST("Julians are sequential with increment 1",
-                     j+1 == g_date_julian(d));
-                if (failed) 
-                  {
-                    g_print("Out of sequence, prev: %u expected: %u got: %u\n",
-                            j, j+1, g_date_julian(d));
-                  }
-
-                g_date_add_days(d,1);
-                TEST("Next day has julian 1 higher",
-                     g_date_julian(d) == j + 2);
-                g_date_subtract_days(d, 1);
-                
-                if (j != G_DATE_BAD_JULIAN) 
-                  {
-                    g_date_subtract_days(d, 1);
-                    
-                    TEST("Previous day has julian 1 lower",
-                         g_date_julian(d) == j);
-                    
-                    g_date_add_days(d, 1); /* back to original */
-                  }
-              }    
-              discontinuity = FALSE; /* goes away now */            
-
-              fflush(stdout);
-              fflush(stderr);
-
-	      j = g_date_julian(d); /* inc current julian */
-
-	      ++day;
-	    } 
-	  ++m;
-	}
-      g_print(" done\n");
-      ++i;
-      prev_y = y;
-      y = check_years[i];
-      if (prev_y == G_DATE_BAD_YEAR || 
-          (prev_y + 1) != y) discontinuity = TRUE;
-    }
-  
-  
-  g_print("\n%u tests passed, %u failed\n",passed, notpassed);
-
-  return 0;
-}
-
-
diff --git a/glib/testgdateparser.c b/glib/testgdateparser.c
deleted file mode 100644
index 1e482ff..0000000
--- a/glib/testgdateparser.c
+++ /dev/null
@@ -1,109 +0,0 @@
-
-#include "glib.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <locale.h>
-
-void g_date_debug_print(GDate* d)
-{
-  if (!d) g_print("NULL!\n");
-  else 
-    g_print("julian: %u (%s) DMY: %u %u %u (%s)\n",
-	    d->julian_days, 
-	    d->julian ? "valid" : "invalid",
-	    d->day,
-	    d->month,
-	    d->year,
-	    d->dmy ? "valid" : "invalid");
-  
-  fflush(stdout);
-}
-
-/* These only work in the POSIX locale, maybe C too - 
- * type POSIX into the program to check them
- */
-char* posix_tests [] = {
-  "19981024",
-  "981024",
-  "October 1998",
-  "October 98",
-  "oCT 98",
-  "10/24/98",
-  "10 -- 24 -- 98",
-  "10/24/1998",
-  "October 24, 1998",
-  NULL
-};
-
-int main(int argc, char** argv)
-{
-  GDate* d;
-  gchar* loc;
-  gchar input[1024];
-
-  loc = setlocale(LC_ALL,"");
-  if (loc) 
-    g_print("\nLocale set to %s\n", loc);
-  else 
-    g_print("\nLocale unchanged\n");
-
-  d = g_date_new();
-
-  while (fgets(input, 1023, stdin))
-    {
-      if (input[0] == '\n') 
-        {
-          g_print("Enter a date to parse and press enter, or type `POSIX':\n");
-          continue;
-        }
-
-      if (strcmp(input,"POSIX\n") == 0) 
-        {
-          char** s = posix_tests;
-          while (*s) {
-            g_date_set_parse(d, *s);
-            
-            g_print("POSIXy parse test `%s' ...", *s);
-
-            if (!g_date_valid(d))
-              {
-                g_print(" failed.\n");
-              }
-            else 
-              {
-                gchar buf[256];
-                
-                g_date_strftime(buf,100," parsed `%x' (%B %d %Y)\n",
-                                d);
-                g_print("%s", buf);
-              }
-
-            ++s;
-          }
-        }
-      else 
-        {
-          g_date_set_parse(d, input);
-          
-          if (!g_date_valid(d))
-            {
-              g_print("Parse failed.\n");
-            }
-          else 
-            {
-              gchar buf[256];
-              
-              g_date_strftime(buf,100,"Parsed: `%x' (%B %d %Y)\n",
-                              d);
-              g_print("%s", buf);
-            }
-        }
-    }
-
-  g_date_free(d);
-
-  return 0;
-}
-
-
diff --git a/glib/testglib.c b/glib/testglib.c
deleted file mode 100644
index 843b49e..0000000
--- a/glib/testglib.c
+++ /dev/null
@@ -1,921 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-static gboolean
-node_build_string (GNode    *node,
-		   gpointer  data)
-{
-  gchar **p = data;
-  gchar *string;
-  gchar c[2] = "_";
-
-  c[0] = P2C (node->data);
-
-  string = g_strconcat (*p ? *p : "", c, NULL);
-  g_free (*p);
-  *p = string;
-
-  return FALSE;
-}
-
-static void
-g_node_test (void)
-{
-  GNode *root;
-  GNode *node;
-  GNode *node_B;
-  GNode *node_F;
-  GNode *node_G;
-  GNode *node_J;
-  guint i;
-  gchar *tstring;
-
-  g_print ("checking n-way trees: ");
-  failed = FALSE;
-
-  root = g_node_new (C2P ('A'));
-  TEST (NULL, g_node_depth (root) == 1 && g_node_max_height (root) == 1);
-
-  node_B = g_node_new (C2P ('B'));
-  g_node_append (root, node_B);
-  TEST (NULL, root->children == node_B);
-
-  g_node_append_data (node_B, C2P ('E'));
-  g_node_prepend_data (node_B, C2P ('C'));
-  g_node_insert (node_B, 1, g_node_new (C2P ('D')));
-
-  node_F = g_node_new (C2P ('F'));
-  g_node_append (root, node_F);
-  TEST (NULL, root->children->next == node_F);
-
-  node_G = g_node_new (C2P ('G'));
-  g_node_append (node_F, node_G);
-  node_J = g_node_new (C2P ('J'));
-  g_node_prepend (node_G, node_J);
-  g_node_insert (node_G, 42, g_node_new (C2P ('K')));
-  g_node_insert_data (node_G, 0, C2P ('H'));
-  g_node_insert (node_G, 1, g_node_new (C2P ('I')));
-
-  TEST (NULL, g_node_depth (root) == 1);
-  TEST (NULL, g_node_max_height (root) == 4);
-  TEST (NULL, g_node_depth (node_G->children->next) == 4);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_LEAFS) == 7);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_NON_LEAFS) == 4);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_ALL) == 11);
-  TEST (NULL, g_node_max_height (node_F) == 3);
-  TEST (NULL, g_node_n_children (node_G) == 4);
-  TEST (NULL, g_node_find_child (root, G_TRAVERSE_ALL, C2P ('F')) == node_F);
-  TEST (NULL, g_node_find (root, G_LEVEL_ORDER, G_TRAVERSE_NON_LEAFS, C2P ('I')) == NULL);
-  TEST (NULL, g_node_find (root, G_IN_ORDER, G_TRAVERSE_LEAFS, C2P ('J')) == node_J);
-
-  for (i = 0; i < g_node_n_children (node_B); i++)
-    {
-      node = g_node_nth_child (node_B, i);
-      TEST (NULL, P2C (node->data) == ('C' + i));
-    }
-  
-  for (i = 0; i < g_node_n_children (node_G); i++)
-    TEST (NULL, g_node_child_position (node_G, g_node_nth_child (node_G, i)) == i);
-
-  /* we have built:                    A
-   *                                 /   \
-   *                               B       F
-   *                             / | \       \
-   *                           C   D   E       G
-   *                                         / /\ \
-   *                                       H  I  J  K
-   *
-   * for in-order traversal, 'G' is considered to be the "left"
-   * child of 'F', which will cause 'F' to be the last node visited.
-   */
-
-  tstring = NULL;
-  g_node_traverse (root, G_PRE_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABCDEFGHIJK") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_POST_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "CDEBHIJKGFA") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_IN_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "CBDEAHGIJKF") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_LEVEL_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABFCDEGHIJK") == 0);
-  g_free (tstring); tstring = NULL;
-  
-  g_node_traverse (root, G_LEVEL_ORDER, G_TRAVERSE_LEAFS, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "CDEHIJK") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_PRE_ORDER, G_TRAVERSE_NON_LEAFS, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABFG") == 0);
-  g_free (tstring); tstring = NULL;
-
-  g_node_reverse_children (node_B);
-  g_node_reverse_children (node_G);
-
-  g_node_traverse (root, G_LEVEL_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABFEDCGKJIH") == 0);
-  g_free (tstring); tstring = NULL;
-  
-  g_node_destroy (root);
-
-  /* allocation tests */
-
-  root = g_node_new (NULL);
-  node = root;
-
-  for (i = 0; i < 2048; i++)
-    {
-      g_node_append (node, g_node_new (NULL));
-      if ((i%5) == 4)
-	node = node->children->next;
-    }
-  TEST (NULL, g_node_max_height (root) > 100);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_ALL) == 1 + 2048);
-
-  g_node_destroy (root);
-  
-  if (!failed)
-    g_print ("ok\n");
-}
-
-static gboolean
-my_hash_callback_remove (gpointer key,
-			 gpointer value,
-			 gpointer user_data)
-{
-  int *d = value;
-
-  if ((*d) % 2)
-    return TRUE;
-
-  return FALSE;
-}
-
-static void
-my_hash_callback_remove_test (gpointer key,
-			      gpointer value,
-			      gpointer user_data)
-{
-  int *d = value;
-
-  if ((*d) % 2)
-    g_print ("bad!\n");
-}
-
-static void
-my_hash_callback (gpointer key,
-		  gpointer value,
-		  gpointer user_data)
-{
-  int *d = value;
-  *d = 1;
-}
-
-static guint
-my_hash (gconstpointer key)
-{
-  return (guint) *((const gint*) key);
-}
-
-static gint
-my_hash_compare (gconstpointer a,
-		 gconstpointer b)
-{
-  return *((const gint*) a) == *((const gint*) b);
-}
-
-static gint
-my_list_compare_one (gconstpointer a, gconstpointer b)
-{
-  gint one = *((const gint*)a);
-  gint two = *((const gint*)b);
-  return one-two;
-}
-
-static gint
-my_list_compare_two (gconstpointer a, gconstpointer b)
-{
-  gint one = *((const gint*)a);
-  gint two = *((const gint*)b);
-  return two-one;
-}
-
-/* static void
-my_list_print (gpointer a, gpointer b)
-{
-  gint three = *((gint*)a);
-  g_print("%d", three);
-}; */
-
-static gint
-my_compare (gconstpointer a,
-	    gconstpointer b)
-{
-  const char *cha = a;
-  const char *chb = b;
-
-  return *cha - *chb;
-}
-
-static gint
-my_traverse (gpointer key,
-	     gpointer value,
-	     gpointer data)
-{
-  char *ch = key;
-  g_print ("%c ", *ch);
-  return FALSE;
-}
-
-int
-main (int   argc,
-      char *argv[])
-{
-  GList *list, *t;
-  GSList *slist, *st;
-  GHashTable *hash_table;
-  GMemChunk *mem_chunk;
-  GStringChunk *string_chunk;
-  GTimer *timer;
-  gint nums[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
-  gint morenums[10] = { 8, 9, 7, 0, 3, 2, 5, 1, 4, 6};
-  gchar *string;
-
-  gchar *mem[10000], *tmp_string = NULL, *tmp_string_2;
-  gint i, j;
-  GArray *garray;
-  GPtrArray *gparray;
-  GByteArray *gbarray;
-  GString *string1, *string2;
-  GTree *tree;
-  char chars[62];
-  GRelation *relation;
-  GTuples *tuples;
-  gint data [1024];
-  struct {
-    gchar *filename;
-    gchar *dirname;
-  } dirname_checks[] = {
-#ifndef NATIVE_WIN32
-    { "/", "/" },
-    { "////", "/" },
-    { ".////", "." },
-    { ".", "." },
-    { "..", "." },
-    { "../", ".." },
-    { "..////", ".." },
-    { "", "." },
-    { "a/b", "a" },
-    { "a/b/", "a/b" },
-    { "c///", "c" },
-#else
-    { "\\", "\\" },
-    { ".\\\\\\\\", "." },
-    { ".", "." },
-    { "..", "." },
-    { "..\\", ".." },
-    { "..\\\\\\\\", ".." },
-    { "", "." },
-    { "a\\b", "a" },
-    { "a\\b\\", "a\\b" },
-    { "c\\\\\\", "c" },
-#endif
-  };
-  guint n_dirname_checks = sizeof (dirname_checks) / sizeof (dirname_checks[0]);
-  guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U;
-  guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U;
-#ifdef G_HAVE_GINT64
-  guint64 gu64t1 = G_GINT64_CONSTANT(0x1d636b02300a7aa7U),
-	  gu64t2 = G_GINT64_CONSTANT(0xa77a0a30026b631dU);
-#endif
-
-  g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n",
-	   glib_major_version,
-	   glib_minor_version,
-	   glib_micro_version,
-	   glib_interface_age,
-	   glib_binary_age);
-
-  string = g_get_current_dir ();
-  g_print ("cwd: %s\n", string);
-  g_free (string);
-  g_print ("user: %s\n", g_get_user_name ());
-  g_print ("real: %s\n", g_get_real_name ());
-  g_print ("home: %s\n", g_get_home_dir ());
-  g_print ("tmp-dir: %s\n", g_get_tmp_dir ());
-
-  /* type sizes */
-  g_print ("checking size of gint8: %d", (int)sizeof (gint8));
-  TEST (NULL, sizeof (gint8) == 1);
-  g_print ("\nchecking size of gint16: %d", (int)sizeof (gint16));
-  TEST (NULL, sizeof (gint16) == 2);
-  g_print ("\nchecking size of gint32: %d", (int)sizeof (gint32));
-  TEST (NULL, sizeof (gint32) == 4);
-#ifdef	G_HAVE_GINT64
-  g_print ("\nchecking size of gint64: %d", (int)sizeof (gint64));
-  TEST (NULL, sizeof (gint64) == 8);
-#endif	/* G_HAVE_GINT64 */
-  g_print ("\n");
-
-  g_print ("checking g_dirname()...");
-  for (i = 0; i < n_dirname_checks; i++)
-    {
-      gchar *dirname;
-
-      dirname = g_dirname (dirname_checks[i].filename);
-      if (strcmp (dirname, dirname_checks[i].dirname) != 0)
-	{
-	  g_print ("\nfailed for \"%s\"==\"%s\" (returned: \"%s\")\n",
-		   dirname_checks[i].filename,
-		   dirname_checks[i].dirname,
-		   dirname);
-	  n_dirname_checks = 0;
-	}
-      g_free (dirname);
-    }
-  if (n_dirname_checks)
-    g_print ("ok\n");
-
-  g_print ("checking doubly linked lists...");
-
-  list = NULL;
-  for (i = 0; i < 10; i++)
-    list = g_list_append (list, &nums[i]);
-  list = g_list_reverse (list);
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      if (*((gint*) t->data) != (9 - i))
-	g_error ("Regular insert failed");
-    }
-
-  for (i = 0; i < 10; i++)
-    if(g_list_position(list, g_list_nth (list, i)) != i)
-      g_error("g_list_position does not seem to be the inverse of g_list_nth\n");
-
-  g_list_free (list);
-  list = NULL;
-
-  for (i = 0; i < 10; i++)
-    list = g_list_insert_sorted (list, &morenums[i], my_list_compare_one);
-
-  /*
-  g_print("\n");
-  g_list_foreach (list, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      if (*((gint*) t->data) != i)
-         g_error ("Sorted insert failed");
-    }
-
-  g_list_free (list);
-  list = NULL;
-
-  for (i = 0; i < 10; i++)
-    list = g_list_insert_sorted (list, &morenums[i], my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_list_foreach (list, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      if (*((gint*) t->data) != (9 - i))
-         g_error ("Sorted insert failed");
-    }
-
-  g_list_free (list);
-  list = NULL;
-
-  for (i = 0; i < 10; i++)
-    list = g_list_prepend (list, &morenums[i]);
-
-  list = g_list_sort (list, my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_list_foreach (list, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      if (*((gint*) t->data) != (9 - i))
-         g_error ("Merge sort failed");
-    }
-
-  g_list_free (list);
-
-  g_print ("ok\n");
-
-
-  g_print ("checking singly linked lists...");
-
-  slist = NULL;
-  for (i = 0; i < 10; i++)
-    slist = g_slist_append (slist, &nums[i]);
-  slist = g_slist_reverse (slist);
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      if (*((gint*) st->data) != (9 - i))
-	g_error ("failed");
-    }
-
-  g_slist_free (slist);
-  slist = NULL;
-
-  for (i = 0; i < 10; i++)
-    slist = g_slist_insert_sorted (slist, &morenums[i], my_list_compare_one);
-
-  /*
-  g_print("\n");
-  g_slist_foreach (slist, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      if (*((gint*) st->data) != i)
-         g_error ("Sorted insert failed");
-    }
-
-  g_slist_free(slist);
-  slist = NULL;
-
-  for (i = 0; i < 10; i++)
-    slist = g_slist_insert_sorted (slist, &morenums[i], my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_slist_foreach (slist, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      if (*((gint*) st->data) != (9 - i))
-         g_error("Sorted insert failed");
-    }
-
-  g_slist_free(slist);
-  slist = NULL;
-
-  for (i = 0; i < 10; i++)
-    slist = g_slist_prepend (slist, &morenums[i]);
-
-  slist = g_slist_sort (slist, my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_slist_foreach (slist, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      if (*((gint*) st->data) != (9 - i))
-         g_error("Sorted insert failed");
-    }
-
-  g_slist_free(slist);
-
-  g_print ("ok\n");
-
-
-  g_print ("checking binary trees...\n");
-
-  tree = g_tree_new (my_compare);
-  i = 0;
-  for (j = 0; j < 10; j++, i++)
-    {
-      chars[i] = '0' + j;
-      g_tree_insert (tree, &chars[i], &chars[i]);
-    }
-  for (j = 0; j < 26; j++, i++)
-    {
-      chars[i] = 'A' + j;
-      g_tree_insert (tree, &chars[i], &chars[i]);
-    }
-  for (j = 0; j < 26; j++, i++)
-    {
-      chars[i] = 'a' + j;
-      g_tree_insert (tree, &chars[i], &chars[i]);
-    }
-
-  g_print ("tree height: %d\n", g_tree_height (tree));
-  g_print ("tree nnodes: %d\n", g_tree_nnodes (tree));
-
-  g_print ("tree: ");
-  g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL);
-  g_print ("\n");
-
-  for (i = 0; i < 10; i++)
-    g_tree_remove (tree, &chars[i]);
-
-  g_print ("tree height: %d\n", g_tree_height (tree));
-  g_print ("tree nnodes: %d\n", g_tree_nnodes (tree));
-
-  g_print ("tree: ");
-  g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL);
-  g_print ("\n");
-
-  g_print ("ok\n");
-
-
-  /* check n-way trees */
-  g_node_test ();
-
-  g_print ("checking mem chunks...");
-
-  mem_chunk = g_mem_chunk_new ("test mem chunk", 50, 100, G_ALLOC_AND_FREE);
-
-  for (i = 0; i < 10000; i++)
-    {
-      mem[i] = g_chunk_new (gchar, mem_chunk);
-
-      for (j = 0; j < 50; j++)
-	mem[i][j] = i * j;
-    }
-
-  for (i = 0; i < 10000; i++)
-    {
-      g_mem_chunk_free (mem_chunk, mem[i]);
-    }
-
-  g_print ("ok\n");
-
-
-  g_print ("checking hash tables...");
-
-  hash_table = g_hash_table_new (my_hash, my_hash_compare);
-  for (i = 0; i < 10000; i++)
-    {
-      array[i] = i;
-      g_hash_table_insert (hash_table, &array[i], &array[i]);
-    }
-  g_hash_table_foreach (hash_table, my_hash_callback, NULL);
-
-  for (i = 0; i < 10000; i++)
-    if (array[i] == 0)
-      g_print ("%d\n", i);
-
-  for (i = 0; i < 10000; i++)
-    g_hash_table_remove (hash_table, &array[i]);
-
-  for (i = 0; i < 10000; i++)
-    {
-      array[i] = i;
-      g_hash_table_insert (hash_table, &array[i], &array[i]);
-    }
-
-  if (g_hash_table_foreach_remove (hash_table, my_hash_callback_remove, NULL) != 5000 ||
-      g_hash_table_size (hash_table) != 5000)
-    g_print ("bad!\n");
-
-  g_hash_table_foreach (hash_table, my_hash_callback_remove_test, NULL);
-
-
-  g_hash_table_destroy (hash_table);
-
-  g_print ("ok\n");
-
-
-  g_print ("checking string chunks...");
-
-  string_chunk = g_string_chunk_new (1024);
-
-  for (i = 0; i < 100000; i ++)
-    {
-      tmp_string = g_string_chunk_insert (string_chunk, "hi pete");
-
-      if (strcmp ("hi pete", tmp_string) != 0)
-	g_error ("string chunks are broken.\n");
-    }
-
-  tmp_string_2 = g_string_chunk_insert_const (string_chunk, tmp_string);
-
-  g_assert (tmp_string_2 != tmp_string &&
-	    strcmp(tmp_string_2, tmp_string) == 0);
-
-  tmp_string = g_string_chunk_insert_const (string_chunk, tmp_string);
-
-  g_assert (tmp_string_2 == tmp_string);
-
-  g_string_chunk_free (string_chunk);
-
-  g_print ("ok\n");
-
-
-  g_print ("checking arrays...");
-
-  garray = g_array_new (FALSE, FALSE, sizeof (gint));
-  for (i = 0; i < 10000; i++)
-    g_array_append_val (garray, i);
-
-  for (i = 0; i < 10000; i++)
-    if (g_array_index (garray, gint, i) != i)
-      g_print ("uh oh: %d ( %d )\n", g_array_index (garray, gint, i), i);
-
-  g_array_free (garray, TRUE);
-
-  garray = g_array_new (FALSE, FALSE, sizeof (gint));
-  for (i = 0; i < 100; i++)
-    g_array_prepend_val (garray, i);
-
-  for (i = 0; i < 100; i++)
-    if (g_array_index (garray, gint, i) != (100 - i - 1))
-      g_print ("uh oh: %d ( %d )\n", g_array_index (garray, gint, i), 100 - i - 1);
-
-  g_array_free (garray, TRUE);
-
-  g_print ("ok\n");
-
-
-  g_print ("checking strings...");
-
-  string1 = g_string_new ("hi pete!");
-  string2 = g_string_new ("");
-
-  g_assert (strcmp ("hi pete!", string1->str) == 0);
-
-  for (i = 0; i < 10000; i++)
-    g_string_append_c (string1, 'a'+(i%26));
-
-#if !(defined (_MSC_VER) || defined (__LCC__))
-  /* MSVC and LCC use the same run-time C library, which doesn't like
-     the %10000.10000f format... */
-  g_string_sprintf (string2, "%s|%0100d|%s|%s|%0*d|%*.*f|%10000.10000f",
-		    "this pete guy sure is a wuss, like he's the number ",
-		    1,
-		    " wuss.  everyone agrees.\n",
-		    string1->str,
-		    10, 666, 15, 15, 666.666666666, 666.666666666);
-#else
-  g_string_sprintf (string2, "%s|%0100d|%s|%s|%0*d|%*.*f|%100.100f",
-		    "this pete guy sure is a wuss, like he's the number ",
-		    1,
-		    " wuss.  everyone agrees.\n",
-		    string1->str,
-		    10, 666, 15, 15, 666.666666666, 666.666666666);
-#endif
-
-  g_print ("string2 length = %d...\n", string2->len);
-  string2->str[70] = '\0';
-  g_print ("first 70 chars:\n%s\n", string2->str);
-  string2->str[141] = '\0';
-  g_print ("next 70 chars:\n%s\n", string2->str+71);
-  string2->str[212] = '\0';
-  g_print ("and next 70:\n%s\n", string2->str+142);
-  g_print ("last 70 chars:\n%s\n", string2->str+string2->len - 70);
-
-  g_print ("ok\n");
-
-  g_print ("checking timers...\n");
-
-  timer = g_timer_new ();
-  g_print ("  spinning for 3 seconds...\n");
-
-  g_timer_start (timer);
-  while (g_timer_elapsed (timer, NULL) < 3)
-    ;
-
-  g_timer_stop (timer);
-  g_timer_destroy (timer);
-
-  g_print ("ok\n");
-
-  g_print ("checking g_strcasecmp...");
-  g_assert (g_strcasecmp ("FroboZZ", "frobozz") == 0);
-  g_assert (g_strcasecmp ("frobozz", "frobozz") == 0);
-  g_assert (g_strcasecmp ("frobozz", "FROBOZZ") == 0);
-  g_assert (g_strcasecmp ("FROBOZZ", "froboz") != 0);
-  g_assert (g_strcasecmp ("", "") == 0);
-  g_assert (g_strcasecmp ("!#%&/()", "!#%&/()") == 0);
-  g_assert (g_strcasecmp ("a", "b") < 0);
-  g_assert (g_strcasecmp ("a", "B") < 0);
-  g_assert (g_strcasecmp ("A", "b") < 0);
-  g_assert (g_strcasecmp ("A", "B") < 0);
-  g_assert (g_strcasecmp ("b", "a") > 0);
-  g_assert (g_strcasecmp ("b", "A") > 0);
-  g_assert (g_strcasecmp ("B", "a") > 0);
-  g_assert (g_strcasecmp ("B", "A") > 0);
-
-  g_print ("ok\n");
-
-  g_print ("checking g_strdup...");
-  g_assert(g_strdup(NULL) == NULL);
-  string = g_strdup(GLIB_TEST_STRING);
-  g_assert(string != NULL);
-  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
-  g_free(string);
-
-  g_print ("ok\n");
-
-  g_print ("checking g_strconcat...");
-  string = g_strconcat(GLIB_TEST_STRING, NULL);
-  g_assert(string != NULL);
-  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
-  g_free(string);
-  string = g_strconcat(GLIB_TEST_STRING, GLIB_TEST_STRING, 
-  		       GLIB_TEST_STRING, NULL);
-  g_assert(string != NULL);
-  g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
-  			  GLIB_TEST_STRING) == 0);
-  g_free(string);
-  
-  g_print ("ok\n");
-
-  g_print ("checking g_strdup_printf...");
-  string = g_strdup_printf ("%05d %-5s", 21, "test");
-  g_assert (string != NULL);
-  g_assert (strcmp(string, "00021 test ") == 0);
-  g_free (string);
-
-  g_print ("ok\n");
-
-  /* g_debug (argv[0]); */
-
-  /* Relation tests */
-
-  g_print ("checking relations...");
-
-  relation = g_relation_new (2);
-
-  g_relation_index (relation, 0, g_int_hash, g_int_equal);
-  g_relation_index (relation, 1, g_int_hash, g_int_equal);
-
-  for (i = 0; i < 1024; i += 1)
-    data[i] = i;
-
-  for (i = 1; i < 1023; i += 1)
-    {
-      g_relation_insert (relation, data + i, data + i + 1);
-      g_relation_insert (relation, data + i, data + i - 1);
-    }
-
-  for (i = 2; i < 1022; i += 1)
-    {
-      g_assert (! g_relation_exists (relation, data + i, data + i));
-      g_assert (! g_relation_exists (relation, data + i, data + i + 2));
-      g_assert (! g_relation_exists (relation, data + i, data + i - 2));
-    }
-
-  for (i = 1; i < 1023; i += 1)
-    {
-      g_assert (g_relation_exists (relation, data + i, data + i + 1));
-      g_assert (g_relation_exists (relation, data + i, data + i - 1));
-    }
-
-  for (i = 2; i < 1022; i += 1)
-    {
-      g_assert (g_relation_count (relation, data + i, 0) == 2);
-      g_assert (g_relation_count (relation, data + i, 1) == 2);
-    }
-
-  g_assert (g_relation_count (relation, data, 0) == 0);
-
-  g_assert (g_relation_count (relation, data + 42, 0) == 2);
-  g_assert (g_relation_count (relation, data + 43, 1) == 2);
-  g_assert (g_relation_count (relation, data + 41, 1) == 2);
-  g_relation_delete (relation, data + 42, 0);
-  g_assert (g_relation_count (relation, data + 42, 0) == 0);
-  g_assert (g_relation_count (relation, data + 43, 1) == 1);
-  g_assert (g_relation_count (relation, data + 41, 1) == 1);
-
-  tuples = g_relation_select (relation, data + 200, 0);
-
-  g_assert (tuples->len == 2);
-
-#if 0
-  for (i = 0; i < tuples->len; i += 1)
-    {
-      printf ("%d %d\n",
-	      *(gint*) g_tuples_index (tuples, i, 0),
-	      *(gint*) g_tuples_index (tuples, i, 1));
-    }
-#endif
-
-  g_assert (g_relation_exists (relation, data + 300, data + 301));
-  g_relation_delete (relation, data + 300, 0);
-  g_assert (!g_relation_exists (relation, data + 300, data + 301));
-
-  g_tuples_destroy (tuples);
-
-  g_relation_destroy (relation);
-
-  relation = NULL;
-
-  g_print ("ok\n");
-
-  g_print ("checking pointer arrays...");
-
-  gparray = g_ptr_array_new ();
-  for (i = 0; i < 10000; i++)
-    g_ptr_array_add (gparray, GINT_TO_POINTER (i));
-
-  for (i = 0; i < 10000; i++)
-    if (g_ptr_array_index (gparray, i) != GINT_TO_POINTER (i))
-      g_print ("array fails: %p ( %p )\n", g_ptr_array_index (gparray, i), GINT_TO_POINTER (i));
-
-  g_ptr_array_free (gparray, TRUE);
-
-  g_print ("ok\n");
-
-
-  g_print ("checking byte arrays...");
-
-  gbarray = g_byte_array_new ();
-  for (i = 0; i < 10000; i++)
-    g_byte_array_append (gbarray, (guint8*) "abcd", 4);
-
-  for (i = 0; i < 10000; i++)
-    {
-      g_assert (gbarray->data[4*i] == 'a');
-      g_assert (gbarray->data[4*i+1] == 'b');
-      g_assert (gbarray->data[4*i+2] == 'c');
-      g_assert (gbarray->data[4*i+3] == 'd');
-    }
-
-  g_byte_array_free (gbarray, TRUE);
-  g_print ("ok\n");
-
-  g_printerr ("g_log tests:");
-  g_warning ("harmless warning with parameters: %d %s %#x", 42, "Boo", 12345);
-  g_message ("the next warning is a test:");
-  string = NULL;
-  g_print (string);
-
-  g_print ("checking endian macros (host is ");
-#if G_BYTE_ORDER == G_BIG_ENDIAN
-  g_print ("big endian)...");
-#else
-  g_print ("little endian)...");
-#endif
-  g_assert (GUINT16_SWAP_LE_BE (gu16t1) == gu16t2);  
-  g_assert (GUINT32_SWAP_LE_BE (gu32t1) == gu32t2);  
-#ifdef G_HAVE_GINT64
-  g_assert (GUINT64_SWAP_LE_BE (gu64t1) == gu64t2);  
-#endif
-  g_print ("ok\n");
-
-  return 0;
-}
-
diff --git a/glib/tests/Makefile.am b/glib/tests/Makefile.am
deleted file mode 100644
index 7467940..0000000
--- a/glib/tests/Makefile.am
+++ /dev/null
@@ -1,36 +0,0 @@
-
-INCLUDES = -I$(top_srcdir)
-
-EXTRA_DIST = \
-	makefile.msc \
-	makefile.msc.in
-
-TESTS = \
-	array-test	\
-	dirname-test	\
-	hash-test	\
-	list-test	\
-	node-test	\
-	relation-test	\
-	slist-test	\
-	string-test	\
-	strfunc-test	\
-	tree-test	\
-	type-test
-
-noinst_PROGRAMS = $(TESTS)
-
-array_test_LDADD = $(top_builddir)/libglib.la
-dirname_test_LDADD = $(top_builddir)/libglib.la
-hash_test_LDADD = $(top_builddir)/libglib.la
-list_test_LDADD = $(top_builddir)/libglib.la
-node_test_LDADD = $(top_builddir)/libglib.la
-relation_test_LDADD = $(top_builddir)/libglib.la
-slist_test_LDADD = $(top_builddir)/libglib.la
-string_test_LDADD = $(top_builddir)/libglib.la
-strfunc_test_LDADD = $(top_builddir)/libglib.la
-tree_test_LDADD = $(top_builddir)/libglib.la
-type_test_LDADD = $(top_builddir)/libglib.la
-
-makefile.msc: $(top_builddir)/config.status $(top_srcdir)/tests/makefile.msc.in
-	cd $(top_builddir) && CONFIG_FILES=tests/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/glib/tests/Makefile.in b/glib/tests/Makefile.in
deleted file mode 100644
index 62d302f..0000000
--- a/glib/tests/Makefile.in
+++ /dev/null
@@ -1,437 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@
-ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@
-GLIB_BINARY_AGE = @GLIB_BINARY_AGE@
-GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@
-GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@
-GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@
-GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@
-GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@
-GLIB_VERSION = @GLIB_VERSION@
-G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@
-G_MODULE_IMPL = @G_MODULE_IMPL@
-G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@
-G_MODULE_LIBS = @G_MODULE_LIBS@
-G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@
-G_THREAD_CFLAGS = @G_THREAD_CFLAGS@
-G_THREAD_LIBS = @G_THREAD_LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_RELEASE = @LT_RELEASE@
-LT_REVISION = @LT_REVISION@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-
-INCLUDES = -I$(top_srcdir)
-
-EXTRA_DIST =  	makefile.msc 	makefile.msc.in
-
-
-TESTS =  	array-test		dirname-test		hash-test		list-test		node-test		relation-test		slist-test		string-test		strfunc-test		tree-test		type-test
-
-
-noinst_PROGRAMS = $(TESTS)
-
-array_test_LDADD = $(top_builddir)/libglib.la
-dirname_test_LDADD = $(top_builddir)/libglib.la
-hash_test_LDADD = $(top_builddir)/libglib.la
-list_test_LDADD = $(top_builddir)/libglib.la
-node_test_LDADD = $(top_builddir)/libglib.la
-relation_test_LDADD = $(top_builddir)/libglib.la
-slist_test_LDADD = $(top_builddir)/libglib.la
-string_test_LDADD = $(top_builddir)/libglib.la
-strfunc_test_LDADD = $(top_builddir)/libglib.la
-tree_test_LDADD = $(top_builddir)/libglib.la
-type_test_LDADD = $(top_builddir)/libglib.la
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-PROGRAMS =  $(noinst_PROGRAMS)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I..
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-array_test_SOURCES = array-test.c
-array_test_OBJECTS =  array-test.o
-array_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-array_test_LDFLAGS = 
-dirname_test_SOURCES = dirname-test.c
-dirname_test_OBJECTS =  dirname-test.o
-dirname_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-dirname_test_LDFLAGS = 
-hash_test_SOURCES = hash-test.c
-hash_test_OBJECTS =  hash-test.o
-hash_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-hash_test_LDFLAGS = 
-list_test_SOURCES = list-test.c
-list_test_OBJECTS =  list-test.o
-list_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-list_test_LDFLAGS = 
-node_test_SOURCES = node-test.c
-node_test_OBJECTS =  node-test.o
-node_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-node_test_LDFLAGS = 
-relation_test_SOURCES = relation-test.c
-relation_test_OBJECTS =  relation-test.o
-relation_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-relation_test_LDFLAGS = 
-slist_test_SOURCES = slist-test.c
-slist_test_OBJECTS =  slist-test.o
-slist_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-slist_test_LDFLAGS = 
-string_test_SOURCES = string-test.c
-string_test_OBJECTS =  string-test.o
-string_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-string_test_LDFLAGS = 
-strfunc_test_SOURCES = strfunc-test.c
-strfunc_test_OBJECTS =  strfunc-test.o
-strfunc_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-strfunc_test_LDFLAGS = 
-tree_test_SOURCES = tree-test.c
-tree_test_OBJECTS =  tree-test.o
-tree_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-tree_test_LDFLAGS = 
-type_test_SOURCES = type-test.c
-type_test_OBJECTS =  type-test.o
-type_test_DEPENDENCIES =  $(top_builddir)/libglib.la
-type_test_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DIST_COMMON =  Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = array-test.c dirname-test.c hash-test.c list-test.c node-test.c relation-test.c slist-test.c string-test.c strfunc-test.c tree-test.c type-test.c
-OBJECTS = array-test.o dirname-test.o hash-test.o list-test.o node-test.o relation-test.o slist-test.o string-test.o strfunc-test.o tree-test.o type-test.o
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps tests/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstPROGRAMS:
-
-clean-noinstPROGRAMS:
-	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-
-.c.o:
-	$(COMPILE) -c $<
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-array-test: $(array_test_OBJECTS) $(array_test_DEPENDENCIES)
-	@rm -f array-test
-	$(LINK) $(array_test_LDFLAGS) $(array_test_OBJECTS) $(array_test_LDADD) $(LIBS)
-
-dirname-test: $(dirname_test_OBJECTS) $(dirname_test_DEPENDENCIES)
-	@rm -f dirname-test
-	$(LINK) $(dirname_test_LDFLAGS) $(dirname_test_OBJECTS) $(dirname_test_LDADD) $(LIBS)
-
-hash-test: $(hash_test_OBJECTS) $(hash_test_DEPENDENCIES)
-	@rm -f hash-test
-	$(LINK) $(hash_test_LDFLAGS) $(hash_test_OBJECTS) $(hash_test_LDADD) $(LIBS)
-
-list-test: $(list_test_OBJECTS) $(list_test_DEPENDENCIES)
-	@rm -f list-test
-	$(LINK) $(list_test_LDFLAGS) $(list_test_OBJECTS) $(list_test_LDADD) $(LIBS)
-
-node-test: $(node_test_OBJECTS) $(node_test_DEPENDENCIES)
-	@rm -f node-test
-	$(LINK) $(node_test_LDFLAGS) $(node_test_OBJECTS) $(node_test_LDADD) $(LIBS)
-
-relation-test: $(relation_test_OBJECTS) $(relation_test_DEPENDENCIES)
-	@rm -f relation-test
-	$(LINK) $(relation_test_LDFLAGS) $(relation_test_OBJECTS) $(relation_test_LDADD) $(LIBS)
-
-slist-test: $(slist_test_OBJECTS) $(slist_test_DEPENDENCIES)
-	@rm -f slist-test
-	$(LINK) $(slist_test_LDFLAGS) $(slist_test_OBJECTS) $(slist_test_LDADD) $(LIBS)
-
-string-test: $(string_test_OBJECTS) $(string_test_DEPENDENCIES)
-	@rm -f string-test
-	$(LINK) $(string_test_LDFLAGS) $(string_test_OBJECTS) $(string_test_LDADD) $(LIBS)
-
-strfunc-test: $(strfunc_test_OBJECTS) $(strfunc_test_DEPENDENCIES)
-	@rm -f strfunc-test
-	$(LINK) $(strfunc_test_LDFLAGS) $(strfunc_test_OBJECTS) $(strfunc_test_LDADD) $(LIBS)
-
-tree-test: $(tree_test_OBJECTS) $(tree_test_DEPENDENCIES)
-	@rm -f tree-test
-	$(LINK) $(tree_test_LDFLAGS) $(tree_test_OBJECTS) $(tree_test_LDADD) $(LIBS)
-
-type-test: $(type_test_OBJECTS) $(type_test_DEPENDENCIES)
-	@rm -f type-test
-	$(LINK) $(type_test_LDFLAGS) $(type_test_OBJECTS) $(type_test_LDADD) $(LIBS)
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-	-rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = tests
-
-distdir: $(DISTFILES)
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
-	  fi; \
-	done
-
-check-TESTS: $(TESTS)
-	@failed=0; all=0; \
-	srcdir=$(srcdir); export srcdir; \
-	for tst in $(TESTS); do \
-	  if test -f $$tst; then dir=.; \
-	  else dir="$(srcdir)"; fi; \
-	  if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
-	    all=`expr $$all + 1`; \
-	    echo "PASS: $$tst"; \
-	  elif test $$? -ne 77; then \
-	    all=`expr $$all + 1`; \
-	    failed=`expr $$failed + 1`; \
-	    echo "FAIL: $$tst"; \
-	  fi; \
-	done; \
-	if test "$$failed" -eq 0; then \
-	  banner="All $$all tests passed"; \
-	else \
-	  banner="$$failed of $$all tests failed"; \
-	fi; \
-	dashes=`echo "$$banner" | sed s/./=/g`; \
-	echo "$$dashes"; \
-	echo "$$banner"; \
-	echo "$$dashes"; \
-	test "$$failed" -eq 0
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile $(PROGRAMS)
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstPROGRAMS mostlyclean-compile \
-		mostlyclean-libtool mostlyclean-tags \
-		mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
-		clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-noinstPROGRAMS distclean-compile \
-		distclean-libtool distclean-tags distclean-generic \
-		clean-am
-	-rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am:  maintainer-clean-noinstPROGRAMS \
-		maintainer-clean-compile maintainer-clean-libtool \
-		maintainer-clean-tags maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
-clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir check-TESTS \
-info-am info dvi-am dvi check check-am installcheck-am installcheck \
-install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-makefile.msc: $(top_builddir)/config.status $(top_srcdir)/tests/makefile.msc.in
-	cd $(top_builddir) && CONFIG_FILES=tests/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/glib/tests/array-test.c b/glib/tests/array-test.c
deleted file mode 100644
index 0bcd7b2..0000000
--- a/glib/tests/array-test.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-
-int
-main (int   argc,
-      char *argv[])
-{
-  gint i;
-  GArray *garray;
-  GPtrArray *gparray;
-  GByteArray *gbarray;
-
-  /* array tests */
-  garray = g_array_new (FALSE, FALSE, sizeof (gint));
-  for (i = 0; i < 10000; i++)
-    g_array_append_val (garray, i);
-
-  for (i = 0; i < 10000; i++)
-    g_assert (g_array_index (garray, gint, i) == i);
-
-  g_array_free (garray, TRUE);
-
-  garray = g_array_new (FALSE, FALSE, sizeof (gint));
-  for (i = 0; i < 100; i++)
-    g_array_prepend_val (garray, i);
-
-  for (i = 0; i < 100; i++)
-    g_assert (g_array_index (garray, gint, i) == (100 - i - 1));
-
-  g_array_free (garray, TRUE);
-
-  /* pointer arrays */
-  gparray = g_ptr_array_new ();
-  for (i = 0; i < 10000; i++)
-    g_ptr_array_add (gparray, GINT_TO_POINTER (i));
-
-  for (i = 0; i < 10000; i++)
-    if (g_ptr_array_index (gparray, i) != GINT_TO_POINTER (i))
-      g_print ("array fails: %p ( %p )\n", g_ptr_array_index (gparray, i), GINT_TO_POINTER (i));
-
-  g_ptr_array_free (gparray, TRUE);
-
-  /* byte arrays */
-  gbarray = g_byte_array_new ();
-  for (i = 0; i < 10000; i++)
-    g_byte_array_append (gbarray, (guint8*) "abcd", 4);
-
-  for (i = 0; i < 10000; i++)
-    {
-      g_assert (gbarray->data[4*i] == 'a');
-      g_assert (gbarray->data[4*i+1] == 'b');
-      g_assert (gbarray->data[4*i+2] == 'c');
-      g_assert (gbarray->data[4*i+3] == 'd');
-    }
-
-  g_byte_array_free (gbarray, TRUE);
-
-  return 0;
-}
-
diff --git a/glib/tests/dirname-test.c b/glib/tests/dirname-test.c
deleted file mode 100644
index 8bb05b3..0000000
--- a/glib/tests/dirname-test.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-int
-main (int   argc,
-      char *argv[])
-{
-  gint i;
-  struct {
-    gchar *filename;
-    gchar *dirname;
-  } dirname_checks[] = {
-#ifndef NATIVE_WIN32
-    { "/", "/" },
-    { "////", "/" },
-    { ".////", "." },
-    { ".", "." },
-    { "..", "." },
-    { "../", ".." },
-    { "..////", ".." },
-    { "", "." },
-    { "a/b", "a" },
-    { "a/b/", "a/b" },
-    { "c///", "c" },
-#else
-    { "\\", "\\" },
-    { ".\\\\\\\\", "." },
-    { ".", "." },
-    { "..", "." },
-    { "..\\", ".." },
-    { "..\\\\\\\\", ".." },
-    { "", "." },
-    { "a\\b", "a" },
-    { "a\\b\\", "a\\b" },
-    { "c\\\\\\", "c" },
-#endif
-  };
-  guint n_dirname_checks = sizeof (dirname_checks) / sizeof (dirname_checks[0]);
-
-  for (i = 0; i < n_dirname_checks; i++)
-    {
-      gchar *dirname;
-
-      dirname = g_dirname (dirname_checks[i].filename);
-      g_assert (strcmp (dirname, dirname_checks[i].dirname) == 0);
-      g_free (dirname);
-    }
-
-  return 0;
-}
-
diff --git a/glib/tests/hash-test.c b/glib/tests/hash-test.c
deleted file mode 100644
index 2e3be24..0000000
--- a/glib/tests/hash-test.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- * Copyright (C) 1999 The Free Software Foundation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#if STDC_HEADERS
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#endif
-
-#include <glib.h>
-
-
-
-int array[10000];
-
-
-
-static gboolean
-my_hash_callback_remove (gpointer key,
-			 gpointer value,
-			 gpointer user_data)
-{
-  int *d = value;
-
-  if ((*d) % 2)
-    return TRUE;
-
-  return FALSE;
-}
-
-static void
-my_hash_callback_remove_test (gpointer key,
-			      gpointer value,
-			      gpointer user_data)
-{
-  int *d = value;
-
-  if ((*d) % 2)
-    g_assert_not_reached ();
-}
-
-static void
-my_hash_callback (gpointer key,
-		  gpointer value,
-		  gpointer user_data)
-{
-  int *d = value;
-  *d = 1;
-}
-
-static guint
-my_hash (gconstpointer key)
-{
-  return (guint) *((const gint*) key);
-}
-
-static gint
-my_hash_compare (gconstpointer a,
-		 gconstpointer b)
-{
-  return *((const gint*) a) == *((const gint*) b);
-}
-
-
-
-/*
- * This is a simplified version of the pathalias hashing function.
- * Thanks to Steve Belovin and Peter Honeyman
- *
- * hash a string into a long int.  31 bit crc (from andrew appel).
- * the crc table is computed at run time by crcinit() -- we could
- * precompute, but it takes 1 clock tick on a 750.
- *
- * This fast table calculation works only if POLY is a prime polynomial
- * in the field of integers modulo 2.  Since the coefficients of a
- * 32-bit polynomial won't fit in a 32-bit word, the high-order bit is
- * implicit.  IT MUST ALSO BE THE CASE that the coefficients of orders
- * 31 down to 25 are zero.  Happily, we have candidates, from
- * E. J.  Watson, "Primitive Polynomials (Mod 2)", Math. Comp. 16 (1962):
- *	x^32 + x^7 + x^5 + x^3 + x^2 + x^1 + x^0
- *	x^31 + x^3 + x^0
- *
- * We reverse the bits to get:
- *	111101010000000000000000000000001 but drop the last 1
- *         f   5   0   0   0   0   0   0
- *	010010000000000000000000000000001 ditto, for 31-bit crc
- *	   4   8   0   0   0   0   0   0
- */
-
-#define POLY 0x48000000L	/* 31-bit polynomial (avoids sign problems) */
-
-static guint CrcTable[128];
-
-/*
- - crcinit - initialize tables for hash function
- */
-static void crcinit(void)
-{
-	int i, j;
-	guint sum;
-
-	for (i = 0; i < 128; ++i) {
-		sum = 0L;
-		for (j = 7 - 1; j >= 0; --j)
-			if (i & (1 << j))
-				sum ^= POLY >> j;
-		CrcTable[i] = sum;
-	}
-}
-
-/*
- - hash - Honeyman's nice hashing function
- */
-static guint honeyman_hash(gconstpointer key)
-{
-	const gchar *name = (const gchar *) key;
-	gint size;
-	guint sum = 0;
-
-	g_assert (name != NULL);
-	g_assert (*name != 0);
-
-	size = strlen(name);
-
-	while (size--) {
-		sum = (sum >> 7) ^ CrcTable[(sum ^ (*name++)) & 0x7f];
-	}
-
-	return(sum);
-}
-
-
-static gint second_hash_cmp (gconstpointer a, gconstpointer b)
-{
-  gint rc = (strcmp (a, b) == 0);
-
-  return rc;
-}
-
-
-
-static guint one_hash(gconstpointer key)
-{
-  return 1;
-}
-
-
-static void not_even_foreach (gpointer       key,
-				 gpointer       value,
-				 gpointer	user_data)
-{
-  const char *_key = (const char *) key;
-  const char *_value = (const char *) value;
-  int i;
-  char val [20];
-
-  g_assert (_key != NULL);
-  g_assert (*_key != 0);
-  g_assert (_value != NULL);
-  g_assert (*_value != 0);
-
-  i = atoi (_key);
-  g_assert (atoi (_key) > 0);
-
-  sprintf (val, "%d value", i);
-  g_assert (strcmp (_value, val) == 0);
-
-  g_assert ((i % 2) != 0);
-  g_assert (i != 3);
-}
-
-
-static gboolean remove_even_foreach (gpointer       key,
-				 gpointer       value,
-				 gpointer	user_data)
-{
-  const char *_key = (const char *) key;
-  const char *_value = (const char *) value;
-  int i;
-  char val [20];
-
-  g_assert (_key != NULL);
-  g_assert (*_key != 0);
-  g_assert (_value != NULL);
-  g_assert (*_value != 0);
-
-  i = atoi (_key);
-  g_assert (i > 0);
-
-  sprintf (val, "%d value", i);
-  g_assert (strcmp (_value, val) == 0);
-
-  return ((i % 2) == 0) ? TRUE : FALSE;
-}
-
-
-
-
-static void second_hash_test (gboolean simple_hash)
-{
-     int       i;
-     char      key[20] = "", val[20]="", *v, *orig_key, *orig_val;
-     GHashTable     *h;
-     gboolean found;
-
-     crcinit ();
-
-     h = g_hash_table_new (simple_hash ? one_hash : honeyman_hash,
-     			   second_hash_cmp);
-     g_assert (h != NULL);
-     for (i=0; i<20; i++)
-          {
-          sprintf (key, "%d", i);
-	  g_assert (atoi (key) == i);
-
-	  sprintf (val, "%d value", i);
-	  g_assert (atoi (val) == i);
-
-          g_hash_table_insert (h, g_strdup (key), g_strdup (val));
-          }
-
-     g_assert (g_hash_table_size (h) == 20);
-
-     for (i=0; i<20; i++)
-          {
-          sprintf (key, "%d", i);
-	  g_assert (atoi(key) == i);
-
-          v = (char *) g_hash_table_lookup (h, key);
-
-	  g_assert (v != NULL);
-	  g_assert (*v != 0);
-	  g_assert (atoi (v) == i);
-          }
-
-     /**** future test stuff, yet to be debugged 
-     sprintf (key, "%d", 3);
-     g_hash_table_remove (h, key);
-     g_hash_table_foreach_remove (h, remove_even_foreach, NULL);
-     g_hash_table_foreach (h, not_even_foreach, NULL);
-     */
-
-     for (i=0; i<20; i++)
-          {
-	  if (((i % 2) == 0) || (i == 3))
-	    i++;
-
-          sprintf (key, "%d", i);
-	  g_assert (atoi(key) == i);
-
-	  sprintf (val, "%d value", i);
-	  g_assert (atoi (val) == i);
-
-	  orig_key = orig_val = NULL;
-          found = g_hash_table_lookup_extended (h, key,
-	  					(gpointer)&orig_key,
-						(gpointer)&orig_val);
-	  g_assert (found);
-
-	  g_assert (orig_key != NULL);
-	  g_assert (strcmp (key, orig_key) == 0);
-	  g_free (orig_key);
-
-	  g_assert (orig_val != NULL);
-	  g_assert (strcmp (val, orig_val) == 0);
-	  g_free (orig_val);
-          }
-
-    g_hash_table_destroy (h);
-}
-
-
-static void direct_hash_test (void)
-{
-     gint       i, rc;
-     GHashTable     *h;
-
-     h = g_hash_table_new (NULL, NULL);
-     g_assert (h != NULL);
-     for (i=1; i<=20; i++)
-          {
-          g_hash_table_insert (h, GINT_TO_POINTER (i),
-	  		       GINT_TO_POINTER (i + 42));
-          }
-
-     g_assert (g_hash_table_size (h) == 20);
-
-     for (i=1; i<=20; i++)
-          {
-          rc = GPOINTER_TO_INT (
-	  	g_hash_table_lookup (h, GINT_TO_POINTER (i)));
-
-	  g_assert (rc != 0);
-	  g_assert ((rc - 42) == i);
-          }
-
-    g_hash_table_destroy (h);
-}
-
-
-
-int
-main (int   argc,
-      char *argv[])
-{
-  GHashTable *hash_table;
-  gint i;
-
-  hash_table = g_hash_table_new (my_hash, my_hash_compare);
-  for (i = 0; i < 10000; i++)
-    {
-      array[i] = i;
-      g_hash_table_insert (hash_table, &array[i], &array[i]);
-    }
-  g_hash_table_foreach (hash_table, my_hash_callback, NULL);
-
-  for (i = 0; i < 10000; i++)
-    if (array[i] == 0)
-      g_assert_not_reached();
-
-  for (i = 0; i < 10000; i++)
-    g_hash_table_remove (hash_table, &array[i]);
-
-  for (i = 0; i < 10000; i++)
-    {
-      array[i] = i;
-      g_hash_table_insert (hash_table, &array[i], &array[i]);
-    }
-
-  if (g_hash_table_foreach_remove (hash_table, my_hash_callback_remove, NULL) != 5000 ||
-      g_hash_table_size (hash_table) != 5000)
-    g_assert_not_reached();
-
-  g_hash_table_foreach (hash_table, my_hash_callback_remove_test, NULL);
-
-
-  g_hash_table_destroy (hash_table);
-
-  second_hash_test (TRUE);
-  second_hash_test (FALSE);
-  direct_hash_test ();
-
-  return 0;
-
-}
diff --git a/glib/tests/list-test.c b/glib/tests/list-test.c
deleted file mode 100644
index 13dc184..0000000
--- a/glib/tests/list-test.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-static gint
-my_list_compare_one (gconstpointer a, gconstpointer b)
-{
-  gint one = *((const gint*)a);
-  gint two = *((const gint*)b);
-  return one-two;
-}
-
-static gint
-my_list_compare_two (gconstpointer a, gconstpointer b)
-{
-  gint one = *((const gint*)a);
-  gint two = *((const gint*)b);
-  return two-one;
-}
-
-int
-main (int   argc,
-      char *argv[])
-{
-  GList *list, *t;
-  gint nums[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
-  gint morenums[10] = { 8, 9, 7, 0, 3, 2, 5, 1, 4, 6};
-  gint i;
-
-  list = NULL;
-  for (i = 0; i < 10; i++)
-    list = g_list_append (list, &nums[i]);
-  list = g_list_reverse (list);
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      g_assert (*((gint*) t->data) == (9 - i));
-    }
-
-  for (i = 0; i < 10; i++)
-    g_assert (g_list_position(list, g_list_nth (list, i)) == i);
-
-  g_list_free (list);
-  list = NULL;
-
-  for (i = 0; i < 10; i++)
-    list = g_list_insert_sorted (list, &morenums[i], my_list_compare_one);
-
-  /*
-  g_print("\n");
-  g_list_foreach (list, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      g_assert (*((gint*) t->data) == i);
-    }
-
-  g_list_free (list);
-  list = NULL;
-
-  for (i = 0; i < 10; i++)
-    list = g_list_insert_sorted (list, &morenums[i], my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_list_foreach (list, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      g_assert (*((gint*) t->data) == (9 - i));
-    }
-
-  g_list_free (list);
-  list = NULL;
-
-  for (i = 0; i < 10; i++)
-    list = g_list_prepend (list, &morenums[i]);
-
-  list = g_list_sort (list, my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_list_foreach (list, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      t = g_list_nth (list, i);
-      g_assert (*((gint*) t->data) == (9 - i));
-    }
-
-  g_list_free (list);
-
-  return 0;
-}
-
diff --git a/glib/tests/makefile.msc b/glib/tests/makefile.msc
deleted file mode 100644
index b7cf7b8..0000000
--- a/glib/tests/makefile.msc
+++ /dev/null
@@ -1,49 +0,0 @@
-## Makefile for building the GLib test programs with Microsoft C

-## Use: nmake -f makefile.msc check

-

-################################################################

-

-# Nothing much configurable below

-

-# cl -? describes the options

-CC = cl -G5 -GF -Ox -W3 -MD -nologo

-

-# No general LDFLAGS needed

-LDFLAGS = /link

-

-GLIB_VER = 1.2

-

-CFLAGS = -I.. -DHAVE_CONFIG_H

-

-TESTS = \

-	array-test.exe	\

-	dirname-test.exe\

-	hash-test.exe	\

-	list-test.exe	\

-	node-test.exe	\

-	relation-test.exe\

-	slist-test.exe	\

-	string-test.exe	\

-	strfunc-test.exe\

-	tree-test.exe	\

-	type-test.exe

-

-all :	$(TESTS)

-

-.c.exe :

-	$(CC) $(CFLAGS) -c $<

-	$(CC) $(CFLAGS) -Fe$@ $< ..\glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console

-

-check:	all

-	for %p in ($(TESTS)) do %p

-

-clean:

-	del *.exe

-	del *.obj

-	del *.dll

-	del *.lib

-	del *.err

-	del *.map

-	del *.sym

-	del *.exp

-	del *.pdb

diff --git a/glib/tests/makefile.msc.in b/glib/tests/makefile.msc.in
deleted file mode 100644
index 33bdafe..0000000
--- a/glib/tests/makefile.msc.in
+++ /dev/null
@@ -1,49 +0,0 @@
-## Makefile for building the GLib test programs with Microsoft C

-## Use: nmake -f makefile.msc check

-

-################################################################

-

-# Nothing much configurable below

-

-# cl -? describes the options

-CC = cl -G5 -GF -Ox -W3 -MD -nologo

-

-# No general LDFLAGS needed

-LDFLAGS = /link

-

-GLIB_VER = @GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@

-

-CFLAGS = -I.. -DHAVE_CONFIG_H

-

-TESTS = \

-	array-test.exe	\

-	dirname-test.exe\

-	hash-test.exe	\

-	list-test.exe	\

-	node-test.exe	\

-	relation-test.exe\

-	slist-test.exe	\

-	string-test.exe	\

-	strfunc-test.exe\

-	tree-test.exe	\

-	type-test.exe

-

-all :	$(TESTS)

-

-.c.exe :

-	$(CC) $(CFLAGS) -c $<

-	$(CC) $(CFLAGS) -Fe$@ $< ..\glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console

-

-check:	all

-	for %p in ($(TESTS)) do %p

-

-clean:

-	del *.exe

-	del *.obj

-	del *.dll

-	del *.lib

-	del *.err

-	del *.map

-	del *.sym

-	del *.exp

-	del *.pdb

diff --git a/glib/tests/node-test.c b/glib/tests/node-test.c
deleted file mode 100644
index 3813666..0000000
--- a/glib/tests/node-test.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-      exit(1); \
-  } \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-static gboolean
-node_build_string (GNode    *node,
-		   gpointer  data)
-{
-  gchar **p = data;
-  gchar *string;
-  gchar c[2] = "_";
-
-  c[0] = P2C (node->data);
-
-  string = g_strconcat (*p ? *p : "", c, NULL);
-  g_free (*p);
-  *p = string;
-
-  return FALSE;
-}
-
-static void
-g_node_test (void)
-{
-  GNode *root;
-  GNode *node;
-  GNode *node_B;
-  GNode *node_F;
-  GNode *node_G;
-  GNode *node_J;
-  guint i;
-  gchar *tstring;
-
-  failed = FALSE;
-
-  root = g_node_new (C2P ('A'));
-  TEST (NULL, g_node_depth (root) == 1 && g_node_max_height (root) == 1);
-
-  node_B = g_node_new (C2P ('B'));
-  g_node_append (root, node_B);
-  TEST (NULL, root->children == node_B);
-
-  g_node_append_data (node_B, C2P ('E'));
-  g_node_prepend_data (node_B, C2P ('C'));
-  g_node_insert (node_B, 1, g_node_new (C2P ('D')));
-
-  node_F = g_node_new (C2P ('F'));
-  g_node_append (root, node_F);
-  TEST (NULL, root->children->next == node_F);
-
-  node_G = g_node_new (C2P ('G'));
-  g_node_append (node_F, node_G);
-  node_J = g_node_new (C2P ('J'));
-  g_node_prepend (node_G, node_J);
-  g_node_insert (node_G, 42, g_node_new (C2P ('K')));
-  g_node_insert_data (node_G, 0, C2P ('H'));
-  g_node_insert (node_G, 1, g_node_new (C2P ('I')));
-
-  TEST (NULL, g_node_depth (root) == 1);
-  TEST (NULL, g_node_max_height (root) == 4);
-  TEST (NULL, g_node_depth (node_G->children->next) == 4);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_LEAFS) == 7);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_NON_LEAFS) == 4);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_ALL) == 11);
-  TEST (NULL, g_node_max_height (node_F) == 3);
-  TEST (NULL, g_node_n_children (node_G) == 4);
-  TEST (NULL, g_node_find_child (root, G_TRAVERSE_ALL, C2P ('F')) == node_F);
-  TEST (NULL, g_node_find (root, G_LEVEL_ORDER, G_TRAVERSE_NON_LEAFS, C2P ('I')) == NULL);
-  TEST (NULL, g_node_find (root, G_IN_ORDER, G_TRAVERSE_LEAFS, C2P ('J')) == node_J);
-
-  for (i = 0; i < g_node_n_children (node_B); i++)
-    {
-      node = g_node_nth_child (node_B, i);
-      TEST (NULL, P2C (node->data) == ('C' + i));
-    }
-  
-  for (i = 0; i < g_node_n_children (node_G); i++)
-    TEST (NULL, g_node_child_position (node_G, g_node_nth_child (node_G, i)) == i);
-
-  /* we have built:                    A
-   *                                 /   \
-   *                               B       F
-   *                             / | \       \
-   *                           C   D   E       G
-   *                                         / /\ \
-   *                                       H  I  J  K
-   *
-   * for in-order traversal, 'G' is considered to be the "left"
-   * child of 'F', which will cause 'F' to be the last node visited.
-   */
-
-  tstring = NULL;
-  g_node_traverse (root, G_PRE_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABCDEFGHIJK") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_POST_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "CDEBHIJKGFA") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_IN_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "CBDEAHGIJKF") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_LEVEL_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABFCDEGHIJK") == 0);
-  g_free (tstring); tstring = NULL;
-  
-  g_node_traverse (root, G_LEVEL_ORDER, G_TRAVERSE_LEAFS, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "CDEHIJK") == 0);
-  g_free (tstring); tstring = NULL;
-  g_node_traverse (root, G_PRE_ORDER, G_TRAVERSE_NON_LEAFS, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABFG") == 0);
-  g_free (tstring); tstring = NULL;
-
-  g_node_reverse_children (node_B);
-  g_node_reverse_children (node_G);
-
-  g_node_traverse (root, G_LEVEL_ORDER, G_TRAVERSE_ALL, -1, node_build_string, &tstring);
-  TEST (tstring, strcmp (tstring, "ABFEDCGKJIH") == 0);
-  g_free (tstring); tstring = NULL;
-  
-  g_node_destroy (root);
-
-  /* allocation tests */
-
-  root = g_node_new (NULL);
-  node = root;
-
-  for (i = 0; i < 2048; i++)
-    {
-      g_node_append (node, g_node_new (NULL));
-      if ((i%5) == 4)
-	node = node->children->next;
-    }
-  TEST (NULL, g_node_max_height (root) > 100);
-  TEST (NULL, g_node_n_nodes (root, G_TRAVERSE_ALL) == 1 + 2048);
-
-  g_node_destroy (root);
-  
-  if (failed)
-    exit(1);
-}
-
-
-int
-main (int   argc,
-      char *argv[])
-{
-  g_node_test ();
-
-  return 0;
-}
-
diff --git a/glib/tests/relation-test.c b/glib/tests/relation-test.c
deleted file mode 100644
index d0660e5..0000000
--- a/glib/tests/relation-test.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-
-
-int
-main (int   argc,
-      char *argv[])
-{
-  gint i;
-  GRelation *relation;
-  GTuples *tuples;
-  gint data [1024];
-
-
-  relation = g_relation_new (2);
-
-  g_relation_index (relation, 0, g_int_hash, g_int_equal);
-  g_relation_index (relation, 1, g_int_hash, g_int_equal);
-
-  for (i = 0; i < 1024; i += 1)
-    data[i] = i;
-
-  for (i = 1; i < 1023; i += 1)
-    {
-      g_relation_insert (relation, data + i, data + i + 1);
-      g_relation_insert (relation, data + i, data + i - 1);
-    }
-
-  for (i = 2; i < 1022; i += 1)
-    {
-      g_assert (! g_relation_exists (relation, data + i, data + i));
-      g_assert (! g_relation_exists (relation, data + i, data + i + 2));
-      g_assert (! g_relation_exists (relation, data + i, data + i - 2));
-    }
-
-  for (i = 1; i < 1023; i += 1)
-    {
-      g_assert (g_relation_exists (relation, data + i, data + i + 1));
-      g_assert (g_relation_exists (relation, data + i, data + i - 1));
-    }
-
-  for (i = 2; i < 1022; i += 1)
-    {
-      g_assert (g_relation_count (relation, data + i, 0) == 2);
-      g_assert (g_relation_count (relation, data + i, 1) == 2);
-    }
-
-  g_assert (g_relation_count (relation, data, 0) == 0);
-
-  g_assert (g_relation_count (relation, data + 42, 0) == 2);
-  g_assert (g_relation_count (relation, data + 43, 1) == 2);
-  g_assert (g_relation_count (relation, data + 41, 1) == 2);
-  g_relation_delete (relation, data + 42, 0);
-  g_assert (g_relation_count (relation, data + 42, 0) == 0);
-  g_assert (g_relation_count (relation, data + 43, 1) == 1);
-  g_assert (g_relation_count (relation, data + 41, 1) == 1);
-
-  tuples = g_relation_select (relation, data + 200, 0);
-
-  g_assert (tuples->len == 2);
-
-#if 0
-  for (i = 0; i < tuples->len; i += 1)
-    {
-      printf ("%d %d\n",
-	      *(gint*) g_tuples_index (tuples, i, 0),
-	      *(gint*) g_tuples_index (tuples, i, 1));
-    }
-#endif
-
-  g_assert (g_relation_exists (relation, data + 300, data + 301));
-  g_relation_delete (relation, data + 300, 0);
-  g_assert (!g_relation_exists (relation, data + 300, data + 301));
-
-  g_tuples_destroy (tuples);
-
-  g_relation_destroy (relation);
-
-  relation = NULL;
-
-  return 0;
-}
-
diff --git a/glib/tests/slist-test.c b/glib/tests/slist-test.c
deleted file mode 100644
index 0ab8114..0000000
--- a/glib/tests/slist-test.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-static gint
-my_list_compare_one (gconstpointer a, gconstpointer b)
-{
-  gint one = *((const gint*)a);
-  gint two = *((const gint*)b);
-  return one-two;
-}
-
-static gint
-my_list_compare_two (gconstpointer a, gconstpointer b)
-{
-  gint one = *((const gint*)a);
-  gint two = *((const gint*)b);
-  return two-one;
-}
-
-int
-main (int   argc,
-      char *argv[])
-{
-  GSList *slist, *st;
-  gint nums[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
-  gint morenums[10] = { 8, 9, 7, 0, 3, 2, 5, 1, 4, 6};
-  gint i;
-
-  slist = NULL;
-  for (i = 0; i < 10; i++)
-    slist = g_slist_append (slist, &nums[i]);
-  slist = g_slist_reverse (slist);
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      g_assert (*((gint*) st->data) == (9 - i));
-    }
-
-  g_slist_free (slist);
-  slist = NULL;
-
-  for (i = 0; i < 10; i++)
-    slist = g_slist_insert_sorted (slist, &morenums[i], my_list_compare_one);
-
-  /*
-  g_print("\n");
-  g_slist_foreach (slist, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      g_assert (*((gint*) st->data) == i);
-    }
-
-  g_slist_free(slist);
-  slist = NULL;
-
-  for (i = 0; i < 10; i++)
-    slist = g_slist_insert_sorted (slist, &morenums[i], my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_slist_foreach (slist, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      g_assert (*((gint*) st->data) == (9 - i));
-    }
-
-  g_slist_free(slist);
-  slist = NULL;
-
-  for (i = 0; i < 10; i++)
-    slist = g_slist_prepend (slist, &morenums[i]);
-
-  slist = g_slist_sort (slist, my_list_compare_two);
-
-  /*
-  g_print("\n");
-  g_slist_foreach (slist, my_list_print, NULL);
-  */
-
-  for (i = 0; i < 10; i++)
-    {
-      st = g_slist_nth (slist, i);
-      g_assert (*((gint*) st->data) == (9 - i));
-    }
-
-  g_slist_free(slist);
-
-  return 0;
-}
diff --git a/glib/tests/strfunc-test.c b/glib/tests/strfunc-test.c
deleted file mode 100644
index f50a037..0000000
--- a/glib/tests/strfunc-test.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-int
-main (int   argc,
-      char *argv[])
-{
-  gchar *string;
-
-  g_assert (g_strcasecmp ("FroboZZ", "frobozz") == 0);
-  g_assert (g_strcasecmp ("frobozz", "frobozz") == 0);
-  g_assert (g_strcasecmp ("frobozz", "FROBOZZ") == 0);
-  g_assert (g_strcasecmp ("FROBOZZ", "froboz") != 0);
-  g_assert (g_strcasecmp ("", "") == 0);
-  g_assert (g_strcasecmp ("!#%&/()", "!#%&/()") == 0);
-  g_assert (g_strcasecmp ("a", "b") < 0);
-  g_assert (g_strcasecmp ("a", "B") < 0);
-  g_assert (g_strcasecmp ("A", "b") < 0);
-  g_assert (g_strcasecmp ("A", "B") < 0);
-  g_assert (g_strcasecmp ("b", "a") > 0);
-  g_assert (g_strcasecmp ("b", "A") > 0);
-  g_assert (g_strcasecmp ("B", "a") > 0);
-  g_assert (g_strcasecmp ("B", "A") > 0);
-
-  g_assert(g_strdup(NULL) == NULL);
-  string = g_strdup(GLIB_TEST_STRING);
-  g_assert(string != NULL);
-  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
-  g_free(string);
-
-  string = g_strconcat(GLIB_TEST_STRING, NULL);
-  g_assert(string != NULL);
-  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
-  g_free(string);
-
-  string = g_strconcat(GLIB_TEST_STRING, GLIB_TEST_STRING, 
-  		       GLIB_TEST_STRING, NULL);
-  g_assert(string != NULL);
-  g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
-  			  GLIB_TEST_STRING) == 0);
-  g_free(string);
-  
-  string = g_strdup_printf ("%05d %-5s", 21, "test");
-  g_assert (string != NULL);
-  g_assert (strcmp(string, "00021 test ") == 0);
-  g_free (string);
-
-  return 0;
-}
-
diff --git a/glib/tests/string-test.c b/glib/tests/string-test.c
deleted file mode 100644
index bc5b7db..0000000
--- a/glib/tests/string-test.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-int
-main (int   argc,
-      char *argv[])
-{
-  GStringChunk *string_chunk;
-
-  gchar *tmp_string = NULL, *tmp_string_2;
-  gint i;
-  GString *string1, *string2;
-
-  string_chunk = g_string_chunk_new (1024);
-
-  for (i = 0; i < 100000; i ++)
-    {
-      tmp_string = g_string_chunk_insert (string_chunk, "hi pete");
-
-      if (strcmp ("hi pete", tmp_string) != 0)
-	g_error ("string chunks are broken.\n");
-    }
-
-  tmp_string_2 = g_string_chunk_insert_const (string_chunk, tmp_string);
-
-  g_assert (tmp_string_2 != tmp_string &&
-	    strcmp(tmp_string_2, tmp_string) == 0);
-
-  tmp_string = g_string_chunk_insert_const (string_chunk, tmp_string);
-
-  g_assert (tmp_string_2 == tmp_string);
-
-  g_string_chunk_free (string_chunk);
-
-  string1 = g_string_new ("hi pete!");
-  string2 = g_string_new ("");
-
-  g_assert (string1 != NULL);
-  g_assert (string2 != NULL);
-  g_assert (strlen (string1->str) == string1->len);
-  g_assert (strlen (string2->str) == string2->len);
-  g_assert (string2->len == 0);
-  g_assert (strcmp ("hi pete!", string1->str) == 0);
-  g_assert (strcmp ("", string2->str) == 0);
-
-  for (i = 0; i < 10000; i++)
-    g_string_append_c (string1, 'a'+(i%26));
-
-  g_assert((strlen("hi pete!") + 10000) == string1->len);
-  g_assert((strlen("hi pete!") + 10000) == strlen(string1->str));
-
-#if !(defined (_MSC_VER) || defined (__LCC__))
-  /* MSVC and LCC use the same run-time C library, which doesn't like
-     the %10000.10000f format... */
-  g_string_sprintf (string2, "%s|%0100d|%s|%s|%0*d|%*.*f|%10000.10000f",
-		    "this pete guy sure is a wuss, like he's the number ",
-		    1,
-		    " wuss.  everyone agrees.\n",
-		    string1->str,
-		    10, 666, 15, 15, 666.666666666, 666.666666666);
-#else
-  g_string_sprintf (string2, "%s|%0100d|%s|%s|%0*d|%*.*f|%100.100f",
-		    "this pete guy sure is a wuss, like he's the number ",
-		    1,
-		    " wuss.  everyone agrees.\n",
-		    string1->str,
-		    10, 666, 15, 15, 666.666666666, 666.666666666);
-#endif
-
-  return 0;
-}
-
diff --git a/glib/tests/tree-test.c b/glib/tests/tree-test.c
deleted file mode 100644
index 7f354ff..0000000
--- a/glib/tests/tree-test.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-int array[10000];
-gboolean failed = FALSE;
-
-#define	TEST(m,cond)	G_STMT_START { failed = !(cond); \
-if (failed) \
-  { if (!m) \
-      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
-    else \
-      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
-  } \
-else \
-  g_print ("."); fflush (stdout); \
-} G_STMT_END
-
-#define	C2P(c)		((gpointer) ((long) (c)))
-#define	P2C(p)		((gchar) ((long) (p)))
-
-#define GLIB_TEST_STRING "el dorado "
-#define GLIB_TEST_STRING_5 "el do"
-
-typedef struct {
-	guint age;
-	gchar name[40];
-} GlibTestInfo;
-
-
-static gint
-my_compare (gconstpointer a,
-	    gconstpointer b)
-{
-  const char *cha = a;
-  const char *chb = b;
-
-  return *cha - *chb;
-}
-
-static gint
-my_traverse (gpointer key,
-	     gpointer value,
-	     gpointer data)
-{
-  char *ch = key;
-  g_assert ((*ch) > 0);
-  return FALSE;
-}
-
-int
-main (int   argc,
-      char *argv[])
-{
-  gint i, j;
-  GTree *tree;
-  char chars[62];
-
-  tree = g_tree_new (my_compare);
-  i = 0;
-  for (j = 0; j < 10; j++, i++)
-    {
-      chars[i] = '0' + j;
-      g_tree_insert (tree, &chars[i], &chars[i]);
-    }
-  for (j = 0; j < 26; j++, i++)
-    {
-      chars[i] = 'A' + j;
-      g_tree_insert (tree, &chars[i], &chars[i]);
-    }
-  for (j = 0; j < 26; j++, i++)
-    {
-      chars[i] = 'a' + j;
-      g_tree_insert (tree, &chars[i], &chars[i]);
-    }
-
-  g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL);
-
-  g_assert (g_tree_nnodes (tree) == (10 + 26 + 26));
-
-  for (i = 0; i < 10; i++)
-    g_tree_remove (tree, &chars[i]);
-
-  g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL);
-
-  return 0;
-}
-
diff --git a/glib/tests/type-test.c b/glib/tests/type-test.c
deleted file mode 100644
index 94b9cab..0000000
--- a/glib/tests/type-test.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef G_LOG_DOMAIN
-
-#include <stdio.h>
-#include <string.h>
-#include "glib.h"
-
-
-
-int
-main (int   argc,
-      char *argv[])
-{
-  guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U;
-  guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U;
-#ifdef G_HAVE_GINT64
-  guint64 gu64t1 = G_GINT64_CONSTANT(0x1d636b02300a7aa7U),
-	  gu64t2 = G_GINT64_CONSTANT(0xa77a0a30026b631dU);
-#endif
-
-  /* type sizes */
-  g_assert (sizeof (gint8) == 1);
-  g_assert (sizeof (gint16) == 2);
-  g_assert (sizeof (gint32) == 4);
-#ifdef	G_HAVE_GINT64
-  g_assert (sizeof (gint64) == 8);
-#endif	/* G_HAVE_GINT64 */
-
-  g_assert (GUINT16_SWAP_LE_BE (gu16t1) == gu16t2);
-  g_assert (GUINT32_SWAP_LE_BE (gu32t1) == gu32t2);
-#ifdef G_HAVE_GINT64
-  g_assert (GUINT64_SWAP_LE_BE (gu64t1) == gu64t2);
-#endif
-
-  return 0;
-}
diff --git a/notes/svn-config-files b/notes/svn-config-files
deleted file mode 100644
index 0819a1f..0000000
--- a/notes/svn-config-files
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Subversion has a standard config file format:
-
-[section]
-key : val
-key : val
-key : val
-
-[section]
-key : val
-key : val
-
-
-This format is similar to the Win32 .INI format, and is general enough
-for most purposes.  Each section name, key, and val are UTF-8 encoded.
-
-
-This format is currently used by:
-
-     * `svn.conf', which specifies general Subversion server policies
-
-     * `svn_security', a file which lives in each repository and
-        defines ACLs for the plugin_security module
-
-     * all files within a working copy's SVN/ administrative directory
-
-
-This format is parsed by svn_parse(), located in svn_subr/svn_parse.c.
-This routine stores all key/vals as svn_string_t (bytestrings) within
-ap_hash_t (APR's hash type).
-
diff --git a/subversion/LICENSE b/subversion/LICENSE
deleted file mode 100644
index 68f712c..0000000
--- a/subversion/LICENSE
+++ /dev/null
@@ -1,45 +0,0 @@
-/* ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
diff --git a/subversion/include/svn_string.h b/subversion/include/svn_string.h
deleted file mode 100644
index b2b9269..0000000
--- a/subversion/include/svn_string.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * svn_string.h :  byte-string routines for Subversion
- *                 (using apr's memory pools)
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-#ifndef __SVN_STRING_H__
-#define __SVN_STRING_H__
-
-
-#include <svn_types.h>
-
-
-
-/* Create a new bytestring containing a C string (null-terminated), or
-   containing a generic string of bytes (NON-null-terminated) */
-
-svn_string_t * svn_string_create (const char *cstring, 
-                                  ap_pool_t *pool);
-svn_string_t * svn_string_ncreate (const char *bytes, const size_t size, 
-                                   ap_pool_t *pool);
-
-/* Set/get  a bytestring empty */
-
-void svn_string_setempty (svn_string_t *str);
-svn_boolean_t svn_string_isempty (const svn_string_t *str);
-
-/* Fill bytestring with a character */
-
-void svn_string_fillchar (svn_string_t *str, const unsigned char c);
-
-/* Append either a string of bytes or an svn_string_t onto a
-   svn_string_t.  reallocs() if necessary. */
-
-void svn_string_appendbytes (svn_string_t *str, const char *bytes, 
-                             const size_t count, ap_pool_t *pool);
-void svn_string_appendstr (svn_string_t *targetstr, 
-                           const svn_string_t *appendstr,
-                           ap_pool_t *pool);
-
-/* Duplicate a bytestring;  returns freshly malloc'd copy.  */
-
-svn_string_t * svn_string_dup (const svn_string_t *original_string,
-                               ap_pool_t *pool);
-
-
-/* compare if two bytestrings' data fields are identical,
-   byte-for-byte */
-
-svn_boolean_t svn_string_compare (const svn_string_t *str1, 
-                                  const svn_string_t *str2);
-
-/* comprare a bytestring to a traditional C string */
-
-svn_boolean_t svn_string_compare_2cstring (const svn_string_t *str, 
-                                           const char *cstr);
-
-/* return a traditional C string from a bytestring */
-
-char * svn_string_2cstring (const svn_string_t *str, ap_pool_t *pool);
-
-/* convenience routines */
-
-size_t svn_string_first_non_whitespace (const svn_string_t *str);
-void svn_string_strip_whitespace (svn_string_t *str);
-void svn_string_print (const svn_string_t *str, FILE *stream,
-                       svn_boolean_t show_all_fields,
-                       svn_boolean_t add_newline);
-
-#endif  /* __SVN_STRING_H__ */
-
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/include/svn_svr.h b/subversion/include/svn_svr.h
deleted file mode 100644
index 68c3355..0000000
--- a/subversion/include/svn_svr.h
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * svn_svr.h :  public interface for the Subversion Server Library
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-/* ==================================================================== */
-
-/* 
-   The Subversion Server Library (libsvn_svr) acts a basic multiplexer
-   for the filesystem API calls coming from the client.  Thus it
-   provides almost the same public API as libsvn_ra.
-   
-   Requires:  the Subversion filesystem library (libsvn_fs)
-   
-   Provides:  
-               - wrappers around filesystem calls
-               - enforcement of server-side "policies"
-               - loadable server-side "plug-ins"
-                 (basic authorization plugin included)
-
-   Used By:   any network layer (such as a Subversion-aware httpd)
-
-*/
-
-#ifndef __SVN_SVR_H__
-#define __SVN_SVR_H__
-
-
-#include <svn_types.h>   /* publically declared types */
-#include <svn_error.h>   /* private utility in svn_subr/  */
-#include <apr_dso.h>     /* defines ap_dso_handle_t */
-
-
-/******************************************
-
-   The API for server-side "plug-ins"  (modeled after Apache)
-
-******************************************/
-
-
-/* 
-   A "plug-in" object is a list which describes exactly where custom
-   routines should be called from within the server.  We define broad
-   categories of hooks as necessary here, expanding as we go.
-
-   Each plugin object fills in the hook fields with either a well-defined
-   routine of its own, or a NULL value.
-*/
-
-typedef struct svn_svr_plugin_t
-{
-
-  svn_string_t *name;         /* What the plugin calls itself */
-  svn_string_t *description;  /* Plugin's documentation string 
-                                 (short self-description) */
-
-  ap_dso_handle_t *my_dso;    /* handle on the actual library loaded */
-
-  /* AUTHORIZATION HOOK: 
-
-     An authorization hook returns a ptr to an error structure (if
-     authorization fails) which details the reason for failure.  If
-     authorization succeeds, return 0.
-
-     If successful, it should fill in the
-     "canonical" filesystem name in the user structure.  */
-
-  (svn_error_t *) (* authorization_hook) (svn_string_t *repos,
-                                          svn_user_t *user,
-                                          svn_svr_action_t action,
-                                          unsigned long ver,
-                                          svn_string_t *path);
-
-  /* CONFLICT RESOLUTION HOOK:
-     
-     This hook isn't fully fleshed out yet */
-
-  svn_delta_t * (* conflict_resolve_hook) (svn_delta_t *rejected_delta,
-                                             svn_error_t *rationale);
-
-} svn_svr_plugin_t;
-
-
-
-
-
-/******************************************
-
-   The API for general loading of policy config files
-
-******************************************/
-
-/* 
-   This object holds three lists that describe the information read in
-   from a `svn.conf' file.  Every svn_svr_* routine requires a pointer
-   to one of these.  (It's similar to the "global context" objects
-   used by APR.)  
-*/
-
-
-typedef struct svn_svr_policies_t
-{
-  /* A hash which maps repositories -> aliases.
-     KEY = (svn_string_t *),  VAL = (svn_string_t *)  */
-  svn_proplist_t *repos_aliases;
-
-  /* A hash which maps security commands -> command args.
-     (These commands describe global security policies.)
-     KEY = (svn_string_t *),  VAL = (svn_string_t *)  */
-  svn_proplist_t *global_restrictions;
-  
-  /* A hash which maps DSO pathnames -> loaded plugin objects.
-     KEY = (svn_string_t *),  VAL = (svn_svr_plugin_t *)   */
-  svn_proplist_t *plugins;
-
-  /* A convience memory pool, in case a server routine ever needs one */
-  ap_pool_t *pool;                   
-  
-} svn_svr_policies_t;
-
-
-
-/* 
-   Makes the server library load a specified config file.  Network
-   layers *must* call this routine before using the rest of libsvn_svr.
-
-   Returns a svn_svr_policies_t to be used with all server routines. 
-*/
-
-svn_svr_policies_t * svn_svr_init (ap_hash_t *configdata, ap_pool_t *pool);
-
-
-/* Routine which each plugin's init() routine uses to register itself
-   in the server's policy structure.  */
-
-svn_error_t * svn_svr_register_plugin (svn_svr_policies_t *policy,
-                                       svn_string_t *dso_filename,
-                                       svn_svr_plugin_t *new_plugin);
-
-
-/* Three routines for checking authorization.
-
-   The first one checks global server policy.
-
-   The second one loops through each plugin's authorization hook.
-
-   The third one is a convenience routine, which calls the other two.
-*/
-
-svn_error_t * svn_server_policy_authorize (svn_svr_policies_t *policy,
-                                           svn_string_t *repos,
-                                           svn_user_t *user,
-                                           svn_svr_action_t *action,
-                                           unsigned long ver,
-                                           svn_string_t *path);
-
-svn_error_t * svn_svr_plugin_authorize (svn_svr_policies_t *policy, 
-                                        svn_string_t *repos, 
-                                        svn_user_t *user, 
-                                        svn_svr_action_t *action,
-                                        unsigned long ver,
-                                        svn_string_t *path);
-
-svn_error_t * svn_svr_authorize (svn_svr_policies_t *policy, 
-                                 svn_string_t *repos, 
-                                 svn_user_t *user, 
-                                 svn_svr_action_t *action,
-                                 unsigned long ver,
-                                 svn_string_t *path);
-
-
-/******************************************
-
-   The wrappered Filesystem API
-
-******************************************/
-
-/* For reading history */
-
-svn_ver_t * svn_svr_latest (svn_svr_policies_t *policy,
-                            svn_string_t *repos, 
-                            svn_user_t *user);
-
-svn_string_t * svn_svr_get_ver_prop (svn_svr_policies_t *policy,
-                                     svn_string_t *repos, 
-                                     svn_user_t *user, 
-                                     unsigned long ver, 
-                                     svn_string_t *propname);
-
-svn_proplist_t * svn_svr_get_ver_proplist (svn_svr_policies_t *policy,
-                                           svn_string_t *repos, 
-                                           svn_user_t *user, 
-                                           unsigned long ver);
-
-svn_proplist_t * svn_svr_get_ver_propnames (svn_svr_policies_t *policy,
-                                            svn_string_t *repos, 
-                                            svn_user_t *user, 
-                                            unsigned long ver);
- 
-
-
-/* For reading nodes */
-
-svn_node_t * svn_svr_read (svn_svr_policies_t *policy,
-                           svn_string_t *repos, 
-                           svn_user_t *user, 
-                           unsigned long ver, 
-                           svn_string_t *path);
-
-svn_string_t * svn_svn_svr_get_node_prop (svn_svr_policies_t *policy,
-                                          svn_string_t *repos, 
-                                          svn_user_t *user, 
-                                          unsigned long ver, 
-                                          svn_string_t *path, 
-                                          svn_string_t *propname);
-
-svn_string_t * svn_svr_get_dirent_prop (svn_svr_policies_t *policy,
-                                        svn_string_t *repos, 
-                                        svn_user_t *user, 
-                                        unsigned long ver, 
-                                        svn_string_t *path, 
-                                        svn_string_t *propname);
- 
-svn_proplist_t * svn_svr_get_node_proplist (svn_svr_policies_t *policy,
-                                            svn_string_t *repos, 
-                                            unsigned long ver, 
-                                            svn_string_t *path);
- 
-svn_proplist_t * svn_svr_get_dirent_proplist (svn_svr_policies_t *policy,
-                                              svn_string_t *repos, 
-                                              svn_user_t *user, 
-                                              unsigned long ver, 
-                                              svn_string_t *path);
- 
-svn_proplist_t * svn_svr_get_node_propnames (svn_svr_policies_t *policy,
-                                             svn_string_t *repos, 
-                                             svn_user_t *user, 
-                                             unsigned long ver, 
-                                             svn_string_t *path);
- 
-svn_proplist_t * svn_svr_get_dirent_propnames (svn_svr_policies_t *policy,
-                                               svn_string_t *repos, 
-                                               svn_user_t *user, 
-                                               unsigned long ver, 
-                                               svn_string_t *path); 
-
-
-
-/* For writing */
-
-svn_token_t svn_svr_submit (svn_svr_policies_t *policy,
-                            svn_string_t *repos, 
-                            svn_user_t *user, 
-                            svn_skelta_t *skelta);
- 
-unsigned long * svn_svr_write (svn_svr_policies_t *policy,
-                               svn_string_t *repos, 
-                               svn_user_t *user, 
-                               svn_delta_t *delta, 
-                               svn_token_t token);
- 
-svn_boolean_t svn_svr_abandon (svn_svr_policies_t *policy,
-                               svn_string_t *repos, 
-                               svn_user_t *user, 
-                               svn_token_t token);
-
-
-/* For difference queries */
-
-svn_delta_t * svn_svr_get_delta (svn_svr_policies_t *policy,
-                                 svn_string_t *repos, 
-                                 svn_user_t *user, 
-                                 unsigned long ver1, 
-                                 svn_string_t *path1, 
-                                 unsigned long ver2, 
-                                 svn_string_t *path2);
- 
-svn_diff_t * svn_svr_get_diff (svn_svr_policies_t *policy,
-                               svn_string_t *repos, 
-                               svn_user_t *user, 
-                               unsigned long ver1, 
-                               svn_string_t *path1, 
-                               unsigned long ver2, 
-                               svn_string_t *path2); 
-
-
-/* The status() and update() routines are the only ones which aren't
-simple wrappers for the filesystem API.  They make repeated small
-calls to svn_fs_cmp() and svn_fs_get_delta() respectively (see
-<svn_fs.h>) */
-
-svn_skelta_t * svn_svr_get_status (svn_svr_policies_t *policy,
-                                   svn_string_t *repos, 
-                                   svn_user_t *user, 
-                                   svn_skelta_t *skelta);
- 
-svn_delta_t * svn_svr_get_update (svn_svr_policies_t *policy,
-                                  svn_string_t *repos, 
-                                  svn_user_t *user, 
-                                  svn_skelta_t *skelta); 
-
-
-
-
-
-#endif  /* __SVN_SVR_H__ */
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: 
- */
-
diff --git a/subversion/include/svn_types.h b/subversion/include/svn_types.h
deleted file mode 100644
index a3f65a7..0000000
--- a/subversion/include/svn_types.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * svn_types.h :  Subversion's data types
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-/* ==================================================================== */
-
-/* This is more or less an implementation of the filesystem "schema"
-   defined tin the design doc. */
-
-
-#ifndef __SVN_TYPES_H__
-#define __SVN_TYPES_H__
-
-
-#include <stdlib.h>          /* defines size_t */
-#include <apr_pools.h>       /* APR memory pools for everyone. */
-#include <apr_hash.h>        /* proplists are hashtables */
-
-
-/* useful macro, suggested by Greg Stein */
-#define AP_ARRAY_GET_ITEM(ary,i,type) (((type *)(ary)->elts)[i])
-
-
-/* a string of bytes  */
-
-typedef struct svn_string_t
-{
-  char *data;                /* pointer to the bytestring */
-  size_t len;                /* length of bytestring */
-  size_t blocksize;          /* total size of buffer allocated */
-} svn_string_t;
-
-
-/* a property list is an unordered list of properties, implemented as
-   an `ap_hash_t' whose keys and vals are bytestrings (`svn_string_t') */
-
-typedef ap_hash_t svn_proplist_t;
-
-
-
-/* a file is a proplist and a string */
-typedef struct svn_file_t
-{
-  svn_proplist_t *proplist;  /* the file's properties */
-  svn_string_t *text;        /* the file's main content */
-} svn_file_t;
-
-
-/* a directory entry points to a node */
-typedef struct svn_dirent_t
-{
-  unsigned long node_num;    /* a node pointed to */
-  svn_string_t *name;        /* name of the node pointed to */
-  svn_proplist_t *proplist;  /* entry's properties */
-} svn_dirent_t;
-
-
-/* TODO:  use an actual ap_array below */
-/* a directory is an unordered list of directory entries, and a proplist */
-typedef struct svn_directory_t
-{
-  svn_dirent_t *list;        /* an array of dirents */
-  size_t len;                /* length of array */
-  svn_proplist_t *proplist;  /* directory's properties */
-} svn_directory_t;
-
-
-/* a node is either a file or directory, a distinguished union  */
-typedef struct svn_node_t
-{
-  enum node_kind {file, directory} kind;  /* am I a file or directory? */
-  union node_union 
-  {
-    svn_file_t *file;
-    svn_directory_t *directory;
-  } contents;                             /* my contents */
-} svn_node_t;
-
-
-/* a version is a node number and property list */
-typedef struct svn_ver_t
-{
-  unsigned long node_num;             /* the root node of a tree */
-  svn_proplist_t *proplist;           /* version's properties */
-} svn_ver_t;
-
-
-/* These things aren't critical to define yet; I'll leave them to
-   jimb, who's writing the filesystem: */
-
-/* a node table is a mapping of some set of natural numbers to nodes. */
-
-/* a history is an array of versions */
-
-/* a repository is a node table and a history */
-
-
-/* A list of all filesystem actions that users can perform, used when
-   discussion authorization checks.  */
-
-typedef enum 
-{
-  latest,
-  get_ver_prop,
-  get_ver_proplist,
-  get_ver_propnames,
-  read,
-  get_node_prop,
-  get_dirent_prop,
-  get_node_proplist,
-  get_dirent_proplist,
-  get_node_propnames,
-  get_dirent_propnames,
-  submit,
-  write,
-  abandon,
-  get_delta,
-  get_diff,
-  status,
-  update
-} svn_svr_action_t;
-
-
-
-/* This structure defines a client 'user' to be used by any security
-   plugin on the Subversion server.  This structure is created by the
-   network layer when it performs initial authentication with some
-   database.  */
-
-typedef struct svn_user_t
-{
-  /* The first three fields are filled in by the network layer,
-     and possibly used by the server for informational or matching purposes */
-
-  svn_string_t auth_username;       /* the authenticated username */
-  svn_string_t auth_method;         /* the authentication system used */
-  svn_string_t auth_domain;         /* where the user comes from */
-
-
-  /* This field is used by all of the server's "wrappered" fs calls */
-
-  svn_string_t svn_username;        /* the username which will
-                                       >actually< be used when making
-                                       filesystem calls */
-
-  void *username_data;              /* if a security plugin needs to
-                                       store extra data, such as a
-                                       WinNT SID */
-
-} svn_user_t;
-
-
-
-/* YABT:  Yet Another Boolean Type */
-
-typedef int svn_boolean_t;
-
-#ifndef TRUE
-#define TRUE 1
-#endif /* TRUE */
-
-#ifndef FALSE
-#define FALSE 0
-#endif /* FALSE */
-
-
-typedef unsigned long svn_token_t;
-
-
-
-/* ******** Deltas and friends. ******** */
-
-/* These are the in-memory tree deltas; you can convert them to and
- * from XML.
- * 
- * The XML representation has certain space optimizations.  For
- * example, if an ancestor is omitted, it means the same path at the
- * same version (taken from the surrounding delta context).  We may
- * well decide to use corresponding optimizations here -- an absent
- * svn_ancestor_t object means use the path and ancestor from the
- * delta, etc -- or we may not.  In any case it doesn't affect the
- * definitions of these data structures.  However, once we do know
- * what interpretive conventions we're using in code, we should
- * probably record them here.
- */
-
-/* todo: We'll need a way to stream these, so when you do a checkout
- * of comp-tools, the client doesn't wait for an entire 200 meg tree
- * delta to arrive before doing anything.
- * 
- * Proposal:
- * 
- * A caller (say, the working copy library) is given the tree delta as
- * soon as there is at least one svn_change_t in its list ready to
- * use.  The callee may continue to append svn_change_t objects to the
- * list even while the caller is using the ones already there.  The
- * callee signals that it is done by adding a change of the special
- * type `done' (see the enumeration `svn_change_action_t' below).
- *
- * Since the caller can tell by inspection whether or not it's done
- * yet, the callee could tack on new change objects in an unscheduled
- * fashion (i.e., as a separate thread), or the caller could make an
- * explicit call each time it finishes available changes.  Either way
- * works; the important thing is to give the network time to catch up.
- */
-
-typedef size_t svn_version_t;   /* Would they ever need to be signed? */
-typedef int pdelta_t;           /* todo: for now */
-typedef int vdelta_t;           /* todo: for now */
-
-typedef enum { 
-  action_delete = 1,      /* Delete the file or directory. */
-  action_new,             /* Create a new file or directory. */
-  action_replace,         /* Commit to an existing file or directory. */
-  changes_done            /* End of change chain -- no more action. */
-} svn_change_action_t;
-
-typedef enum { 
-  file_type = 1,
-  directory_type
-} svn_change_content_type_t;
-
-
-/* Change content is delta(s) against ancestors.  This is one kind of delta. */
-typedef struct svn_pdelta_t {
-  int todo;
-} svn_pdelta_t;
-
-
-/* Change content is delta(s) against ancestors.  This is one kind of delta. */
-typedef struct svn_vdelta_t {
-  int todo;
-} svn_vdelta_t;
-
-
-/* Change content is delta(s) against ancestors.  This is an ancestor. */
-typedef struct svn_ancestor_t
-{
-  svn_string_t *path;
-  svn_version_t version;
-  svn_boolean_t new;
-} svn_ancestor_t;
-
-
-/* A change is an action and some content.  This is the content. */
-typedef struct svn_change_content_t
-{
-  svn_change_content_type_t type;   /* One of the enumerated values. */
-  svn_ancestor_t *ancestor;         /* "Hoosier paw?!" */
-  svn_pdelta_t *pdelta;             /* Change to property list, or NULL. */
-  svn_vdelta_t *vdelta;             /* Change to file contents, or NULL. */
-} svn_change_content_t;
-
-
-/* A tree delta is a list of changes.  This is a change. */
-typedef struct svn_change_t
-{
-  svn_change_action_t action;     /* One of the enumerated values. */
-  svn_string_t *new_name;         /* Only for `new' and `replace'. */
-  svn_change_content_t *content;
-  struct svn_change_t *next;      /* Next one in the list, or NULL. */
-} svn_change_t;
-
-
-/* This is a tree delta. */
-typedef struct svn_delta_t
-{
-  svn_version_t version;       /* Directory to which this delta applies */
-  svn_string_t *source_root;   /* Indicates a particular version of... */
-  svn_string_t *source_dir;    /* ...this, which we're modifying to yield... */
-  svn_string_t *target_dir;    /* ...the directory we're constructing. */
-} svn_delta_t;
-
-
-/* A skelta is just a tree delta with empty pdeltas and vdeltas. */
-typedef svn_delta_t svn_skelta_t;
-
-/* A line-based diff is just a huge wad of text. */
-typedef svn_string_t svn_diff_t;
-
-#endif  /* __SVN_TYPES_H__ */
-
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/include/svn_wc.h b/subversion/include/svn_wc.h
deleted file mode 100644
index 1d009c4..0000000
--- a/subversion/include/svn_wc.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * svn_wc.h :  public interface for the Subversion Working Copy Library
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-/* ==================================================================== */
-
-/* 
- * Requires:  
- *            A working copy
- * 
- * Provides: 
- *            - Ability to manipulate working copy's versioned data.
- *            - Ability to manipulate working copy's administrative files.
- *
- * Used By:   
- *            Clients.
- */
-
-#ifndef __SVN_WC_H__
-#define __SVN_WC_H__
-
-#include <svn_types.h>
-
-
-
-/* Functions taking an argument (apr_array_header_t *)PATHS are taking
- * an array of (svn_string_t *) file and/or directory names.  
- */
-
-ap_status_t svn_wc_rename (svn_string_t *src, svn_string_t *dst);
-ap_status_t svn_wc_copy   (svn_string_t *src, svn_string_t *dst);
-ap_status_t svn_wc_add    (apr_array_header_t *paths);
-ap_status_t svn_wc_delete (apr_array_header_t *paths);
-
-svn_skelta_t svn_wc_make_skelta (apr_array_header_t *paths);
-
-/* Turn SKELTA into a full delta. */
-svn_delta_t svn_wc_fill_skelta (svn_skelta_t *skelta);
-
-/* Update working copy to reflect the changes in DELTA. */
-svn_boolean_t svn_wc_apply_delta (svn_delta_t *delta);
-
-/* Return local value of PROPNAME for the file or directory PATH. */
-svn_prop_t *svn_wc_get_node_prop (svn_string_t *path,
-                                  svn_string_t *propname);
-
-/* Return local value of PROPNAME for the directory entry PATH. */
-svn_prop_t *svn_wc_get_dirent_prop (svn_string_t *path,
-                                    svn_string_t *propname);
-
-/* Return all properties (names and values) of file or directory PATH. */
-svn_proplist_t *svn_wc_get_node_proplist (svn_string_t *path);
-
-/* Return all properties (names and values) of directory entry PATH. */
-svn_proplist_t *svn_wc_get_dirent_proplist (svn_string_t *path);
-
-/* Return all property names of file or directory PATH. */
-svn_proplist_t *svn_wc_get_node_propnames (path);
-
-/* Return all property names of directory entry PATH. */
-svn_proplist_t *svn_wc_get_dirent_propnames (path);
-
-#endif  /* __SVN_SVR_H__ */
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: 
- */
-
diff --git a/subversion/libsvn_string/Makefile b/subversion/libsvn_string/Makefile
deleted file mode 100644
index 7c8b31b..0000000
--- a/subversion/libsvn_string/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# Quick Hack Makefile for string library tests (assumes GCC)
-
-SVN_INCLUDE = ../include
-APR_INCLUDE = ../../apr/include
-APR_LIB = ../../apr
-
-all: libsvn_string.so stringtest
-
-clean:
-	rm *.o *.so *~ stringtest
-
-# Build as position-independent code (PIC)
-
-svn_string.o:  svn_string.c $(SVN_INCLUDE)/svn_string.h
-	cc -c svn_string.c -g -Wall \
-                           -shared -fPIC \
-                           -I$(SVN_INCLUDE) -I$(APR_INCLUDE) 
-
-# Create our shared library, dynamically dependent on libapr
-
-libsvn_string.so: svn_string.o
-	ld -o libsvn_string.so -shared -fPIC svn_string.o -L$(APR_LIB) -lapr
-
-
-# Test program dynamically links to libsvn_string
-
-stringtest: stringtest.c
-	cc -o stringtest stringtest.c -g -Wall -pthread\
-                                      -I$(SVN_INCLUDE) -I$(APR_INCLUDE) \
-                                       -L. -lsvn_string
diff --git a/subversion/libsvn_string/stringtest.c b/subversion/libsvn_string/stringtest.c
deleted file mode 100644
index 57796e3..0000000
--- a/subversion/libsvn_string/stringtest.c
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/* Stupid program to test Subversion's bytestring library (libsvn_string).
-   Ben Collins-Sussman, (C) 2000 Collab.Net */
-
-#include <stdio.h>
-#include <svn_string.h>   /* This includes <apr_*.h> */
-
-int
-main ()
-{
-  svn_string_t *a, *b, *c;
-  char *msg;
-  ap_pool_t *pglobal;
-
-  /* Initialize APR (Apache pools) */
-  if (ap_initialize () != APR_SUCCESS)
-    {
-      printf ("ap_initialize() failed.\n");
-      exit (1);
-    }
-  if (ap_create_pool (&pglobal, NULL) != APR_SUCCESS)
-    {
-      printf ("ap_create_pool() failed.\n");
-      exit (1);
-    }
-
-
-  /* Create a bytestring from a null-terminated C string */
-  a = svn_string_create ("hello", pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Alternate: create a bytestring from a part of an array */
-  b = svn_string_ncreate ("a longish phrase of sorts", 16, pglobal);
-  svn_string_print (b, stdout, TRUE, TRUE);
-
-  /* Append b to a, growing a's storage if necessary */
-  svn_string_appendstr (a, b, pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Do it again, with an inline string creation for kicks. */
-  svn_string_appendstr (a, svn_string_create(" xtra", pglobal), pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Alternate:  append a specific number of bytes */
-  svn_string_appendbytes (a, "some bytes to frob", 7, pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Duplicate a bytestring, then compare if they're equal */
-  c = svn_string_dup (b, pglobal);
-  svn_string_print (c, stdout, TRUE, TRUE);
-
-  printf ("comparison of c and b is: %d\n", svn_string_compare (c, b));
-  printf ("comparison of a and b is: %d\n", svn_string_compare (a, b));
-
-  /* Set a bytestring to NULL, and query this fact. */
-  svn_string_setempty (c);
-  svn_string_print (c, stdout, TRUE, TRUE);
-  
-  printf ("is C empty? : %d\n", svn_string_isempty (c));
-  printf ("is A empty? : %d\n", svn_string_isempty (a));
-  
-  /* Fill a bytestring with hash marks */
-  svn_string_fillchar (a, '#');
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Return a C string from a bytestring */
-  msg = svn_string_2cstring (b, pglobal);
-  printf ("The C string returned is: %s\n", msg);
-
-  /* Compare the C string to the original bytestring */
-  printf ("comparison of b and msg is: %d\n", 
-          svn_string_compare_2cstring (b, msg));
-  printf ("comparison of b and `foogle' is: %d\n", 
-          svn_string_compare_2cstring (b, "foogle"));
-  printf ("comparison of b and `a longish phrase' is: %d\n", 
-          svn_string_compare_2cstring (b, "a longish phrase"));
-
-  /* Free our entire memory pool when done. */
-  ap_destroy_pool (pglobal);
-  ap_terminate();
-
-  return 0;
-}
diff --git a/subversion/libsvn_string/svn_string.c b/subversion/libsvn_string/svn_string.c
deleted file mode 100644
index defa276..0000000
--- a/subversion/libsvn_string/svn_string.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/*
- * svn_string.h:  routines to manipulate bytestrings (svn_string_t)
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-#include <string.h>      /* for memcpy(), memcmp(), strlen() */
-#include <stdio.h>       /* for putch() and printf() */
-#include <ctype.h>       /* for isspace() */
-#include <svn_string.h>  /* loads <svn_types.h> and <apr_pools.h> */
-
-
-
-/* Our own realloc, since APR doesn't have one.  Note: this is a
-   generic realloc for memory pools, *not* for strings.  append()
-   calls this on the svn_string_t's *data field.  */
-
-void *
-my__realloc (char *data, const size_t oldsize, const size_t request, 
-             ap_pool_t *pool)
-{
-  void *new_area;
-
-  /* malloc new area */
-  new_area = ap_palloc (pool, request);
-
-  /* copy data to new area */
-  memcpy (new_area, data, oldsize);
-
-  /* I'm NOT freeing old area here -- cuz we're using pools, ugh. */
-  
-  /* return new area */
-  return new_area;
-}
-
-
-
-/* create a new bytestring containing a C string (null-terminated);
-   requires a memory pool to allocate from.  */
-
-svn_string_t *
-svn_string_create (const char *cstring, ap_pool_t *pool)
-{
-  svn_string_t *new_string;
-  size_t l = strlen (cstring);
-
-  /* this alloc gives us memory filled with zeros, yum. */
-  new_string = (svn_string_t *) ap_palloc (pool, sizeof(svn_string_t)); 
-
-  new_string->data = (char *) ap_palloc (pool, l);
-  new_string->len = l;
-  new_string->blocksize = l;
-
-  strcpy (new_string->data, cstring);
-  
-  return new_string;
-}
-
-
-/* create a new bytestring containing a specific array of bytes
-   (NOT null-terminated!);  requires a memory pool to allocate from */
-
-svn_string_t *
-svn_string_ncreate (const char *bytes, const size_t size, 
-                    ap_pool_t *pool)
-{
-  svn_string_t *new_string;
-
-  /* this alloc gives us memory filled with zeros, yum. */
-  new_string = (svn_string_t *) ap_palloc (pool, sizeof(svn_string_t)); 
-
-  new_string->data = (char *) ap_palloc (pool, size);
-  new_string->len = size;
-  new_string->blocksize = size;
-
-  memcpy (new_string->data, bytes, size);
-
-  return new_string;
-}
-
-
-
-
-
-
-/* overwrite bytestring with a character */
-
-void 
-svn_string_fillchar (svn_string_t *str, const unsigned char c)
-{
-  /* safety check */
-  if (str->len > str->blocksize)
-    str->len = str->blocksize;
-
-  memset (str->data,  (int) c, str->len);
-}
-
-
-
-/* set a bytestring to empty */
-
-void
-svn_string_setempty (svn_string_t *str)
-{
-  str->data = NULL;
-  str->len = 0;
-  str->blocksize = 0;
-}
-
-
-/* Ask if a bytestring is empty */
-
-svn_boolean_t
-svn_string_isempty (const svn_string_t *str)
-{
-  if (str->len == 0)
-    return TRUE;
-  else
-    return FALSE;
-}
-
-
-/* append a number of bytes onto a bytestring */
-
-void
-svn_string_appendbytes (svn_string_t *str, const char *bytes, 
-                        const size_t count, ap_pool_t *pool)
-{
-  size_t total_len;
-  void *start_address;
-
-  total_len = str->len + count;  /* total size needed */
-
-  /* if we need to realloc our first buffer to hold the concatenation,
-     then make it twice the total size we need. */
-
-  if (total_len >= str->blocksize)
-    {
-      str->blocksize = total_len * 2;
-      str->data = (char *) my__realloc (str->data, 
-                                        str->len,
-                                        str->blocksize,
-                                        pool); 
-    }
-
-  /* get address 1 byte beyond end of original bytestring */
-  start_address = &str->data[str->len];
-
-  memcpy (start_address, (void *) bytes, count);
-  str->len = total_len;
-}
-
-
-/* append one bytestring type onto another */
-
-void
-svn_string_appendstr (svn_string_t *targetstr, const svn_string_t *appendstr,
-                      ap_pool_t *pool)
-{
-  svn_string_appendbytes (targetstr, appendstr->data, 
-                          appendstr->len, pool);
-}
-
-
-
-/* duplicate a bytestring */
-
-svn_string_t *
-svn_string_dup (const svn_string_t *original_string, ap_pool_t *pool)
-{
-  return (svn_string_ncreate (original_string->data,
-                              original_string->len, pool));
-}
-
-
-
-/* compare if two bytestrings' data fields are identical,
-   byte-for-byte */
-
-svn_boolean_t
-svn_string_compare (const svn_string_t *str1, const svn_string_t *str2)
-{
-  /* easy way out :)  */
-  if (str1->len != str2->len)
-    return FALSE;
-
-  /* now that we know they have identical lengths... */
-  
-  if (memcmp (str1->data, str2->data, str1->len))
-    return FALSE;
-  else
-    return TRUE;
-}
-
-
-/* compare a bytestring with a traditional null-terminated C string */
-
-svn_boolean_t
-svn_string_compare_2cstring (const svn_string_t *str, const char *cstr)
-{
-  size_t l = strlen (cstr);
-
-  /* easy way out :)  */
-  if (str->len != l)
-    return FALSE;
-
-  /* now that we know they have identical lengths... */
-  
-  if (memcmp (str->data, cstr, l))
-    return FALSE;
-  else
-    return TRUE;
-}
-
-
-/* return an allocated C string from a bytestring */
-
-char *
-svn_string_2cstring (const svn_string_t *str, ap_pool_t *pool)
-{
-  /* allocate memory for C string, +1 for \0 */
-  size_t size = str->len + 1;
-  char *cstring = ap_palloc (pool, size);
-
-  /* copy bytes over */
-  memcpy (cstring, str->data, str->len);
-
-  /* add the trailing NULL */
-  cstring[size - 1] = 0;
-
-  return cstring;
-}
-
-
-/* 
-   Handy routine.
-
-   Input:  a bytestring
-
-   Returns: offset of first non-whitespace character 
-
-      (if bytestring is ALL whitespace, then it returns the size of
-      the bytestring.  Be careful not to use this value as an array
-      offset!)
-
-*/
-
-size_t
-svn_string_first_non_whitespace (const svn_string_t *str)
-{
-  size_t i;
-
-  for (i = 0; i < str->len; i++)
-    {
-      if (! isspace (str->data[i]))
-        {
-          return i;
-        }
-    }
-
-  /* if we get here, then the string must be entirely whitespace */
-  return (str->len);  
-}
-
-
-
-/* 
-   Another handy utility.
-
-   Input:  a bytestring
-
-   Output:  same bytestring, stripped of whitespace on both sides
-            (input bytestring is modified IN PLACE)
-*/
-
-void
-svn_string_strip_whitespace (svn_string_t *str)
-{
-  size_t i;
-
-  /* Find first non-whitespace character */
-  size_t offset = svn_string_first_non_whitespace (str);
-
-  /* Go ahead!  Waste some RAM, we've got pools! :)  */
-  str->data += offset;
-  str->len -= offset;
-
-  /* Now that we've chomped whitespace off the front, search backwards
-     from the end for the first non-whitespace. */
-
-  for (i = (str->len - 1); i >= 0; i--)
-    {
-      if (! isspace (str->data[i]))
-        {
-          break;
-        }
-    }
-  
-  /* Mmm, waste some more RAM */
-  str->len = i + 1;
-}
-
-
-
-/* Utility: print bytestring to stdout, assuming that the string
-   contains ASCII.  */
-
-void
-svn_string_print (const svn_string_t *str, 
-                  FILE *stream, 
-                  svn_boolean_t show_all_fields,
-                  svn_boolean_t add_newline)
-{
-  if (str->len >= 0) 
-    {
-
-      fwrite (str->data, 1, str->len, stream);
-
-      if (show_all_fields)
-        {
-          fprintf (stream, " (blocksize: %d, length: %d)", 
-                   str->blocksize, str->len);
-        }
-
-      if (add_newline)
-        {
-          fprintf (stream, "\n");
-        }
-    }
-}
-
-
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
-
diff --git a/subversion/libsvn_string/tests/stringtest.c b/subversion/libsvn_string/tests/stringtest.c
deleted file mode 100644
index 57796e3..0000000
--- a/subversion/libsvn_string/tests/stringtest.c
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/* Stupid program to test Subversion's bytestring library (libsvn_string).
-   Ben Collins-Sussman, (C) 2000 Collab.Net */
-
-#include <stdio.h>
-#include <svn_string.h>   /* This includes <apr_*.h> */
-
-int
-main ()
-{
-  svn_string_t *a, *b, *c;
-  char *msg;
-  ap_pool_t *pglobal;
-
-  /* Initialize APR (Apache pools) */
-  if (ap_initialize () != APR_SUCCESS)
-    {
-      printf ("ap_initialize() failed.\n");
-      exit (1);
-    }
-  if (ap_create_pool (&pglobal, NULL) != APR_SUCCESS)
-    {
-      printf ("ap_create_pool() failed.\n");
-      exit (1);
-    }
-
-
-  /* Create a bytestring from a null-terminated C string */
-  a = svn_string_create ("hello", pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Alternate: create a bytestring from a part of an array */
-  b = svn_string_ncreate ("a longish phrase of sorts", 16, pglobal);
-  svn_string_print (b, stdout, TRUE, TRUE);
-
-  /* Append b to a, growing a's storage if necessary */
-  svn_string_appendstr (a, b, pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Do it again, with an inline string creation for kicks. */
-  svn_string_appendstr (a, svn_string_create(" xtra", pglobal), pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Alternate:  append a specific number of bytes */
-  svn_string_appendbytes (a, "some bytes to frob", 7, pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Duplicate a bytestring, then compare if they're equal */
-  c = svn_string_dup (b, pglobal);
-  svn_string_print (c, stdout, TRUE, TRUE);
-
-  printf ("comparison of c and b is: %d\n", svn_string_compare (c, b));
-  printf ("comparison of a and b is: %d\n", svn_string_compare (a, b));
-
-  /* Set a bytestring to NULL, and query this fact. */
-  svn_string_setempty (c);
-  svn_string_print (c, stdout, TRUE, TRUE);
-  
-  printf ("is C empty? : %d\n", svn_string_isempty (c));
-  printf ("is A empty? : %d\n", svn_string_isempty (a));
-  
-  /* Fill a bytestring with hash marks */
-  svn_string_fillchar (a, '#');
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Return a C string from a bytestring */
-  msg = svn_string_2cstring (b, pglobal);
-  printf ("The C string returned is: %s\n", msg);
-
-  /* Compare the C string to the original bytestring */
-  printf ("comparison of b and msg is: %d\n", 
-          svn_string_compare_2cstring (b, msg));
-  printf ("comparison of b and `foogle' is: %d\n", 
-          svn_string_compare_2cstring (b, "foogle"));
-  printf ("comparison of b and `a longish phrase' is: %d\n", 
-          svn_string_compare_2cstring (b, "a longish phrase"));
-
-  /* Free our entire memory pool when done. */
-  ap_destroy_pool (pglobal);
-  ap_terminate();
-
-  return 0;
-}
diff --git a/subversion/libsvn_subr/parsetest/Makefile b/subversion/libsvn_subr/parsetest/Makefile
deleted file mode 100644
index 4be1d61..0000000
--- a/subversion/libsvn_subr/parsetest/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# Quick Hack Makefile
-
-SVN_INCLUDE = ../../include
-SVN_STRING_LIB = ../../libsvn_string
-
-APR_INCLUDE = ../../../apr/include
-APR_LIB = ../../../apr
-
-
-all: parsetest
-
-clean:
-	rm *.o *~ parsetest
-
-svn_error.o: ../svn_error.c ../svn_error.h
-	cc -c ../svn_error.c -g -Wall \
-	                     -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I..
-
-svn_parse.o: ../svn_parse.c ../svn_parse.h
-	cc -c ../svn_parse.c -g -Wall \
-	                     -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I..
-
-parsetest: parsetest.c svn_error.o svn_parse.o
-	cc -o parsetest parsetest.c svn_error.o svn_parse.o \
-                                    -g -Wall -pthread \
-                                    -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I.. \
-                                    -L$(APR_LIB) -L$(SVN_STRING_LIB) \
-                                    -lsvn_string -lapr
diff --git a/subversion/libsvn_subr/parsetest/configfile b/subversion/libsvn_subr/parsetest/configfile
deleted file mode 100644
index 512e39a..0000000
--- a/subversion/libsvn_subr/parsetest/configfile
+++ /dev/null
@@ -1,40 +0,0 @@
-
-# This is a sample Subversion config file
-
-# Nicely Formatted Part
-
-[Grades]
-
-Joe : A
-Mary : B-
-Alice : A+
-
-[Doughnuts]
-
-Powdered : $.39
-Chocolate : $1.59 a dozen
-
-
-# BaDlY FoRMatTed paRT
-
-    [foosection]    
-                giraffe         : 17
-  elephant:   green
-
-    # Yummy section
-[unfinished section
-
-
-
- [barsection   ]
-  3.14159  :pi
- eee : 2.71 
-        ghoti   :       phish
-
-# Really important section!
-
-syntaxerror
-
-   [    bazsection ]
-airplane:    bahamas   
-
diff --git a/subversion/libsvn_subr/parsetest/parsetest.c b/subversion/libsvn_subr/parsetest/parsetest.c
deleted file mode 100644
index 0609089..0000000
--- a/subversion/libsvn_subr/parsetest/parsetest.c
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/* Testing svn_parse() */
-
-#include <svn_parse.h>
-#include <stdio.h>
-
-int
-main ()
-{
-  ap_hash_t *configdata;
-  ap_pool_t *pool;
-  svn_error_t *error;
-
-  /* Initialize APR (Apache pools) */
-  if (ap_initialize () != APR_SUCCESS)
-    {
-      printf ("ap_initialize() failed.\n");
-      exit (1);
-    }
-  if (ap_create_pool (&pool, NULL) != APR_SUCCESS)
-    {
-      printf ("ap_create_pool() failed.\n");
-      exit (1);
-    }
-
-
-  /* Parse the file "./configfile" */
-
-  error = 
-    svn_parse (&configdata, svn_string_create ("configfile", pool), pool);
-
-  if (error) {
-    svn_handle_error (error);
-  }
-
-
-  /* Print out our configdata uber-hash */
-
-  svn_uberhash_print (configdata, stdout);
-
-
-  /* If we were an application using libsvn_svr, we would now pass
-     this uber-hash to svn_init() to get a `svn_policies_t' structure.
-     We would then use this structure for all our wrappered filesystem
-     calls.  */
-
-  /* Clean up our memory pool and apr */
-  ap_destroy_pool (pool);
-  ap_terminate ();
-
-  printf ("Test complete, exiting cleanly.\n\n");
-  return 0;
-}
diff --git a/subversion/libsvn_subr/svn_error.c b/subversion/libsvn_subr/svn_error.c
deleted file mode 100644
index 8fb9b2f..0000000
--- a/subversion/libsvn_subr/svn_error.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* svn_error:  common exception handling for Subversion
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-#include <svn_error.h>
-
-
-svn_error_t *
-svn_create_error (ap_status_t err,
-                  svn_boolean_t fatal, 
-                  svn_string_t *message,
-                  ap_pool_t *pool)
-{
-  svn_error_t *new_error = (svn_error_t *) ap_palloc (pool,
-                                                      sizeof(svn_error_t));
-
-  char *strerror_msg = ap_palloc (pool, 100);
-
-  new_error->err = err;
-  new_error->fatal = fatal;
-  new_error->message = message;
-  new_error->canonical_errno = ap_canonical_error (errno);
-
-  ap_strerror (err, strerror_msg, 100);
-
-  new_error->description = strerror_msg;
-
-
-  return new_error;
-}
-
-
-
-/* Very dumb "default" error handler that anyone can use if they wish.
-
-   Just prints out error, quits if the fatal flag is set.
-
- */
-
-
-
-void
-svn_handle_error (svn_error_t *err)
-{
-  printf ("\nsvn_error: errno %d, %s\n", 
-          err->err, err->description);
-  printf ("      ");
-  fflush (stdout);
-  svn_string_print (err->message, stderr, FALSE, TRUE);
-  printf ("\n");
-  fflush (stdout);
-
-  /* We can examine the APR canonicalized error here, make general
-     logical desciions if we wish.*/
-
-  /* We can also log errors here. */
-
-  if (err->fatal)
-    {
-      printf ("Fatal error, exiting.\n");
-      exit (err->err);
-    }
-}
-
-
-
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
diff --git a/subversion/libsvn_subr/svn_error.h b/subversion/libsvn_subr/svn_error.h
deleted file mode 100644
index 11c590c..0000000
--- a/subversion/libsvn_subr/svn_error.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* svn_error.h:  common exception handling for Subversion
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-
-#ifndef __SVN_ERROR_H__
-#define __SVN_ERROR_H__
-
-
-#include <svn_types.h>
-#include <svn_string.h>
-#include <apr_errno.h>     /* APR's error system */
-#include <stdio.h>
-
-
-
-/* 
-   Theoretically, this is the header file where we can define our own
-   *custom* Subversion errno's, specifically between the ranges of
-   APR_OS_START_USEERR and APR_OS_START_SYSERR (see apr_errno.h)
-*/
-
-#define SVN_ERR_NOT_AUTHORIZED                   (APR_OS_START_USEERR + 1)
-#define SVN_ERR_UNRECOGNIZED_SECTION             (APR_OS_START_USEERR + 2)
-#define SVN_ERR_MALFORMED_LINE                   (APR_OS_START_USEERR + 3)
-
-
-typedef struct svn_error_t
-{
-  ap_status_t err;             /* native OS errno */
-  svn_boolean_t fatal;         /* does the creator think this a fatal error? */
-  svn_string_t *message;       /* description from top-level caller */
-  char *description;           /* generic description from ap_strerror() */
-  int canonical_errno;         /* "canonicalized" errno from APR */ 
-
-} svn_error_t;
-
-
-/* svn_error_t constructor */
-
-#define SVN_FATAL     1    /* Use instead of TRUE or 1, for readability. */
-#define SVN_NON_FATAL 0    /* Use instead of FALSE or 0, for readability. */
-
-svn_error_t *svn_create_error (ap_status_t err,
-                               svn_boolean_t fatal,
-                               svn_string_t *message,
-                               ap_pool_t *pool);
-
-
-/* all routines call this */
-
-void svn_handle_error (svn_error_t *error);
-
-
-/* example usage:
-
-   if (bad_thing)
-     svn_handle_error (svn_create_error (errno, FALSE, pool));
-
- */
-
-
-
-
-#endif   /* __SVN_ERROR_H__ */
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/libsvn_subr/svn_parse.c b/subversion/libsvn_subr/svn_parse.c
deleted file mode 100644
index 5d6c190..0000000
--- a/subversion/libsvn_subr/svn_parse.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/* svn_parse:  shared parsing routines for reading config files
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-#include <svn_parse.h>
-
-
-/* 
-   NOT EXPORTED.
-
-   Input:  an open file, a bytestring ptr, and a pool.
-
-   Returns:  either APR_EOF or APR_SUCCESS, and a filled-in bytestring
-             containing the next line of the file.
-
-         (Note that the same bytestring can be reused in multiple
-         calls to this routine, because the bytestring is cleared at
-         the beginning.)  
-*/
-
-
-ap_status_t
-svn__my_readline (ap_file_t *FILE, svn_string_t *line, ap_pool_t *pool)
-{
-  char c;
-  ap_status_t result;
-
-  svn_string_setempty (line);  /* clear the bytestring first! */
-
-  while (1)
-    {
-      result = ap_getc (&c, FILE);  /* read a byte from the file */
-
-      if (result == APR_EOF)  /* file is finished. */
-        {
-          return APR_EOF;
-        }
-      
-      if (c == '\n')          /* line is finished. */
-        {
-          /* store the newline in our bytestring (important!) */
-          svn_string_appendbytes (line, &c, 1, pool);
-
-          return APR_SUCCESS;
-        }
-      
-      else  /* otherwise, just append this byte to the bytestring */
-        {
-          svn_string_appendbytes (line, &c, 1, pool);
-        }
-    }  
-}
-
-
-
-/* 
-   NOT EXPORTED.
-
-   Input:  a bytestring, a handle for returning a bytestring, the
-           starting search offset, search character, and pool 
-
-   Returns:  1. the offset of the search character (-1 if no match)
-             2. a newly allocated substring in "substr" (NULL if no match)
-                * This substring starts at `start' and goes to the offset
-                * This substring has no whitespace at either end
-
-     If used repeatedly, this routine is like a poor man's `split' 
-     (combined with chomp).
-*/
-
-int
-svn__slurp_to (const svn_string_t *searchstr,
-           svn_string_t **substr,
-           const size_t start, 
-           const char sc,
-           ap_pool_t *pool)
-{
-  int i;
-
-  /* Create a new bytestring */
-  *substr = svn_string_create ("<nobody home>", pool);
-  svn_string_setempty (*substr);
-
-  for (i = start; i < searchstr->len; i++)
-    {
-      if (searchstr->data[i] == sc)
-        {
-          /*          printf ("found character '%c' at offset %d\n", sc, i);*/
-
-          svn_string_appendbytes (*substr,               /* new substring */
-                                  searchstr->data + start,/* start copy */
-                                  (i - start),        /* number to copy */
-                                  pool);
-          
-          svn_string_strip_whitespace (*substr);
-
-          return i;
-        }
-    }
-
-  /* If we get here, then the bytestring doesn't contain our search
-     character.  This is bogus. */
-  
-  *substr = NULL;
-  return -1;
-}
-
-
-
-
-
-/* 
-   svn_parse()                        (finally)
-
-
-   Input:  a filename and pool, pointer to a hash
-
-   Output: a pointer to a hash of hashes, all built within the pool
-
-   This routine parses a file which conforms to the standard
-   Subversion config file format (look in notes/).  
-
-   The hash returned is a mapping from section-names to hash pointers;
-   each hash contains the keys/vals for each section.  All
-   section-names, keys and vals are stored as svn_string_t pointers.
-   (These bytestrings are allocated in the same pool as the hashes.)
-
-   This routine makes no attempt to understand the sections, keys or
-   values.  :) */
-
-
-svn_error_t *
-svn_parse (ap_hash_t **uberhash, svn_string_t *filename, ap_pool_t *pool)
-{
-  ap_hash_t *current_hash;  /* the hash we're currently storing vals in */
-
-  ap_pool_t *scratchpool;
-  svn_string_t *currentline;
-  ap_status_t result;     
-  ap_file_t *FILE = NULL;
-
-  
-  /* Create our uberhash */
-  *uberhash = ap_make_hash (pool);
-
-  /* Open the config file */
-  result = ap_open (&FILE,
-                    svn_string_2cstring (filename, pool),
-                    APR_READ,
-                    APR_OS_DEFAULT, /*TODO: WHAT IS THIS? */
-                    pool);
-  
-  if (result != APR_SUCCESS)
-    {
-      svn_string_t *msg = svn_string_create 
-        ("svn_parse(): can't open for reading, file ", pool);
-      svn_string_appendstr (msg, filename, pool);
-
-      return (svn_create_error (result, SVN_NON_FATAL, msg, pool));
-    }
-
-  /* Create a scratch memory pool for buffering our file as we read it */
-  if ((result = ap_create_pool (&scratchpool, NULL)) != APR_SUCCESS)
-    {
-      return
-        (svn_create_error 
-         (result, SVN_FATAL, 
-          svn_string_create ("svn_parse(): fatal: can't create scratchpool",
-                             pool), pool));
-    }
-
-
-  /* Create a bytestring to hold the current line of FILE */
-  currentline = svn_string_create ("<nobody home>", scratchpool);
-
-
-  /* Now start scanning our file, one line at a time */
-
-  while (svn__my_readline (FILE, currentline, scratchpool) != APR_EOF)
-    {
-      char c;
-      size_t offset = svn_string_first_non_whitespace (currentline);
-
-      if (offset == currentline->len)
-        {
-          /* whole line is whitespace, read next line! */
-          continue;
-        }
-      
-      c = currentline->data[offset];  /* our first non-white character */
-
-      switch (c)
-        {
-        case '#': 
-          {
-            /* It's a comment line, so read next line! */
-            continue;
-          };
-
-        case '[':
-          {
-            /* It's a new section! */  
-
-            /* Create new hash to hold this section's keys/vals  */
-            ap_hash_t *new_section_hash = ap_make_hash (pool);  
-
-            /* Slurp up the section name */
-            svn_string_t *new_section;
-
-            svn__slurp_to (currentline,  /* search current line */
-                       &new_section,  /* place new substring here */
-                       offset + 1,    /* start searching past the '[' */
-                       ']',          /* look for this ending character */
-                       pool);        /* build our substring in this pool */
-           
-            if (new_section == NULL)  /* couldn't find a ']' ! */
-              {
-                svn_string_t *msg = 
-                  svn_string_create 
-                  ("svn_parse(): warning: skipping malformed line: ", pool);
-                svn_string_appendstr (msg, currentline, pool);
-
-                /* Instead of returning an error, just print warning */
-                svn_handle_error (svn_create_error 
-                                  (SVN_ERR_MALFORMED_LINE, SVN_NON_FATAL,
-                                   msg, pool));
-                break;
-              }
-                                        
-            /* printf ("Found new section: `");
-               svn_string_print (new_section, stdout, FALSE, FALSE);
-               printf ("'\n"); */
-
-            /* make this new hash the "active" hash for new keys/vals */
-            current_hash = new_section_hash;  
-
-            /* store this new hash in our uberhash */
-            ap_hash_set (*uberhash, 
-                         new_section->data,   /* key: bytestring */
-                         new_section->len,    /* the length of the key */
-                         new_section_hash);   /* val: ptr to the new hash */
-            break;
-          }
-
-        default:
-          {
-            /* If it's not a blank line, comment line, or section line,
-               then it MUST be a key : val line!  */
-
-            /* Slurp up the key by searching for a colon */
-
-            svn_string_t *new_key, *new_val;
-            size_t local_offset;
-
-            local_offset = svn__slurp_to (currentline, /* search current line */
-                                      &new_key,     /* put substring here */
-                                      offset,      /* start at this offset */
-                                      ':',         /* look for a colon */
-                                      pool);       /* build substr here */
-
-            if (new_key == NULL)  /* didn't find a colon! */
-              {
-                svn_string_t *msg = 
-                  svn_string_create 
-                  ("svn_parse(): warning: skipping malformed line: ", pool);
-                svn_string_appendstr (msg, currentline, pool);
-               
-                /* Instead of returning an error, just print warning */
-                svn_handle_error (svn_create_error 
-                                  (SVN_ERR_MALFORMED_LINE, SVN_NON_FATAL,
-                                   msg, pool));
-                break;
-              }
-
-            /* Now slurp up the value, starting just past the colon */
-
-            svn__slurp_to (currentline,
-                       &new_val,
-                       local_offset + 1,
-                       '\n',
-                       pool);
-
-            /*  printf ("Key: `");
-                svn_string_print (new_key, stdout, FALSE, FALSE);
-                printf ("'\n");
-                printf ("Val: `");
-                svn_string_print (new_val, stdout, FALSE, FALSE);
-                printf ("'\n"); */
-
-            /* Should we check for a NULL result from svn__slurp_to?
-               What are the chances it's not going to find a newline? :)
-            */
-
-            /* Store key and val in the currently active hash */
-            ap_hash_set (current_hash,
-                         new_key->data,       /* key: bytestring data */
-                         new_key->len,        /* length of key */
-                         new_val);            /* val: ptr to bytestring */
-            break;
-          }         /* default: */
-        }           /* switch (c) */
-    }               /* while (readline) */
-
-     
-  /* Close the file and free our scratchpool */
-
-  result = ap_close (FILE);
-  if (result != APR_SUCCESS)
-    {
-      svn_string_t *msg = svn_string_create 
-        ("svn_parse(): warning: can't close file ", pool);
-      svn_string_appendstr (msg, filename, pool);
-      
-      /* Not fatal, just annoying.  Send a warning instead returning error. */
-      svn_handle_error (svn_create_error (result, SVN_NON_FATAL, msg, pool));
-    }
-  
-  ap_destroy_pool (scratchpool);
-
-
-  /* Return success */
-
-  return 0;
-}
-
-
-
-
-
-/*  Convenience Routine:  pretty-print an ap_hash_t.
-
-     (ASSUMING that all keys and vals are of type (svn_string_t *) )
-
-*/
-
-void
-svn_hash_print (ap_hash_t *hash, FILE *stream)
-{
-  ap_hash_index_t *hash_index;   /* this represents a hash entry */
-  void *key, *val;
-  size_t keylen;
-  svn_string_t keystring, *valstring;
-
-  fprintf (stream, "\n-----> Printing hash:\n");
-
-  for (hash_index = ap_hash_first (hash);      /* get first hash entry */
-       hash_index;                             /* NULL if out of entries */
-       hash_index = ap_hash_next (hash_index)) /* get next hash entry */
-    {
-      /* Retrieve key and val from current hash entry */
-      ap_hash_this (hash_index, &key, &keylen, &val);
-
-      /* Cast things nicely */
-      keystring.data = key;
-      keystring.len = keylen;
-      keystring.blocksize = keylen;
-
-      valstring =  val;
-
-      /* Print them out nicely */
-      fprintf (stream, "Key: `");
-      svn_string_print (&keystring, stream, FALSE, FALSE);
-      fprintf (stream, "', ");
-
-      fprintf (stream, "Val: `");
-      svn_string_print (valstring, stream, FALSE, FALSE);
-      fprintf (stream, "'\n");
-    }
-  
-  fprintf (stream, "\n");
-}
-
-
-
-/* Convenience Routine:  pretty-print "uberhash" from svn_parse().
-
-   (ASSUMING that all keys are (svn_string_t *),
-                  all vals are (ap_hash_t *) printable by svn_hash_print() )
-*/
-
-
-void
-svn_uberhash_print (ap_hash_t *uberhash, FILE *stream)
-{
-  ap_hash_index_t *hash_index;   /* this represents a hash entry */
-  void *key, *val;
-  size_t keylen;
-  svn_string_t keystring;
-  ap_hash_t *valhash;
-
-  fprintf (stream, "\n-> Printing Uberhash:\n");
-
-  for (hash_index = ap_hash_first (uberhash);  /* get first hash entry */
-       hash_index;                             /* NULL if out of entries */
-       hash_index = ap_hash_next (hash_index)) /* get next hash entry */
-    {
-      /* Retrieve key and val from current hash entry */
-      ap_hash_this (hash_index, &key, &keylen, &val);
-
-      /* Cast things nicely */
-      keystring.data = key;
-      keystring.len = keylen;
-      keystring.blocksize = keylen;
-
-      valhash = val;
-
-      /* Print them out nicely */
-      fprintf (stream, "---> Hashname: `");
-      svn_string_print (&keystring, stream, FALSE, FALSE);
-      fprintf (stream, "'\n");
-
-      svn_hash_print (valhash, stream);
-    }
-  
-  fprintf (stream, "\nUberhash printing complete.\n\n");
-}
-
-
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
diff --git a/subversion/libsvn_subr/svn_parse.h b/subversion/libsvn_subr/svn_parse.h
deleted file mode 100644
index 7899da1..0000000
--- a/subversion/libsvn_subr/svn_parse.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* svn_parse:  shared parsing routines for reading config files
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-#ifndef __SVN_PARSE_H__
-#define __SVN_PARSE_H__
-
-#include <svn_types.h>
-#include <svn_string.h>
-#include <svn_error.h>
-#include <apr_pools.h>
-#include <apr_hash.h>
-#include <apr_file_io.h>
-#include <ctype.h>           /* isspace() */
-
-
-/* 
-   General Utility -- reads a config file, returns a hash of hashes.
-
-   For file format, see `notes/svn-config-files'
-*/
-
-svn_error_t * svn_parse (ap_hash_t **returnhash, 
-                         svn_string_t *filename, 
-                         ap_pool_t *pool);
-
-
-/* Prints a hash, assuming all keys/vals are (svn_string_t *) */
-
-void svn_hash_print (ap_hash_t *hash, FILE *stream);
-
-/* Prints uberhash returned from svn_parse(),
-   assuming each key is (svn_string_t *)
-   and each val is printable by svn_hash_print(). */
-
-void svn_uberhash_print (ap_hash_t *uberhash, FILE *stream);
-
-
-#endif /* __SVN_PARSE_H__ */
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
-
diff --git a/subversion/libsvn_svr/README b/subversion/libsvn_svr/README
deleted file mode 100644
index 6417396..0000000
--- a/subversion/libsvn_svr/README
+++ /dev/null
@@ -1,54 +0,0 @@
-
-This is the Subversion Server library.
-
-This library depends on the Subversion filesystem library (libsvn_fs),
-and provides an interface to any program that wishes to behave as a
-Subversion server.
-
-With this library, your program is able to:
-
-     * make filesystem calls into any Subversion repository
-
-     * define general server policy behavior and load server-side
-       plugins by writing a custom `svn.conf' file
-
-
-The public API is defined in `svn_svr.h'.
-
-
----------------------------------
-
-How to write an application that implements a "Subversion Server":
-
-(Assumptions: you already have a Subversion repository on disk
-somewhere.)
-
-
-    1. #include <svn_svr.h> and <svn_parse.h>.  Initialize an
-        apr_pool_t to use.
-
-    2. Create a svn_user_t structure.  Your app is *soley* responsible
-       for making sure the user is authenticated; the Subversion
-       Filesystem just assumes so.  (Optional: fill in
-       svn_user_t->svn_username with the name you want to use for
-       doing filesystem operations, otherwise
-       svn_user_t->auth_username will be used.)
-
-    3. Create (or use a preexisting) `svn.conf' file that contains
-       general server config options.  For example, you can use the
-       simple 'plugin_security' for basic ACL authorizations.  (Or you
-       can write your own authorization plugin.)
-
-    4. Parse the configfile with svn_parse(), and pass the resulting
-       hashtable to svn_svr_init().  You'll get back a svn_policies_t
-       structure, which you must then pass to all future server
-       routines.
-
-    5. Call any number of wrappered filesystem calls, passing in the
-       user structure and the policy structure.  
-
-
----------------------------------
-
-How to write a server-side plugin.....
-
diff --git a/subversion/libsvn_svr/plugin_security/plugin_security.c b/subversion/libsvn_svr/plugin_security/plugin_security.c
deleted file mode 100644
index 71b2f40..0000000
--- a/subversion/libsvn_svr/plugin_security/plugin_security.c
+++ /dev/null
@@ -1,134 +0,0 @@
-
-/* 
-   plugin_security.c:  a server-side plugin for Subversion which
-                       implements basic filesystem authorization.  */
-
-/*
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-/*
-   We're assuming that the network layer has *already* authenticated
-   the user in question, and now simply wants to know if the user is
-   permitted to perform an action on some data.
-
-  This plug-in consults the `svn_security' file for authorization;
-  each repository has its own svn_security file describing ACLs.
-
-*/
-
-
-/* Note: remember to build plugins with -k PIC and in a way that
-   libapr can use them as DSO's! */
-
-
-#include <svn_svr.h>     /* describes server architecture */
-
-
-/*
-  Here is a basic example of an "authorization hook" routine.
-
-  Input:   a `user' structure from the network layer
-  
-  Returns: either NULL if the action is denied, or non-NULL on success.
-           
-  If successful, fill in the "canonical" username in the user
-  structure to use with the filesystem.
-  
-*/
-  
-char
-svn_internal_authorization (svn_string_t *repos,
-                            svn_user_t *user,
-                            svr_action_t requested_action,
-                            unsigned long ver,
-                            svn_string_t *path)
-{
-
-  /* this routine should consult the repository's `svn_security' file
-     to make the authorization decision.  */
-
-  /* this routine should read the file by calling *directly* into
-     libsvn_fs, and not call svn_svr_read(); svn_svr_read() checks for
-     authorization, which would put us in an infinte loop! */
-
-}
-
-
-/* The routine called by the server, which causes the plugin to
-   register itself */
-
-void
-plugin_security_init (svn_svr_policies_t *policy,
-                      ap_dso_handle_t *dso,
-                      ap_pool_t *pool)
-{
-  /* First:  create a plugin_security object */
-  svn_svr_plugin_t *newplugin = 
-    (svn_svr_plugin_t *) ap_palloc (pool, sizeof(svn_svr_plugin_t));
-
-  /* Fill in the fields of the plugin */
-  newplugin->name = svn_string_create ("plugin_security", pool);
-  newplugin->description = 
-    svn_string_create ("Authorizes via ACLs in each repository's `svn_security' file.", pool);
-  newplugin->my_dso = dso;
-
-  newplugin->authorization_hook = svn_internal_authorization;
-  newplugin->conflict_resolve_hook = NULL;
-
-  /* Finally, register the new plugin in the server's global policy struct */
-  svn_svr_register_plugin (policy, newplugin);
-}
-
-
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/libsvn_svr/plugin_security/svn_security b/subversion/libsvn_svr/plugin_security/svn_security
deleted file mode 100644
index 3d908b1..0000000
--- a/subversion/libsvn_svr/plugin_security/svn_security
+++ /dev/null
@@ -1,41 +0,0 @@
-
-# Repository-specific ACLs for Subversion.
-
-########### Section 1:  Username mappings ##########################
-
-# HASH = "user_alias" : KEY = svn username : VAL = list of aliases
-
-# (each alias is a username/method/domain triple)
-
-user_alias : jimb :   jimb/unix/localhost,  \
-                      jimb/smtp/jimb@red-bean.com, \
-                      jimb/kerberos/redhat.com, \
-                      jimb/DAV/red-bean.com 
-
-user_alias : jim :    jimb/kerberos/microsoft.com, \
-                      jimb/ssh/inferno.net
-
-user_alias : kfogel : kfogel/joist/collab.net
-
-
-########### Section 2:  Role Definitions ############################
-
-# HASH = "role" : KEY = rolename : VAL = list of actions permitted
-
-role : visitor : checkout, update
-role : hacker : checkout, update, commit
-role : core-programmer : checkout, update, commit, add, rm, mv
-role : nitpicker : checkout, update, annotate
-role : admin : checkout, update, commit, add, rm, mv, import
-role : god : all
-role : offlimits : none
-
-
-########### Section 3:  Role mappings ################################
-
-# HASH = "rolemap" : KEY = svn username : VAL = list of {role, path} pairs
-
-rolemap : joe : {visitor /trunk/gnome}, {nitpicker /trunk/foo}
-rolemap : kfogel : {admin /trunk/subversion}, {offlimits /trunk/foo/foo.c}
-rolemap : zeke : {visitor /trunk/comp-tools/gdb}
-
diff --git a/subversion/libsvn_svr/server_fs.c b/subversion/libsvn_svr/server_fs.c
deleted file mode 100644
index 62b6df3..0000000
--- a/subversion/libsvn_svr/server_fs.c
+++ /dev/null
@@ -1,972 +0,0 @@
-/*
- * server_fs.c :  wrappers around filesystem calls, and other things
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-/* **************************************************************
-   
-   The main idea here is that filesystem calls are "wrappered", giving
-   the server library the chance to check for authorization and
-   execute any policies that may supercede the request.
-
-   NOTE: The "repos" argument in exported routines can be either a
-   nickname (specified in the svn.conf file) or the full pathname of a
-   repository.
-
-****************************************************************/
-
-
-#include <svn_svr.h>     /* declarations for this library */
-#include <svn_fs.h>      /* the Subversion filesystem API */
-#include <svn_string.h>  /* Subversion bytestring routines */
-
-
-
-
-
-/* svr__expand_repos_name : NOT EXPORTED.
-
-   Input: a policy and a repository name.  Repository name *might* be
-   an abbreviated nickname (listed in `svn.conf' and in the policy
-   structure)
-
-   Returns:  the full (proper) repository pathname.
-
- */
-
-svn_string_t *
-svr__expand_repos_name (svn_svr_policy_t *policy,
-                        svn_string_t *repos)
-{
-  /* Loop through policy->repos_aliases hash.
-     If there's a match, return new bytestring containing hash value.
-     If there's no match, return original string pointer.
-  */
-
-  return repos;
-}
-
-
-
-
-/* 
-   svr_plugin_authorize()
-
-   Loops through all authorization plugins, checking for success.
-
-   Input:  policy + {repos, user, action, path} group
-
-   Returns:  ptr to error structure (if not authorized)
-             or 0 if authorized!
-            
-*/
-
-svn_error_t *
-svn_svr_plugin_authorize (svn_svr_policies_t *policy, 
-                          svn_string_t *repos, 
-                          svn_user_t *user, 
-                          svn_svr_action_t *action,
-                          unsigned long ver,
-                          svn_string_t *path)
-{
-  int i;
-  svn_error_t *err;
-  svn_svr_plugin_t *current_plugin;
-  (svn_error_t *) (* current_auth_hook) (svn_string_t *r, svn_user_t *u,
-                                         svn_svr_action_t *a, unsigned long v,
-                                         svr_string_t *p);
-
-  /* Next:  loop through our policy's array of plugins... */
-  for (i = 0; i < (policy->plugins->nelts); i++)
-    {
-      /* grab a plugin from the list of plugins */
-      current_plugin = AP_ARRAY_GET_ITEM (policy->plugins, i,
-                                          (svn_svr_plugin_t *));
-
-      /* grab the authorization routine from this plugin */
-      current_auth_hook = current_plugin->authorization_hook;
-      
-      if (current_auth_hook != NULL)
-        {
-          /* Call the authorization routine, giving it a chance to
-             kill our authorization assumption */
-          err = (*my_hook) (repos, user, action, ver, path);
-        }
-
-      if (err)  /* bail out if we fail at any point in the loop */
-        {
-          return err;
-        }
-    }
-
-  /* If all auth_hooks are successful, double-check that
-     user->svn_username is actually filled in! 
-     (A good auth_hook should fill it in automatically, though.)
-  */
-
-  if (svn_string_isempty (user->svn_username))
-    {
-      /* Using the policy's memory pool, duplicate the auth_username
-         string and assign it to svn_username */
-      user->svn_username = svn_string_dup (user->auth_username,
-                                           policy->pool);
-    }
-  
-  return 0;  /* successfully authorized to perform the action! */
-}
-
-
-/* svr__policy_authorize()
-
-   See if general server `policy' allows an action.
-
-   Input:  policy + {repos, user, action, ver, path} group
-
-   Returns:  error structure (if authorization fails)
-             0 (if authorization succeeds)
-
- */
-
-svn_error_t *
-svn_svr_policy_authorize (svn_svr_policies_t *policy,
-                          svn_string_t *repos,
-                          svn_user_t *user,
-                          svn_svr_action_t *action,
-                          unsigned long ver,
-                          svn_string_t *path)
-{
-  /* BIG TODO: loop through policy->global_restrictions array,
-     interpreting each restriction and checking authorization */
-
-  return 0;
-}
-
-
-
-/* 
-   Convenience routine -- calls the other two authorization routines.
-
-   This routine is called by each "wrappered" filesystem call in this
-   library.
-
-
-   Input:  policy + {repos, user, action, ver, path} group
-
-   Returns:  error structure (if authorization fails)
-             0 (if authorization succeeds)
-
-*/
-
-svn_error_t *
-svn_svr_authorize (svn_svr_policies_t *policy,
-                   svn_string_t *repos,
-                   svn_user_t *user,
-                   svn_svr_action_t *action,
-                   unsigned long ver,
-                   svn_string_t *path)
-{
-  svn_error_t *err;
-  
-  err = svn_svr_policy_authorize (policy, repos, user, action, ver, path);
-
-  if (err)
-    {
-      return err;
-    }
-
-  err = svn_svr_plugin_authorize (policy, repos, user, action, ver, path);
-
-  if (err)
-    {
-      return err;
-    }
-
-  return 0;  /* successfully authorized! */
-}
-
-
-
-
-
-/*========================================================================
-
-   READING HISTORY ARRAY.
-
-   These routines retrieve info from a repository's history array.
-   They return FALSE if authorization fails.
-
-*/
-
-
-/* Returns latest version of the repository */
-
-svn_ver_t * 
-svn_svr_latest (svn_svr_policies_t *policy, 
-                svn_string_t *repos, 
-                svn_user_t *user)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = latest;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, NULL, NULL);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_latest (repository, 
-                             user->svn_username));
-    }
-}
-
-
-
-/* Given a version, return a certain property value */
-
-svn_string_t * 
-svn_svr_get_ver_prop (svn_svr_policies_t *policy,
-                      svn_string_t *repos, 
-                      svn_string_t *user, 
-                      unsigned long ver, 
-                      svn_string_t *propname)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_ver_prop;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, NULL);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_ver_prop (repository, 
-                                   user->svn_username,
-                                   ver,
-                                   propname));
-    }
-}
-
-
-
-/* Retrieve entire proplist of a version */
-
-svn_proplist_t * 
-svn_svr_get_ver_proplist (svn_svr_policies_t *policy,
-                          svn_string_t *repos, 
-                          svn_string_t *user, 
-                          unsigned long ver)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_ver_proplist;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, NULL);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_ver_proplist (repository, 
-                                       user->svn_username,
-                                       ver));
-    }
-}
-
-
-
-/* Return the property names of a version.
-   TODO:  Should this return something other than a proplist?
-          If not, how is it any different than get_ver_proplist()? 
-*/
-
-
-svn_proplist_t * 
-svn_svr_get_ver_propnames (svn_svr_policies_t *policy,
-                           svn_string_t *repos, 
-                           svn_string_t *user, 
-                           unsigned long ver)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_ver_propnames;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, NULL);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_ver_propnames (repository, 
-                                        user->svn_username,
-                                        ver));
-    }
-}
-
-
-
-/*========================================================================
-
-   READING NODES.
-
-   These routines retrieve info from a node in the filesystem.
-   They return FALSE if authorization fails.
-
-*/
-
-
-
-/* Return the entire contents of a node */
-
-svn_node_t * 
-svn_svr_read (svn_svr_policies_t *policy,
-              svn_string_t *repos, 
-              svn_user_t *user, 
-              unsigned long ver, 
-              svn_string_t *path)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = read;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, path);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_read (repository, 
-                           user->svn_username,
-                           ver,
-                           path));
-    }
-}
-
-
-
-/* Return the value of a node's propery */
-
-svn_string_t * 
-svn_svr_get_node_prop (svn_svr_policies_t *policy,
-                       svn_string_t *repos, 
-                       svn_user_t *user, 
-                       unsigned long ver, 
-                       svn_string_t *path, 
-                       svn_string_t *propname)
-
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_node_prop;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, path);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_node_prop (repository, 
-                                    user->svn_username,
-                                    ver,
-                                    path,
-                                    propname));
-    }  
-}
-
-
-/* Get the value of a dirent's property */
-
-svn_string_t * 
-svn_svr_get_dirent_prop (svn_svr_policies_t *policy,
-                         svn_string_t *repos, 
-                         svn_user_t *user, 
-                         unsigned long ver, 
-                         svn_string_t *path, 
-                         svn_string_t *propname)
-{
-    /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_dirent_prop;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, path);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_dirent_prop (repository, 
-                                      user->svn_username,
-                                      ver,
-                                      path,
-                                      propname));
-    }  
-}
- 
-
-
-/* Get a node's entire proplist */
-
-svn_proplist_t * 
-svn_svr_get_node_proplist (svn_svr_policies_t *policy,
-                           svn_string_t *repos,
-                           svn_user_t *user,
-                           unsigned long ver, 
-                           svn_string_t *path)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_node_proplist;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, path);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_node_proplist (repository, 
-                                        user->svn_username,
-                                        ver,
-                                        path));
-    }
-}
- 
-
-
-
-/* Get a dirent's entire proplist */
-
-svn_proplist_t * 
-svn_svr_get_dirent_proplist (svn_svr_policies_t *policy,
-                             svn_string_t *repos, 
-                             svn_user_t *user, 
-                             unsigned long ver, 
-                             svn_string_t *path)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_dirent_proplist;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, path);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_dirent_proplist (repository, 
-                                          user->svn_username,
-                                          ver,
-                                          path));
-    }
-}
- 
-
-
-/* Get a list of a node's property names */
-
-svn_proplist_t * 
-svn_svr_get_node_propnames (svn_svr_policies_t *policy,
-                            svn_string_t *repos, 
-                            svn_user_t *user, 
-                            unsigned long ver, 
-                            svn_string_t *path)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_node_propnames;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, path);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_node_propnames (repository, 
-                                         user->svn_username,
-                                         ver,
-                                         path));
-    }
-}
- 
-
-
-/* Get a list of a dirent's property names */
-     
-svn_proplist_t * 
-svn_svr_get_dirent_propnames (svn_svr_policies_t *policy,
-                              svn_string_t *repos, 
-                              svn_user_t *user, 
-                              unsigned long ver, 
-                              svn_string_t *path)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_dirent_propnames;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver, path);
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_dirent_propnames (repository, 
-                                           user->svn_username,
-                                           ver,
-                                           path));
-    }
-}
-
-
-/*========================================================================
-
-   WRITING.
-
-   These routines for writing deltas into the filesystem.
-   They return FALSE if authorization fails.
-
-*/
-
-
-
-/* Submit a skelta for approval; on success, returns a transaction
-   token. */
-
-svn_token_t 
-svn_svr_submit (svn_svr_policies_t *policy,
-                svn_string_t *repos, 
-                svn_user_t *user, 
-                svn_skelta_t *skelta)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = submit;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, NULL, NULL);
-  /* TODO: perhaps the "path" argument to svr__authorize should be
-     somehow read out of the skelta?  */
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_submit (repository,
-                             user->svn_username,
-                             skelta));
-    }
-}
- 
-
-
-/* Use the token to apply the delta to the filesystem.  
-   On success, returns the new version number of the repository. */
-
-unsigned long
-svn_svr_write (svn_svr_policies_t *policy,
-               svn_string_t *repos, 
-               svn_user_t *user, 
-               svn_delta_t *delta, 
-               svn_token_t token)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = write;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, NULL, NULL);
-  /* TODO: perhaps the "path" argument to svr__authorize should be
-     somehow read out of the delta?  
-
-     Actually, nobody can call this routine without a token, which
-     means they've already been authorized to submit().  Is there any
-     point in differentiating authorization between submit() and
-     write()?  */
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_write (repository,
-                            user->svn_username,
-                            delta,
-                            token));
-    }
-}
- 
-
-
-/* Abandon an approved, pending token */
-
-svn_boolean_t
-svn_svr_abandon (svn_svr_policies_t *policy,
-                 svn_string_t *repos, 
-                 svn_user_t *user, 
-                 svn_token_t token)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = abandon;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, NULL, NULL);
-  /* TODO: 
-     
-     What does it mean to have (or *not* have) permission to abandon an
-     approved token?  :)
-  */
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_abandon (repository,
-                              user->svn_username,
-                              token));
-    }  
-}
-
-
-/*========================================================================
-
-  DIFFERENCE QUERIES.
-
-  Report information on differences between objects in the repository.
-  They return FALSE if authorization fails.
-
-*/
-
-
-/* Return a delta that describes the difference between two trees in
-   the repository.  */
-
-svn_delta_t * 
-svn_svr_get_delta (svn_svr_policies_t *policy,
-                   svn_string_t *repos, 
-                   svn_user_t *user, 
-                   unsigned long ver1, 
-                   svn_string_t *path1, 
-                   unsigned long ver2, 
-                   svn_string_t *path2)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_delta;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver1, path1);
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver2, path2);
-  /* 
-     TODO: notice I'm calling the authorize routine twice, checking
-     *both* paths and versions.  Is this right?
-  */
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_delta (repository,
-                                user->svn_username,
-                                ver1, path1, ver2, path2));
-    }  
-}
- 
-
-
-/* Return a GNU diff describing the difference between two files */
-
-svn_diff_t * 
-svn_svr_get_diff (svn_svr_policies_t *policy,
-                  svn_string_t *repos, 
-                  svn_user_t *user, 
-                  unsigned long ver1, 
-                  svn_string_t *path1, 
-                  unsigned long ver2, 
-                  svn_string_t *path2)
-{
-  /* Convert "repos" into real pathname */
-  svn_string_t *repository = svr__expand_repos_name (policy, repos);
-
-  /* Check authorization, both server policy & auth hooks */
-  svn_boolean_t authorized = FALSE;
-  svn_svr_action_t my_action = get_diff;
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver1, path1);
-  authorized = svr__authorize (policy, repository, user, 
-                               my_action, ver2, path2);
-  /* 
-     TODO: notice I'm calling the authorize routine twice, checking
-     *both* paths and versions.  Is this right?
-  */
-
-  if (! authorized)
-    {
-      /* Generate CUSTOM Subversion errno: */
-      svn_handle_error (svn_create_error (SVN_ERR_NOT_AUTHORIZED,
-                                          SVN_NON_FATAL,
-                                          policy->pool));
-      return FALSE;
-    }
-  else
-    {
-      /* Do filesystem call with "canonical" username */
-      return (svn_fs_get_diff (repository,
-                               user->svn_username,
-                               ver1, path1, ver2, path2));
-    }  
-}
-
-
-/*========================================================================
-
-  STATUS / UPDATE
-
-  The status() and update() routines are the only ones which aren't
-  simple wrappers for the filesystem API.  They make repeated small
-  calls to svn_fs_cmp() and svn_fs_get_delta() respectively (see
-  <svn_fs.h>)
-
-  They return FALSE if authorization fails.
-
-*/
-
-
-
-/* Input:  a skelta describing working copy's current tree
-
-   Output: a skelta describing exactly how the tree is out of date 
-
-*/
-
-svn_skelta_t * 
-svn_svr_get_status (svn_svr_policies_t *policy,
-                    svn_string_t *repos, 
-                    svn_user_t *user, 
-                    svn_skelta_t *skelta)
-{
-  /* Can't do anything here till we have a working delta/skelta library.  
-
-     We would iterate over the skelta and call svn_fs_cmp() on each
-     file to check for up-to-date-ness.  Then we'd built a new skelta
-     to send back the results.  */
-}
- 
-
-/* Input: a skelta describing working copy's current tree.
-
-   Output: a delta which, when applied, will actually update working
-   copy's tree to latest version.
-*/
-
-svn_delta_t * 
-svn_svr_get_update (svn_svr_policies_t *policy,
-                    svn_string_t *repos, 
-                    svn_user_t *user, 
-                    svn_skelta_t *skelta)
-{
-  /* Can't do anything here till we have a working delta/skelta library.  
-
-     We would iterate over the skelta and call svn_fs_get_delta() on
-     each file.  Then we'd built a new composite delta to send back. 
-  */
-}
-
-
-
-
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
diff --git a/subversion/libsvn_svr/server_init.c b/subversion/libsvn_svr/server_init.c
deleted file mode 100644
index c95b4fe..0000000
--- a/subversion/libsvn_svr/server_init.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * server_init.c :   parse server configuration file
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-#include <svn_svr.h>
-#include <svn_parse.h>
-#include <apr_hash.h>
-#include <apr_dso.h>
-
-
-
-
-
-/*  svr__load_plugins :  NOT EXPORTED
-
-    Loops through list of plugins, loads each using APR's DSO
-    routines.  Each plugin ultimately registers (appends) itself into
-    the policy structure.
-*/
-
-void
-svr__load_plugins (ap_hash_t *plugins, svn_svr_policies_t *policy)
-{
-  ap_hash_index_t *hash_index;
-  void *key, *val;
-  size_t keylen;
-  
-
-  /* Initialize the APR DSO mechanism*/
-  ap_status_t result = ap_dso_init();
-
-  if (result != APR_SUCCESS)
-    {
-      svn_string_t *msg = 
-        svn_string_create 
-        ("svr__load_plugins(): fatal: can't ap_dso_init() ", pool);
-      svn_handle_error (svn_create_error (result, SVN_NON_FATAL, msg, pool));
-    }
-
-  /* Loop through the hash of plugins from configdata */
-
-  for (hash_index = ap_hash_first (plugins);    /* get first hash entry */
-       hash_index;                              /* NULL if out of entries */
-       hash_index = ap_hash_next (hash_index))  /* get next hash entry */
-    {
-      
-    }
-}
-
-
-
-
-
-/* 
-   svn_svr_init()
-
-   This routine does any necessary server setup, so it must be called first!
-
-   Input:  a hash of hashes, containing all server-policy data.
-    
-   Returns: a pointer to a server policy structure.
-
-   --> The hash of hashes can be created either manually, or by running
-       svn_parse (filename), e.g.
-        
-                my_filename = svn_string_create ("/etc/svn.conf");
-                my_policy = svn_svr_init (svr_parse (my_filename, p), p);
-
-   --> The returned policy structure is a global context that must be
-   passed to all server routines... don't lose it!
-
-*/
-
-svn_svr_policies_t *
-svn_svr_init (ap_hash_t *configdata, ap_pool_t *pool)
-{
-  ap_status_t result;
-
-  /* First, allocate a `policies' structure and all of its internal
-     lists */
-
-  svn_svr_policies_t *my_policies = 
-    (svn_svr_policies_t *) ap_palloc (pool, sizeof(svn_svr_policies_t *));
-
-  my_policies->repos_aliases = ap_make_hash (pool);
-  my_policies->global_restrictions = ap_make_hash (pool);
-  my_policies->plugins = ap_make_hash (pool);
-
-  /* A policy structure has its own private memory pool, too, for
-     miscellaneous useful things.  */
-
-  result = ap_create_pool (& (my_policies->pool), NULL);
-
-  if (result != APR_SUCCESS)
-    {
-      /* Can't create a private memory pool for the policy structure?
-         Then just use the one that was passed in instead.  */
-      svn_string_t *msg = 
-        svn_string_create 
-        ("svr_init(): warning: can't alloc pool for policy structure", pool);
-      svn_handle_error (svn_create_error (result, SVN_NON_FATAL, msg, pool));
-
-      my_policies->pool = pool;
-    }
-
-  /* Ben sez:  we need a debugging system here.  Let's get one quick. (TODO)
-     i.e.  
-            if (DEBUGLVL >= 2) {  printf...;  svn_uberhash_print(); }
-  */
-  svn_uberhash_print (configdata, stdout);
-
-  /* Now walk through our Uberhash, just as we do in svn_uberhash_print(). */
-  {
-    ap_hash_index_t *hash_index;
-    void *key, *val;
-    size_t keylen;
-
-    for (hash_index = ap_hash_first (configdata); /* get first hash entry */
-         hash_index;                              /* NULL if out of entries */
-         hash_index = ap_hash_next (hash_index))  /* get next hash entry */
-      {
-        /* Retrieve key and val from current hash entry */
-        ap_hash_this (hash_index, &key, &keylen, &val);
-
-        /* Figure out which `section' of svn.conf we're looking at */
-
-        if (svn_string_compare_2cstring ((svn_string_t *) key,
-                                         "repos_aliases"))
-          {
-            /* The "val" is a pointer to a hash full of repository
-               aliases, alrady as we want them.  Just store this value
-               in our policy structure! */
-
-            printf ("svr_init(): got repository aliases.\n");
-            my_policies->repos_aliases = (svn_proplist_t *) val;
-          }
-
-        else if (svn_string_compare_2cstring ((svn_string_t *) key,
-                                              "security"))
-          {
-            /* The "val" is a pointer to a hash full of security
-               commands; again, we just store a pointer to this hash
-               in our policy (the commands are interpreted elsewhere) */
-
-            printf ("svr_init(): got security restrictions.\n");
-            my_policies->global_restrictions = (svn_proplist_t *) val;
-          }
-
-        else if (svn_string_compare_2cstring ((svn_string_t *) key,
-                                              "plugins"))
-          {
-            /* The "val" is a pointer to a hash containing plugin
-               libraries to load up.  We'll definitely do that here
-               and now! */
-            
-            printf ("svr_init(): loading list of plugins...\n");
-            
-            svr__load_plugins ((ap_hash_t *) val, my_policies);
-
-          }
-
-        else
-          {
-            svn_string_t *msg = 
-              svn_string_create ("svr_init(): warning: unknown section: ", 
-                                 pool);
-            svn_string_appendstr (msg, (svn_string_t *) key, pool);
-            svn_handle_error (svn_create_error 
-                              (SVN_ERR_UNRECOGNIZED_SECTION, 
-                               SVN_NON_FATAL,
-                               msg, pool));            
-          }
-      }    /* for (hash_index...)  */
-       
-  } /* closing of Uberhash walk-through */
-  
-  return my_policies;
-}
-
-
-
-/* Add a plugin structure to a server policy structure.
-   Called by each plugin's init() routine. */
-
-svn_error_t *
-svn_svr_register_plugin (svn_svr_policies_t *policy,
-                         svn_svr_plugin_t *new_plugin)
-{
-  /* just need to push the new plugin pointer onto the policy's
-     array of plugin pointers.  */
-
-  /* Store in policy->plugins hashtable : 
-     KEY = new_plugin->name, val = new_plugin */
-
-  return 0;  /* success */
-}
-
-
-
-
-
-
-
-
-/* --------------------------------------------------------------
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
diff --git a/subversion/libsvn_svr/svn.conf b/subversion/libsvn_svr/svn.conf
deleted file mode 100644
index b2ca305..0000000
--- a/subversion/libsvn_svr/svn.conf
+++ /dev/null
@@ -1,74 +0,0 @@
-# (Gracious emacs, please be in -*- Shell-script -*- mode!)
-
-# Here is a sample `svn.conf'.  
-
-# This file lives outside of any repository (e.g. /etc/svn.conf), and
-# contains general server-side policies that are solely within the
-# jurisdiction of the Subversion server administrator -- *not* users.
-#
-# This file would be passed to svn_svr_init() when initializing the
-# Subversion Server.  
-#
-# --------------------------------------------------------------------
-
-# Feature 1:  Repository aliases
-
-# It's a drag to remember a full pathname to a repository.  Let's
-# allow aliases.  In fact, let's set a client-side convention of
-# *always* using repository aliases, so that server admins can move
-# repositories around on disk without anyone knowing!
-
-# KEY = full path : VAL = list of aliases
-
-[repos_aliases]
-/usr/local/svn/tigris : tigris, tigr
-/home/sussman/svnrepos : svnben, bensvn, fweebop
-
-# ----------------------------------------------
-
-# Feature 2:  Loadable server-side ``plug-ins''
-
-# KEY = plugin to load : VAL = name of it's init routine 
-
-[plugins]
-/usr/local/lib/svn/plugin_security.so : plugin_security_init
-
-# Someday we'll also have {annotate, grep, guile, smartmerge, ...}
-
-
-# ----------------------------------------------
-
-# Feature 3:  High-Level Access Restrictions
-
-# The Subversion filesystem already enforces its own ACLs.  However,
-# the server administrator should still have broad, overriding power
-# over repositories.  Rather than modify particular ACLs in a
-# filesystem, the server can enforce general access restrictions
-# *before* passing calls to the filesystem.
-
-# KEY = command name : VAL = arguments to command
-
-[security]
-
-# The server can send annoying MOTDs.
-
-motd : "Welcome to our SVN repository!"
-
-# Temporarily take an entire repository "off-line" (for backup,
-# perhaps) without shutting down access to other repositories.
-
-offline : tigris
-
-# Temporarily block access from a particular user, authentication
-# method, or domain.  This is just dumb regexp matching on the fields
-# in the `svn_user_t' object that the network layer hands to the
-# server library.
-
-# anonymous user can't access tigris repos
-block : anonymous/*/*, tigris
-
-# microsoft folks can't access this repos
-block : */*/microsoft*, svnben
-
-# no SMTP access allowed to any repository
-block : */smtp/*, *
diff --git a/subversion/libsvn_svr/svrtest/Makefile b/subversion/libsvn_svr/svrtest/Makefile
deleted file mode 100644
index 59e2701..0000000
--- a/subversion/libsvn_svr/svrtest/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# Quick Hack Makefile
-
-SVN_INCLUDE = ../../include
-SVN_STRING_LIB = ../../libsvn_string
-
-APR_INCLUDE = ../../../apr/include
-APR_LIB = ../../../apr
-
-
-all: svrtest
-
-clean:
-	rm *.o *~ svrtest
-
-
-server_init.o: ../server_init.c ../../svn_subr/svn_parse.h
-	cc -c ../server_init.c -g -Wall \
-	                     -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I../../svn_subr
-
-svrtest: svrtest.c ../server_init.c server_init.o
-	cc -o svrtest svrtest.c ../../svn_subr/parsetest/svn_error.o \
-	                        ../../svn_subr/parsetest/svn_parse.o \
-                                server_init.o \
-                                    -g -Wall -pthread \
-                                    -I$(SVN_INCLUDE) -I$(APR_INCLUDE) \
-                                    -I../../svn_subr \
-                                    -L$(APR_LIB) -L$(SVN_STRING_LIB) \
-                                    -lsvn_string -lapr
diff --git a/subversion/libsvn_svr/svrtest/svrtest.c b/subversion/libsvn_svr/svrtest/svrtest.c
deleted file mode 100644
index 519d337..0000000
--- a/subversion/libsvn_svr/svrtest/svrtest.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/* Testing basic Subversion server stuff. */
-
-#include <svn_svr.h>
-#include <svn_parse.h>
-#include <stdio.h>
-
-int
-main ()
-{
-  ap_hash_t *configdata;
-  ap_pool_t *pool;
-  svn_svr_policies_t *policy;
-
-  /* Initialize APR (Apache pools) */
-  if (ap_initialize () != APR_SUCCESS)
-    {
-      printf ("ap_initialize() failed.\n");
-      exit (1);
-    }
-  if (ap_create_pool (&pool, NULL) != APR_SUCCESS)
-    {
-      printf ("ap_create_pool() failed.\n");
-      exit (1);
-    }
-
-
-  /* Parse the file "./testpolicy.conf" */
-
-  configdata = svn_parse (svn_string_create ("testpolicy.conf", pool), pool);
-
-
-  /* Print out our configdata uber-hash 
-     svn_uberhash_print (configdata, stdout); */
-
-
-  /* If we were an application using libsvn_svr, we would now pass
-     this uber-hash to svn_init() to get a `svn_policies_t' structure.
-     We would then use this structure for all our wrappered filesystem
-     calls.  */
-
-  policy= svn_svr_init (configdata, pool);
-
-
-
-  /* Clean up our memory pool and apr */
-  ap_destroy_pool (pool);
-  ap_terminate ();
-
-  printf ("Test complete, exiting cleanly.\n\n");
-  return 0;
-}
-
-
-
-
diff --git a/subversion/libsvn_svr/svrtest/testpolicy.conf b/subversion/libsvn_svr/svrtest/testpolicy.conf
deleted file mode 100644
index faf986f..0000000
--- a/subversion/libsvn_svr/svrtest/testpolicy.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-#  (I sure would like -*- Shell-script -*- mode. )
-
-#  Three main server policy sections to test.
-
-[repos_aliases]
-
-/usr/local/tigris : tigris
-/var/spool/mail : mail_place
-
-
-[plugins]
-
-/pub/foo.so : initialize_foo
-
-
-
-[imaginary_section]
-
-a : b
-c : d
-e : f
-
-
-[security]
-
-block : */smtp/*, tigris
-motd : Welcome to happy apple land!
diff --git a/subversion/libsvn_svr/tests/Makefile b/subversion/libsvn_svr/tests/Makefile
deleted file mode 100644
index 59e2701..0000000
--- a/subversion/libsvn_svr/tests/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# Quick Hack Makefile
-
-SVN_INCLUDE = ../../include
-SVN_STRING_LIB = ../../libsvn_string
-
-APR_INCLUDE = ../../../apr/include
-APR_LIB = ../../../apr
-
-
-all: svrtest
-
-clean:
-	rm *.o *~ svrtest
-
-
-server_init.o: ../server_init.c ../../svn_subr/svn_parse.h
-	cc -c ../server_init.c -g -Wall \
-	                     -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I../../svn_subr
-
-svrtest: svrtest.c ../server_init.c server_init.o
-	cc -o svrtest svrtest.c ../../svn_subr/parsetest/svn_error.o \
-	                        ../../svn_subr/parsetest/svn_parse.o \
-                                server_init.o \
-                                    -g -Wall -pthread \
-                                    -I$(SVN_INCLUDE) -I$(APR_INCLUDE) \
-                                    -I../../svn_subr \
-                                    -L$(APR_LIB) -L$(SVN_STRING_LIB) \
-                                    -lsvn_string -lapr
diff --git a/subversion/libsvn_svr/tests/svrtest.c b/subversion/libsvn_svr/tests/svrtest.c
deleted file mode 100644
index 519d337..0000000
--- a/subversion/libsvn_svr/tests/svrtest.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/* Testing basic Subversion server stuff. */
-
-#include <svn_svr.h>
-#include <svn_parse.h>
-#include <stdio.h>
-
-int
-main ()
-{
-  ap_hash_t *configdata;
-  ap_pool_t *pool;
-  svn_svr_policies_t *policy;
-
-  /* Initialize APR (Apache pools) */
-  if (ap_initialize () != APR_SUCCESS)
-    {
-      printf ("ap_initialize() failed.\n");
-      exit (1);
-    }
-  if (ap_create_pool (&pool, NULL) != APR_SUCCESS)
-    {
-      printf ("ap_create_pool() failed.\n");
-      exit (1);
-    }
-
-
-  /* Parse the file "./testpolicy.conf" */
-
-  configdata = svn_parse (svn_string_create ("testpolicy.conf", pool), pool);
-
-
-  /* Print out our configdata uber-hash 
-     svn_uberhash_print (configdata, stdout); */
-
-
-  /* If we were an application using libsvn_svr, we would now pass
-     this uber-hash to svn_init() to get a `svn_policies_t' structure.
-     We would then use this structure for all our wrappered filesystem
-     calls.  */
-
-  policy= svn_svr_init (configdata, pool);
-
-
-
-  /* Clean up our memory pool and apr */
-  ap_destroy_pool (pool);
-  ap_terminate ();
-
-  printf ("Test complete, exiting cleanly.\n\n");
-  return 0;
-}
-
-
-
-
diff --git a/subversion/libsvn_svr/tests/testpolicy.conf b/subversion/libsvn_svr/tests/testpolicy.conf
deleted file mode 100644
index faf986f..0000000
--- a/subversion/libsvn_svr/tests/testpolicy.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-#  (I sure would like -*- Shell-script -*- mode. )
-
-#  Three main server policy sections to test.
-
-[repos_aliases]
-
-/usr/local/tigris : tigris
-/var/spool/mail : mail_place
-
-
-[plugins]
-
-/pub/foo.so : initialize_foo
-
-
-
-[imaginary_section]
-
-a : b
-c : d
-e : f
-
-
-[security]
-
-block : */smtp/*, tigris
-motd : Welcome to happy apple land!
diff --git a/subversion/libsvn_vcdiff/Makefile b/subversion/libsvn_vcdiff/Makefile
deleted file mode 100644
index 0126054..0000000
--- a/subversion/libsvn_vcdiff/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# todo: eventually this will be replaced with Makefile.in.
-
-default: vdelta
-
-# Look, I just wanna compile my test code *now*... We'll clean up later.
-vdelta: hash.c vdelta.c
-	gcc -c ../svn_subr/alloc.c
-	gcc -c hash.c
-	gcc -c vdelta.c
-	gcc -o vdelta vdelta.o hash.o alloc.o
-
-check: test
-
-test: 
-	@echo "First testing empty-source delta (compression):"
-	@echo "Text:"
-	@cat tests/target0.txt
-	@echo ""
-	@echo "Delta:"
-	./vdelta tests/target0.txt
-	@echo ""
-	@for num in 1 2 3 4 5; do                                     \
-          echo "Test #$${num}:";                                      \
-          echo "Texts:";                                              \
-          cat tests/source.txt;                                       \
-          echo "";                                                    \
-          cat tests/target$${num}.txt;                                \
-          echo "";                                                    \
-          echo "";                                                    \
-          echo "Delta:";                                              \
-          ./vdelta tests/source.txt tests/target$${num}.txt;          \
-	  echo "";                                                    \
-	done
-
-clean:
-	rm -f *~ *.o vdelta
diff --git a/subversion/libsvn_vcdiff/README b/subversion/libsvn_vcdiff/README
deleted file mode 100644
index 662fe7a..0000000
--- a/subversion/libsvn_vcdiff/README
+++ /dev/null
@@ -1,47 +0,0 @@
-This code is for creating and interpreting `vcdiff'.  
-
-The full specification of the vcdiff format is in the draft RFC
-(draft-korn-vcdiff-01.txt), and some discussion of how to *generate*
-diffs may be found there as well.
-
-This README provides an informal summary of how we implement vcdiff,
-in three sections:
-
-   1. The vcdiff format and how to use it.
-   2. Generating vcdiffs.
-
-
-
-1. The vcdiff format and how to use it.
-=======================================
-
- *** holy cow i'm at home reading the paper.  -kff ***
-
-
-
-
-
-
-
-
-
-
-
-A vdiff consists of a 4 byte header, followed by a series of
-"sections".  Each section is 
-
-   A 4 byte header -- the letters "VCD" with their eighth bits set,
-   then a format version number:
-
-      byte 1         byte 2           byte 3        byte 4
-      ----------     ----------       ----------    -------------------
-      0xd6           0xc3             0xc4          0x0
-      `V' + 1<<7     `C' + 1<<7       `D' + 1<<7    Version (currently 0)
-
-   
-
-
-
-2. Generating vcdiffs.
-======================
-
diff --git a/subversion/libsvn_vcdiff/draft-korn-vcdiff-01.txt b/subversion/libsvn_vcdiff/draft-korn-vcdiff-01.txt
deleted file mode 100644
index ad5116b..0000000
--- a/subversion/libsvn_vcdiff/draft-korn-vcdiff-01.txt
+++ /dev/null
@@ -1,1587 +0,0 @@
-[ This paper makes reference to the "Sfio" library.  See
-  http://www.research.att.com/sw/tools/sfio/ for more.  -kff]
-
-
-Network Services Research Lab                  David Korn  and  Kiem-Phong Vo
-                                                                    AT&T Labs
-                                               Submission:     March 09, 2000
-                                               Expiration: September 09, 2000
-
-
-        The VCDIFF Generic Differencing and Compression Data Format
-                       <draft-korn-vcdiff-01.txt>
-
-
-Status of this Memo
-
-    This document is an Internet-Draft and is in full conformance
-    with all provisions of Section 10 of RFC2026.
-
-    Internet-Drafts are working documents of the Internet Engineering
-    Task Force (IETF), its areas, and its working groups.  Note that
-    other groups may also distribute working documents as
-    Internet-Drafts.
-
-    Internet-Drafts are draft documents valid for a maximum of six
-    months and may be updated, replaced, or obsoleted by other
-    documents at any time.  It is inappropriate to use Internet-
-    Drafts as reference material or to cite them other than as
-    "work in progress."
-
-    The list of current Internet-Drafts can be accessed at
-    http://www.ietf.org/ietf/1id-abstracts.txt
-
-    The list of Internet-Draft Shadow Directories can be accessed at
-    http://www.ietf.org/shadow.html.
-
-
-Abstract
-
-    This memo describes a general and efficient data format suitable
-    for encoding compressed and/or differencing data so that they can
-    be easily transported among computers.
-
-Table of Contents:
-
-    1.  Executive Summary ............................................  1
-    2.  Algorithm Conventions ........................................  3
-    3.  Delta Instructions ...........................................  3
-    4.  Vcdiff Encoding Format .......................................  4
-    5.  Instruction Code Tables ...................................... 13
-    6.  Compression and Differencing Algorithms ...................... 18
-    7.  Summary ...................................................... 23
-        ACKNOWLEDGEMENTS ............................................. 23
-        REFERENCES ................................................... 23
-        AUTHOR'S ADDRESS ............................................. 24
-
-
-
-1.  Executive Summary
-
-    Compression and differencing techniques can greatly improve storage
-    and transmission of files and file versions.  Since files are often
-    transported across machines with distinct architectures and performance
-    characteristics, such data should be encoded in a form that is portable
-    and can be decoded with little or no knowledge of the encoders.
-    This document describes Vcdiff, a new compact portable encoding format
-    that is independent of encoding algorithms and also efficient to decode.
-
-    Data differencing is the process of computing a compact and invertible
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-    encoding of a "target file" given a "source file".  Data compression
-    is similar but without the use of source data.  The UNIX utilities diff,
-    compress, and gzip are well-known examples of data differencing and
-    compression tools.  For data differencing, the computed encoding is
-    called a "delta file", and, for data compression, it is called
-    a "compressed file".  Delta and compressed files are good for storage
-    and transmission because they are often smaller than the originals.
-
-    Data differencing and data compression are traditionally treated
-    as distinct types of data processing.  However, compression can be
-    thought of as a special case of differencing in which the source
-    data is empty. This blending of differencing and compression was first
-    introduced in the Vdelta technique [1] by Korn and Vo.  The basic idea
-    is to unify the string parsing scheme used in the Lempel-Ziv'77 style
-    compressors [2], and the block-move technique of Tichy [3].  Loosely
-    speaking, this works as follows:
-
-        a. Concatenate source and target data.
-        b. Parse the data from left to right just like LZ'77 but
-	   make sure that a parsed segment starts target data.
-        c. Start to output when reaching target data.
-
-    Parsing is based on string matching algorithms such as suffix trees [4]
-    or hashing with different time and space performance characteristics.
-    Vdelta uses a new string matching algorithm that performs competitive
-    to other techniques [5].  However, even with a memory-efficient and fast
-    string matching algorithm, the computing resource requirements can be
-    prohibitive for processing large files. The standard way to deal with
-    this is to partition input files into "windows" to be processed
-    separately. Here, except for some unpublished work by Vo, little has
-    been done on designing effective windowing schemes.  Current techniques,
-    including Vdelta, simply use windows of the same size with corresponding
-    addresses across source and target files.
-
-    String matching and windowing algorithms have large influence on the
-    compression rate of delta and compressed files. However, it is desirable
-    to have a portable encoding format that is independent of such algorithms.
-    This enables construction of client-server applications in which a server
-    may serve clients with unknown computing characteristics.  Unfortunately,
-    all current differencing and compressing tools, including Vdelta, fall
-    short in this resspect. Their storage formats are closely intertwined
-    with the implemented algorithms.
-
-    The encoding format Vcdiff proposed here addresses the above issues.
-    Vcdiff achieves the below characteristics:
-
-	Output compactness:
-            The basic encoding format compactly represents compressed or delta
-	    files. In specific cases, applications can further extend it with
-	    "secondary encoders" (e.g., a Huffman or arithmetic encoder) to
-	    achieve more compression.
-	Data portability:
-	    The basic encoding format is free from byte order and word size
-	    issues for integer representations.
-    	Algorithm genericity:
-	    The decoding algorithm for the basic encoding format is independent
-	    from string matching and windowing algorithms.
-    	Decoding efficiency:
-	    The decoding algorithm for the basic encoding format runs in time
-	    proportional to the size of the target file and uses space
-
-                                   -2-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-	    proportional to the maximal window size.
-
-    The Vcdiff data format and the algorithms for decoding data shall be
-    described next.  Since Vcdiff treats compression as a special case of
-    differencing, we shall use the term "delta file" to indicate the
-    compressed output for both cases.
-
-
-2. Algorithm Conventions
-
-    Algorithms to encode and decode the Vcdiff data format will be presented
-    in the ANSI-C language. To ease the presentation, we shall generally omit
-    error checking. The below conventions will be observed:
-    
-	a. Tokens with all upper cases letters will be C macros.
-	b. Variables with capitalized names are global.
-        c. Code fragments will be presented with line numbers to be used
-	   in the subsequent COMMENTS sections.
-
-    Data will be encoded in byte units.  For portability, control data
-    generated by Vcdiff shall be limited to the lower eight bits of a byte
-    even on machines with larger bytes. The bits in a byte are named from
-    right to left so that the first bit has the lowest value, 1<<0 or 1,
-    and the eighth bit has value 1<<7 or 128.
-
-    To facilitate the algorithms, we shall assume a few types and functions
-    for I/O on streams.  To be definite, we shall use interfaces similar to
-    that provided in the Sfio library. Below are descriptions of some of
-    these types and functions. Others can be found in reference [6].
-
-	uchar_t:
-	    This is the type "unsigned char".
-
-	int_t:
-	    This is the largest integer type on the platform in use.
-
-	Sfio_t:
-	    This is the type of a stream.
-
-	Sfio_t* sfstropen(uchar_t* buf, int n):
-	    This is not an Sfio function but it can be easily implemented
-	    on top of the Sfio primitive sfnew(). sfstropen() creates a stream
-	    from a given buffer with a given size. We shall assume that such
-	    a stream is both readable and writable. As with Sfio, a write stream
-	    will extend the buffer as necessary to accomodate output data.
-
-
-3.  Delta Instructions
-
-    A target file is partitioned into non-overlapping sections or windows
-    to be processed separately. A target window T of length n may be
-    compared against some source data segment S of length m.  Such a source
-    data segment may come from some earlier part of the target file or
-    it may come from the source file, if there is one. It is assumed that
-    there is sufficient memory so that both T and S can be processed
-    in main memory.
-
-    For string processing, we treat S and T as substrings of a superstring U
-    formed by concatenating T and S like this:
-
-
-                                   -3-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-        s[0]s[1]...s[m-1]t[0]t[1]...t[n-1]
-
-    The index of a byte in S or T is referred to by its location in U.
-    For example, T[i] is referred to as U[m+i].
-
-    The instructions to encode and direct the reconstruction of a target
-    window are called delta instructions.  There are three types:
-
-	ADD:
-            This instruction has two arguments, a size s and a sequence of
-	    s bytes to be copied to reconstruct the target window.
-	COPY:
-            This instruction has two arguments, a size s and an address p
-	    in the string U. The arguments specify the substring of U that
-	    must be copied. We shall assert that such a substring must be
-	    entirely contained in either S or T.
-	RUN:
-            This instruction has two arguments, a size s and a byte c that
-	    will be repeated s times.
-
-
-    Below are example source and target strings and the delta instructions
-    that encode the target string in terms of the source string.
-
-        a b c d e f g h i j k l m n o p
-        a b c d w x y z e f g h e f g h e f g h e f g h z z z z
-
-        COPY  4, 0
-        ADD   4, w x y z
-        COPY  4, 4
-        COPY 12, 24
-	RUN   4, z
-
-    Note that the third COPY instruction copies data from T itself since
-    address 24 is position 8 in T.  In addition, parts of the data to be
-    copied by this instruction will be reconstructed during its execution.
-    This allows efficient encoding of periodic sequences, i.e., sequences
-    with regularly repeated subsequences. The RUN instruction is a compact
-    way to encode a sequence repeating the same byte even though such
-    a sequence can be thought of as a periodic sequence with period 1.
-
-
-4.  Vcdiff Encoding Format
-
-    A large target file is partitioned into non-overlapping sections called
-    "target windows". In practice, window sizes should be chosen so that
-    each window can be completely processed in memory during both encoding
-    and decoding.  A target window may be compared against some source data
-    segment or none. In the compression case, such a source segment would
-    be from some earlier part of the target file while, for differencing,
-    it may also be from the source file.
-
-
-
-
-4.1 Delta File Layout
-
-    A Vcdiff delta file is organized into sections as follows:
-
-                4-byte header
-
-                                   -4-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-                Section 1
-                Section 2
-		...
-
-    	Header:
-	    The header of a delta file consists of 4 bytes to identify it as
-	    a Vcdiff delta file. The first three bytes are: 0xd6, 0xc3, 0xc4,
-	    i.e., the ASCII letters 'V', 'C' and 'D' or-ed with the eighth bit.
-	    The fourth byte indicates a version number which is currently 0.
-
-    	Sections:
-	    Following the 4-byte header are a number of sections. Each section
-	    encodes either an instruction code table (Section 5) or a window.
-	    Each section starts with an indicator byte. If the 8th bit of this
-	    byte is on, the section encodes an instruction table; otherwise,
-	    it encodes a window. The remaining bits of this byte are used to
-	    encode other information as necessary.
-
-
-4.1.1 The Format of a Window
-
-    Each window is organized as below. Note that items bracketed are present
-    only when certain corresponding bits in the indicator byte are on.
-
-		Indicator byte
-		Length of target window
-		Length of instruction dataset
-		Length of raw dataset
-		[Index of code table]
-		[Secondary instruction compressor]
-		[Length of compressed instruction dataset]
-		[Secondary data compressor]
-		[Length of compressed raw dataset]
-		[Source segment size]
-		[Source segment position]
-		Instruction dataset
-		Raw dataset
-
-    	Indicator byte:
-	    The bits of the indicator byte for a window are as follows:
-
-		0  T  I  D  WT  WS  X  X
-
-	    0:	This is the 0-bit indicating that this section is a window
-		of data to be decoded.
-
-	    T:	This bit, if on, indicates that a non-default instruction
-		code table should be used for decoding. In this case, the
-		item [Index of code table] is a single byte indicating the
-		index of this code table.
-
-	    I:	This bit, if on, indicates that the instruction dataset
-		has been compressed with a secondary compressor. In this
-		case, the item [Secondary instruction compressor] is a single
-		byte indicating the secondary compressor while the item
-		[Length of compressed instruction dataset] has the length
-		of the compressed instruction dataset encoded as a
-		variable-sized integer.
-
-	    D:	This bit is similar to the I-bit but it is for the raw
-
-                                   -5-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-		dataset.
-
-	    WT:	This bit, if on, indicates that a source data segment was
-		used to compare the target window with. Further, this source
-		segment is from an earlier part of the target file. In this
-		case, the size and position of the source segment are given
-		in [Source segment size] and [Source segment position].
-		Both of these items are encoded as variable-sized integers.
-
-	    WS: This bit is similar to WT but, if on, indicates that the
-		source data segment is from the source file.
-
-	    X:	These bits are currently unused.
-
-    	Length of target window:
-	    This is a variable-sized integer indicating the size of the
-	    target window.
-
-	Lengths of instruction and raw datasets:
-	    The delta instructions ADD and RUN have associated raw data
-	    (unmatched bytes for ADD and the repeating byte for RUN).
-	    The Vcdiff encoding format maintains two separate datasets,
-	    one for the raw data and one for the instructions. The lengths
-	    of the "instruction dataset" and the "raw dataset" are stored
-	    respectively as two variable-sized integers.
-
-    	Instruction dataset:
-	    This is the set of bytes that define the delta instructions.
-	    If I was 1, the dataset has been encoded by the indicated
-	    secondary encoder.
-
-        Raw dataset:
-	    This is the set of raw data accompanying the ADD and RUN
-	    instructions.  If D was 1, the dataset has been encoded
-	    by the indicated secondary encoder.
-
-
-
-4.1.2 Processing a Delta File
-
-    Below is the basic algorithm to process a delta file:
-
-     1. sfgetc(Delta);
-     2. sfgetc(Delta);
-     3. sfgetc(Delta);
-     4. sfgetc(Delta);
-
-     6. for(;;)
-     7. {   if((indi = sfgetc(Delta)) < 0)
-     8.          break;
-     9.     if((indi & (1<<7)) != 0)
-    10.          code_define();
-    11.     else
-    12.     {    n_tar = sfgetu(Delta);
-    13.          tar = malloc(n_tar);
-    14.          win_inflate(indi, tar, n_tar, NULL, 0);
-    15.          sfwrite(Target, tar, n_tar);
-    16.          free(tar);
-    17.     }
-    18. }
-
-                                   -6-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-
-COMMENTS.
-
-   1-4: These lines read the 4-byte header.
-   7-8: These lines read the indicator byte and terminate if reached end-of-file.
-  9-10: These lines define a new code table.
- 12-16: These lines decode the target window and output it to the target file.
-
-
-    Next is the function to recompute a target window:
-
-     1. win_inflate(int indi, uchar_t* tar, int n_tar, uchar_t* src, int n_src)
-     2. {   int      n_inst, n_data;
-     3.     uchar_t  *inst, *data;
-     4.     int      s_inst, s_data;
-     5.     int      p_src, i_code, f_inst, f_data;
-     6.     Sfio_t   *sf, *instf, *dataf;
-
-     7.     n_inst = sfgetu(Delta);
-     8.     n_data = sfgetu(Delta);
-
-     9.     if(indi & (1<<6))
-    10.          i_code = sfgetc(Delta);
-
-    11.     if(indi & (1<<5))
-    12.     {    f_inst = sfgetc(Delta);
-    13.          s_inst = sfgetu(Delta);
-    14.     }
-
-    15.     if(indi & (1<<4))
-    16.     {    f_data = sfgetc(Delta);
-    17.          s_data = sfgetu(Delta);
-    18.     }
-
-    19.     if(indi & ((1<<3)|(1<<2)) )
-    20.     {    n_src = sfgetu(Delta);
-    21.          p_src = sfgetu(Delta);
-    22.     }
-
-    23.     inst = malloc(n_inst);
-    24.     if(indi & (1<<5))
-    25.     {    sfread(Delta, inst, s_inst);
-    26.          decompress(inst, n_inst, s_inst, f_inst);
-    27.     }
-    28.     else sfread(Delta, inst, n_inst);
-    29.     instf = sfstropen(inst, n_inst);
-
-    30.     data = malloc(n_data);
-    31.     if(indi & (1<<4))
-    32.     {    sfread(Delta, data, s_data);
-    33.          decompress(data, n_data, s_data, f_data);
-    34.     }
-    35.     else sfread(Delta, data, n_data);
-    36.     dataf = sfstropen(data, n_data);
-
-    37.     if(indi & ((1<<3)|(1<<2)) )
-    38.     {    src = malloc(n_src);
-    39.          sf = (indi & (1<<3)) ? Target : Source;
-    40.          sfseek(sf, p_src, SEEK_SET);
-    41.          sfread(sf, src, n_src);
-
-                                   -7-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-    42.     }
-
-    43.     win_decode(tar, n_tar, src, n_src, i_code, instf, dataf);
-    44.     sfclose(instf); sfclose(dataf); free(inst); free(data);
-    45. }
-
-COMMENTS.
-
-   7-8: These lines read the sizes of the instruction and raw datasets.
-  9-10: These lines read the index of the instruction code table if needed.
- 11-14: These lines read the secondary instruction compressor indicator and
-	the size of the compressed instruction dataset.
- 15-18: These lines read the secondary data compressor indicator and the
-	size of the compressed raw dataset.
- 19-22: These lines read the size and position of the source data segment.
-	Note that win_inflate() may also be called to decode an instruction
-	code table (Section 5). In that case, "src" will be given and
-	the WT and WS bits should be zero.
- 23-36: These lines read the instruction and raw datasets.  If these were
-	compressed, decompress() is called to reconstruct them. The function
-	decompress() uses the method index f_inst or f_data to decide on
-	the proper operations. Note that these datasets are then made into
-	streams via the sfstropen() calls to ease data accessing later.
- 37-42: These lines construct the source data segment if any.
-    43: This line calls win_decode() (Section 4.4) to decode the delta
-	instructions.
-    44: This line frees resources allocated for processing.
-
-
-4.2 Integer Encoding Formats
-
-    Vcdiff compactly encodes integer values using the same formats introduced
-    in the Sfio library [6]. The code presented below is not quite correct with
-    respect to type handling as in Sfio but they show the ideas.
-
-
-4.2.1 Encoding Integers Using a Variable-Sized Format
-
-    The variable-sized encoding of integers follows the same algorithm
-    used in the Sfio library. This treats an integer as a number in
-    base 128 so that each digit can be coded in one byte. The eighth bit
-    of such a byte is the continuation bit. It is 1 if there are more
-    digits to come or 0 if it is the last digit.
-
-                        +---------------------+
-                        | 11100000 | 00111001 |
-                        +---------------------+
-			  byte 0       byte 1 
-
-				Table 1
-
-    Table 1 shows the variable sized encoding of 12345.  The bytes in
-    the encoding are presented in binary to make clear the use of
-    the continuation bit. Omitting the continuation bit, the encoding
-    of 12345 uses two bytes with values 96 and 57.
-
-    Below are the algorithms:
-
-     1. int sfputu(Sfio_t* f, int_t v)
-     2. {   uchar_t c[2*sizeof(int_t)], *s;
-
-                                   -8-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-
-     3.     s = &c[sizeof(c)-1];
-     4.     *s = v & 127;
-     5.     while((v >>= 7) != 0)
-     6.          *--s = (v & 127) | (1<<7);
-
-     7.     sfwrite(f, s, (&c[sizeof(c)]) - s);
-     8.     return  &c[sizeof(c)]-s;
-     9. }
-
-    10. int_t sfgetu(Sfio_t* f)
-    11. {   int_t b, v;
-
-    12.     for(v = 0;; )
-    13.     {    b = sfgetc(f);
-    14.          v = (v << 7) | (b & 127);
-    15.          if(!(b & 128) )
-    16.               return v;
-    17.     }
-    18. }
-
-COMMENTS.
-
-     1: This line declares the formal arguments to sfputu(), a stream f
-	to store the encoding and the value v to be encoded.
-     2: This line declares an array large enough to store the encoding.
-   4-6: These lines extract digits in base 128 and store them in
-	the array. Note that the right-most digit is extracted first and
-	does not carry a continuation bit.
-   7-8: These lines write the encoding out to the given stream f and
-	return the length of that encoding.
- 10-18: These lines define the decoding algorithm.
-
-
-4.2.2 Encoding Integers with a Given Range
-
-    The address of a COPY instruction is an unsigned integer with a known
-    range, i.e., it cannot be larger than the current position.  Such a
-    value can be encoded more compactly than as done in the Sfio scheme.
-    For example, if a value is in the range 0-255, it can be encoded with
-    a single byte. On the other hand, if the same value happens to be larger
-    than 127, it would require two bytes to encode in the variable-sized
-    scheme. Below are the algorithms to encode integers with known ranges:
-
-
-     1. int sfputm(Sfio_t* f, int_t v, int_t max)
-     2. {   uchar_t c[sizeof(int_t)], *s;
-     3.     s = &c[sizeof(c)-1];
-     4.     *s = v & 255;
-     5.     while((max >>= 8) != 0)
-     6.     {   v >>= 8;
-     7.         *--s = v & 255;
-     8.     }
-     9.     sfwrite(f, s, (&c[sizeof(c)]) - s);
-    10.     return (&c[sizeof(c)]) - s;
-    11. }
-
-    12. int_t sfgetm(Sfio_t* f, int_t max)
-    13. {   int_t v;
-    14.     for(v = 0;;)
-
-                                   -9-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-    15.     {   v = (v << 8) | sfgetc(f);
-    16.         if((max >>= 8) == 0)
-    17.             return v;
-    18.     }
-    19. }
-
-
-4.3 Delta Instruction Coding Format
-
-    Delta instructions are encoded as control bytes with associated data.
-    Each control byte is an index into an instruction code table of 256
-    entries. Each code entry is of the type Vcdcode_t as defined below:
-
-     1. typedef struct _vcdinst_s
-     2. {   unsigned char type;  /* instruction type         */
-     3.     unsigned char size;  /* >0 if size is coded here */
-     4.     unsigned char mode;  /* address mode for COPYs   */
-     5. } Vcdinst_t;
-
-     6. typedef struct _vcdcode_s
-     7. {   Vcdinst_t     inst1; /* first instruction        */
-     8.     Vcdinst_t     inst2; /* second instruction       */
-     9. } Vcdcode_t;
-
-    Thus, each control byte identifies up to two instructions.  Below are
-    the different instruction types:
-
-     1. #define VCD_NOOP  0      /* not an instruction       */
-     2. #define VCD_ADD   1      /* an ADD instruction       */
-     3. #define VCD_RUN   2      /* a  RUN instruction       */
-     4. #define VCD_COPY  3      /* a COPY instruction       */
-
-
-    Each instruction has a size n of the data involved.  If the field
-    Vcdinst_t.size is non-zero, it is the value for n.  Otherwise,
-    n is encoded next in the instruction dataset as a variable-sized
-    integer.  If the instruction is a COPY, the copy address will follow
-    next in the instruction dataset. Its encoding depends on some
-    addressing scheme to be discussed next.
-
-    A COPY address can be encoded in different ways. The field
-    Vcdinst_t.mode has values in the range [0-7] and defines the below
-    address encoding modes:
-
-     1. #define VCD_SELF  0      /* coded as itself          */
-     2. #define VCD_HERE  1      /* from current position    */
-     3. #define VCD_SAME  2      /* index into "same" cache  */
-     4. #define VCD_NEAR  3      /* index into "near" cache  */
-
-    VCD_SAME and VCD_NEAR indicate two address caching methods designed
-    to take advantage of the heuristic that successive copying addresses
-    tend to be the same or fairly close to one another.  Note that as
-    discussed below, there are 4 VCD_NEAR addresses corresponding to
-    Vcdinst_t.mode values in the range [VCD_NEAR,VCD_NEAR+3].
-
-    Let A be the COPY address and H the current location in the target
-    data. Below are the encodings:
-
-    VCD_SELF: A is the next integer in the instruction dataset that is
-	encoded in the range [0-H]. 
-
-                                   -10-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
- 
-    VCD_HERE: Let B be the next byte in the instruction dataset.
-	Then A is H-B. That is, the distance from A to H, H-A, must have
-	been in the range [0-255].
-
-    VCD_SAME: The "same" cache keeps 256 addresses. Let B be the next byte
-	in the instruction dataset. Then A is same[B].
-
-    VCD_NEAR: The "near" cache keeps 4 addresses.  Let B be the next byte
-	in the instruction dataset and t be Vcdinst_t.mode-VCD_NEAR.
-	Then, A is near[t]+B-127.
-	
-
-    Below are the algorithms to maintain address caches.
-
-     1. typedef struct _cache_s
-     2. {   int   n;
-     3.     int   near[4];
-     4.     int   same[256];
-     5. } Cache_t;
-
-     6. cache_init(Cache_t* ka)
-     7. {    int i;
-     8.      for(i = 0; i < 4; ++i)
-     9.          ka->near[i] = 0;
-    10.      ka->n = 0;
-    11.      for(i = 0; i < 256; ++i)
-    12.          ka->same[i] = 0;
-    13. }
-
-
-
-    14. cache_update(Cache_t* ka, int_t addr)
-    15. {    ka->near[ka->n] = addr;
-    16.      if((ka->n += 1) >= 4)
-    17.          ka->n = 0;
-    18.      ka->same[addr&255] = addr;
-    19. }
-
-COMMENTS.
-
-   1-5: These lines define the caches. As discussed, the "near" cache
-	has 4 addresses and the "same" cache has 256 addresses.
-  6-13: These lines initialize addresses in the caches to zero.
- 14-19: These lines update the caches with a given address.  Note that
-	the "near" cache is updated in a round-robin manner and the lower
-	eight bits of an address is its index in the "same" cache.
-
-
-    Below is the function to encode a COPY address:
-
-     1. int addr_encode(Cache_t* ka, int addr, int here, int* best)
-     2. {   int  i, d, mode = -1;
-
-     3.     if((d = (here-addr)) < 256)
-     4.     {    *best = d;
-     5.          mode = VCD_HERE;
-     6.     }
-     7.     else if(ka->same[d = addr&255] == addr)
-     8.     {    *best = d;
-
-                                   -11-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-     9.          mode = VCD_SAME;
-    10.     }
-    11.     else
-    12.     {    for(i = 0; i < 4; ++i)
-    13.          {    if((d = addr - ka->k_near[i]) >= -127 && d <= 128) 
-    14.               {    *best = d + 127;
-    15.                    mode = VCD_NEAR+i;
-    16.               }
-    17.          }
-    18.     }
-    19.     if(mode < 0)
-    20.     {    *best = addr;
-    21.          mode = VCD_SELF;
-    22.     }
-
-    23.     cache_update(ka,addr);
-    24.     return mode;
-    25. }
-
-COMMENTS.
-
-     1: This lines declare the formal arguments. "addr" is the address to be
-	encoded. "here" is the current location in the target data.  "best" is
-	used to return the value to be used to encode "addr".
-   3-6: If "addr" is within the range [0-255] away from the current location
-	"here", then the addressing mode is VCD_HERE and the address is encoded
-	as a single byte showing this distance.
-  7-10: Using the lower eight bits of "addr" to index the "same" cache, if the
-	address in the cache exactly matches "addr", then VCD_SAME is used
-	and "addr" is encoded as this index.
-
- 12-18: Check each address in the "near" cache to see if "addr" is within
-	[-127,128] away from such an address.  If there is one, the addressing
-	mode is VCD_NEAR plus the index of the address and "addr" is encoded
-	as the distance plus 127 (so the encoded value is in the range [0-255]).
- 19-22: If none of the above addressing modes applies, then VCD_SELF is used
-	and "addr" is encoded as a value in the range [0-here].
-    23: This line updates the address caches.
-
-
-    Below is the function to decode a COPY address:
-
-     1. int addr_decode(Cache_t* ka, int here, int type, Sfio_t* instf)
-     2. {   int  addr;
-
-     3.     if(type == VCD_SELF)
-     4.          addr = sfgetm(instf, here);
-     5.     else if(type == VCD_HERE)
-     6.          addr = here - sfgetc(instf);
-     7.     else if(type == VCD_SAME)
-     8.          addr = ka->same[sfgetc(instf)];
-     9.     else addr = ka->near[type] + sfgetc(instf) - 127;
-
-    10.     cache_update(ka, addr);
-    11.     return addr;
-    12. }
-
-
-4.4 Decoding A Target Window
-
-
-                                   -12-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-    The algorithm to decode a target window is as follows:
-
-     1. win_decode(uchar_t* tar, int n_tar, uchar_t* src, int n_src,
-		   int i_code, Sfio_t* instf, Sfio_t* dataf)
-     2. {    int_t     here, size, addr, i;
-     3.      Cache_t   ka;
-     4.      Vcdinst_t *inst;
-     5.      Vcdcode_t *code, *table = Code[i_code];
-
-     6.      cache_init(&ka);
-     7.      for(here = 0; here < n_tar; )
-     8.      {    code = &table[sfgetc(instf)];
-     9.           for(i = 1; i <= 2; ++i)
-    10.           {    inst = i == 1 ? &code->inst1 : &code->inst2;
-    11.                if(inst->type == VCD_NOOP)
-    12.                     continue;
-    13.                if((size = inst->size) == 0)
-    14.                     size = sfgetu(instf);
-    15.                if(inst->type == VCD_ADD)
-    16.                {    for(; size > 0; --size)
-    17.                          tar[here++] = sfgetc(dataf);
-    18.                }
-    19.                else if(inst->type == VCD_RUN)
-    20.                {    int  c = sfgetc(dataf);
-    21.                     for(; size > 0; --size)
-    22.                          tar[here++] = c;
-    23.                }
-    24.                else if(inst->type == VCD_COPY)
-    25.                {    uchar_t* from;
-    26.                     addr = addr_decode(&ka,here,inst->mode,instf);
-    27.                     from = addr < nsrc ? src+addr : tar+addr-nsrc;
-    28.                     for(; size > 0; --size)
-    29.                          tar[here++] = *from++;
-    30.                }
-    31.           }
-    32.      }
-    33. }
-
-COMMENTS.
-
-     5: "table" is initialized to be the instruction code table to be used.
-	We assume that "Code" is a global variable pointing to the list of 256
-	possible code tables.
-     6: This line initializes the address caches.
-     8: This line reads a control byte from the instruction dataset and gets
-	the corresponding code table to decode instructions.
-  9-32: These lines process the given pair of delta instructions. Note that
-	the data for VCD_ADD and VCD_RUN are read from the raw dataset.
-
-
-5.  Instruction Code Tables
-
-    The delta instructions are encoded based on some instruction code table.
-    The Vcdiff format allows applications to tailor such code tables to the
-    particular data characteristics to enhance output compactness. Up to 256
-    instruction tables with indices in the range [0,255] are allowed.
-    However, the first 8 indices [0,7] are reserved by Vcdiff.
-
-
-5.1 The Encoding of a Code Table in a Delta File
-
-                                   -13-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-
-    It is desirable to compactly encode a code table in a delta file.
-    To accomplish this, we first represent a table to be output as a string.
-    Since each table entry encodes two instructions and each is 3 bytes,
-    the total string size is 6*256 or 1536 bytes.  Such a string can then
-    be compared against some other code table string (e.g., that of table 0)
-    using the window encoding algorithm win_deflate() to reduce the output
-    data. Thus, the format for a code table in a delta file looks like this:
-
-		Code table to compare with
-		Encoded data
-
-    	Code table to compare with:
-	    This is a single byte indicating the code table used to compare
-	    the current table with.
-
-    	Encoded data:
-	    The data uses the same format as that of a window (Section 4.1.1)
-	    where the target data is the code string of the table being encoded
-	    and the source data segment is the code string of the code table
-	    with the above index.
-
-
-    Two functions tab2str() and str2tab() are used for converting between
-    a code table and its code string.  Below is the description of tab2str().
-    str2tab() is just as straightforward so its description will be omitted.
-    Note that bytes of the same type are grouped together to induce more
-    matching when code strings are compared.
-
-     1. tab2str(Vcdcode_t* tab, uchar_t data[6*256])
-     2. {    int  i, n;
-     3.      n = 0;
-     4.      for(i = 0; i < 256; ++i)
-     5.           data[n++] = tab[i].inst1.type;
-     6.      for(i = 0; i < 256; ++i)
-     7.           data[n++] = tab[i].inst2.type;
-     8.      for(i = 0; i < 256; ++i)
-     9.           data[n++] = tab[i].inst1.size;
-    10.      for(i = 0; i < 256; ++i)
-    11.           data[n++] = tab[i].inst2.size;
-    12.      for(i = 0; i < 256; ++i)
-    13.           data[n++] = tab[i].inst1.mode;
-    14.      for(i = 0; i < 256; ++i)
-    15.           data[n++] = tab[i].inst2.mode;
-    16. }
-
-    
-    Below is the function code_define() to retrieve an encoded instruction
-    code table from the delta file.
-
-     1. code_define()
-     2. {   uchar_t src[6*256], tar[6*256];
-     3.     int     index;
-
-     4.     index = sfgetc(Delta);
-     5.     tab2str(Code[sfgetc(Delta)], src);
-     8.     win_inflate(0, tar, 1536, src, 1536);
-     9.     Code[index] = str2tab(data);
-    10. }
-
-
-                                   -14-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-COMMENTS.
-
-   4:	This line reads the index to install the new code table.
-   5:	This line constructs the source string to be compared with.
-   8-9: These lines construct the new table and install it.
-
-
-5.2 Reserved Instruction Code Tables
-
-    A COPY instruction with small data size may use more encoding space than
-    the data itself. Thus, it is good to restrict COPY instructions to some
-    minimum sizes. In turn, a code table can take advantage of such
-    a restriction to enhance compactness. Vcdiff provides two reserved
-    instruction code tables with indices 0 and 1 for minimium COPY sizes of
-    4 and 3 respectively. As noted, the starting code table has index 0
-    so it is optimized for minimum COPY size of 4. Note also that even when
-    a table optimized for a particular minimum COPY size, this does not mean
-    that a COPY instruction with a smaller size cannot be encoded. It simply
-    means that the size of such an instruction must be coded separately.
-    
-
-           TYPE    SIZE      MODE    TYPE    SIZE     MODE    INDEX
-        -------------------------------------------------------------
-        a.  RUN     0                NOOP                       0
-        b.  ADD     0                NOOP                       1
-        c.  ADD   [1,14]             NOOP                     [2,15]
-        d. COPY     0       [0,6]    NOOP                    [16,22]
-        e. COPY   [M,M+10]  [0,6]    NOOP                    [23,99]
-        f. COPY     0       [0,6]     ADD   [1,4]           [100,127]
-        g. COPY   [M,M+3]   [0,6]     ADD   [1,4]           [128,239]
-        h. COPY   [M,M+3]    SELF    COPY   [M,M+3]   SELF  [240,255]
-        -------------------------------------------------------------
-
-                            	Table 2
-
-
-    For a given minimum COPY size M, Table 2 shows how the 256 code values
-    are partitioned into different categories of indices:
-
-    	a. Index 0 defines a RUN instruction whose size is always coded
-	   separately as an unsigned integer. This is signified by having
-	   the "size" field being 0.
-    	b. Index 1 defines an ADD instruction with size coded separately.
-    	c. Indices 2-15 define 14 ADD instructions with sizes in
-	   the range [1,14].
-    	d. Indices 16-22 define 7 COPY instructions for the 7 different
-	   address encoding modes discusses in Section 4.3. The sizes of
-	   these instructions are coded separately.
-    	e. Indices 23-99 define 77 COPY instructions using all 7 addressing
-	   modes and having sizes in the range [M,M+10].
-    	f. Indices 100-127 defines 28 pairs of COPY and ADD instructions.
-	   The COPY sizes are coded separately while the ADD sizes are
-	   in the range [1,4].
-    	g. Indices 128-239 define 112 pairs of COPY and ADD instructions
-	   whose sizes are in the ranges [M,M+3] and [1,4] respectively.
-    	h. Finally, indices 240-255 defines 16 pairs of COPY and COPY
-	   instructions with sizes in the range [M,M+3] and both using
-	   the same VCD_SELF addressing mode.
-
-    Next we present the algorithms to construct an instruction code table.
-
-                                   -15-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-    Where appropriate, the algorithms also construct the inverted tables
-    usable for data encoding. Any part of a table not explicitly set will
-    be assumed to be initialized to be either zero or the null pointer as
-    the case warranted.
-
-
-
-     1. mk_codetab(Vcdcode_t tab[256], int add[16], int copy[15][7],
-                    int copyadd[8][7][5], int copycopy[8][8], int M)
-     2. {
-     3.     tab[0].inst1.type = VCD_RUN;
-     4.     tab[0].inst1.size = 0;
-     5.     tab[0].inst2.type = VCD_NOOP;
-
-     6.     mk_add(tab, add);
-     7.     mk_copy(tab, copy, M);
-     8.     mk_copyadd(tab, copyadd, M);
-     9.     mk_copycopy(tab, copycopy, M);
-    10. }
-
-COMMENTS.
-
-     1: This line declares the arguments for mk_codetab().  The inverted
-	tables add[], copy[][], copyadd[][][], and copycopy[][] are designed
-	to be indexed by sizes and address modes. The argument M is the minimum
-	COPY size used for the table.
-   3-5: These lines construct the RUN instruction.
-   6-9: These lines call various subroutines to construct different parts of
-	the instruction table.
-
-
-    Below is the algorithm to construct the single ADD instructions:
-
-     1. mk_add(Vcdcode_t tab[256], int add[16])
-     2. {   int s, n;
-
-     3.     tab[1].inst1.type = VCD_ADD;
-     4.     tab[1].inst1.size = 0;
-     5.     tab[1].inst2.type = VCD_NOOP;
-     6.     add[0] = 1;
-
-     7.     for(n = 2, s = 1; s <= 14; ++s, ++n)
-     8.     {   tab[n].inst1.type = VCD_ADD;
-     9.         tab[n].inst1.size = s;
-    10.         tab[n].inst2.type = VCD_NOOP;
-    11.         add[s] = n;
-    12.     }
-    13. }
-
-COMMENTS.
-
-   3-6: These lines construct the ADD instruction whose size is to be coded
-	separately.  Location 0 in the inverted table add[] points to this code.
-  7-12: These lines construct the ADD instructions with size in
-	the range [1-14] as discussed earlier.
-
-
-    Below is the function to construct the single COPY instructions:
-
-     1. mk_copy(Vcdcode_t tab[256], int copy[15][7], int M)
-
-                                   -16-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-     2. {   int s, m, n;
-
-     3.     for(n = 16, m = 0; m < 7; ++m, ++n)
-     4.     {   tab[n].inst1.type = VCD_COPY;
-     5.         tab[n].inst1.size = 0;
-     6.         tab[n].inst1.mode = m;
-     7.         tab[n].inst2.type = VCD_NOOP;
-     8.         copy[0][m] = n;
-     9.     }
-
-    10.     for(s = M; s <= M+10; ++s)
-    11.     {   for(m = 0; m < 7; ++m, ++n)
-    12.         {   tab[n].inst1.type = VCD_COPY;
-    13.             tab[n].inst1.size = s;
-    14.             tab[n].inst1.mode = m;
-    15.             tab[n].inst2.type = VCD_NOOP;
-    16.             copy[s][m] = n;
-    17.         }
-    18.     }
-    20. }
-
-COMMENTS.
-
-   3-9: These lines construct the 7 COPY instructions with whose data sizes
-	are coded separately.
- 10-18: These lines construct the 77 COPY instructions whose data sizes
-	are in the range [M,M+10].
-
-
-    The below function constructs the COPY/ADD instruction pairs:
-
-     1. mk_copyadd(Vcdcode_t tab[256], int copyadd[8][7][5], int M)
-     2. {   int s, m, a, n;
-     3.     for(n = 100, m = 0; m < 7; ++m)
-     4.     {   for(a = 1; a <= 4; ++a, ++n)
-     5.         {   tab[n].inst1.type = VCD_COPY;
-     6.             tab[n].inst1.size = 0;
-     7.             tab[n].inst1.mode = m;
-     8.             tab[n].inst2.type = VCD_ADD;
-     9.             tab[n].inst2.size = a;
-    10.             copyadd[0][m][a] = n;
-    11.         }
-    12.     }
-    13.     for(s = M; s <= M+3; ++s)
-    14.     {   for(m = 0; m < 7; ++m)
-    15.         {   for(a = 1; a <= 4; ++a, ++n)
-    16.             {   tab[n].inst1.type = VCD_COPY;
-    17.                 tab[n].inst1.size = s;
-    18.                 tab[n].inst1.mode = m;
-    19.                 tab[n].inst2.type = VCD_ADD;
-    20.                 tab[n].inst2.size = a;
-    21.                 copyadd[s][m][a] = n;
-    22.             }
-    23.         }
-    24.     }
-    25. }
-
-
-    Finally, the algorithm to construct the 16 COPY/COPY pairs:
-
-
-                                   -17-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-     1. mk_copycopy(Vcdcode_t tab[256], int copycopy[8][8], int M)
-     2. {   int s, c, n;
-     3.     for(n = 240, s = M; s <= M+3; ++s)
-     4.     {   for(c = M; c <= M+3; ++c, ++n)
-     5.         {   tab[n].inst1.type = VCD_COPY;
-     6.             tab[n].inst1.size = s;
-     7.             tab[n].inst1.mode = VCD_SELF;
-     8.             tab[n].inst2.type = VCD_COPY;
-     9.             tab[n].inst2.size = c;
-    10.             tab[n].inst2.mode = VCD_SELF;
-    11.             copycopy[s][c] = n;
-    12.         }
-    13.     }
-    14. }
-
-
-6.  Compression and Differencing Algorithms
-
-    Sections 4 and 5 describe how to reconstruct a target file from data in
-    a delta file. In this section, we discuss briefly general architectures
-    for compressors and differencers. A few abstract functions are assumed:
-
-    int win_target(uchar_t** tar);
-
-        This function may be called many times to get sequential windows of
-	data from the target file to be compressed. It returns the length of
-	the window while the window itself is returned in "*tar".
-
-    int win_match(uchar_t* tar, int n_tar, int p_tar,
-		  uchar_t** src, int* n_src, int_t* p_src);
-
-	This function computes a source data segment, if any, to be compared
-	with a target window. It returns 0, 1 or 2 for no source segment,
-	source segment from the source file, or source segment from
-	the target file. The arguments "src", "n_src" and "p_src" are used
-	to return the source data segment, its size, and its position in
-	either the source file or target file.
-
-    int str_match(uchar_t* tar, int n_tar, int p_tar,
-		  uchar_t* src, int n_src, int* match);
-
-	This function computes a string in either the source data segment or
-	the target window that matches with a prefix of the target data being
-	processed. Such a matched string can be encoded as a COPY instruction.
-	The argument "p_tar" indicates the current position in the target
-	window to be processed. The function returns the length of the match
-	and, if that is positive, "*match" is set to the match position.
-
-    int run_check(uchar_t* tar, int n_tar, int p_tar);
-
-	This function checks to see if there is a run of the same bytes 
-	starting at the current location in the target string.
-
-
-
-    The performance of an encoder depends on what algorithms are used to
-    implement the above functions. However, as shown earlier, decoding
-    performance is completely independent of such choices.
-
-    Below is the algorithm for encoding a target file.  We shall assume
-
-                                   -18-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-    that there is no secondary encoding for the resulting instruction and
-    raw datasets.
-
-     1. sfputc(Delta,0xd6);
-     2. sfputc(Delta,0xc3);
-     3. sfputc(Delta,0xc4);
-     4. sfputc(Delta,0);
-
-     5. for(p_tar = 0; ; p_tar += n_tar)
-     6. {   if((n_tar = win_target(&tar)) <= 0)
-     7.         break;
-     9.     win_deflate(tar, n_tar);
-    10. }
-
-COMMENTS.
-
-   1-4: These lines output the 4-byte header for a delta file.
-     6: This line calls win_target() to get a target window. If the target file
-	has been completely processed, the return value is non-positive and 
-	the loop terminates.
-     8: This line computes a source data segment to be compared with the given
-	target window.
-     9: This line calls win_deflate() to compute the delta instructions and
-	output the data to the delta file.
-
-
-    Below is the function win_deflate():
-
-     1. win_deflate(uchar_t* tar, int n_tar)
-     2. {
-     3.     int     type, indi, n_src;
-     4.     int_t   p_src;
-     5.     uchar_t *src;
-     6.     Sfio_t  *instf, *dataf;
-
-     7.     type = win_match(tar, n_tar, &src, &n_src, &p_src);
-     8.     instf = sfstropen(NULL,0);
-     9.     dataf = sfstropen(NULL,0);
-    10.     win_encode(tar, n_tar, src, n_src, instf, dataf);
-
-    11.     indi = type == 0 ? (1<<2) : type == 1 ? (1<<3) : 0;
-    12.     sfputc(Delta, indi);
-
-    13.     sfputu(Delta, n_tar);
-    14.     sfputu(Delta, sfsize(instf));
-    15.     sfputu(Delta, sfsize(dataf));
-
-    16.     sfmove(instf,Delta,-1,-1);
-    17.     sfmove(dataf,Delta,-1,-1);
-
-    18.     sfclose(instf); sfclose(dataf);
-    18. }
-
-
-COMMENTS.
-
-     7: This line calls win_match() to obtain a source data segment.
-   8-9: These lines create two streams to output instructions and raw data.
-    10: This line calls win_encode() to compute the delta instructions.
- 11-12: These lines output the indicator byte.
-
-                                   -19-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
- 13-15: These lines output the sizes of the target window and instruction
-	and raw datasets.
- 16-17: These lines use the Sfio function sfmove() to output the instruction
-	and raw datasets to the delta file.
-
-
-    Below is the function to compute encoding of a target window:
-
-     1. int win_encode(uchar_t* tar, int n_tar, uchar_t* src, int n_src,
-                       Sfio_t* instf, Sfio_t* dataf)
-     2. {   int      add, here, addr, s, size;
-     3.     Cache_t  ka;
-
-     4.     cache_init(&ka);
-
-     5.     for(here = 0, size = 0, add = -1; here < n_tar; )
-     6.     {   if( (s = run_check(tar, n_tar, here)) > 0)
-     7.              addr = -1;
-     8.         else s = str_match(tar,n_tar,here,src,n_src,&addr);
-     9.         if(s > 0)
-    10.         {    if(add >= 0)
-    11.                   size += add_encode(here-add,tar+here-add,instf,dataf);
-    12.              if(addr < 0)
-    13.                   size += run_encode(s,tar[here],instf,dataf);
-    14.              else size += copy_encode(&ka,s,addr,here,instf);
-
-    15.              add = -1;
-    16.              here += s;
-    17.         }
-    18.         else
-    19.         {    if(add < 0)
-    20.                   add = here;
-    21.              here += 1;
-    22.         }
-    23.     }
-    24.     if(add >= 0)
-    25.          size += add_encode(here-add,tar+here-add,instf,dataf);
-    26.     else size += copy_encode(0,0,0,0);
-
-    27.     return size;
-    28. }
-
-COMMENTS.
-
-     4: This line initializes the address caches.
-   6-8: These lines check to see if there is a RUN or a COPY instruction.
-	The function run_check() is straightforward to implement so its
-	description will be omitted.
-  9-17: These lines output the appropriate delta instruction.
- 19-22: These lines are executed if there is no RUN or COPY instruction.
-	The "add" variable is set to collect the data for an ADD instruction.
- 24-25: These lines output the last unmatched part of the target window
-	in an ADD instruction.
-    26: This line outputs the last saved COPY instruction, if any. See the
-	function copy_encode() below.
-    27: This line returns the number of bytes used for encoding the data.
-
-
-    To finish up the encoding algorithm, we need to describe the functions
-    add_encode(), run_encode() and copy_encode(). We shall assume that
-
-                                   -20-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-    the default code instruction table 0 is used. The below code declares
-    the tables and define a few convenience macro functions.
-
-     1. Vcdcode_t  Tab[256];
-     2. Vcdcode_t* Add[16];
-     3. Vcdcode_t* Copy[15][7];
-     4. Vcdcode_t* Copyadd[8][7][5];
-     5. Vcdcode_t* Copycopy[8][8];
-
-     6. #define    INDEXADD(a)     ((a >= 1 && a <= 14) ? a : 0)
-     7. #define    INDEXCOPY(c)    ((c >= 4 && c <= 14) ? c : 0)
-     8. #define    INDEXCOPYADD(c) ((c >= 4 && c <=  7) ? c : 0)
-     9. #define    ISTINYADD(a)    ((a >= 1 && a <= 4) ? 1 : 0)
-    10. #define    ISTINYCOPY(c)   ((c >= 4 && c <= 7) ? 1 : 0)
-
-COMMENTS.
-
-   6-8: These lines define functions to compute the index into the tables
-        Add, Copy, and Copyadd for any given ADD or COPY size.
-  9-10: These lines define functions to test if a given size is small.
-	These are used to determine if certain pair of instructions could
-	be coded using a single byte code.
-
-
-    Below is the function to encode a COPY instruction.
-
-     1. int Size, Addr, Here, Mode;
- 
-     2. int copy_encode(Cache_t* ka,int size,int addr,int here,Sfio_t* instf)
-     3. {   int code, mode = 0, best = 0, ndel = 0;
-
-     4.     if(size > 0)
-     5.         mode = addr_encode(ka, addr, here, &best);
-
-     6.     if(Size > 0)
-     7.     {   if(Mode == mode && mode == VCD_SELF &&
-     8.            ISTINYCOPY(Size) && ISTINYCOPY(size) )
-     9.         {    code = Copycopy[Size][size];
-    10.              ndel += sfputc(instf, code);
-    11.              ndel += sfputm(instf, Addr, Here);
-    12.              ndel += sfputm(instf, addr, here);
-    13.              Size = -1;
-    14.              return ndel;
-    15.         }
-    16.         code = Copy[INDEXCOPY(Size)][Mode];
-    17.         ndel += sfputc(instf, code);
-    18.         if(Tab[code].inst1.size == 0)
-    19.              ndel += sfputu(instf, Size);
-    20.         if(Mode == VDC_SELF)
-    21.              ndel += sfputm(instf, Addr, Here);
-    22.         else ndel += sfputc(instf, Addr);
-    23.     }
-
-    24.     Size = size;
-    25.     Addr = best;
-    26.     Mode = mode;
-    27.     Here = here;
-
-    28.     return ndel;
-    29. }
-
-                                   -21-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-
-COMMENTS.
-
-     1: This line defines variables to save a COPY instruction so that it may
-        be coded jointly with another instruction later.
-   4-5: These lines compute the mode and value to encode the given COPY
-        address if there is one (i.e., "size" is positive).
-  6-23: These lines process a previously saved COPY instruction.
-  7-15: These lines output a code that encode both COPY instructions.
-	Note that this is done only when the data sizes are small and both
-	instructions are using the VCD_SELF addressing mode (Table 2).
- 16-22: These lines output the previously saved COPY instruction singly.
- 24-27: These lines save the current COPY instruction if it has not
-        been merged to a previous COPY instruction as discussed.
-
-
-    Below is the function to output an ADD instruction:
-
-     1. int add_encode(int size, uchar_t* data, Sfio_t* instf, Sfio_t* dataf)
-     2. {   int code, ndel = 0;
-
-     3.     if(Size > 0)
-     4.     {   if(ISTINYADD(size))
-     5.         {    code = Copyadd[INDEXCOPYADD(Size)][Mode][size];
-     6.              ndel += sfputc(instf, code);
-     7.              if(Tab[code].inst1.size == 0)
-     8.                   ndel += sfputu(instf, Size);
-     9.              if(Mode == VCD_SELF)
-    10.                   ndel += sfputm(instf, Addr, Here);
-    11.              else ndel += sfputc(instf, Addr);
-    12.              for(; size > 0; --size, ++data)
-    13.                   ndel += sfputc(dataf, *data);
-    14.              return ndel;
-    15.         }
-    16.         else ndel += copy_encode(0,0,0,0);
-    17.     }
-
-    18.     code = Add[INDEXADD(size)];
-    19.     ndel += sfputc(instf, code);
-    20.     if(Tab[code].inst1.size == 0)
-    21.         ndel += sfputu(instf, size);
-    22.     ndel += size;
-    23.     for(; size > 0; --size, ++data)
-    24.         sfputc(dataf, *data);
-
-    25.     return ndel;
-    26. }
-
-
-COMMENTS.
-
-  3-17: These lines consider the case when there is a previously saved COPY
-	instruction. Then, if the ADD size is small, a single code is output
-	for both COPY and ADD instructions.  Otherwise, the COPY instruction
-	is output by itself.
- 18-24: These lines output an ADD instruction by itself.
-
-
-    Below is the function to output a RUN instruction:
-
-
-                                   -22-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-     1. int run_encode(int size, int byte, Sfio_t* instf, Sfio_t* dataf)
-     2. {   int ndel = 0;
-     3.     if(Size > 0)
-     4.         ndel += copy_encode(0,0,0,0);
-     5.     ndel += sfputc(instf,0);
-     6.     ndel += sfputu(instf,size);
-     7.     ndel += sfputc(dataf,byte);
-     8.     return ndel;
-     9. }
-
-COMMENTS.
-
-   3-4: These lines output a previously saved COPY instruction, if any.
-   5-7: These lines output the RUN instruction.
-
-
-7.  Summary
-
-    We have described a general and portable encoding format for compression
-    and differencing. The format is compact. For compression only, using
-    the same LZ-77 string parsing strategy and without any secondary encoders,
-    the typical compression rate is better than Unix compress and close to gzip.
-    For differencing, the same data format is better than all known methods.
-    Ignoring application-specific secondary encoder issues, the decoding
-    algorithms run in linear time and require working space proportional
-    to window sizes.
-
-
-ACKNOWLEDGEMENTS
-
-    Thanks are due to Balachander Krishnamurthy, Jeff Mogul and Arthur Van Hoff
-    who provided much encouragement to publicize Vcdiff.
-
-
-REFERENCES
-
-    [1] D.G. Korn and K.P. Vo, Vdelta: Differencing and Compression,
-        Practical Reusable Unix Software, Editor B. Krishnamurthy,
-        John Wiley & Sons, Inc., 1995.
-
-    [2] J. Ziv and A. Lempel, A Universal Algorithm for Sequential Data
-        Compression, IEEE Transactions on Information Theory,
-        23(3):337-343, May 1977.
-
-    [3] W. Tichy, The String-to-String Correction Problem with Block Moves,
-        ACM Transactions on Computer Systems, 2(4):309-321, November 1984.
-
-    [4] E.M. McCreight, A Space-Economical Suffix Tree Construction
-        Algorithm, Journal of the ACM, 23:262-272, 1976.
-
-    [5] J.J. Hunt, K.P. Vo, W. Tichy, An Empirical Study of Delta
-        Algorithms, IEEE Software Configuration and Maintenance Workshop,
-        1996.
-
-    [6] G.S. Fowler, D.G. Korn, K.P. Vo, Sfio: A buffered I/O Library,
-        Accepted for publication in Software Practice & Experience, 1999.
-
-
-
-AUTHOR'S ADDRESS
-
-                                   -23-
-
-RFC 1   VCDIFF Generic Differencing and Compression Data Format   March 2000
-
-
-
-    Kiem-Phong Vo (main contact)
-    AT&T Labs, Room D223
-    180 Park Avenue
-    Florham Park, NJ 07932
-
-    Phone: 973-360-8630
-    Email: kpv@research.att.com
-
-
-    David G. Korn
-    AT&T Labs, Room D237
-    180 Park Avenue
-    Florham Park, NJ 07932
-
-    Phone: 973-360-8602
-    Email: dgk@research.att.com
-
-
-EXPIRATION DATE
-
-    September 09, 2000
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-                                   -24-
diff --git a/subversion/libsvn_vcdiff/hash.c b/subversion/libsvn_vcdiff/hash.c
deleted file mode 100644
index 6e1edc3..0000000
--- a/subversion/libsvn_vcdiff/hash.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Hash table for a vdelta implementation. */
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * Copied from the GNU Emacs sources for now.  There will be a
- * copyright issue if we link up this hash code with the rest of
- * Subversion, but for now we're all right -- this is just test code
- * and can be under the GPL without affecting anything else.  Just
- * needed a hash function fast, for prototyping.
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- *    Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 1999
- *    Free Software Foundation, Inc.
- *
- * This file is part of GNU Emacs.
- * 
- * GNU Emacs is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- * 
- * GNU Emacs is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with GNU Emacs; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA. 
- */
-
-
-
-
-#include "../svn_subr/alloc.h"
-#include "hash.h"
-
-
-
-hash_entry_t *
-make_hash_entry ()
-{
-  hash_entry_t *e;
-
-  e = svn_malloc (sizeof (*e));
-  memset (e, 0, sizeof (*e));  /* cleanliness is next to godliness */
-
-  return e;
-}
-
-
-hash_table_t *
-make_hash_table (size_t size)
-{
-  hash_table_t *t;
-
-  t = svn_malloc (sizeof (*t));
-
-  t->size  = size;
-  t->table = svn_malloc (size * sizeof (hash_entry_t *));
-
-  memset (t->table, 0, (size * sizeof (hash_entry_t *)));
-
-  return t;
-}
-
-
-void
-free_hash_entry (hash_entry_t *e)
-{
-  free (e);
-}
-
-
-void
-free_hash_table (hash_table_t *t)
-{
-  size_t i;
-
-  for (i = 0; i < t->size; i++)
-    if (t->table[i])
-      free_hash_entry (t->table[i]);
-
-  free (t);
-}
-
-
-/* Return a hash code for DATA, which may include `\0's. */
-static int
-hash_string (char *data, int len)
-{
-  unsigned char *p = data;
-  unsigned char *end = p + len;
-  unsigned char c;
-  int hash = 0;
-  
-  while (p != end)
-    {
-      c = *p++;
-      if (c >= 0140) c -= 40;
-      hash = ((hash<<3) + (hash>>28) + c);
-    }
-  return hash & 07777777777;
-}
-
-
-/* If there is an entry for STR (up to LEN) in the hash table T, return
-   the hash entry there.  Else make an entry for POS, and return NULL. */
-hash_entry_t *
-try_match (char *str, size_t len, size_t pos, hash_table_t *t)
-{
-  hash_entry_t *e;
-
-  size_t hash_code = (hash_string (str, len) % t->size);
-
-  if ((e = t->table[hash_code]))
-    return e;
-
-  /* Else. */
-
-  e = make_hash_entry ();
-  e->pos = pos;
-  t->table[hash_code] = e;
-  return NULL;
-}
-
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/libsvn_vcdiff/hash.h b/subversion/libsvn_vcdiff/hash.h
deleted file mode 100644
index eae51f4..0000000
--- a/subversion/libsvn_vcdiff/hash.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Hashing interface for a vdelta implementation.
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-/* *********************** Data Structures ************************** */
-
-
-
-#include <stdlib.h>
-#include <stddef.h>
-
-
-
-/* One entry in a hash table. */
-typedef struct hash_entry_t
-{
-  /* Notice that this doesn't point to a chain of hash buckets.
-   * That's right -- we clobber on collision.  It's a time-space
-   * tradeoff, and optimizing for time is faster to implement.
-   *
-   * An in-between solution is to keep `pos1', `pos2' ... `posN',
-   * hardcoded in the data type here, and try all of them for the
-   * longest available match.  I think N == 4 would be good, on no
-   * basis whatsoever.
-   *
-   * The best solution, for optimizing delta size, is to be a regular
-   * hash table with an extendable bucket chain.  But vdelta might run
-   * real slow that way. :-)
-   */
-
-  long int pos;        /* Where was this string in the input? */
-} hash_entry_t;
-
-
-/* A hash table is basically an array of hash_entries. */
-typedef struct hash_table_t
-{
-  size_t size;
-  hash_entry_t **table;
-} hash_table_t;
-
-
-/* *********************** Functions ************************** */
-
-hash_table_t *make_hash_table (size_t size);
-
-void free_hash_table (hash_table_t *table);
-
-/* Return the position associated with the match, if any, else -1. 
-   Put STR into the hash_table in any case. */
-hash_entry_t *try_match (char *str, size_t len, size_t pos, hash_table_t *t);
-
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/libsvn_vcdiff/tests/README b/subversion/libsvn_vcdiff/tests/README
deleted file mode 100644
index 7e4f849..0000000
--- a/subversion/libsvn_vcdiff/tests/README
+++ /dev/null
@@ -1,17 +0,0 @@
-Test 0:
-    The example text in the vdelta paper.  Use target only, no source.
-
-Test 1:
-    The insertion of "xxxx" in between `l' and `m' in the alphabet.
-
-Test 2:
-    Transposition of the alphabet around the point between `l' and `m'.
-
-Test 3:
-    Insertion of `x' after `d', and another after `t'.
-
-Test 4:
-    Insertion of `x' after `c' (not yet 4 bytes!), and another after `t'.
-
-Test 5:
-    Random text, no relation to source.
diff --git a/subversion/libsvn_vcdiff/tests/source.txt b/subversion/libsvn_vcdiff/tests/source.txt
deleted file mode 100644
index e85d5b4..0000000
--- a/subversion/libsvn_vcdiff/tests/source.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcdefghijklmnopqrstuvwxyz
\ No newline at end of file
diff --git a/subversion/libsvn_vcdiff/tests/target0.txt b/subversion/libsvn_vcdiff/tests/target0.txt
deleted file mode 100644
index 75103d4..0000000
--- a/subversion/libsvn_vcdiff/tests/target0.txt
+++ /dev/null
@@ -1 +0,0 @@
-bcdeabcdabcdabcdefgh
\ No newline at end of file
diff --git a/subversion/libsvn_vcdiff/tests/target1.txt b/subversion/libsvn_vcdiff/tests/target1.txt
deleted file mode 100644
index aee5576..0000000
--- a/subversion/libsvn_vcdiff/tests/target1.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcdefghijklxxxxmnopqrstuvwxyz
\ No newline at end of file
diff --git a/subversion/libsvn_vcdiff/tests/target2.txt b/subversion/libsvn_vcdiff/tests/target2.txt
deleted file mode 100644
index 09ac678..0000000
--- a/subversion/libsvn_vcdiff/tests/target2.txt
+++ /dev/null
@@ -1 +0,0 @@
-mnopqrstuvwxyzabcdefghijkl
\ No newline at end of file
diff --git a/subversion/libsvn_vcdiff/tests/target3.txt b/subversion/libsvn_vcdiff/tests/target3.txt
deleted file mode 100644
index 9c55093..0000000
--- a/subversion/libsvn_vcdiff/tests/target3.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcdxefghijklmnopqrstxuvwxyz
\ No newline at end of file
diff --git a/subversion/libsvn_vcdiff/tests/target4.txt b/subversion/libsvn_vcdiff/tests/target4.txt
deleted file mode 100644
index 1276c69..0000000
--- a/subversion/libsvn_vcdiff/tests/target4.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcxdefghijklmnopqrstxuvwxyz
\ No newline at end of file
diff --git a/subversion/libsvn_vcdiff/tests/target5.txt b/subversion/libsvn_vcdiff/tests/target5.txt
deleted file mode 100644
index e13b35b..0000000
--- a/subversion/libsvn_vcdiff/tests/target5.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is not a related file at all -- it's just a random piece of text,
-though if by some chance I did happen to insert some of the alphabet
-into it, such as "ghijklmnopqrs", it should be expressed as a COPY
-instruction.  We'll see.
diff --git a/subversion/libsvn_vcdiff/vdelta.c b/subversion/libsvn_vcdiff/vdelta.c
deleted file mode 100644
index 2775662..0000000
--- a/subversion/libsvn_vcdiff/vdelta.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/* A VDelta implementation for Subversion.
- *
- * (See comments in make_vdelta() for algorithm details.)
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include "hash.h"
-#include "../svn_subr/alloc.h"
-
-
-#define MIN_MATCH_LEN 4
-
-
-size_t
-file_size (char *file)
-{
-  struct stat s;
-  
-  if (stat (file, &s) < 0)
-    {
-      fprintf (stderr, "can't stat %s (%s)", file, strerror (errno));
-      exit (1);
-    }
-  
-  /* else */
-
-  return s.st_size;
-}
-
-
-/* Read LEN bytes from FILE into BUF. 
-   BUF must already point to allocated space. */
-int
-file_into_buffer (char *file, size_t len, char *buf)
-{
-  FILE *fp;
-  size_t total_so_far = 0;
-  
-  fp = fopen (file, "r");
-  
-  while (1)
-    {
-      size_t received;
-      
-      received = fread (buf, 1, (len - total_so_far), fp);
-      if (ferror (fp))
-        {
-          fprintf (stderr, "can't read %s", file);
-          break;
-        }
-      
-      total_so_far += received;
-      
-      if ((total_so_far >= len) || (feof (fp)))
-        break;
-    }
-  
-  if (fclose (fp) < 0)
-    fprintf (stderr, "cannot close %s (%s)", file, strerror (errno));
-  
-  return 0;
-}
-
-
-void
-make_vdelta (char *data, size_t source_len, size_t target_len)
-{
-  /*
-   * This implements an approximation of the vdelta algorithm as
-   * described in Appendix B of
-   *
-   *    "Delta Algorithms: An Empirical Analysis"
-   *     Hunt, J. J., Vo, K.-P., and Tichy, W. F.
-   *     An empirical study of delta algorithms.
-   *     Lecture Notes in Computer Science 1167 (July 1996), 49-66.
-   *
-   * The plan is to coax this to output vcdiff format, as described in
-   * 
-   *    http://www.ietf.org/internet-drafts/draft-korn-vcdiff-01.txt
-   * 
-   * and write a `patch' program that takes vcdiff input.  Once that's
-   * done, the delta generator will be improved, adding windowing, the
-   * use of the vdelta matching technique, and whatever else is called
-   * for.
-   * 
-   * Here's how it works right now.  Step 1 all happened before this
-   * function, Step 2 is what this function does: 
-   * 
-   *   1. Read source_text and target_text into buf, concatenated.
-   *      (And know where the dividing point between them is, of
-   *      course.) 
-   * 
-   *   2. Slide along buf a byte at a time.  At each location, look up
-   *      the current position in a hash table, using the 4-byte chunk
-   *      starting here as key.
-   *
-   *        a) If lookup succeeds, go back in the source text to the
-   *           matching position, make sure it's a real match and not
-   *           just a hash collision.  If real, extend it as far as
-   *           possible with the current text, and if already into the
-   *           target data, then output a COPY instruction with the
-   *           old position and the length of the match as parameters.
-   *           (Also, store the last three positions of the match in
-   *           the hash table.)
-   *
-   *        b) If lookup fails, store the current position, output an
-   *           INSERT for the current byte if we're already into
-   *           target data, and move on.
-   *
-   * Some things to notice:
-   * 
-   * This differencing algorithm is really a compression algorithm in
-   * disguise -- one that happens not to generate any output until
-   * it's in the target data.
-   * 
-   * Hash collisions are just ignored -- the older data wins.  This
-   * strategy simply means that some matches won't be noticed.  One
-   * could also overwrite it (that's XDelta's answer), or keep a
-   * bucket chain so as not to lose data (vdelta's answer), or store
-   * the last N matches (for some constant N, probably 4), or keep
-   * scores and try not to toss ones which have matched well in the
-   * past, or... you get the idea.  For now, oldest wins.
-   *
-   * It holds the source and target data together in memory.  This
-   * loses, of course; it will be changed to one of the various
-   * sliding window techniques.  Doing so is not trivial, but not
-   * hugely difficult either, and if one maintains the requirement
-   * that the source be seekable, that helps somewhat.  The big thing
-   * you lose is the ability to go back and directly compare against
-   * buf, but you can fake that by storing the 4-byte chunks along
-   * with the positions in the hash table, and doing hash compares
-   * where formerly did direct byte compares.
-   */
-  
-  size_t pos = 0;       /* current position in DATA */
-  size_t total_len;     /* put this in a var for readability */
-  hash_table_t *table;  /* where we hold the back-lookup table. */
-  
-  total_len = source_len + target_len;
-  table = make_hash_table (1511);
-  
-  /* todo: fix o-b-o-e, see test 0 */
-
-  while (pos < (total_len - (MIN_MATCH_LEN - 1)))
-    {
-      hash_entry_t *e;
-      
-      e = try_match (data + pos, MIN_MATCH_LEN, pos, table);
-
-      if (e && (strncmp (data + e->pos, data + pos, MIN_MATCH_LEN) == 0))
-        {
-          /* We got a match.  Now try extending it as far as possible. */
-
-          size_t old_pos;       /* Where this substring was seen before. */
-          size_t match_len;
-          size_t i;
-
-          old_pos = e->pos;
-
-          match_len = (MIN_MATCH_LEN - 1);
-          while (((match_len + 1) < (total_len - pos))
-                 && (data[old_pos + match_len + 1]
-                     == data[pos + match_len + 1]))
-            {
-              match_len++;
-            }
-
-          pos += match_len;
-
-          /* todo: bogus output format for now */
-          if (pos >= source_len)
-            printf ("COPY %d %d\n", old_pos, match_len);
-
-          /* Record the unrecorded positions from this match. 
-             (Step 2a on page 18 of Hunt/Vo/Tichy.) */
-          for (i = (MIN_MATCH_LEN - 1); i > 0; i--)
-            {
-              /* Calling try_match() solely for recording purposes,
-                 not because we're actually looking for a match. */
-              try_match (data + (pos - i), MIN_MATCH_LEN, (pos - i), table);
-            }
-        }
-      else   /* No match. */
-        {
-          if (pos >= source_len)
-            printf ("INSERT %c\n", data[pos]);
-        }
-
-      pos++;
-    }
-
-  /* Cleanup the last (MIN_MATCH_LEN - 1) characters if necessary. */
-  while (pos < total_len)
-    {
-      if (pos >= source_len)
-        printf ("INSERT %c\n", data[pos]);
-      pos++;
-    }
-}
-
-
-main (int argc, char **argv)
-{
-  /* Curious what's going on here?
-   *
-   * Read the comment at the top of make_vdelta(), above, and
-   * understand all.
-   */
-
-  char *source_file = NULL;
-  char *target_file = NULL;
-  char *data        = NULL; /* concatenation of source data and target data */
-  size_t source_len = 0;    /* data[source_len] is the start of target data */
-  size_t target_len = 0;    /* source_len + target_len == length of data    */
-
-  if (argc == 2)
-    {
-      target_file = argv[1];
-    }
-  else if (argc == 3)
-    {
-      source_file = argv[1];
-      target_file = argv[2];
-    }
-  else
-    {
-      fprintf (stderr, "Need two or three arguments.\n");
-      exit (1);
-    }
-
-  if (source_file)
-    source_len = file_size (source_file);
-
-  target_len = file_size (target_file);
-
-  data = svn_malloc (source_len + target_len + 1);
-
-  if (source_file)
-    file_into_buffer (source_file, source_len, data);
-  file_into_buffer (target_file, target_len, data + source_len);
-  data[source_len + target_len] = '\0'; /* todo: just for now */
-
-  make_vdelta (data, source_len, target_len);
-
-  free (data);
-  exit (0);
-}
-
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/libsvn_wc/Makefile b/subversion/libsvn_wc/Makefile
deleted file mode 100644
index 0bdbf72..0000000
--- a/subversion/libsvn_wc/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-
-# Quick Hack Makefile, again!
-
-SVN_INCLUDE = ../include
-SVN_STRING_LIB = ../libsvn_string
-
-# kff todo: Jim's right, svn_subr is a nasty dumping ground.
-SVN_ERROR_INCLUDE = ../svn_subr
-SVN_ERROR_LIB = ../svn_subr
-
-APR_INCLUDE = ../../apr/include
-APR_LIB = ../../apr
-
-default: propdump-test
-
-svn_error.o: ../svn_subr/svn_error.c ../svn_subr/svn_error.h
-	@cc -c ../svn_subr/svn_error.c -g -Wall       \
-	                     -I$(SVN_INCLUDE)         \
-		             -I$(APR_INCLUDE)         \
-                             -I$(SVN_ERROR_INCLUDE)
-
-propdump: propdump.c svn_error.o
-	@cc -o propdump propdump.c svn_error.o                        \
-                                    -g -Wall -pthread                 \
-                                    -I$(SVN_INCLUDE)                  \
-                                    -I$(SVN_ERROR_INCLUDE)            \
-                                    -I$(APR_INCLUDE)                  \
-                                    -L$(APR_LIB)                      \
-                                    -L$(SVN_STRING_LIB)               \
-                                    -L$(SVN_ERROR_LIB)                \
-                                    -lsvn_string -lapr
-
-# The only difference from above is the "-DSVN_TEST" line
-propdump-test: propdump.c svn_error.o
-	@cc -o propdump propdump.c svn_error.o                        \
-                                    -DSVN_TEST                        \
-                                    -g -Wall -pthread                 \
-                                    -I$(SVN_INCLUDE)                  \
-                                    -I$(SVN_ERROR_INCLUDE)            \
-                                    -I$(APR_INCLUDE)                  \
-                                    -L$(APR_LIB)                      \
-                                    -L$(SVN_STRING_LIB)               \
-                                    -L$(SVN_ERROR_LIB)                \
-                                    -lsvn_string -lapr
-
-
-clean:
-	rm -f *.o *~ propdump
-
-test: propdump-test
-	@./propdump
-	@cat propdump.out
diff --git a/subversion/libsvn_wc/README b/subversion/libsvn_wc/README
deleted file mode 100644
index 2326a6d..0000000
--- a/subversion/libsvn_wc/README
+++ /dev/null
@@ -1,17 +0,0 @@
-This is the library described in the section "The working copy
-management library" of svn-design.texi.
-
-It performs local operations in the working copy, tweaking
-administrative files and versioned data.  It has no concept of network
-nor of server -- that's libsvn_cl's job.
-
---------------------8-<-------cut-here---------8-<-----------------------
-
-For now, I'll document the wc administrative (SVN/*) file formats
-here, instead of in ../../doc/client.texi.  Once the formats have
-stabilized and have code written around them, this documentation will
-be moved to client.texi.
-
-SO:
-
-(tomorrow: finish other half of propdump.c, start scenario list)
diff --git a/subversion/libsvn_wc/propdump.c b/subversion/libsvn_wc/propdump.c
deleted file mode 100644
index d75cb44..0000000
--- a/subversion/libsvn_wc/propdump.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * propdump.c :  dumping and undumping property lists from a file
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-/* The format of property files is:
- *
- *    N <nlength>
- *    name (a string of <nlength> bytes, followed by a newline)
- *    V <vlength>
- *    val (a string of <vlength> bytes, followed by a newline)
- *
- * For example:
- *
- *    N 5
- *    color
- *    V 3
- *    red
- *    N 11
- *    wine review
- *    V 376
- *    A forthright entrance, yet coquettish on the tongue, its deceptively
- *    fruity exterior hides the warm mahagony undercurrent that is the
- *    hallmark of Chateau Fraisant-Pitre.  Connoisseurs of the region will
- *    be pleased to note the familiar, subtle hints of mulberries and
- *    carburator fluid.  Its confident finish is marred only by a barely
- *    detectable suggestion of rancid squid ink.
- *    N 5 
- *    price
- *    V 8
- *    US $6.50
- *
- * and so on.
- *
- */
-
-
-
-
-/* 
- * This code is about storing property lists (hashes whose keys
- * and values are UTF-8 strings) to files, and reading them back
- * again.
- *
- * The format is designed for human readability; that's not
- * necessarily the most efficient thing, but debuggability is worth a
- * lot too.
- */
-
-
-
-#include <svn_types.h>
-#include <svn_string.h>
-#include <svn_error.h>
-#include <apr_hash.h>
-#include <apr_pools.h>
-#include <apr_file_io.h>
-
-
-
-
-/* kff todo: this is probably of general use. */
-
-#define MAX_BASE 16
-
-/* In BUF, convert signed integer NUM to a string, in base BASE.
- * Caller must already have allocated BUF.
- *
- * Return the number of bytes used, not including terminating NULL. 
- *
- * If bad base, or anything else is wrong, returns -1.
- */
-static size_t
-num_into_string (char *buf, int num, int base)
-{
-  char *p, *flip;
-  size_t len;
-  int negative = 0;
-
-  /* 
-   * p:     A moving index into buf, as we build the reversed string.
-   * flip:  Used when we unreversing the string.
-   */
-  
-  if ((base < 2) || (base > MAX_BASE))
-    return -1;
-
-  p = buf;
-
-  /* Handle trivial case first. */
-  if (num == 0)
-  {
-    *p++ = '0';
-    *p = '\0';
-    return (1);
-  }
-
-  /* Why do you always have to be so negative? */
-  if (num < 0)
-  {
-    negative = 1;
-    num = -num;
-  }
-
-  while (num > 0)
-  {
-    int i;
-
-    i = (num % base);
-
-    /* Ascii numerology -- skip across the gap between digits and letters. */
-    if (i > 9)
-      i += ('A' - ('9' + 1));
-
-    *p++ = '0' + i;   /* '0' + num  ==>  ascii value of num */
-    num /= base;
-  }
-
-  if (negative)
-    *p++ = '-';
-
-  /* Null terminate, and start the turnaround. */
-  *p = '\0';
-
-  /* Record the length now. */
-  len = (p - buf);
-
-  /* Now we have the string in reverse.  Flip it. */
-
-  flip = buf;
-  p--;
-  while (p > flip) 
-  {
-    char c;
-    c = *flip;
-    *flip++ = *p;
-    *p-- = c;
-  }
-
-  return (len);
-}
-
-
-/* kff todo: there's that pesky size_t to int conversion happening
- * again.  I think it's safe in the ranges we're dealing with here,
- * but this could be a gotcha... Jim, Greg, anyone want to comment?
- */
-static size_t      /* Returns number of bytes in result. */
-size_t_into_string (char *buf, size_t num)
-{
-  return num_into_string (buf, num, 10);
-}
-
-
-/* kff todo: again, of general utility */
-void
-guaranteed_ap_write (ap_file_t *dest, const void *buf, ap_ssize_t n)
-{
-  /* kff todo: waiting for answer back from svn-core about ssize_t */
-  ap_ssize_t nwritten;
-
-  nwritten = n;
-  do {
-    ap_write (dest, buf, &nwritten);
-  } while ((n - nwritten) > 0);
-}
-
-
-
-/* kff todo: should it return ap_status_t? */
-void
-svn_wc_proplist_write (svn_proplist_t *proplist, 
-                       svn_string_t *destfile_name)
-{
-  ap_file_t *destfile = NULL;   /* this init to NULL is actually important */
-  ap_status_t res;
-  ap_pool_t *pool = NULL;
-  ap_hash_index_t *this;      /* current hash entry */
-  
-  res = ap_create_pool (&pool, NULL);
-  if (res != APR_SUCCESS)
-    {
-      /* kff todo: need to copy CVS's error-handling better, or something.
-       * 
-       * Example: here we have a mem allocation error, probably, so
-       * our exit plan must include more allocation! :-)
-       * 
-       * Go through code of svn_handle_error, look for stuff like
-       * this.
-       */
-      exit (1);
-    }
-
-  /* kff todo: maybe this whole file-opening thing wants to be
-     abstracted?  We jump through these same hoops in svn_parse.c as
-     well, after all... */
-
-  res = ap_open (&destfile,
-                 svn_string_2cstring (destfile_name, pool),
-                 (APR_WRITE | APR_CREATE),
-                 APR_OS_DEFAULT,  /* kff todo: what's this about? */
-                 pool);
-
-  if (res != APR_SUCCESS)
-    {
-      svn_string_t *msg;
-      msg = svn_string_create ("svn_wc_proplist_write(): "
-                               "can't open for writing, file ",
-                               pool);
-      svn_string_appendstr (msg, destfile_name, pool);
-
-      /* Declare this a fatal error! */
-      svn_handle_error (svn_create_error (res, SVN_FATAL, msg, pool));
-    }
-
-  /* Else file successfully opened.  Continue. */
-
-  for (this = ap_hash_first (proplist); this; this = ap_hash_next (this))
-    {
-      void *key, *val;
-      size_t num_len;
-      char buf[100];   /* Only holds lengths expressed in decimal digits. */
-
-      /* Get this key and val. */
-      ap_hash_this (this, &key, NULL, &val);
-
-      /* Output the name's length, then the name itself. */
-      guaranteed_ap_write (destfile, "N ", 2);
-      num_len = size_t_into_string (buf, ((svn_string_t *) key)->len);
-      guaranteed_ap_write (destfile, buf, num_len);
-      guaranteed_ap_write (destfile, "\n", 1);
-      guaranteed_ap_write (destfile, 
-                           ((svn_string_t *) key)->data, 
-                           ((svn_string_t *) key)->len);
-      guaranteed_ap_write (destfile, "\n", 1);
-
-      /* Output the value's length, then the value itself. */
-      guaranteed_ap_write (destfile, "V ", 2);
-      num_len = size_t_into_string (buf, ((svn_string_t *) val)->len);
-      guaranteed_ap_write (destfile, buf, num_len);
-      guaranteed_ap_write (destfile, "\n", 1);
-      guaranteed_ap_write (destfile,
-                           ((svn_string_t *) val)->data,
-                           ((svn_string_t *) val)->len);
-      guaranteed_ap_write (destfile, "\n", 1);
-    }
-
-  res = ap_close (destfile);
-  if (res != APR_SUCCESS)
-    {
-      svn_string_t *msg = svn_string_create 
-        ("svn_parse(): warning: can't close file ", pool);
-      svn_string_appendstr (msg, destfile_name, pool);
-      
-      /* Not fatal, just annoying */
-      svn_handle_error (svn_create_error (res, SVN_NON_FATAL, msg, pool));
-    }
-  
-  ap_destroy_pool (pool);
-}
-
-
-#if 0
-svn_proplist_t *
-svn_wc_proplist_read (svn_string_t *propfile, apr_pool_t *pool)
-{
-  /* kff todo: fooo in progress */
-}
-#endif /* 0 */
-
-
-
-#ifdef SVN_TEST
-
-void
-main ()
-{
-  ap_pool_t *pool = NULL;
-  svn_proplist_t *proplist;
-
-  /* Our longest piece of test data. */
-  char *review =
-    "A forthright entrance, yet coquettish on the tongue, its deceptively\n"
-    "fruity exterior hides the warm mahagony undercurrent that is the\n"
-    "hallmark of Chateau Fraisant-Pitre.  Connoisseurs of the region will\n"
-    "be pleased to note the familiar, subtle hints of mulberries and\n"
-    "carburator fluid.  Its confident finish is marred only by a barely\n"
-    "detectable suggestion of rancid squid ink.";
-
-  ap_initialize ();
-  ap_create_pool (&pool, NULL);
-
-  proplist = ap_make_hash (pool);
-  
-  /* Fill it in with test data. */
-
-  ap_hash_set (proplist,
-               svn_string_create ("color", pool),
-               sizeof (svn_string_t *),
-               svn_string_create ("red", pool));
-  
-  ap_hash_set (proplist,
-               svn_string_create ("wine review", pool),
-               sizeof (svn_string_t *),
-               svn_string_create (review, pool));
-  
-  ap_hash_set (proplist,
-               svn_string_create ("price", pool),
-               sizeof (svn_string_t *),
-               svn_string_create ("US $6.50", pool));
-
-  svn_wc_proplist_write (proplist, 
-                         svn_string_create ("propdump.out", pool));
-
-  ap_destroy_pool (pool);
-}
-
-#endif /* SVN_TEST */
-
-
-
-
-/* -----------------------------------------------------------------
- * local variables:
- * eval: (load-file "svn-dev.el")
- * end:
- */
-
diff --git a/subversion/svn-dev.el b/subversion/svn-dev.el
deleted file mode 100644
index c9ecfd7..0000000
--- a/subversion/svn-dev.el
+++ /dev/null
@@ -1,142 +0,0 @@
-;;;; Emacs Lisp help for writing Subversion code. ;;;;
-
-;;; In C files, put something like this to load this file automatically:
-;;;
-;;; 
-;;;
-;;;
-
-
-(c-set-style "gnu")
-(setq indent-tabs-mode nil)
-
-(progn (message "loaded") (sit-for 1))
-
-
-;; Much of the APR documentation is embedded perldoc format.  The
-;; perldoc program itself sucks, however.  If you're the author of
-;; perldoc, I'm sorry, but what were you thinking?  Don't you know
-;; that there are people in the world who don't work in vt100
-;; terminals?  If I want to view a perldoc page in my Emacs shell
-;; buffer, I have to run the ridiculous command
-;;
-;;   $ PAGER=cat perldoc -t target_file
-;;
-;; (Not that this was documented anywhere, I had to figure it out for
-;; myself by reading /usr/bin/perldoc).
-;;
-;; Non-paging behavior should be a standard command-line option.  No
-;; program that can output text should *ever* insist on invoking the
-;; pager.
-;;
-;; Anyway, these Emacs commands will solve the problem for us.
-;;
-;; Acknowledgements:
-;; Much of this code is copied from man.el in the FSF Emacs 21.x
-;; sources.
-
-(defcustom svn-perldoc-overstrike-face 'bold
-  "*Face to use when fontifying overstrike."
-  :type 'face
-  :group 'svn-dev)
-
-(defcustom svn-perldoc-underline-face 'underline
-  "*Face to use when fontifying underlining."
-  :type 'face
-  :group 'svn-dev)
-
-
-(defun svn-perldoc-softhyphen-to-minus ()
-  ;; \255 is some kind of dash in Latin-N.  Versions of Debian man, at
-  ;; least, emit it even when not in a Latin-N locale.
-  (unless (eq t (compare-strings "latin-" 0 nil
-				 current-language-environment 0 6 t))
-    (goto-char (point-min))
-    (let ((str "\255"))
-      (if enable-multibyte-characters
-	  (setq str (string-as-multibyte str)))
-      (while (search-forward str nil t) (replace-match "-")))))
-
-
-(defun svn-perldoc-fontify-buffer ()
-  "Convert overstriking and underlining to the correct fonts.
-Same for the ANSI bold and normal escape sequences."
-  (interactive)
-  (message "Please wait, making up the page...")
-  (goto-char (point-min))
-  (while (search-forward "\e[1m" nil t)
-    (delete-backward-char 4)
-    (put-text-property (point)
-		       (progn (if (search-forward "\e[0m" nil 'move)
-				  (delete-backward-char 4))
-			      (point))
-		       'face svn-perldoc-overstrike-face))
-  (goto-char (point-min))
-  (while (search-forward "_\b" nil t)
-    (backward-delete-char 2)
-    (put-text-property (point) (1+ (point)) 'face svn-perldoc-underline-face))
-  (goto-char (point-min))
-  (while (search-forward "\b_" nil t)
-    (backward-delete-char 2)
-    (put-text-property (1- (point)) (point) 'face svn-perldoc-underline-face))
-  (goto-char (point-min))
-  (while (re-search-forward "\\(.\\)\\(\b\\1\\)+" nil t)
-    (replace-match "\\1")
-    (put-text-property (1- (point)) (point) 'face svn-perldoc-overstrike-face))
-  (goto-char (point-min))
-  (while (re-search-forward "o\b\\+\\|\\+\bo" nil t)
-    (replace-match "o")
-    (put-text-property (1- (point)) (point) 'face 'bold))
-  (goto-char (point-min))
-  (while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t)
-    (replace-match "+")
-    (put-text-property (1- (point)) (point) 'face 'bold))
-  (svn-perldoc-softhyphen-to-minus)
-  (message "Please wait, making up the page...done"))
-
-
-(defun svn-perldoc-cleanup-buffer ()
-  "Remove overstriking and underlining from the current buffer."
-  (interactive)
-  (message "Please wait, cleaning up the page...")
-  (progn
-    (goto-char (point-min))
-    (while (search-forward "_\b" nil t) (backward-delete-char 2))
-    (goto-char (point-min))
-    (while (search-forward "\b_" nil t) (backward-delete-char 2))
-    (goto-char (point-min))
-    (while (re-search-forward "\\(.\\)\\(\b\\1\\)+" nil t) 
-      (replace-match "\\1"))
-    (goto-char (point-min))
-    (while (re-search-forward "\e\\[[0-9]+m" nil t) (replace-match ""))
-    (goto-char (point-min))
-    (while (re-search-forward "o\b\\+\\|\\+\bo" nil t) (replace-match "o"))
-    (goto-char (point-min))
-    (while (re-search-forward "" nil t) (replace-match " ")))
-  (goto-char (point-min))
-  (while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t) (replace-match "+"))
-  (svn-perldoc-softhyphen-to-minus)
-  (message "Please wait, cleaning up the page...done"))
-
-
-;; Entry point to svn-perldoc functionality.
-(defun svn-perldoc (file)
-  "Run perldoc on FILE, display the output in a buffer."
-  (interactive "fRun perldoc on file: ")
-  (let ((outbuf (get-buffer-create 
-                 (format "*%s PerlDoc*" (file-name-nondirectory file))))
-        (savepg (getenv "PAGER")))
-    (setenv "PAGER" "cat")  ;; for perldoc
-    (save-excursion
-      (set-buffer outbuf)
-      (delete-region (point-min) (point-max))
-      (call-process "perldoc" nil outbuf nil (expand-file-name file))
-      (svn-perldoc-fontify-buffer)      
-      (svn-perldoc-cleanup-buffer)
-      ;; Clean out the inevitable leading dead space.
-      (goto-char (point-min))
-      (re-search-forward "[^ \i\n]")
-      (beginning-of-line)
-      (delete-region (point-min) (point)))
-    (display-buffer outbuf)))
-
diff --git a/subversion/svn-dev.sh b/subversion/svn-dev.sh
deleted file mode 100755
index f4b607c..0000000
--- a/subversion/svn-dev.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-echo ""
-echo "Note that you should source this script instead of running it, i.e.:"
-echo "   'source svn-dev.sh'"
-echo "because it needs to affect the parent's environment."
-echo ""
-
-if [ -d ${HOME}/projects/subversion ]; then
-   WC=${HOME}/projects/subversion
-elif [ -d ${HOME}/src/subversion ]; then
-   WC=${HOME}/src/subversion
-else
-   echo "I need to know where your working copy is."
-   echo "Please modify me accordingly (subversion/subversion/svn-dev.sh)."
-   exit 1
-fi
-
-LD_LIBRARY_PATH=.:${WC}/subversion/libsvn_string:${WC}/subversion/apr:${LD_LIBRARY_PATH}
-
-export LD_LIBRARY_PATH
diff --git a/subversion/svn_subr/parsetest/Makefile b/subversion/svn_subr/parsetest/Makefile
deleted file mode 100644
index 4be1d61..0000000
--- a/subversion/svn_subr/parsetest/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# Quick Hack Makefile
-
-SVN_INCLUDE = ../../include
-SVN_STRING_LIB = ../../libsvn_string
-
-APR_INCLUDE = ../../../apr/include
-APR_LIB = ../../../apr
-
-
-all: parsetest
-
-clean:
-	rm *.o *~ parsetest
-
-svn_error.o: ../svn_error.c ../svn_error.h
-	cc -c ../svn_error.c -g -Wall \
-	                     -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I..
-
-svn_parse.o: ../svn_parse.c ../svn_parse.h
-	cc -c ../svn_parse.c -g -Wall \
-	                     -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I..
-
-parsetest: parsetest.c svn_error.o svn_parse.o
-	cc -o parsetest parsetest.c svn_error.o svn_parse.o \
-                                    -g -Wall -pthread \
-                                    -I$(SVN_INCLUDE) -I$(APR_INCLUDE) -I.. \
-                                    -L$(APR_LIB) -L$(SVN_STRING_LIB) \
-                                    -lsvn_string -lapr
diff --git a/subversion/svn_subr/parsetest/configfile b/subversion/svn_subr/parsetest/configfile
deleted file mode 100644
index 512e39a..0000000
--- a/subversion/svn_subr/parsetest/configfile
+++ /dev/null
@@ -1,40 +0,0 @@
-
-# This is a sample Subversion config file
-
-# Nicely Formatted Part
-
-[Grades]
-
-Joe : A
-Mary : B-
-Alice : A+
-
-[Doughnuts]
-
-Powdered : $.39
-Chocolate : $1.59 a dozen
-
-
-# BaDlY FoRMatTed paRT
-
-    [foosection]    
-                giraffe         : 17
-  elephant:   green
-
-    # Yummy section
-[unfinished section
-
-
-
- [barsection   ]
-  3.14159  :pi
- eee : 2.71 
-        ghoti   :       phish
-
-# Really important section!
-
-syntaxerror
-
-   [    bazsection ]
-airplane:    bahamas   
-
diff --git a/subversion/svn_subr/parsetest/parsetest.c b/subversion/svn_subr/parsetest/parsetest.c
deleted file mode 100644
index 0609089..0000000
--- a/subversion/svn_subr/parsetest/parsetest.c
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/* Testing svn_parse() */
-
-#include <svn_parse.h>
-#include <stdio.h>
-
-int
-main ()
-{
-  ap_hash_t *configdata;
-  ap_pool_t *pool;
-  svn_error_t *error;
-
-  /* Initialize APR (Apache pools) */
-  if (ap_initialize () != APR_SUCCESS)
-    {
-      printf ("ap_initialize() failed.\n");
-      exit (1);
-    }
-  if (ap_create_pool (&pool, NULL) != APR_SUCCESS)
-    {
-      printf ("ap_create_pool() failed.\n");
-      exit (1);
-    }
-
-
-  /* Parse the file "./configfile" */
-
-  error = 
-    svn_parse (&configdata, svn_string_create ("configfile", pool), pool);
-
-  if (error) {
-    svn_handle_error (error);
-  }
-
-
-  /* Print out our configdata uber-hash */
-
-  svn_uberhash_print (configdata, stdout);
-
-
-  /* If we were an application using libsvn_svr, we would now pass
-     this uber-hash to svn_init() to get a `svn_policies_t' structure.
-     We would then use this structure for all our wrappered filesystem
-     calls.  */
-
-  /* Clean up our memory pool and apr */
-  ap_destroy_pool (pool);
-  ap_terminate ();
-
-  printf ("Test complete, exiting cleanly.\n\n");
-  return 0;
-}
diff --git a/subversion/svn_subr/svn_error.c b/subversion/svn_subr/svn_error.c
deleted file mode 100644
index 8fb9b2f..0000000
--- a/subversion/svn_subr/svn_error.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* svn_error:  common exception handling for Subversion
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-#include <svn_error.h>
-
-
-svn_error_t *
-svn_create_error (ap_status_t err,
-                  svn_boolean_t fatal, 
-                  svn_string_t *message,
-                  ap_pool_t *pool)
-{
-  svn_error_t *new_error = (svn_error_t *) ap_palloc (pool,
-                                                      sizeof(svn_error_t));
-
-  char *strerror_msg = ap_palloc (pool, 100);
-
-  new_error->err = err;
-  new_error->fatal = fatal;
-  new_error->message = message;
-  new_error->canonical_errno = ap_canonical_error (errno);
-
-  ap_strerror (err, strerror_msg, 100);
-
-  new_error->description = strerror_msg;
-
-
-  return new_error;
-}
-
-
-
-/* Very dumb "default" error handler that anyone can use if they wish.
-
-   Just prints out error, quits if the fatal flag is set.
-
- */
-
-
-
-void
-svn_handle_error (svn_error_t *err)
-{
-  printf ("\nsvn_error: errno %d, %s\n", 
-          err->err, err->description);
-  printf ("      ");
-  fflush (stdout);
-  svn_string_print (err->message, stderr, FALSE, TRUE);
-  printf ("\n");
-  fflush (stdout);
-
-  /* We can examine the APR canonicalized error here, make general
-     logical desciions if we wish.*/
-
-  /* We can also log errors here. */
-
-  if (err->fatal)
-    {
-      printf ("Fatal error, exiting.\n");
-      exit (err->err);
-    }
-}
-
-
-
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
diff --git a/subversion/svn_subr/svn_error.h b/subversion/svn_subr/svn_error.h
deleted file mode 100644
index 11c590c..0000000
--- a/subversion/svn_subr/svn_error.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* svn_error.h:  common exception handling for Subversion
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-
-#ifndef __SVN_ERROR_H__
-#define __SVN_ERROR_H__
-
-
-#include <svn_types.h>
-#include <svn_string.h>
-#include <apr_errno.h>     /* APR's error system */
-#include <stdio.h>
-
-
-
-/* 
-   Theoretically, this is the header file where we can define our own
-   *custom* Subversion errno's, specifically between the ranges of
-   APR_OS_START_USEERR and APR_OS_START_SYSERR (see apr_errno.h)
-*/
-
-#define SVN_ERR_NOT_AUTHORIZED                   (APR_OS_START_USEERR + 1)
-#define SVN_ERR_UNRECOGNIZED_SECTION             (APR_OS_START_USEERR + 2)
-#define SVN_ERR_MALFORMED_LINE                   (APR_OS_START_USEERR + 3)
-
-
-typedef struct svn_error_t
-{
-  ap_status_t err;             /* native OS errno */
-  svn_boolean_t fatal;         /* does the creator think this a fatal error? */
-  svn_string_t *message;       /* description from top-level caller */
-  char *description;           /* generic description from ap_strerror() */
-  int canonical_errno;         /* "canonicalized" errno from APR */ 
-
-} svn_error_t;
-
-
-/* svn_error_t constructor */
-
-#define SVN_FATAL     1    /* Use instead of TRUE or 1, for readability. */
-#define SVN_NON_FATAL 0    /* Use instead of FALSE or 0, for readability. */
-
-svn_error_t *svn_create_error (ap_status_t err,
-                               svn_boolean_t fatal,
-                               svn_string_t *message,
-                               ap_pool_t *pool);
-
-
-/* all routines call this */
-
-void svn_handle_error (svn_error_t *error);
-
-
-/* example usage:
-
-   if (bad_thing)
-     svn_handle_error (svn_create_error (errno, FALSE, pool));
-
- */
-
-
-
-
-#endif   /* __SVN_ERROR_H__ */
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end:
- */
diff --git a/subversion/svn_subr/svn_parse.c b/subversion/svn_subr/svn_parse.c
deleted file mode 100644
index 5d6c190..0000000
--- a/subversion/svn_subr/svn_parse.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/* svn_parse:  shared parsing routines for reading config files
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-#include <svn_parse.h>
-
-
-/* 
-   NOT EXPORTED.
-
-   Input:  an open file, a bytestring ptr, and a pool.
-
-   Returns:  either APR_EOF or APR_SUCCESS, and a filled-in bytestring
-             containing the next line of the file.
-
-         (Note that the same bytestring can be reused in multiple
-         calls to this routine, because the bytestring is cleared at
-         the beginning.)  
-*/
-
-
-ap_status_t
-svn__my_readline (ap_file_t *FILE, svn_string_t *line, ap_pool_t *pool)
-{
-  char c;
-  ap_status_t result;
-
-  svn_string_setempty (line);  /* clear the bytestring first! */
-
-  while (1)
-    {
-      result = ap_getc (&c, FILE);  /* read a byte from the file */
-
-      if (result == APR_EOF)  /* file is finished. */
-        {
-          return APR_EOF;
-        }
-      
-      if (c == '\n')          /* line is finished. */
-        {
-          /* store the newline in our bytestring (important!) */
-          svn_string_appendbytes (line, &c, 1, pool);
-
-          return APR_SUCCESS;
-        }
-      
-      else  /* otherwise, just append this byte to the bytestring */
-        {
-          svn_string_appendbytes (line, &c, 1, pool);
-        }
-    }  
-}
-
-
-
-/* 
-   NOT EXPORTED.
-
-   Input:  a bytestring, a handle for returning a bytestring, the
-           starting search offset, search character, and pool 
-
-   Returns:  1. the offset of the search character (-1 if no match)
-             2. a newly allocated substring in "substr" (NULL if no match)
-                * This substring starts at `start' and goes to the offset
-                * This substring has no whitespace at either end
-
-     If used repeatedly, this routine is like a poor man's `split' 
-     (combined with chomp).
-*/
-
-int
-svn__slurp_to (const svn_string_t *searchstr,
-           svn_string_t **substr,
-           const size_t start, 
-           const char sc,
-           ap_pool_t *pool)
-{
-  int i;
-
-  /* Create a new bytestring */
-  *substr = svn_string_create ("<nobody home>", pool);
-  svn_string_setempty (*substr);
-
-  for (i = start; i < searchstr->len; i++)
-    {
-      if (searchstr->data[i] == sc)
-        {
-          /*          printf ("found character '%c' at offset %d\n", sc, i);*/
-
-          svn_string_appendbytes (*substr,               /* new substring */
-                                  searchstr->data + start,/* start copy */
-                                  (i - start),        /* number to copy */
-                                  pool);
-          
-          svn_string_strip_whitespace (*substr);
-
-          return i;
-        }
-    }
-
-  /* If we get here, then the bytestring doesn't contain our search
-     character.  This is bogus. */
-  
-  *substr = NULL;
-  return -1;
-}
-
-
-
-
-
-/* 
-   svn_parse()                        (finally)
-
-
-   Input:  a filename and pool, pointer to a hash
-
-   Output: a pointer to a hash of hashes, all built within the pool
-
-   This routine parses a file which conforms to the standard
-   Subversion config file format (look in notes/).  
-
-   The hash returned is a mapping from section-names to hash pointers;
-   each hash contains the keys/vals for each section.  All
-   section-names, keys and vals are stored as svn_string_t pointers.
-   (These bytestrings are allocated in the same pool as the hashes.)
-
-   This routine makes no attempt to understand the sections, keys or
-   values.  :) */
-
-
-svn_error_t *
-svn_parse (ap_hash_t **uberhash, svn_string_t *filename, ap_pool_t *pool)
-{
-  ap_hash_t *current_hash;  /* the hash we're currently storing vals in */
-
-  ap_pool_t *scratchpool;
-  svn_string_t *currentline;
-  ap_status_t result;     
-  ap_file_t *FILE = NULL;
-
-  
-  /* Create our uberhash */
-  *uberhash = ap_make_hash (pool);
-
-  /* Open the config file */
-  result = ap_open (&FILE,
-                    svn_string_2cstring (filename, pool),
-                    APR_READ,
-                    APR_OS_DEFAULT, /*TODO: WHAT IS THIS? */
-                    pool);
-  
-  if (result != APR_SUCCESS)
-    {
-      svn_string_t *msg = svn_string_create 
-        ("svn_parse(): can't open for reading, file ", pool);
-      svn_string_appendstr (msg, filename, pool);
-
-      return (svn_create_error (result, SVN_NON_FATAL, msg, pool));
-    }
-
-  /* Create a scratch memory pool for buffering our file as we read it */
-  if ((result = ap_create_pool (&scratchpool, NULL)) != APR_SUCCESS)
-    {
-      return
-        (svn_create_error 
-         (result, SVN_FATAL, 
-          svn_string_create ("svn_parse(): fatal: can't create scratchpool",
-                             pool), pool));
-    }
-
-
-  /* Create a bytestring to hold the current line of FILE */
-  currentline = svn_string_create ("<nobody home>", scratchpool);
-
-
-  /* Now start scanning our file, one line at a time */
-
-  while (svn__my_readline (FILE, currentline, scratchpool) != APR_EOF)
-    {
-      char c;
-      size_t offset = svn_string_first_non_whitespace (currentline);
-
-      if (offset == currentline->len)
-        {
-          /* whole line is whitespace, read next line! */
-          continue;
-        }
-      
-      c = currentline->data[offset];  /* our first non-white character */
-
-      switch (c)
-        {
-        case '#': 
-          {
-            /* It's a comment line, so read next line! */
-            continue;
-          };
-
-        case '[':
-          {
-            /* It's a new section! */  
-
-            /* Create new hash to hold this section's keys/vals  */
-            ap_hash_t *new_section_hash = ap_make_hash (pool);  
-
-            /* Slurp up the section name */
-            svn_string_t *new_section;
-
-            svn__slurp_to (currentline,  /* search current line */
-                       &new_section,  /* place new substring here */
-                       offset + 1,    /* start searching past the '[' */
-                       ']',          /* look for this ending character */
-                       pool);        /* build our substring in this pool */
-           
-            if (new_section == NULL)  /* couldn't find a ']' ! */
-              {
-                svn_string_t *msg = 
-                  svn_string_create 
-                  ("svn_parse(): warning: skipping malformed line: ", pool);
-                svn_string_appendstr (msg, currentline, pool);
-
-                /* Instead of returning an error, just print warning */
-                svn_handle_error (svn_create_error 
-                                  (SVN_ERR_MALFORMED_LINE, SVN_NON_FATAL,
-                                   msg, pool));
-                break;
-              }
-                                        
-            /* printf ("Found new section: `");
-               svn_string_print (new_section, stdout, FALSE, FALSE);
-               printf ("'\n"); */
-
-            /* make this new hash the "active" hash for new keys/vals */
-            current_hash = new_section_hash;  
-
-            /* store this new hash in our uberhash */
-            ap_hash_set (*uberhash, 
-                         new_section->data,   /* key: bytestring */
-                         new_section->len,    /* the length of the key */
-                         new_section_hash);   /* val: ptr to the new hash */
-            break;
-          }
-
-        default:
-          {
-            /* If it's not a blank line, comment line, or section line,
-               then it MUST be a key : val line!  */
-
-            /* Slurp up the key by searching for a colon */
-
-            svn_string_t *new_key, *new_val;
-            size_t local_offset;
-
-            local_offset = svn__slurp_to (currentline, /* search current line */
-                                      &new_key,     /* put substring here */
-                                      offset,      /* start at this offset */
-                                      ':',         /* look for a colon */
-                                      pool);       /* build substr here */
-
-            if (new_key == NULL)  /* didn't find a colon! */
-              {
-                svn_string_t *msg = 
-                  svn_string_create 
-                  ("svn_parse(): warning: skipping malformed line: ", pool);
-                svn_string_appendstr (msg, currentline, pool);
-               
-                /* Instead of returning an error, just print warning */
-                svn_handle_error (svn_create_error 
-                                  (SVN_ERR_MALFORMED_LINE, SVN_NON_FATAL,
-                                   msg, pool));
-                break;
-              }
-
-            /* Now slurp up the value, starting just past the colon */
-
-            svn__slurp_to (currentline,
-                       &new_val,
-                       local_offset + 1,
-                       '\n',
-                       pool);
-
-            /*  printf ("Key: `");
-                svn_string_print (new_key, stdout, FALSE, FALSE);
-                printf ("'\n");
-                printf ("Val: `");
-                svn_string_print (new_val, stdout, FALSE, FALSE);
-                printf ("'\n"); */
-
-            /* Should we check for a NULL result from svn__slurp_to?
-               What are the chances it's not going to find a newline? :)
-            */
-
-            /* Store key and val in the currently active hash */
-            ap_hash_set (current_hash,
-                         new_key->data,       /* key: bytestring data */
-                         new_key->len,        /* length of key */
-                         new_val);            /* val: ptr to bytestring */
-            break;
-          }         /* default: */
-        }           /* switch (c) */
-    }               /* while (readline) */
-
-     
-  /* Close the file and free our scratchpool */
-
-  result = ap_close (FILE);
-  if (result != APR_SUCCESS)
-    {
-      svn_string_t *msg = svn_string_create 
-        ("svn_parse(): warning: can't close file ", pool);
-      svn_string_appendstr (msg, filename, pool);
-      
-      /* Not fatal, just annoying.  Send a warning instead returning error. */
-      svn_handle_error (svn_create_error (result, SVN_NON_FATAL, msg, pool));
-    }
-  
-  ap_destroy_pool (scratchpool);
-
-
-  /* Return success */
-
-  return 0;
-}
-
-
-
-
-
-/*  Convenience Routine:  pretty-print an ap_hash_t.
-
-     (ASSUMING that all keys and vals are of type (svn_string_t *) )
-
-*/
-
-void
-svn_hash_print (ap_hash_t *hash, FILE *stream)
-{
-  ap_hash_index_t *hash_index;   /* this represents a hash entry */
-  void *key, *val;
-  size_t keylen;
-  svn_string_t keystring, *valstring;
-
-  fprintf (stream, "\n-----> Printing hash:\n");
-
-  for (hash_index = ap_hash_first (hash);      /* get first hash entry */
-       hash_index;                             /* NULL if out of entries */
-       hash_index = ap_hash_next (hash_index)) /* get next hash entry */
-    {
-      /* Retrieve key and val from current hash entry */
-      ap_hash_this (hash_index, &key, &keylen, &val);
-
-      /* Cast things nicely */
-      keystring.data = key;
-      keystring.len = keylen;
-      keystring.blocksize = keylen;
-
-      valstring =  val;
-
-      /* Print them out nicely */
-      fprintf (stream, "Key: `");
-      svn_string_print (&keystring, stream, FALSE, FALSE);
-      fprintf (stream, "', ");
-
-      fprintf (stream, "Val: `");
-      svn_string_print (valstring, stream, FALSE, FALSE);
-      fprintf (stream, "'\n");
-    }
-  
-  fprintf (stream, "\n");
-}
-
-
-
-/* Convenience Routine:  pretty-print "uberhash" from svn_parse().
-
-   (ASSUMING that all keys are (svn_string_t *),
-                  all vals are (ap_hash_t *) printable by svn_hash_print() )
-*/
-
-
-void
-svn_uberhash_print (ap_hash_t *uberhash, FILE *stream)
-{
-  ap_hash_index_t *hash_index;   /* this represents a hash entry */
-  void *key, *val;
-  size_t keylen;
-  svn_string_t keystring;
-  ap_hash_t *valhash;
-
-  fprintf (stream, "\n-> Printing Uberhash:\n");
-
-  for (hash_index = ap_hash_first (uberhash);  /* get first hash entry */
-       hash_index;                             /* NULL if out of entries */
-       hash_index = ap_hash_next (hash_index)) /* get next hash entry */
-    {
-      /* Retrieve key and val from current hash entry */
-      ap_hash_this (hash_index, &key, &keylen, &val);
-
-      /* Cast things nicely */
-      keystring.data = key;
-      keystring.len = keylen;
-      keystring.blocksize = keylen;
-
-      valhash = val;
-
-      /* Print them out nicely */
-      fprintf (stream, "---> Hashname: `");
-      svn_string_print (&keystring, stream, FALSE, FALSE);
-      fprintf (stream, "'\n");
-
-      svn_hash_print (valhash, stream);
-    }
-  
-  fprintf (stream, "\nUberhash printing complete.\n\n");
-}
-
-
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
diff --git a/subversion/svn_subr/svn_parse.h b/subversion/svn_subr/svn_parse.h
deleted file mode 100644
index 7899da1..0000000
--- a/subversion/svn_subr/svn_parse.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* svn_parse:  shared parsing routines for reading config files
- *
- * ================================================================
- * Copyright (c) 2000 Collab.Net.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement: "This product includes
- * software developed by Collab.Net (http://www.Collab.Net/)."
- * Alternately, this acknowlegement may appear in the software itself, if
- * and wherever such third-party acknowlegements normally appear.
- * 
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- * 
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of Collab.Net.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- * 
- * This software may consist of voluntary contributions made by many
- * individuals on behalf of Collab.Net.
- */
-
-
-
-#ifndef __SVN_PARSE_H__
-#define __SVN_PARSE_H__
-
-#include <svn_types.h>
-#include <svn_string.h>
-#include <svn_error.h>
-#include <apr_pools.h>
-#include <apr_hash.h>
-#include <apr_file_io.h>
-#include <ctype.h>           /* isspace() */
-
-
-/* 
-   General Utility -- reads a config file, returns a hash of hashes.
-
-   For file format, see `notes/svn-config-files'
-*/
-
-svn_error_t * svn_parse (ap_hash_t **returnhash, 
-                         svn_string_t *filename, 
-                         ap_pool_t *pool);
-
-
-/* Prints a hash, assuming all keys/vals are (svn_string_t *) */
-
-void svn_hash_print (ap_hash_t *hash, FILE *stream);
-
-/* Prints uberhash returned from svn_parse(),
-   assuming each key is (svn_string_t *)
-   and each val is printable by svn_hash_print(). */
-
-void svn_uberhash_print (ap_hash_t *uberhash, FILE *stream);
-
-
-#endif /* __SVN_PARSE_H__ */
-
-
-/* 
- * local variables:
- * eval: (load-file "../svn-dev.el")
- * end: */
-
diff --git a/subversion/tests/libsvn_string/stringtest.c b/subversion/tests/libsvn_string/stringtest.c
deleted file mode 100644
index 57796e3..0000000
--- a/subversion/tests/libsvn_string/stringtest.c
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/* Stupid program to test Subversion's bytestring library (libsvn_string).
-   Ben Collins-Sussman, (C) 2000 Collab.Net */
-
-#include <stdio.h>
-#include <svn_string.h>   /* This includes <apr_*.h> */
-
-int
-main ()
-{
-  svn_string_t *a, *b, *c;
-  char *msg;
-  ap_pool_t *pglobal;
-
-  /* Initialize APR (Apache pools) */
-  if (ap_initialize () != APR_SUCCESS)
-    {
-      printf ("ap_initialize() failed.\n");
-      exit (1);
-    }
-  if (ap_create_pool (&pglobal, NULL) != APR_SUCCESS)
-    {
-      printf ("ap_create_pool() failed.\n");
-      exit (1);
-    }
-
-
-  /* Create a bytestring from a null-terminated C string */
-  a = svn_string_create ("hello", pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Alternate: create a bytestring from a part of an array */
-  b = svn_string_ncreate ("a longish phrase of sorts", 16, pglobal);
-  svn_string_print (b, stdout, TRUE, TRUE);
-
-  /* Append b to a, growing a's storage if necessary */
-  svn_string_appendstr (a, b, pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Do it again, with an inline string creation for kicks. */
-  svn_string_appendstr (a, svn_string_create(" xtra", pglobal), pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Alternate:  append a specific number of bytes */
-  svn_string_appendbytes (a, "some bytes to frob", 7, pglobal);
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Duplicate a bytestring, then compare if they're equal */
-  c = svn_string_dup (b, pglobal);
-  svn_string_print (c, stdout, TRUE, TRUE);
-
-  printf ("comparison of c and b is: %d\n", svn_string_compare (c, b));
-  printf ("comparison of a and b is: %d\n", svn_string_compare (a, b));
-
-  /* Set a bytestring to NULL, and query this fact. */
-  svn_string_setempty (c);
-  svn_string_print (c, stdout, TRUE, TRUE);
-  
-  printf ("is C empty? : %d\n", svn_string_isempty (c));
-  printf ("is A empty? : %d\n", svn_string_isempty (a));
-  
-  /* Fill a bytestring with hash marks */
-  svn_string_fillchar (a, '#');
-  svn_string_print (a, stdout, TRUE, TRUE);
-
-  /* Return a C string from a bytestring */
-  msg = svn_string_2cstring (b, pglobal);
-  printf ("The C string returned is: %s\n", msg);
-
-  /* Compare the C string to the original bytestring */
-  printf ("comparison of b and msg is: %d\n", 
-          svn_string_compare_2cstring (b, msg));
-  printf ("comparison of b and `foogle' is: %d\n", 
-          svn_string_compare_2cstring (b, "foogle"));
-  printf ("comparison of b and `a longish phrase' is: %d\n", 
-          svn_string_compare_2cstring (b, "a longish phrase"));
-
-  /* Free our entire memory pool when done. */
-  ap_destroy_pool (pglobal);
-  ap_terminate();
-
-  return 0;
-}
diff --git a/subversion/tests/libsvn_vcdiff/README b/subversion/tests/libsvn_vcdiff/README
deleted file mode 100644
index 7e4f849..0000000
--- a/subversion/tests/libsvn_vcdiff/README
+++ /dev/null
@@ -1,17 +0,0 @@
-Test 0:
-    The example text in the vdelta paper.  Use target only, no source.
-
-Test 1:
-    The insertion of "xxxx" in between `l' and `m' in the alphabet.
-
-Test 2:
-    Transposition of the alphabet around the point between `l' and `m'.
-
-Test 3:
-    Insertion of `x' after `d', and another after `t'.
-
-Test 4:
-    Insertion of `x' after `c' (not yet 4 bytes!), and another after `t'.
-
-Test 5:
-    Random text, no relation to source.
diff --git a/subversion/tests/libsvn_vcdiff/source.txt b/subversion/tests/libsvn_vcdiff/source.txt
deleted file mode 100644
index e85d5b4..0000000
--- a/subversion/tests/libsvn_vcdiff/source.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcdefghijklmnopqrstuvwxyz
\ No newline at end of file
diff --git a/subversion/tests/libsvn_vcdiff/target0.txt b/subversion/tests/libsvn_vcdiff/target0.txt
deleted file mode 100644
index 75103d4..0000000
--- a/subversion/tests/libsvn_vcdiff/target0.txt
+++ /dev/null
@@ -1 +0,0 @@
-bcdeabcdabcdabcdefgh
\ No newline at end of file
diff --git a/subversion/tests/libsvn_vcdiff/target1.txt b/subversion/tests/libsvn_vcdiff/target1.txt
deleted file mode 100644
index aee5576..0000000
--- a/subversion/tests/libsvn_vcdiff/target1.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcdefghijklxxxxmnopqrstuvwxyz
\ No newline at end of file
diff --git a/subversion/tests/libsvn_vcdiff/target2.txt b/subversion/tests/libsvn_vcdiff/target2.txt
deleted file mode 100644
index 09ac678..0000000
--- a/subversion/tests/libsvn_vcdiff/target2.txt
+++ /dev/null
@@ -1 +0,0 @@
-mnopqrstuvwxyzabcdefghijkl
\ No newline at end of file
diff --git a/subversion/tests/libsvn_vcdiff/target3.txt b/subversion/tests/libsvn_vcdiff/target3.txt
deleted file mode 100644
index 9c55093..0000000
--- a/subversion/tests/libsvn_vcdiff/target3.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcdxefghijklmnopqrstxuvwxyz
\ No newline at end of file
diff --git a/subversion/tests/libsvn_vcdiff/target4.txt b/subversion/tests/libsvn_vcdiff/target4.txt
deleted file mode 100644
index 1276c69..0000000
--- a/subversion/tests/libsvn_vcdiff/target4.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcxdefghijklmnopqrstxuvwxyz
\ No newline at end of file
diff --git a/subversion/tests/libsvn_vcdiff/target5.txt b/subversion/tests/libsvn_vcdiff/target5.txt
deleted file mode 100644
index e13b35b..0000000
--- a/subversion/tests/libsvn_vcdiff/target5.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is not a related file at all -- it's just a random piece of text,
-though if by some chance I did happen to insert some of the alphabet
-into it, such as "ghijklmnopqrs", it should be expressed as a COPY
-instruction.  We'll see.
diff --git a/www/cvs_help.html b/www/cvs_help.html
deleted file mode 100644
index dc97a04..0000000
--- a/www/cvs_help.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<P><B><FONT SIZE="3" COLOR="#00315A" FACE="Arial, Helvetica,
-sans-serif">Subversion CVS Access:</FONT></B> </P>
-
-<P><B><FONT COLOR="#00315A" FACE="Arial, Helvetica, sans-serif">CVS
-Repository:</FONT>
-</B><FONT SIZE="1"></FONT></P>
-<P>
-To access the CVS source code repository use the following CVSROOT: 
-<br>
-&nbsp;&nbsp;&nbsp;<b><tt>:pserver:guest@cvs.tigris.org:/cvs</tt></b>
-</P>
-<p>
-You may also use the login "guest" with password "guest" to gain read-only
-CVS access.  If you have been given write access to the CVS repository,
-then replace "guest@cvs.tigris.org" with your own login (e.g.,
-"my_login@cvs.tigris.org") and use your own tigris user password.
-</p>
-
-<p>
-The module you should checkout is "subversion/src".  That is the top-level module
-that contain the entire source code tree for the Subversion project.
-</p>
-
-<P>
-The way most people contribute changes is to email a "patch" to one of the
-"module owners".  These are developers who are
-responsible for certain sections of the code (called modules).  There is a
-list of module owners <a
-href="http://subversion.tigris.org/project_memebers.html">here</a>.
-Once a module owner sees your contribibution, he or she will review it and
-integrate it into the source code repository.
-</P>
-
-
-<p>
-For more information on using CVS, documentation, and CVS clients,
-click on the "Tool Docs" menu at left and select the "Source/CVS" option. Or,
-click <a href="http://www.tigris.org/tools/cvs.html">here</a>.
-</p>
-
diff --git a/www/index.html b/www/index.html
deleted file mode 100644
index 09353fc..0000000
--- a/www/index.html
+++ /dev/null
@@ -1,269 +0,0 @@
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<img src="subversion.jpg">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="000033"
-FACE="Arial, Helvetica, sans-serif">
-Version Control Rethought
-</font></STRONG></TD>
-</TR>
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-
-<p>
-The goal of the Subversion project is to build a version control system
-that is a compelling replacement for CVS in the open source community.
-This system will have the following features:
-</p>
-
-<ul>  <!-- list of features -->
-
-<li><strong>All current CVS features.</strong>
-    <p>
-    CVS is good, as far as it goes, so we want to keep
-    feature-compatibility: versioning, folding of non-conflicting
-    changes, detection of conflicting changes, branching, merging,
-    historical diffs, log messages, line-by-line history (<tt>cvs
-    annotate</tt>), etc.
-    <p>
-    Generally, Subversion's conceptual interface to a particular
-    feature will be as similar to CVS's as possible, except where
-    there's a compelling reason to do otherwise.
-</li>
-
-<p>
-
-<li><strong>Directories, renames, and file meta-data are versioned.</strong>
-    <p>
-    Lack of these features is the most common complaint against CVS --
-    basically, CVS only versions file contents.  Subversion will handle
-    directory changes, file renames, and permission and other
-    meta-data changes as well.
-</li>
-
-<p>
-
-<li><strong>Symbolic links, etc, are supported</strong>
-    <p>
-    Subversion will handle symbolic links ("shortcuts"), multiple hard
-    links, and other special file types as long as their semantics are
-    compatible with version control.
-</li>
-
-<p>
-
-<li><strong>Commits are truly atomic.</strong>
-    <p>
-    No part of a commit takes effect until the entire commit has
-    succeeded.  Revision numbers are per-commit, not per-file.
-</li>
-
-<p>
-
-<li><strong>Internationalization</strong>
-    <p>
-    Subversion will have I18N support -- commands, user messages, and
-    errors can be customized to the appropriate human language at
-    build-time.  Also, there will be I18N support for the <i>names</i>
-    as well as the contents of versioned entities.
-</li>
-
-<p>
-
-<li><strong>Progressive multi-lingual support</strong>
-    <p>
-    In order to support keyword expansion and platform-dependent
-    line-ending conversion, CVS makes a distinction between text and
-    binary files, and treats the text files specially.
-    <p>
-    Subversion will make the same distinction, but with a more generous
-    notion of what constitutes a text file: not only ASCII, but UTF-*
-    encodings of Unicode too.  Not all such encodings will be handled
-    as text in the first release of Subversion, but the support will
-    become more complete over time.  UTF-8 is the first priority.
-</li>
-
-<p>
-
-<li><strong>Branching and tagging are cheap (constant time) operations</strong>
-    <p>
-    There is no reason for these operations to be expensive, so they
-    aren't.
-    <p>
-    Branches and tags will both be implemented in terms of an
-    underlying "clone" operation.  A clone is just an alias,
-    optionally within the project's namespace, pointing at a specific
-    revision of an existing project.  An clone takes up a small,
-    constant amount of space.  All clones are tags; if you start
-    committing on one, then it's a branch as well.
-    <p>
-    (This does away with CVS's "branch-point tagging", by removing the
-    artificial distinction that made branch-point tags necessary in
-    the first place.)
-</li>
-
-<p>
-
-<li><strong>Repeated merges are handled gracefully</strong>
-    <p>
-    Subversion will have a way of remembering what has been merged, so
-    that repeated merges from the same source do not require careful
-    human calculation to avoid spurious conflicts (anyone who's done
-    repeated CVS merges knows what we're talking about).
-    <p>
-    (There are some theoretical problems with remembering merge
-    sources -- knowing where the merged data came from implies some
-    sort of universal repository registry.  However, our first goal is
-    to make sure that multiple merges from branches made <i>in the
-    same repository as the original project</i> compound gracefully.
-    Remembering merges from remote sources is more difficult, due to
-    the difficulty of distinguishing remote sources, but there are
-    good "90%" solutions that will work in practice).
-</li>
-
-<p>
-
-<li><strong>Support for plug-in client side diff programs</strong>
-    <p>
-    Subversion knows how to show diffs for text files, and also gives
-    the user the option to plug in external diff programs for any kind
-    of file.  The external program need merely conform to some simple
-    invocation interface (i.e., "<tt>diffprog file1 file2
-    [file3...]</tt>", where the various files might be different
-    revisions of the same file).
-</li>
-
-<p>
-
-<li><strong>Natively client/server</strong>
-    <p>
-    Subversion is designed to be client/server from the beginning; thus
-    avoiding some of the maintenance problems which have plagued CVS.
-</li>
-
-<p>
-
-<li><strong>Client/server protocol sends diffs in both directions</strong>
-    <p>
-    The network protocol uses bandwidth efficiently by transmitting
-    diffs in both directions whenever possible (CVS sends diffs from
-    server to client, but not client to server).  The protocol will
-    support compression too, of course.
-</li>
-
-<p>
-
-<li><strong>Costs are proportional to change size, not project size</strong>
-    <p>
-    In general, the time required for an Subversion operation is
-    proportional to the size of the <i>changes</i> resulting from that
-    operation, not to the absolute size of the project in which the
-    changes are taking place.  This is a property of the Subversion
-    repository model.
-</li>
-
-</ul>  <!-- end list of features -->
-
-<br>
-</table>
-
-
-<P>
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Project Status
-</font></STRONG></TD>
-</TR>
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-
-<p>
-
-We now have a technical specification written.  It explains not only
-the general concepts behind Subversion, but gives programmers an idea
-of the various APIs coming down the pipe.  If you're at all curious
-about how Subversion works, please <a href="project_docs.html">read
-it</a>.
-
-<p>
-
-A core programming team is working full time towards a "proof of
-concept" release in September.  Volunteer help is also welcome (and
-indeed will eventually be necessary, but we're not asking for heavy
-community involvement until we have some running code to show).
-
-<p>
-
-If you'd like to follow our discussion, <a
-href="project_mail.html">join the mailing lists</a>. 
-
-<br>
-</TABLE>
-
-<p>
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%">
-
-<TR>
-<TD WIDTH="45%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-News
-</font></STRONG></TD>
-
-<TD WIDTH="10"></TD>
-
-<TD WIDTH="45%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Upcoming Events
-</font></STRONG></TD>
-</TR>
-
-<TR>
-<TD WIDTH="50%" HEIGHT="100" VALIGN="top" BGCOLOR="#f0f0f0">
-<FONT SIZE="2">
-02/29/00 -&nbsp;Project Subversion Launched.
-<br>
-02/29/00 -&nbsp;Karl Fogel joins project.
-<br>
-03/06/00 -&nbsp;Draft requirements specification written
-<br>
-04/24/00 -&nbsp;Ben Collins-Sussman joins project.
-<br>
-05/08/00 -&nbsp;Jim Blandy (of RedHat) joins project.
-<br>
-06/02/00 -&nbsp;First detailed design specification released
-<br>
-06/05/00 -&nbsp;Coding begins.
-</FONT>
-</TD>
-
-
-<TD WIDTH="10" HEIGHT="100"></TD>
-
-<TD WIDTH="50%" HEIGHT="100" VALIGN="top" BGCOLOR="#f0f0f0">
-<FONT SIZE="2">
-09/01/00 -&nbsp;"Hello world" release planned.
-</FONT>
-</TD>
-
-
-
-</TD>
-
-
-</TR>
-</TABLE>
-</P>
-
-<BR>
-
-
-
-
-
-
diff --git a/www/project_admin.html b/www/project_admin.html
deleted file mode 100644
index 1493d0e..0000000
--- a/www/project_admin.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<P>
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Project Subversion Administration
-</font></STRONG></TD>
-</TR>
-
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-<P>
-
-
-<p>
-If you administative privileges on this project, you can login
-<a href="http://subversion.tigris.org/helm/TLogin">here</a>.
-</p>
-
-<p>
-
-The administrative pages allow project leaders to
-</p>
-<ul>
-<li>grant cvs commit privileges,</li>
-<li>create or modify CVS modules,</li>
-<li>create or modify mailing lists,</li>
-<li>configure other hosted tools as they become available.</li>
-</ul>
-
-
-<p>
-To get involved, join the developer's mailing list by sending email to
-<a href="dev-subscribe@subversion.tigris.org">dev-subscribe@subversion.tigris.org</a>. 
-</p>
-
-<br>
-</td>
-</tr>
-</TABLE>
-<BR>
diff --git a/www/project_bugs.html b/www/project_bugs.html
deleted file mode 100644
index b2ff720..0000000
--- a/www/project_bugs.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Project Subversion Bug Tracking
-</font></STRONG></TD>
-</TR>
-
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-
-<P>Since we are still sketching requirements, there are no bugs to
-track yet.  This is not the place to report bugs with CVS.</p>
-
-      <UL>
-
-        <LI><A href="/bugs/enter_bug.cgi?product=subversion">Enter a new bug</A> 
-
-        <LI><A href="/bugs/query.cgi?product=subversion&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED">Query the bug database</A> 
-
-        <LI><A href="/bugs/reports.cgi?product=subversion&output=most_doomed&links=1&banner=1">View bug database metrics</A> </LI></UL>
-
-<BR>
-</TD>
-</TR>
-</TABLE>
-<BR>
diff --git a/www/project_docs.html b/www/project_docs.html
deleted file mode 100644
index 6755219..0000000
--- a/www/project_docs.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<P>
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Project Subversion Documents
-</font></STRONG></TD>
-</TR>
-
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-<P>
-
-
-<p>
-Please read our design document.  We recommend PostScript or PDF; the
-HTML is certainly readable, but is not as pretty as the others and its
-table of contents appears at the end instead of the beginning.
-</p>
-
-<ul>
-<li><a href="svn-design.ps">Design Doc (PostScript)</a></li>
-<li><a href="svn-design.pdf">Design Doc (PDF)</a></li>
-<li><a href="svn-design.html">Design Doc (HTML)</a></li>
-</ul>
-
-<p> In the future, this is where you will find:
-</p>
-<ul>
-<li>users manuals, and</li>
-<li>standard specifications.</li>
-</ul>
-
-
-<p>
-To get involved, join the developer's mailing list by sending email to
-<a href="dev-subscribe@subversion.tigris.org">dev-subscribe@subversion.tigris.org</a>. 
-</p>
-
-<br>
-</td>
-</tr>
-</TABLE>
-<BR>
diff --git a/www/project_footer.html b/www/project_footer.html
deleted file mode 100644
index 59e3efe..0000000
--- a/www/project_footer.html
+++ /dev/null
@@ -1 +0,0 @@
-<!-- no project specific footer -->
diff --git a/www/project_header.html b/www/project_header.html
deleted file mode 100644
index 499b603..0000000
--- a/www/project_header.html
+++ /dev/null
@@ -1 +0,0 @@
-<!-- no project specific header -->
diff --git a/www/project_mail.html b/www/project_mail.html
deleted file mode 100644
index 1d0f1ce..0000000
--- a/www/project_mail.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Subversion Project Mailing Lists
-</font></STRONG></TD>
-</TR>
-
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-
-      <P>To subscribe or unsubscribe, send an email message to the email 
-      address associated with each "subscribe" or "unsubscribe" line
-      below.  The subject line and message body are not used, so you may leave them
-      blank.</P>
-      <p>You must subscribe before you can post to any of these
-      lists.  This rule helps to prevent spam.</p>
-      <P>
-      <TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
-        
-        <TR>
-          <TD><tt><b>announce@subversion</b></tt>: Announcements of new releases and other major project 
-            events.<br>
-            
-          Archive: <A
-          href="http://subversion.tigris.org/subversion-announce">view on-line</A>
-          <br>
-
-          Subscribe: <A 
-            href="mailto:announce-subscribe@subversion.tigris.org">announce-subscribe@subversion.tigris.org</A> 
-          <br>
-
-          Unsubscribe: <A 
-            href="mailto:announce-unsubscribe@subversion.tigris.org">announce-unsubscribe@subversion.tigris.org</A> 
-          <br>
-          </TR>
-        <TR>
-          <TD>&nbsp;</TD>
-        </TR>
-
-        <TR>
-          <TD><tt><b>dev@subversion</b></tt>: The main list for developers to discuss development 
-            issues, and general discussion of requirements for version control in open
-            source projects.<br>
-            
-          Archive: <A
-          href="http://subversion.tigris.org/subversion-dev">view on-line</A>
-          <br>
-
-          Subscribe: <A 
-            href="mailto:dev-subscribe@subversion.tigris.org">dev-subscribe@subversion.tigris.org</A> 
-          <br>
-
-          Unsubscribe: <A 
-            href="mailto:dev-unsubscribe@subversion.tigris.org">dev-unsubscribe@subversion.tigris.org</A> 
-          <br>
-          </TR>
-        <TR>
-          <TD>&nbsp;</TD>
-        </TR>
-
-        <TR>
-          <TD><tt><b>bugs@subversion</b></tt>: Automated notifications of
-          bugs reported against subversion and discussion of those bugs.<br>
-            
-          Archive: <A
-          href="http://subversion.tigris.org/subversion-bugs">view on-line</A>
-          <br>
-
-          Subscribe: <A 
-            href="mailto:bugs-subscribe@subversion.tigris.org">bugs-subscribe@subversion.tigris.org</A> 
-          <br>
-
-          Unsubscribe: <A 
-            href="mailto:bugs-unsubscribe@subversion.tigris.org">bugs-unsubscribe@subversion.tigris.org</A> 
-          <br>
-        </TR>
-        <TR>
-          <TD>&nbsp;</TD>
-        </TR>
-
-        <TR>
-          <TD><tt><b>cvs@subversion</b></tt>: Automated notifications of source code 
-        changes and discussion of those changes.<br>
-            
-          Archive: <A
-          href="http://subversion.tigris.org/subversion-cvs">view on-line</A>
-          <br>
-
-          Subscribe: <A 
-            href="mailto:cvs-subscribe@subversion.tigris.org">cvs-subscribe@subversion.tigris.org</A> 
-          <br>
-
-          Unsubscribe: <A 
-            href="mailto:cvs-unsubscribe@subversion.tigris.org">cvs-unsubscribe@subversion.tigris.org</A> 
-          <br>
-        </TR>
-
-        
-        </TABLE></P>
-<br>
-</td>
-</tr>
-</TABLE>
diff --git a/www/project_members.html b/www/project_members.html
deleted file mode 100644
index d2993bf..0000000
--- a/www/project_members.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<P>
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Subversion Participants
-</font></STRONG></TD>
-</TR>
-
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-<P>
-
-
-<p>We are putting together a coalition of developers interested
-in building a better version control system for the open source
-community.  The following members are already working toward that
-goal.  We welcome your participation.
-</p>
-
-<p>
-To get involved, join the developer's mailing list by sending email to
-<a href="dev-subscribe@subversion.tigris.org">dev-subscribe@subversion.tigris.org</a>. 
-</p>
-
-<P>
-The first thing you should do when you join the list is to post an
-introduction message that tells the group:
-</P>
-
-<ul>
-<li>who you are, </li>
-<li>your interest in version control,</li>
-<li>the role you would like to play in the project
-(e.g., do you want to just discuss ideas, write code, do design, or
-be an early users?), and</li>
-<li>the rough level of effort you expect to put (e.g., mainly lurking,
-a few postings a week, a few evenings, several hours a week, this is
-part of your full-time job).</li>
-</ul>
-
-<P>
-See the mailing list <a
-href="http://subversion.tigris.org/subversion-dev/">archive</a> to see how
-others have introduced themselves.
-</P>
-
-<br>
-</td>
-</tr>
-</TABLE>
-<BR>
diff --git a/www/project_nav.html b/www/project_nav.html
deleted file mode 100644
index 0773b90..0000000
--- a/www/project_nav.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<A class="nav" HREF="/index.html">Project&nbsp;Home</A><BR>
-<A class="nav" HREF="/project_source.html">Source/CVS</A><BR>
-<A class="nav" HREF="/project_bugs.html">Bugs</A><BR>
-<A class="nav" HREF="/project_members.html">Members</A><BR>
-<A class="nav" HREF="/project_docs.html">Docs</A><BR>
-<A class="nav" HREF="/project_mail.html">Mailing&nbsp;Lists</A><BR>
-<A class="nav" HREF="/project_admin.html">Admin</A><BR>
diff --git a/www/project_source.html b/www/project_source.html
deleted file mode 100644
index 69ec0d6..0000000
--- a/www/project_source.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
-
-<TR>
-<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
-FACE="Arial, Helvetica, sans-serif">
-Project Subversion Source Code
-</font></STRONG></TD>
-</TR>
-
-
-<TR>
-<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">
-
-
-<P>
-There is no subversion source code yet.  But there will soon be a set of
-design documents, database schemes, etc.
-</P>
-
-<P>
-There are three ways to access the source code:
-</P>
-      <ul>
-      <li>
-      <a href="http://www.tigris.org/download/download_source.html">
-      Download a source code archive</a>
-      </li>
-      <li>
-      <a href="/cvs_help.html">
-      Access source code with CVS</a>
-      </li>
-      <li>
-      <a href="/source/browse/subversion/">
-      Browse CVS source code over the web</a>
-      </li>
-      </ul>
-<br>
-</td>
-</tr>
-</TABLE>
-<BR>
diff --git a/www/subversion.jpg b/www/subversion.jpg
deleted file mode 100644
index 6ac2d3e..0000000
--- a/www/subversion.jpg
+++ /dev/null
Binary files differ