2007-08-02  Gurer
	* tst-iks.c: test for new append/prepend functions added.

2007-08-01  Gurer
	* Patch from Benjamin Bennett:
	  base64.c: fix padding
	* sha.c: 64bit fix (long -> int)
	* iks.c: new funcs: iks_append, iks_prepend
	  iks_append_cdata, iks_prepend_cdata
	* stream.c: iks_sasl_challenge split into smaller functions
	  This change also fixes some possible leaks which are detected
	  by Coverity Inc's excellent Prevent product.

2006-05-19  Gurer
	* dom.c: fixed (size % FILE_IO_BUFFER_SIZE) problem in iks_load()

2005-08-29  Gurer
	* Patch from Jakob Schroter:
	  iksemel.texi: small documentation update
	* Patch from Darrell Karbott:
	  sax.c: use fixed instead of floating point (for arm)
	  mark static const data properly
	  explicit char* uchar* casts

2004-08-14  Gurer
	* version bump to 1.3
	* patch from Roland Hedberg
	  io-posix.c: io_connect now tries all addrinfo values.

2004-08-05  Gurer
	* iksemel.h: ikstransport cosmetic cleanup.
	* iksemel.texi: mingw notice added.

2004-07-30  Gurer
	* iksemel.h: get_fd and connect_fd is removed from ikstransport api.
	  ikstransport structure now has an abi_version field.
	  new IKS_TRANSPORT_V1 macro defined for using in abi_version.
	* io-posix.c: modified for new ikstransport scheme.
	* stream.c: iks_connect_fd and iks_fd now works directly.

2004-07-30  Gurer
	* sax.c: bug in parser's utf8 checker fixed.

2004-07-28  Gurer
	* stream.c: buffer size corrected in iks_send_header.

2004-07-26  Gurer
	* iksroster.c: "iksroster" resource is default, if not given by user.
	* stream.c: iks_start_tls() cosmetic cleanup.

2004-07-23  Gurer
	* iks.c: ikstack value of attribute nodes wasnt set correctly. fixed.

2004-07-21  Gurer
	* patch from Benoit Laniel
	  configure.ac: objdump check for cross compiling
	  iksroster.c, perf.c, io-unix.c: WIN32 is changed to _WIN32

2004-07-19  Gurer
	* iks.c: iks_child() verifies that node is a tag before accessing
	  children field in struct.

2004-07-13  Gurer
	* stream.c: if no realm is provided in sasl, server name is used

2004-06-14  Gurer
	* iksemel.texi: sasl&tls funcs documented a bit.

2004-06-14  Gurer
	* patch from Darrell Karbott
	  iksemel.h: async events are passed as a struct
	    ikstransport struct is defined as const
	    server_name is passed to the iksTConnectAsync
	    additional network error codes
	  stream.c: iks_recv() checks if iks_disconnect called during parsing

2004-05-22  Gurer
	* iks.c: iks_cdata() returns value for attributes
	* sax.c: utf8 stack_pos fix

2004-05-19  Gurer
	* io-posix.c: now compiles without getaddrinfo()

2004-05-05  Gurer
	* sax.c: iks_parser_stack() added, returns the ikstack of an iksparser
	* stream.c: ikstranport api is now passing iksparser instead of ikstack
	  to the connect functions.

2004-05-05  Gurer
	* stream.c: patch from Rafal Piotrowski
	  iks_sasl_challenge() cleanup

2004-05-01  Gurer
	* iksroster.c: sasl auth finally works.

2004-04-30  Gurer
	* iksroster.c: cleanup.

2004-04-30  Gurer
	* Another patch from Rafal Piotrowski
	  tst-md5.c: test code for md5.c functions, and new utils:
	  iks_make_resource_bind(), iks_make_session(), iks_stream_features()
	* iksemel.h: iks_auth_sasl renamed to iks_start_sasl
	   IKS_AUTH_SASL_PLAIN renamed to IKS_SASL_PLAIN
	   IKS_AUTH_SASL_DIGEST_MD5 renamed to IKS_SASL_DIGEST_MD5

2004-04-29  Gurer
	* Patch from Rafal Piotrowski applied
	  md5 and base64 api, and sasl auth support!
	* iksroster.c: --sasl option added.

