Sun Nov  8 13:11:07 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* parser.[ch]: Added interfaces allowing to specify a SAX
	  handler before parsing.

Sun Nov  8 09:39:17 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* parser.c: redirrect all errors reporting through the SAX
	  error function

Wed Nov  4 14:21:54 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* entities.c: rather use HAVE_SNPRINTF and not depend on glib
	* libtool, tlmain ...: update of the libtool files

1998-11-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* entities.c: Use g_snprintf insteda of snprintf.

Sun Nov  1 14:31:06 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* entities.c, parser.c: debug and cleanup of CharRef handling/saving.
	  added ent5 test for this purpose.
	* parser.c, parser.h: formatting, comments and UTF-8 planning.

Fri Oct 30 01:36:52 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* parser.c: fixed? a strange error due to compression on a GWP
	  document.

Thu Oct 29 00:48:45 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* tree.[ch]: bug fixing
	* entities.[ch]: defined a specific type for predefined entities
	* doc/xml.html: more documentation on the library, how to use it,
	  overview of the interfaces.

Wed Oct 28 17:56:35 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* tree.[ch]: more cleanup on the API, made the tree mor conformant.

Tue Oct 27 17:54:00 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* tree.c: corrected a small bug
	* doc/xml.html: continuing writing documentation.

Tue Oct 27 17:54:00 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* debugXML.h debugXML.c: added debugging utilities.
	* tester.c: added --debug switch.
	* tree.c: patched an incorrect node->type assignment.
	* parser.c: formatting, ensure that node->doc != NULL in attributes

Tue Oct 27 01:15:39 EST 1998 Daniel Veillard <Daniel.Veillard@w3.org>

        * parser.[ch] SAX.c tree.[ch]: large amount of changes to improve
          entity support and provide an internal representation close to
          DOM one (entity ref nodes, and attribute value as tree). I tried
          to preserve the interface but this will surely break some apps
          (I have to change rpm2html/rpmfind for example). I had to change
	  two interfaces, and the generated tree is somewhat different.
	* doc/* : started documenting the XML library, the tree and
	  DOM/Corba. This is a first step.

Sat Oct 24 14:23:51 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* parser.c: Set up the fonctions comment block, boring but useful.
	* parser.h, SAX.c, parser.c: now attributes are processed through
	  the SAX interface. The problem is that my SAX interface diverged
	  quite a bit from the original one, well this is not an official
	  spec, and translating it from Java to C is hairy anyway...

Tue Oct 20 02:11:21 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* SAX.c, entities.c, tree.c, encoding.c, error.c: Set up the
	  fonctions comment block, boring but useful.

Sun Oct 18 20:40:58 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* encoding.[ch], Makefile.am: Added the UTF-8, UTF-16 and ISO Latin 1
	  conversion routines. However they are not yet used to convert the
	  inputs. The core will run with UTF-8.

Sun Oct 18 15:08:19 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* tree.c : make sure that the type id is properly set-up when
	  a new object is allocated, needed for DOM.

Sat Oct 17 02:43:21 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* tree.h, tree.c: Ok, the main objects in the tree will be native
	  corba objects, it costs 8 bytes per Node, Attribute and Document
	  but it simplifies the Corba integration a lot (no extra interface
	  objects to allocate/free).

Tue Oct 13 21:46:57 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* tree.h, tree.c, parser.c: added prev and doc pointers to Node,
	  and changed NODEs contants for conformity with DOM Level 1

Wed Oct  7 23:42:46 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* added hooks to keep track of servants when creating objects
	  xmlDoc and xmlNode (for Corba export).

Sun Oct  4 03:18:09 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* added xml-config script.

Thu Oct  1 16:22:37 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

        * autogen.sh : applied patch from Frederic Devernay <devernay@istar.fr>
	  to autoupdate libtool and automake conf files.

1998-09-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* Makefile.am: Use '?' to separate the sed
	commands as ',' is used when people pass -Wl,something.


Thu Sep 24 15:13:29 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* tree.c, tree.h: added a per-document compression interface.

Tue Sep 22 20:47:38 EDT 1998

	* tree.c, tree.h: added saving with compression and added interfaces
	  to control the compression level (xmlGetCompressMode,
	  xmlSetCompressMode) and a new save to filename function (xmlSaveFile).

Mon Sep 21 20:11:13 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>

	* parser.c: corrected a loop for files of size 0

1998-08-20  Raja R Harinath  <harinath@cs.umn.edu>

	* error.h: New file.  Contains prototyes from `error.c'.

Thu Aug 13 19:02:34 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.am (xmlincdir): New macro.
	(xmlinc_HEADERS): Renamed from include_HEADERS.

Thu Aug 13 00:40:14 EDT 1998  Daniel Veillard <Daniel.Veillard@w3.org>

	* applied small patch on numeric entities from
	  Christopher Blizzard <blizzard@appliedtheory.com>

Wed Aug 12 23:12:58 EDT 1998  Daniel Veillard <Daniel.Veillard@w3.org>

	* New release 0.2, removed the old xml_* files so that it's
	    coherent with the other CVS base (W3C), far better conformance
	    to standard, new namespaces, decent entities support, beginning
	    of a SAX-like interface. Nearly nothing left intact, even the
	    test examples ...

1998-07-30  Christopher Blizzard  <blizzard@appliedtheory.com>

	* .cvsignore: Add .deps dir

Sun Jul 26 17:29:52 EDT 1998  Daniel Veillard <Daniel.Veillard@w3.org>

	* xml_tree: changed the memory allocation scheme for name in xmlNewNode

Sun Jul 26 00:17:51 EDT 1998  Daniel Veillard <Daniel.Veillard@w3.org>

        * configure.in: added test for CPP
	* AUTHORS, Changelog: the original ones didn't get commited but the
	    glib ones instead, fixed.
	* Makefile.am: corrected an error in library naming

Fri Jul 24 16:47:14 1998  Daniel Veillard <Daniel.Veillard@w3.org>

	* integrated code developped at W3C
	* changed the original Copyright
	* migrated to automake
	* prefixed the filenames by xml_ to avoid filename clashes