2004-04-27  Gurer
	* io-unix.c: renamed to io-posix.c, it runs on windows with mingw
	  so less confusion this way.
	* stream.c: warnings cleaned up, iks_connect_async_with finished.

2004-04-26  Gurer
	* iksemel.h: new error code IKS_NET_TLSFAIL
	* stream.c: tls code cleaned up.
	* configure.ac: new option --disable-default-io
	  you can use it to disable compiling of io-unix.c if you dont need
	  it and want to use your own socket code.

2004-04-13  Gurer
	* iksemel.h: new error code IKS_NET_NOTSUPP
	* stream.c: not supported error code is supported now :)
	* sha.c: free() is replaced with iks_free()

2004-04-10  Gurer
	* stream.c: saga continues, tls is working on ikstransport.
	* iksroster.c: --log option for turning on xml debug output.

2004-04-10  Gurer
	* stream.c: second part:
	  it is using iks_default_transport (provided by io-unix.c) now.
	  all network code is removed.
	  iks_connect_with() allows you to use your own transport code.
	  (note: testing needed and async api is not fully implemented yet)

2004-04-10  Gurer
	* iksemel.h: first part of the long expected socket abstraction.
	  many thanks to Darrell Karbott for ideas and a sample implementation.
	* io-unix.c: new file, transport code for unix sockets.

2004-03-22  Gurer
	* dom.c: iks_load() now frees the resources if iks_parse returns error.

2004-03-19  Gurer
	* stream.c: iks_is_secure() added, checks that if a stream is secured.
	* iksroster.c: cleanup a bit.

2004-03-18  Gurer
	* iksroster.c, stream.c: secure connection works, but api isn't
	stablized yet, and some cleanup needed.

2004-03-08  Gurer
	* iksroster.c: new option for secure connection, needs testing.

2004-03-01  Gurer
	* sax.c: second part, IKS_NOMEM conditions are checked properly.

2004-02-29  Gurer
	* iksemel.h: stddef.h is included to get size_t for C apps.
	* sax.c: first part of the memory usage optimization.

2004-02-27  Gurer
	* iksemel.h: cstddef is included for C++ apps to provide size_t type.

2004-02-25  Gurer
	* src/sha.c: iks_sha_print() uses lowercase hex numbers now.

2004-02-10  Gurer
	* src/iks.c: Tag, cdata and attribute structures have different sizes now.
	  Saves 8 bytes per tag, 20 bytes per cdata/attrib on 32 bit archs.

2004-02-10  Gurer
	* src/ikstack.c: iks_stack_stats is dead, long live iks_stack_stat.
	* tools/iksperf.c: dom test now iks_delete()s the parsed tree
		and even measures the freeing time.

2004-02-07  Gurer
	* src/ikstack.c: iks_stack_stats returns total values.

2004-02-06  Gurer
	* src/ikstack.c: new stack implementation, all callers changed too.

2004-02-03  Gurer
	* test/tst-ikstack.c: tst-ikstack-str.c moved here.
	* test/tst-ikstack.c: alignment test added.
	* src/ikstack.c: iks_stack_alloc() always returns aligned memory.
	* src/ikstack.c: patch from Ilkka Lyytinen:
		iks_stack_strecat alignment fix.

2003-10-16  Gurer
	* src/iks.c: escape_size off by one bug in iks_string() is fixed.
	* src/dom.c: iks_load and iks_save uses (const char *) for filename now.

2003-10-09  Gurer
	* src/Makefile.am: --no-undefined changed to -no-undefined
	* stream.c: data->current is NULLed *before* calling the hook,
	  so you can keep the node in memory when you are returning
	  an error from your hook.
	* tools/perf.c: GetTickCount is used instead of gettimeofday on Windows.

2003-10-08  Gurer
	* dom.c: iks_save is not using unnecessary object stack.
	* A great patch from Benoit Laniel <nels@pgroupe.net> applied.
	This allows iksemel to be compiled on Windows with MinGW.
	Detailed changes:
	* configure.ac: check for st_blksize in stat structure (which is
	  missing in Windows). Check for libwsock32, the Windows socket library.
	  The check is only done when compiling for a MinGW host to avoid
	  problems when having Wine libraries.
	* src/Makefile.am: add -no-undefined to libiksmel_la_LDFLAGS to enable
	  DLL compilation on Windows.
	* src/stream.c: include winsock.h and do not include posix socket
	  headers on Windows. Use closesocket instead of close on Windows.
	  Check socket errors with '== -1' instead of '< 0'.
	* tools/ikslint.c: conditional use of st_blksize.
	* tools/iksroster.c: add Winsock initialization and cleanup code
	  (needed to use sockets on Windows).

2003-10-05  Gurer
	* utility.c: iks_set_mem_funcs() added.
	* iksperf.c: --memdbg option added.
	* tools/perf.c: mallinfo stuff removed.

2003-09-15  Gurer
	* version bump to 1.2
	* stream.c: iks_start_tls() added with the help of gnutls library.

2003-09-11  Gurer
	* stream.c: iks_connect_via() added. it can send a different name to the
	  connected server. useful for connecting the server via a ssh tunnel.
	  suggestion and patch by Wolf Bergenheim.

2003-09-09  Gurer
	* stream.c: network buffer is allocated inside the stack at the first
	  connect call, and not free()d with reset.

2003-09-08  Gurer
	* sax.c: iks_parser_reset() no longer free()s allocated buffers.
	  it also calls the delete hook of the extending parser.
	* dom.c: reset zeroes internal state.
	* stream.c: resetting the parser is now equal to iks_disconnect ()

2003-09-07  Gurer
	* sax.c: malloc()s changed with iks_malloc()
	  attr buffer is not freed after each tag. minor speedup.

2003-09-05  Gurer
	* ikslint.c: tag histogram is per file now instead of global.

2003-09-04  Gurer
	* iksemel.texi: resource links moved to here from HACKING.
	* utility.c: iks_malloc(), iks_free() wrappers added.
	  all malloc() and free() calls are changed with them.

2003-09-03  Gurer
	* ikslint.c: can display tag usage histogram now.

2003-09-03  Gurer
	* ikslint.c: benchmark options removed. reading from stdin supported.
	  reports tag mismatchs.
	* dom.c: iks_tree() added. converts a string into a tree.
	* iksemel.texi: iks_tree, iks_set_size_hint, iks_copy documented.

2003-09-03  Gurer
	* iks.c: iks_string() now malloc()s memory if no stack is given.
	  it also runs *very* fast now.

2003-09-02  Gurer
	* iksperf.c: errors are redirected to stderr again.
	  tree serialization test added.

2003-08-31  Gurer
	* dom.c: default chunk size is increased. iks_set_size_hint()
	  function added. you can give an approximate size for the
	  file, and a better chunk size is selected for memory allocations.
	  greatly speeds up dom parser.
	* iksperf.c: dom test uses iks_set_size_hint(). small fixes.
	* iksperf.c: sha1 test.

2003-08-31  Gurer
	* tools/iksperf.c: new tool for speed/memory usage testing.
	* iksemel.texi: a new chapter about iksemel development added.

2003-08-23  Gurer
	* doc/iksemel.texi: document license changed to GPL from GNU Free
	  Documentation License.
	* ikstack.c: iks_stack_strecat() added.
	* iks.c: iks_insert_cdata() modified to use iks_stack_strecat().
	  this greatly reduces memory usage when data is parsed in very small
	  chunks or cdata sections contains lots of escaped characters.

2003-07-29  Gurer
	* iksemel.h: iks_connect_tcp(), iks_send_stream() and
	  iks_send_raw() now take const arguments.
	* iks.c: iks_root() added.
	* iks.c: iks_string() works on cdata nodes.

2003-07-20  Gurer
	* iks.c: iks_copy() bug is fixed.

2003-07-15  Gurer
	* dom.c: whitespace outside of markup won't added to the tree.
	* stream.c: iks_connect_fd correctly sets SF_FOREIGN flag.
	* src/Makefile.am: libtool revision bump, forgot that while doing 1.1 bump.
	* iks.c: new iks_copy() and iks_copy_within() functions.

2003-06-29  Gurer
	* 1.0 release!
	* version bump to 1.1

2003-06-26  Gurer
	* ikstack.c: reallocation bug in iks_stack_strcat() fixed.
	* ikstack.c: iks_stack_strcat() and iks_stack_strcatv() now returns
	  a non-zero value if there isn't enough memory.
	* iks.c: new functions: iks_next_tag(), iks_prev_tag(), iks_first_tag().
	* iks.c: new function: iks_find_with_attrib().

2003-06-19  Gurer
	* stream.c: new function iks_connect_fd ().
	* stream.c: iks_send_header () is modified.

2003-06-17  Gurer
	* sax.c: tags without attributes which contain whitespace before '>'
	  parsed correctly.

2003-06-16  Gurer
	* stream.c: node isn't deleted automatically after hook anymore.
	* iksroster.c: upload is working.

2003-06-15  Gurer
	* tools/iksroster.c: new goodie. backups your jabber roster.
	* iks.c: iks_insert_attrib() can be used for modifying and deleting attributes.
	* stream.c: return value of the stream hook is actually used.

2003-06-13  Gurer
	* iksemel.texi: more text.
	* iksemel.h: iksFilterHook now returns 'int' instead of 'enum iksfilterret'.

2003-06-12  Gurer
	* iksemel.h: iksStreamHook's return type is changed 'enum ikserror' to int.
	  type is changed 'enum iksnodetype' to int.
	* iksemel.texi: more text.

2003-06-09  Gurer
	* doc/iksemel.texi: restructured.
	* iksemel.h: 'enum ikstagtype' type is changed to 'int' in iksTagHook.
	  'enum ikserror' changed to 'int' in iksTagHook, iksCDataHook, iks_parse().
	  'enum iksfileerror' changed to 'int' in iks_load() and iks_save().
	  'enum iksneterror' changed to 'int' in stream.c functions.
	  common error values removed from iksfileerror and iksneterror.
	* dom.c: iks_load() checks the return value of iks_parse() now.

2003-06-02  Gurer
	* filter.c: rules now has priority:
	  id > from = from_partial > ns > subtype > type

2003-05-29  Gurer
	* jabber.c: fixes and API cleanup:
	  iks_id_new() now sets id->partial field.
	  pak->to field removed.
	  'to' argument added to iks_make_s10n()
	  'type' and 'to' arguments removed from iks_make_pres()
	  const keyword added to prototypes.
	* filter.c: TO rule removed, FROM_PARTIAL rule added.

2003-05-26  Gurer
	* sax.c: new function iks_nr_lines(), returns how much lines parsed.
	* ikslint.c: document's line number is displayed in errors. some cleanup.

2003-05-26  Gurer
	* sax.c: a bug in C_TAG context is found and fixed.

2003-05-24  Gurer
	* sax.c: saga continues:
	  UTF8 validity checks added. You can't feed famous 0xC0 0x80 anymore.
	  <![CDATA[ ... ]]> sections are recognized.
	* tst-sax.c: related tests added as usual.

2003-05-23  Gurer
	* tools/ikslint.c: new goodie, checks xml files for well-formedness.
	* sax.c: Attribute values can contain ' or " if they are quoted within
	  the other quote character.

2003-05-23  Gurer
	* tst-sax.c: framework and tests for badly formed xml.
	* sax.c: more cleanup, and well-formedness checks:
	  iks_parse() argument for xml data is now const char*.
	  0xFF, 0xFE and 0x00 bytes are invalid utf8.
	  Close tags have no attributes.
	  Single tags must end with '/>'.

2003-05-22  Gurer
	* sax.c: some cleanup.
	* sax.c: iks_get_udata() renamed to iks_user_data()
	* sax.c: new function iks_nr_bytes(), returns how much bytes parsed.
	* tst-sax.c, tst-dom.c: uses iks_nr_bytes() when reporting bugs.

2003-05-22  Gurer
	* iks.c: iks_string() was printing siblings of the toplevel tag. fixed.
	  thanks David Yitzchak Cohen for reporting.
	* HACKING: URLs of related standart documents added.
	* tst-filter.c: new framework.
	* tst-dom.c: new framework and tests.

2003-05-20  Gurer
	* sax.c: '>' is valid and '--' is invalid inside the comments.

2003-05-17  Gurer
	* HACKING: explanation of iksemel's design goals added.
	* sax.c: parser now ignores PIs, markup and comments.
	* dom.c, stream.c: PI checks removed.

2003-05-16  Gurer
	* sax.c: several fixes.
	* tst-sax.c: attribute checks and more tests.

2003-05-16  Gurer
	* tst-sax.c: improved framework and more tests.
	* finetune.h: DEFAULT_DOM_CHUNK_SIZE, DEFAULT_STREAM_CHUNK_SIZE
	* stream.c, dom.c: now uses chunk size values from finetune.h

2003-05-07  Gurer
	* complete redesign here.

2002-01-16  Evan Prodromou <mr.bad@pigdog.org>
	* test/testiks.c: removed buggy unit test for previous entry,
	  since I couldn't figure out why it segfaulted. Will investigate
	  and fix later.
	
2002-01-07  Evan Prodromou <mr.bad@pigdog.org>
	* core.c: fixed off-by-one bug with reallocation of attributes.
	* test/testiks.c: added test for above bug.
	
2002-12-20  Evan Prodromou <mr.bad@pigdog.org>
	* COPYING: New version of the LGPL.
	* INSTALL: New FSF install info. Both of these were updated by autoreconf.
		
2002-12-12  Evan Prodromou <mr.bad@pigdog.org>
	* include/iksemel.h: added id to Jabber packets.
	* src/jabber.c: get ID in Jabber packets.

2002-12-9  Evan Prodromou <mr.bad@pigdog.org>
	* doc/ROADMAP: added this file.

2002-11-28  Evan Prodromou <mr.bad@pigdog.org>
	* io.c: broke out stream initialization to its own function, in
	  anticipation of supporting other kinds of streams.
	* iksemel.h: added new stream function.

2002-11-15  Evan Prodromou <mr.bad@pigdog.org>
	* configure.in: added check to see if you want to build with dmalloc.
	* parser.c: make Jabber parsers use pool memory. Also, make Jabber
	  parser delete packets after posting them to callback function.
	* convert.c: made converter used pool memory.
	* iks.c: fixed iks constructor/destructor so they mark pool owner
	  and only delete the pool if the iks is the owner.
	* sha.c: changed sha objects to use pool memory.
	
2002-11-07  Evan Prodromou <mr.bad@pigdog.org>

	* ikspool.c: added ALIGN_ON, ALIGNED(), *_OFFSET macros.
	  Try to make sure that all pointer math is done with
	  aligned (val % ALIGN_ON == 0) values.
	  Fixed bug in _realloc() where incoming size wasn't
	  checked for alignment, size.
	* testpool.c: added tests for absurdly small values
	  of page size, alloc size, realloc size.

2002-11-06  Evan Prodromou <mr.bad@pigdog.org>

	* iksemel.h: added IKS_NS_XROSTER, for jabber:x:roster NS.

2002-11-06  Evan Prodromou <mr.bad@pigdog.org>

	* core.c: changed iks_parse to use realloc instead of
	  malloc, copy, free.

2002-11-04  Evan Prodromou <mr.bad@pigdog.org>

	* ikspool.c: For iks_pool_realloc, made it call _alloc if the
	  passed-in pointer is NULL. This is the way realloc() works.
        * testpool.c: added a test for the above condition.
	
2002-11-04  Evan Prodromou <mr.bad@pigdog.org>

	* ikspool.c: Added some comments.

2002-11-03  Evan Prodromou <mr.bad@pigdog.org>

	* iksid.c: changed contract for iks_id_new, iks_id_set: const char *
	           instead of char *.
	* iksemel.h: changed prototypes for iks_id_new, iks_id_set.

2002-11-03  Evan Prodromou <mr.bad@pigdog.org>

	* iksid.c: fixed bug in iks_id_set causing segfault if field was
	           previously NULL.
	* testid.c: added tests to check for above bug.
	* test/.cvsignore: Ignore testpool and testid.
	
2002-11-03  Evan Prodromou <mr.bad@pigdog.org>

	* iksid.c: fixed bug in iks_id_new with partial (no resource) IDs.
	* testid.c: added tests to check for above bug.
	
2002-11-03  Evan Prodromou <mr.bad@pigdog.org>

	* iksid.c: moved iksid functions to this file from jabber.c.
	           added new function, iks_id_delete, to delete an iksid.
		   implemented iks_id_set.
		   made iks_id_new use iks_pool_set_owner if it creates a pool.
		   changed iks_id_new so it doesn't write on src.
	* iksemel.h: added prototype for iks_id_delete.
	* testid.c: created basic unit tests for iksid.	

2002-11-02  Evan Prodromou <mr.bad@pigdog.org>

	* Added the beginnings of unit tests for memory allocation.
	  More needed.
		
2002-11-02  Evan Prodromou <mr.bad@pigdog.org>

	* ikspool.c: added new best-fit memory allocation functions.
	* utility.c: removed old memory-allocation functions.
	* iksemel.h: added new memory allocation functions:
	  	     iks_pool_owner
		     iks_pool_set_owner
		     iks_pool_realloc
		     iks_pool_calloc
		     iks_pool_free
		     redefined ikspool structure for hiding.

2001-06-08  Gurer <palpa@jabber.org>

	* core.c: xml unescaping.

2001-06-07  Gurer <palpa@jabber.org>

	* convert.c: small bugfix in iks_conv_new()

2001-05-25  Gurer <palpa@jabber.org>

	* configure.in: now checks gcc before adding -Wall to CFLAGS
	* io.c: iks_recv() and iks_load() fixes.

2001-05-24  Gurer <palpa@jabber.org>

	* configure.in: more checks.
	* include/common.h: deals with including right files depending on
	  configure checks, source files include this.

2001-05-22  Gurer <palpa@jabber.org>

	* jabber.c: iks_id_printx() added
	            new packet type IKS_PAK_ERROR for <stream:error>
	* sha.c: iks_sha_delete() added
	* configure.in, parser.c: optional expat support

2001-05-21  Gurer <palpa@jabber.org>

	* parser.c: restructured. now parsers are allocated via iks_sax_new
	* core.c: actual parser is moved to here
	* convert.c: charset conversion stuff moved to here
	* utility.c: alignment bug of iks_pool_alloc fixed

2001-04-10  Gurer <palpa@jabber.org>

	* utility.c: charset convertion functions now use a static buffer and
	             require string length argument

2001-03-19  Gurer <palpa@jabber.org>

	* utility.c: iks_conv_from/to renamed to iks_conv_utf8/locale
	             iconv fixes

2001-03-17  Gurer <palpa@jabber.org>

	* utility.c: iks_conv_from/to() fixes
	* doc/: a bit more documentation

2001-03-15  Gurer <palpa@jabber.org>

	* jabber.c: iks_packet() uses the namespace of first child in IQ packets
	            instead of looking for a <query> tag.
	* utility.c: iks_conv_ functions for utf8<->locale convertions

2001-03-13  Fabien Ninoles <fabien@debian.org>

	* autogen.sh: Well, autoconf are better run into the src directory, indeed.
	* configure.in: Add iconv check, ripped from gabber.
	* src/Makefile.am: Oops! include dir is in srcdir!

2001-03-12  Gurer <palpa@jabber.org>

	* doc/ : new files, basic structure for documentation

2001-03-09  Fabien Ninoles <fabien@debian.org>

	* utility.c: Correction to the unescape routine... which do some
	             mess around with indexes.
	* parser.c: Unescape CDATA et attrib value before inserting them.
	* autogen.sh: Enable running it from a build directory.

2000-03-07  Gurer <palpa@jabber.org>

	* iks.c: iks_string() now works correctly with a NULL ikspool argument
	* io.c: return code check of fputs in iks_save() is corrected
	* doc: new directory
	* doc/main.texi: started documenting the library API in Texinfo format

2000-03-05  Gurer <palpa@jabber.org>

	* iksemel.h: IKS_NS_ macros synced with latest jabber server
	* parser.c: attribute buffer grow bug fixed
	* iks.c: iks_hide() implemented

2000-02-01  Gurer <palpa@jabber.org>

	* parser.c: attribute pointers bug fixed
	* testiks.c: new test for parser

2000-01-30  Gurer <palpa@jabber.org>

	* configure.in, makefile.am, test/makefile.am: make check target works now
	* testiks.c: new tests for string and xml node functions

2000-01-28  Gurer <palpa@jabber.org>

	* test: new directory
	* test/testiks.c: a simple program for self testing
	* makefile.am, src/makefile.am: fixes for make dist

2000-01-25  Gurer <palpa@jabber.org>

	* sha.c: sha1 implementation
	* jabber.c: iks_make_auth() now supports digest auth

2000-01-16  Gurer <palpa@jabber.org>

	* io.c: iks_load() implemented

2000-12-20  Gurer <palpa@jabber.org>

	* initial commit.
