Version 1.2.45 (27 January 2020)
--------------

	Use autoconf's TAP support for running tests (Makefile.am,
	configure-gtk2.ac, configure-gtk3.ac; c++-gtk-utils/Makefile.am;
	docs/Makefile.am; tests/Makefile.am, tests/extension/Makefile.am,
	tests/extra/Makefile.am; removed - Makefile.decl; added -
	glib-tap.mk, tap-driver.sh, tap-test, m4/glibtests.m4)

	Cater for guile-3.0 declarative modules (acinclude.m4;
	extension.h).

	Suppress GStaticRecMutex deprecation warnings (acinclude.m4,
	configure-gtk2.ac, configure-gtk3.ac; cgu_config.h.in, mutex.h).

	Update documentation (doxygen.main.in; async_queue.h,
	gerror_handle.h).

Version 1.2.44 (24 October 2018)
--------------

	Set FD_CLOEXEC on pipe file descriptors for Notifier objects
	(notifier.cpp).

	Add support for guile-3.0 (acinclude.m4; extension.h).

	Correct documentation (extension.h).

	Provide a configuration file suitable for doxygen-1.8.14 and
	include generated .js files in the distribution tarball
	(docs/Doxyfile.in, docs/Makefile.am).

Version 1.2.43 (24 December 2017)
--------------

	Update documentation (README; doxygen.main.in, async_channel.h,
	fdstream.h, gstream.h, task_manager.h, task_manager.cpp).

Version 1.2.42.1 (23 November 2016)
----------------

	Explicitly qualify malloc() as being within the std namespace
	(async_channel.h).

	Update documentation (async_channel.h).

Version 1.2.42 (9 November 2016)
--------------

	Provide Cgu::AsyncChannel class (c++-gtk-utils/Makefile.am;
	doxygen.main.in; async_channel.h, async_queue.h;
	tests/Makefile.am, tests/test_async_channel.cpp).

	Provide TaskManager::get_max_tasks() method with documentation on
	rate limiting (task_manager.h, task_manager.cpp).

	Zero initialise the character buffer in Reassembler class
	(reassembler.h).

	Adjust configuration macros to enable use of Cgu::Extension with
	guile-2.2 (acinclude.m4; cgu_config.h.in, extension.h).

	Increase coverage of io_watch tests (tests/test_iowatch.cpp).

	Update documentation (task_manager.h, thread.h).

Version 1.2.41 (9 May 2016)
--------------

	Use glib's unix fd implementation for io_watch where glib >= 2.36
	is installed, unless otherwise chosen during configuration
	(acinclude.m4, configure-gtk2.ac, configure-gtk-3.ac;
	io_watch.cpp).

	Update documentation (extension.h, future.h).

Version 1.2.40 (18 October 2015)
--------------

	Simplify Cgu::Application::add() method (application.cpp).

	Update libtool to version 2.4.6.

	Documentation fix for doxygen-1.8.9 (docs/Doxyfile.in).

	Update documentation (doxygen.main.in, application.h, emitter.h,
	future.h, extension.h, task_manager.h, thread.h).

Version 1.2.39 (6 April 2015)
--------------

	Provide a mutex for calls to make-fresh-user-modules to deal with
	guile thread safety issues (c++-gtk-utils/Makefile.am;
	extension.h, extension_helper.cpp).

	Improve efficiency of scheme to C++ list translators for long
	lists (extension.h).

	Preallocate vectors in translator functions which return
	std::vector (extension.h).

	Update libtool to version 2.4.4.

	Update documentation (README; application.h, async_queue.h).

Version 1.2.38 (6 October 2014)
--------------

	Prevent new GTK+-3.14 deprecation warnings interfering with tests
	(test/test_application.cpp).

	Update build system to automake-1.14.1 (bootstrap-gtk2.sh,
	bootstrap-gtk3.sh, compile, Makefile.am).

	Update build system to gettext-0.18.2 (config.rpath; m4/*.m4;
	po/Makefile.in.in, po/Rules.quot, po/Makevars;
	c++-gtk-utils/Makefile.am, tests/Makefile.am,
	tests/extension/Makefile.am).

	Update tests (tests/test_callback.cpp).

	Add comments about strict aliasing with character set conversion
	functions (convert.cpp).

	Update documentation (README; extension.h, fdstream.h, gstream.h,
	thread.h, window.h).

Version 1.2.37 (16 July 2014)
--------------

	Correct testing of minimum values in Extension::real_to_double()
	and Extension::list_to_vector_double() (extension.h).

	Deal properly with unexpected out-of-memory conditions in
	executing Extension::exec() and Extension::exec_shared()
	(extension.h).

	Minor code refactoring in SafeEmitterArg::connect() (emitter.h,
	emitter.cpp).

	Update documentation (emitter.h, extension.h, task_manager.h).

Version 1.2.36 (1 June 2014)
--------------

	Provide a new Extension::exec_shared() function (doxygen.main.in,
	extension.h; tests/extension/test_extension.cpp).

	Throw a C++ exception if a translator throws a native guile
	exception, simplify exception handling code and make the
	translation of guile exceptions to text more meaningful
	(extension.h).

	Block asyncs when executing a scheme to C++ translator where guile
	supports it (acinclude.m4; cgu_config.h.in, extension.h).

	Avoid constructing a SafeEmitterArg object with untracked
	io_watches (io_watch.cpp; tests/test_iowatch.cpp).

	Deal internally with any exceptions in cgu_winbase_delete_event()
	(window.cpp).

	Update documentation (application.h, callback.h, extension.h,
	io_watch.h, notifier.h, timeout.h).

Version 1.2.35 (16 April 2014)
--------------

	Make minor adjustments to handling of C++ exceptions in
	Cgu::Extension::exec() (extension.h).

	Fix Cgu::Application tests for API breakage in GTK+-3.12.0
	(test_application.cpp).

	Update tests (test_callback.cpp).

	Update documentation (doxygen.main.in, extension.h).

Version 1.2.34.1 (28 January 2014)
----------------

	Deal correctly with a thrown guile exception which has a key but
	no other arguments, and a scheme extension file which does not
	throw but evaluates to a null list (extension.h).

	Adjust timing of TaskManager releaser tests
	(tests/test_task_manager.cpp).

	Update documentation (doxygen.main.in).

Version 1.2.34 (24 January 2014)
--------------

	Provide support for guile extensions (acinclude.m4,
	configure-gtk2.ac, configure-gtk3.ac, README;
	c++-gtk-utils/Makefile.am; doxygen-main.in, cgu_config.in,
	extension.h; tests/extension/Makefile.am, tests/extension/README,
	tests/extension/test_extension.cpp,
	tests/extension/guile-test.scm,
	tests/extension/guile-test-exception.scm).

	Minor code refactoring and test improvements (task_manager.tpp;
	tests/test_task_manager.cpp).

	Update code comments (async_queue.h, task_manager.tpp).

	Update documentation (task_manager.h).

Version 1.2.33 (29 November 2013)
--------------

	Provide the expected result where TaskManager::add_task() is
	called concurrently with TaskManager::stop_all() in
	wait_for_running stop mode (task_manager.cpp).

	Stop deprecation warnings with GTK+-3.10 in tests
	(tests/test_application.cpp).

Version 1.2.32 (16 September 2013)
--------------

	Provide a specialization of AsyncQueue and AsyncQueueDispatch for
	std::list containers which has push() and emplace() members which
	do not allocate within the mutex (async_queue.h, cgu_config.h.in;
	acinclude.m4, configure-gtk2.ac, configure-gtk3.ac).

	Reduce contention in TaskManager objects by starting new threads
	and adding to the task queue outside the mutex (task_manager.h,
	task_manager.cpp).

	Add documentation on using the library with Qt (doxygen.main.in).

	Update documentation (application.h, callback.h, gobj_handle.h,
	gvar_handle.h, fdstream.h, gstream.h, intrusive_ptr.h, mutex.h,
	notifier.h, rw_lock.h, shared_handle.h, shared_ptr.h,
	task_manager.h, window.h).

Version 1.2.31 (2 July 2013)
--------------

	Provide a Thread::TaskManager::IncHandle class, and deprecate the
	use of TaskManager::set_max_threads (task_manager.h;
	tests/test_task_manager.cpp).

	Issue a g_critical warning if a Thread::TaskManger task expires
	with an exception, there is no 'fail' callback and the thrown
	object is not Thread::Exit (task_manager.cpp).

	Replace AC_CONFIG_HEADER macro with AC_CONFIG_HEADERS when
	configuring (configure-gtk2.ac, configure-gtk3.ac).

	Update build system to automake-1.13.3 (config.guess, config.sub,
	depcomp, INSTALL).

	Upgrade doxygen configuration files to doxygen-1.8.4
	(docs/Doxyfile.in, docs/Doxyfile).

	Update documentation (README; doxygen.main.in; callback.h,
	future.h, task_manager.h).

Version 1.2.30 (1 June 2013)
--------------

	Update git links following sourceforge repository changes
	(doxygen.main.in).

	Update build system to automake-1.13.1 (configure-gtk2.ac,
	configure-gtk3.ac, config.guess, config.sub, depcomp, INSTALL,
	install-sh, missing).

	Minor efficiency improvement in creating Thread::TaskManager task
	callbacks (task_manager.tpp).

	Cause bootstrap scripts to build translation files
	(bootstrap-gtk2.sh, bootstrap-gtk3.sh).

	Update documentation (callback.h, convert.h, future,
	reassembler.h, task_manager.h).

Version 1.2.29 (9 March 2013)
--------------

	Deal with document format breakage from doxygen markup changes
	(doxygen.main.in; application.h, async_queue.h, callback.h,
	convert.h, do_if.h, emitter.h, fdstream.h, file_print_manager.h,
	future.h, gstream.h, gobj_handle.h, gvar_handlle.h,
	intrusive_ptr.h, io_watch.h, shared_handle.h, shared_ptr.h,
	text_print_manager.h, thread.h, widget.h, window.h).

	Update documentation (callback.h, task_manager.h).

Version 1.2.28 (14 February 2013)
--------------

	Make global static Notifier objects safe (notifier.h,
	notifier.cpp).

	Avoid use of GObject-style casts in inline functions and function
	templates to enable user code defining G_DISABLE_CAST_CHECKS to be
	more easily compliant with the one-definition rule (application.h,
	gobj_handle.h, gstream.tpp, window.h).

	Remove some other unnecessary GObject-style casts, where the
	object concerned is created in the function where the cast is
	carried out (application.cpp, file_print_manager.cpp,
	text_print_manager.cpp, window.cpp).

	Avoid deprecation warning for g_type_init() with glib>=2.36
	(tests/test_gstream.cpp).

	Provide a --without-gtk configuration option, to enable the
	library to be compiled without classes which require GTK+ support
	(acinclude.m4, configure-gtk2.ac, configure-gtk3.ac,
	c++-gtk-utils-1.2.pc.in, c++-gtk-utils-1.3.pc.in; README,
	doxygen.main.in, cgu_config.h.in; application.h, application.cpp,
	file_print_manager.h, file_print_manager.cpp,
	text_print_manager.h, text_print_manager.cpp, widget.h,
	widget.cpp, window.h, window.cpp).

	Update documentation (doxygen.main.in, fdstream.h, gstream.h,
	intrusive_ptr.h, mutex.h, rw_lock.h, shared_handle.h,
	shared_ptr.h, task_manager.h, thread.h).

Version 1.2.27 (1 January 2013)
--------------

	Add a Cgu::Thread::Taskmanager::change_max_threads() method
	(task_manager.h, task_manager.cpp; tests/test_task_manager.cpp).

	Add test to Cgu::Thread::TaskManager unit tests
	(tests/test_task_manager.cpp).

	Update documentation (doxygen.main.in; callback.h,
	task_manager.h).

Version 1.2.26 (28 November 2012)
--------------

	Provide TaskManager::make_task_result(),
	TaskManager::make_task_when() and
	TaskManager::make_task_when_full() convenience wrapper methods for
	target functions which return a value, for easier task composition
	(doxygen.main.in; task_manager.h, task_manager.tpp;
	tests/test_task_manager.cpp; c++-gtk-utils/Makefile.am).

	Don't use static member function of local struct for callback
	function (task_manager.cpp).

	Update unit tests (tests/test_task_manager.cpp).

	Update documentation (callback.h, future.h, timeout.h).

Version 1.2.25 (5 October 2012)
--------------

	Provide a Cgu::Thread::TaskManager thread pool class for multiple
	task to thread mapping (c++-gtk-utils/Makefile.am; task_manager.h
	and task_manager.cpp; doxygen.main.in; tests/Makefile.am,
	tests/test_task_manager.cpp).

	Suppress deprecated warnings for g_thread_init(), GStaticRecMutex
	and GtkTable with glib-2.34/gtk+-3.6 (mutex.h, mutex.cpp,
	text_print_manager.cpp; test_future.cpp, test_gstream.cpp,
	test_notifier.cpp, test_task_manager.cpp, test_thread.cpp;
	tests/extra/test_file_print_manager.cpp,
	tests/extra/test_text_print_manager.cpp).

	Replace the sourceforge SVN repository with a sourceforge git
	respository (doxygen.main.in).

	Update documentation (async_result.h, callback.h, fdstream.h,
	future.h, mutex.h, shared_handle.h, shared_ptr.h, thread.h).

Version 1.2.24 (2 August 2012)
--------------

	Make AsyncResult::get() truly cancellation safe (async_result.h).

	Carry out locking in the AsyncResult destructor (async_result.h).

	Make Thread::Future::get() cancellation safe (future.h,
	future.tpp).

	Make sure Thread::Future::get() does not hang if a call to
	Thread::Future::run() by another thread threw (future.tpp).

	Branch trunk in SVN to v1_2 branch, for future updates to the 1.2
	series of c++-gtk-utils (doxygen.main.in).

	Update documentation (async_result.h, callback.h, future.h,
	thread.h).

Version 1.2.23 (1 July 2012)
--------------

	Update build system to libtool-2.4.2, automake-1.12.1 and
	autoconf-2.69.

	Update doxygen configuration file for doxygen-1.8.1.1
	(docs/Doxygen.in).

	Update unit tests (test/test_callback.cpp,
	test/test_notifier.cpp).

	Update documentation (doxygen.main.in; async_queue.h,
	async_result.h, callback.h, convert.h, do_if.h, emitter.h,
	future.h, gstream.h, thread.h, window.h).

Version 1.2.22 (20 May 2012)
--------------

	Provide new Cgu::AsyncResult class (tests/Makefile.am,
	tests/test_async_result.cpp; c++-gtk-utils/Makefile.am,
	configure-gtk2.ac, configure-gtk3.ac, doxygen.main.in,
	async_queue.h, async_result.h, future.h).

	Provide copy constructors, assignment operators and swap methods
	for Cgu::AsyncQueue and Cgu::AsyncQueueDispatch classes
	(async_queue.h; tests/test_async_queue.cpp).

	Provide size() method for Cgu::AsyncQueue and
	Cgu::AsyncQueueDispatch classes (async_queue.h;
	tests/test_async_queue.cpp).

	Add default constructor for Cgu::Thread::JoinableHandle class
	(thread.h; tests/test_thread.cpp).

	Update documentation (async_queue.h, callback.h, emitter.h,
	fdstream.h, future.h, gstream.h, mutex.h, reasembler.h,
	shared_handle.h, shared_ptr, thread.h).

Version 1.2.21 (11 April 2012)
--------------

	Fix compilation with gcc-4.7 (fdstream.h, fdstream.tpp, gstream.h,
	gstream.tpp) (thanks to Malcolm Lewis for reporting this).

	Provide unit test for Future asynchronous functions
	(tests/test_future.cpp).

	Avoid types deprecated in gtk+-3.4 in the Application unit test,
	when compiled against gtk+-3.4 (tests/test_application.cpp).

	Update FSF address in relevant copyright notices (thanks to
	Malcolm Lewis for reporting this).

	Update documentation (doxygen.main.in; async_queue.h, callback.h,
	future.h, io_watch.h, mutex.h, notifier.h, rw_lock.h, thread.h,
	timeout.h, window.h).

Version 1.2.20 (27 January 2012)
--------------

	Fix a race condition when executing the Future::when() callback
	introduced in version 1.2.19 (future.tpp).

Version 1.2.19 (24 January 2012)
--------------

	Provide methods to obtain gio read and write errors on gstream
	objects (gstream.h, gstream.tpp).

	Deprecate GobjWeakHandle::expired(), which has the wrong
	semantics, and provide GobjWeakHandle::valid() method
	(gobj_handle.h).

	Provide unit tests based on glib's test framework (Makefile.am,
	Makefile.decl, acinclude.m4, configure-gtk2.ac,
	configure-gtk-3.ac; c++-gtk-utils/Makefile.am; docs/Makefile.am;
	'tests' sub-directory and contents).

	Use automake silent rules (configure-gtk2.ac, configure-gtk3.ac).

	Remove unnecessary increment and decrement of reference count in
	Future::post_done() and Future::post_done_rel() (future.tpp).

	Update documentation (doxygen.main.in; async_queue.h, callback.h).

Version 1.2.18 (28 November 2011)
--------------

	Access 'val' member variable directly in execute_done() and
	execute_done_rel() methods of Thread::Future to avoid unnecessary
	mutex lock/unlock (future.tpp).

	Make the test for whether Thread::FutureWhenError is thrown
	entirely race free, if the when() method is called after the run()
	method (future.h).

	Adjust linker ordering and build system
	(acinclude.m4, c++-gtk-utils-2-2.0.pc.in,
	c++-gtk-utils-3-2.0.pc.in, c++-gtk-utils/Makefile.am)

	Update documentation (application.h, emitter.h, future.h,
	reassembler.h).

Version 1.2.17 (16 October 2011)
--------------

	Correct the reference counting so that a Thread::Future object
	stays in existence until any 'when' callback has executed as
	stated in the documentation (this is only relevant in the unlikely
	case of a user having a pointer to the Future object as a bound
	argument of the 'when' callback, but the change also permits a
	more efficient implementation of the execution of the 'when'
	callback and removes the possibility of the copy constructor of
	the return value throwing) (future.h, future.tpp).

Version 1.2.16 (13 October 2011)
--------------

	Add Thread::Future::when() and associated Thread::Future::fail()
	methods so that the result provided by a future object can be
	asynchronously passed to a glib main loop, and a new
	Thread::Future::is_emitter_done() method (future.h, future.tpp).

	Eliminate possible race between Future::run() and Future::cancel()
	(future.tpp).

	Update documentation (README, doxygen.main.in; callback.h,
	emitter.h, io_watch.h, mutex.h, thread.h, timeout.h).

Version 1.2.15 (12 September 2011)
--------------

	Do not reset input stream pointers if the call to
	g_seekable_seek() in basic_gstreambuf<>::seekoff() fails
	(gstream.tpp).

	Fix a bug in Cgu::DoIf::assert_same_type() which prevented a const
	type being specified as the specific template parameter type
	(do_if.h).

	Provide new Cgu::DoIf::assert_not_const() static assertion
	(doxygen.main.in, do_if.h).

	Replace deprecated Callback::make_val() with Callback::make_ref()
	(emitter.h, emitter.cpp).

	Update and correct documentation (doxygen.main.in; application.h,
	async_queue.h, callback.h, convert.h, do_if.h, emitter.h,
	fdstream.h, future.h, gstream.h, intrusive_ptr.h, param.h,
	shared_handle.h, shared_ptr.h).

Version 1.2.14 (18 May 2011)
--------------

	!!! NOTE !!!: './configure' will now prepare the library for
	compilation against GTK+3.  To compile the library against GTK+2,
	use './configure-gtk2'.

	Adopt a swapping implementation for the reset() and operator=()
	methods of SharedPtr/SharedLockPtr/SharedHandle/ScopedHandle/
	SharedLockHandle/InstrusivePtr: this will cater for a throwing
	destructor of a managed object, and with r-value references the
	additional overhead is minimal (intrusive_ptr.h, shared_handle.h,
	shared_ptr.h).

	Explicitly deprecate Callback::make_val() in favour of
	Callback::make_ref() (callback.h).

	Change default compile so that it compiles against GTK+3 (README,
	NEWS; doxygen.main.in).

	Update copyright notices (future.h, future.tpp)

	Upgrade gettext to version 0.18 (po/Makefile.in.in,
	po/Rules-quot).

	Update libtool to version 2.4.

	Update documentation, including providing new documentation on use
	with GtkBuilder (application.h, callback.h, doxygen.main.in,
	gobj_handle.h, widget.h, window.h).

Version 1.2.13 (8 April 2011)
--------------

	Provide new Callback::make_ref() functions so that callback
	objects will store arguments for functions taking const reference
	arguments (callback.h, param.h).

	Improve efficiency of Thread::Future implementation and permit
	const reference arguments to bind to Thread::Future objects
	(future.h, future.tpp).

	As a safety feature, have the Cgu::Application destructor remove
	any remaining WinBase objects associated with the Application
	object (this would only be relevant if the user constructs the
	Application object on free store, and then deletes it while the
	run() method is still blocking, but does not call the remove()
	method on all WinBase objects still associated before doing so)
	(application.h).

	Permit Cgu::Application to compile with the library configured
	with the --without-type-tuple-args option (but the 'command_line'
	and 'open' emitters will not be available) (application.h,
	application.cpp, window.h, window.cpp).

	Do better error handling in conversion functions where
	sizeof(wchar_t) is not 2 or 4 (convert.cpp).

	Improve error checking and so suppress gcc-4.6 warning
	(text_print_manager.cpp).

	Update build system (configure-gtk2.ac, configure-gtk-3.ac).

	Update documentation (README; doxygen.main.in, application.h,
	emitter.h, io_watch.h, mem_fun.h, window.h).

Version 1.2.12 (9 March 2011)
--------------

	Provide a new Cgu::Application class, to enable Cgu::WinBase
	objects to be used with GtkApplication/GApplication
	(application.h, application.cpp, window.h, window.cpp).

	Provide versions of the start_iowatch() function where the
	relevant callback function is passed a GIOCondition value
	representing the events which caused the call (io_watch.h and
	io_watch.cpp).

	Provide operator==(), operator!=() and operator<() for GobjHandle,
	GvarHandle, IntrusivePtr, SharedHandle, SharedLockHandle,
	SharedPtr and SharedLockPtr (acinclude.m4, configure-gtk2.ac,
	configure-gtk3.ac, NEWS; config.h.in, gobj_handle.h,
	gvar_handle.h, intrusive_ptr, shared_handle.h, shared_ptr.h)

	Omit use of #warning directive in convert.cpp.

	Update documentation (doxygen.main.in, gstream.h, io_watch.h,
	pipes.h, shared_handle.h, shared_ptr.h, thread.h).

Version 1.2.11 (6 February 2011)
--------------

	Use Cgu::Param structs to pass unbound arguments with CallbackArg,
	FunctorArg, SafeFunctorArg, EmitterArg and SafeEmitterArg (and so
	improve efficiency if objects of class type are passed by value)
	(callback.h and emitter.h).

	Correct error in constructing a ConversionError object, and add
	additional checks for case where the char type is not an octet
	(convert.h and convert.cpp).

	Change documentation directory from
	$prefix/share/doc/c++-gtk-utils to
	$prefix/share/doc/c++-gtk-utils/1.2 in preparation for the 2.0
	series for C++0x (Makefile.am and docs/Makefile.am; README;
	doxygen.main.in).

	Update documentation (callback.h, do_if.h, doxygen.main.in,
	emitter.h, fdstream.h, gobj_handle.h, gstream.h, gvar_handle.h,
	intrusive_ptr.h, shared_handle.h, shared_ptr.h,
	text_print_manager.h, thread.h).

Version 1.2.10 (8 January 2011)
--------------

	Enable CallbackArg, FunctorArg and EmitterArg objects to take more
	than one unbound argument (acinclude.m4, configure-gtk2.ac,
	configure-gtk3.ac; callback.h, cgu_config.h.in, doxygen.main.in,
	emitter.h, param.h).

	Provide new Param struct for automatic typing of parameter
	arguments for template functions (param.h).

	Provide Cgu::DoIf::mem_fun() and Cgu::DoIf::fun() templated
	conditional compilation functions, and the
	Cgu::DoIf::assert_related_to_type(),
	Cgu::DoIf::assert_related_types() and
	Cgu::DoIf::assert_same_type() static assertions (do_if.h).

	Simplify argument passing on construction of callback objects by
	using Param structs where relevant and make other minor
	adjustments (callback.h).

	Minor adjustments to FilePrintManager and TextPrintManager
	implementation (file_print_manager.cpp and
	text_print_manager.cpp).

	Add -Wno-deprecated flag to compilation flags in order to suppress
	warnings about std::auto_ptr when compiling under C++0x
	(acinclude.m4).

	Update documentation (callback.h, cgu_config.h.in,
	doxygen.main.in, file_print_manager.h, future.h, gobj_handle.h,
	mutex.h, pipes.h, rw_lock.h, text_print_manager.h, thread.h,
	widget.h, window.h, README).

Version 1.2.9 (8 December 2010)
-------------

	Fix breakage where a callback with a bound reference argument is
	compiled in strict C++-98/03 mode (callback.h).

	Documentation updates (README, callback.h, gstream.h,
	prog_present.h).

	Put the html documentation directory directly in docs (and remove
	the 'reference' sub-directory) (Makefile.am, docs/Makefile.am,
	configure-gtk2.ac, configure-gtk3.ac).

Version 1.2.8 (5 December 2010)
-------------

	Provide new Callback::make_val() factory functions for the more
	efficient passing of bound class-type value arguments (callback.h,
	emitter.h, emitter.cpp).

	Optimise argument passing with Cgu::Thread::Future objects
	(future.h, future.tpp).

	Move CVS sourceforge repository to SVN (doxygen.main.in).

	Documentation updates (callback.h, future.h, gstream.h, widget.h).

Version 1.2.7 (2 November 2010)
-------------

	Implement prog_presenter using gio's dbus implementation instead
	of dbus-glib where glib >= 2.26.0 is installed (acinclude.m4,
	configure-gtk2.ac, configure-gtk3.ac, prog_present.h,
	prog_present.cpp).

	Provide a new GvarHandle class for managing GVariant reference
	counts (gvar_handle.h, doxygen.main.in).

	Fix additional breakage in gtk+-2.91 (file_print_manager.cpp,
	window.cpp).

	Fix compilation error where library is compiled against gtk+-2.10
	or 2.12 (file_print_manager.h).

	Emit warning rather than compile error if gstream.h is included by
	a user file by mistake and glib < 2.16.0 is installed (gstream.h).

	Documentation improvements and corrections (fdstream.h, future.h,
	gstream.h, shared_handle.h, window.h).

Version 1.2.6 (1 October 2010)
-------------

	Provide C++ streams and streambuffer for GIO streams (gstream.h,
	gstream.tpp, acinclude.m4, configure-gtk2.ac, configure-gtk3.ac,
	c++-gtk-utils-1.2.pc.in, c++-gtk-utils-1.3.pc.in).

	Provide random access on seekable files with fdostream and
	fdistream classes (fdstream.h and fdstream.tpp).

	Provide optional output buffering with fdostream class (fdstream.h
	and fdstream.tpp).

	Clear stream state flags of fdstreams when attach() method called,
	and set failbit if there is an error in closing a stream
	(fdstream.h and fdstream.tpp).

	Use full buffer space if available when calling xsputn() (so
	mimicking repeated calls to sputc()) (fdstream.tpp).

	Use gtk_widget_destroy() rather than gtk_object_destroy() (it
	looks as if GtkObject is on the way out) (window.cpp).

	Standardize on tpp instead of tcc as the suffix for template
	implementation files (fdstream.h, fdstream.tcc/fdstream.tpp,
	future.h, future.tcc/future.tpp).

	Update documentation (doxygen.main.in, fdstream.h,
	gerror_handle.h, gobj_handle.h, intrusive_ptr.h, shared_handle.h,
	shared_ptr.h, thread.h and NEWS).

Version 1.2.5 (1 September 2010)
-------------

	Provide a new set_byteswap() function for wide stream input
	streams and input streambuffers so as to provide conversion of
	incoming text to native endian format where required (fdstream.h,
	fdstream.tcc).

	Provide a convenience Cgu::WinBase::show_all() method (window.h).

	Hide all relevant GObject callbacks in friend helper classes, and
	provide documentation on this technique for library users
	(doxygen.main.in, file_print_manager.h, file_print_manager.cpp,
	text_print_manager.h, text_print_manager.cpp, window.h and
	window.cpp).

	Add local m4 search path for aclocal in bootstrap scripts
	(bootstrap-gtk2.sh, bootstrap-gtk3.sh).

	Provide convenience operator!=() functions for Functor and
	SafeFunctor objects to match the operator==() functions
	(callback.h).

	Documentation improvements (convert.h, emitter.h, mem_fun.h,
	window.h).

Version 1.2.4 (19 July 2010)
-------------

	Fix compilation error where a Cgu::Thread::Future object is
	created for a non-member function (or static member function)
	taking no argument (future.tcc).

	Remove redundant anonymous namespace for internal functions with C
	linkage and revise function names (callback.cpp,
	file_print_manager.h, file_print_manager.cpp, io_watch.cpp,
	text_print_manager.h, text_print_manager.cpp, thread.cpp,
	timeout.cpp, window.h, window.cpp).

	Documentation additions, including providing additional examples
	(fdstream.h, gobj_handle.h, reassembler.h, window.h).

Version 1.2.3 (2 June 2010)
-------------

	Make a library configuration check for _POSIX_CLOCK_SELECTION as
	well as _POSIX_MONOTONIC_CLOCK when checking the availability of
	monotonic clocks for condition variables (corrects BSD builds)
	(acinclude.m4).

	Correct autoconf configuration test for runtime recursive mutexes
	(acinclude.m4)

	Provide compile option for GTK+-3 (new files configure-gtk2.ac,
	configure-gtk3.ac, configure-gtk2, configure-gtk3,
	bootstrap-gtk2.sh, bootstrap-gtk3.sh and c++-gtk-utils-1.3.pc.in;
	changed files README, acinclude.me, c++-gtk-utils-1.2.pc.in,
	Makefile.am, c++-gtk-utils/Makefile.am, file_print_manager.h and
	file_print_manager.cpp).

	Standardise on using gboolean rather than int when dealing with
	PresentFunc return value (internal only, doesn't affect API/ABI
	even if they weren't the same, which they are) (prog_present.cpp).

	Change prog_present example so as not to use GSEAL'ed window
	member (prog_present.h).

	Go to automake 1.11.1, autoconf 2.65 and libtool 2.2.6b.

	Documentation corrections (async_queue.h and doxygen.main.in).

Version 1.2.2 (5 May 2010)
-------------

	Compilation fixes for gcc-4.5.0 (future.h, future.tcc, thread.h
	and thread.cpp).

	Improve the information provided by Cgu::present_instance() so
	that 2 is returned instead of 1 where the ProgPresent callback
	returns FALSE (1 is only now returned by present_instance() in a
	case where there has been a dbus error) (prog_present.cpp).

	Put ProgPresenter GObject class in Cgu namespace as
	CguProgPresenter, move CguProgPresenter dbus objects to /org/cgu
	namespace, explicitly declare CguProgPresenter GObject methods as
	extern C and further "C++-ify" the implementation (note, as
	CguProgPresenter is entirely internal with methods with only
	internal linkage this does not affect API/ABI, but it reduces the
	risk of GType name clashes with any user-defined
	GObjects) (prog_present.cpp; make_bindings.sh, prog-presenter.xml,
	prog-presenter-bindings.h and prog-presenter-glue.h).

	Documentation corrections and improvements (async_queue.h,
	gobj_handle.h, emitter.h, io_watch.h, mutex.h, prog_presenter.h,
	rw_lock.h and timeout.h).

Version 1.2.1 (16 April 2010)
-------------

	Provide GobjWeakHandle class (gobj_handle.h).

	Provide start_timeout_seconds() functions (timeout.h and
	timeout.cpp).

	Provide Thread::RWLock class and associated locking
	classes (rw_lock.h).

	Provide Thread::Mutex::TrackLock and Thread::RecMutex::TrackLock
	locking classes which track locked status (mutex.h).

	Correct the implementation of Cgu::RecMutex::test_support(), and
	provide a new symbol CGU_HAVE_RECURSIVE_MUTEX which user programs
	can use at compile time (acinclude.m4, cgu_config.h.in, mutex.h
	and mutex.cpp).

	Correct documentation on Utf8 namespace and improve documentation
	on other matters (convert.h, fdstream.h, future.h, mutex.h,
	pipes.h, shared_handle.h, shared_ptr.h and window.h).

Version 1.2.0 (20 March 2010)
-------------

	Put the library in namespace Cgu.  This requires the binary
	version number to be bumped, and the pkg-config file is now
	c++-gtk-utils-1.2.pc rather than c++-gtk-utils.pc, but a
	--with-cgu-using-directive configuration option is available to
	maintain source compatibility, which will cause each of the
	library headers to have a 'using namespace Cgu' using
	directive. (acinclude.m4, configure.ac, README, doxygen.main.in,
	namespace.h.in, async_queue.h, callback.h, callback.cpp,
	convert.h, convert.cpp, emitter.h, emitter.cpp, fdstream.h,
	fdstream.tcc, file_print_manager.h, file_print_manager.cpp,
	future.h, future.tcc, gerror_handle.h, gobj_handle.h,
	intrusive_ptr.h, io_watch.h, io_watch.cpp, mem_fun.h, mutex.h,
	mutex.cpp, notifier.h, notifier.cpp, pipes.h, pipes.cpp,
	prog_present.h, prog_present.cpp, reassembler.h, reassembler.cpp,
	shared_handle.h, shared_ptr.h, text_print_manager.h,
	text_print_manager.cpp, thread.h, thread.cpp, timeout.h,
	timeout.cpp, widget.h, widget.cpp, window.h, window.cpp,
	src/Makefile.am and src/Makefile.in.)

	Fix memory leak in FilePrintManager::show_dialog()
	(file_print_manager.cpp).

	Make detection of monotonic clocks for condition variable timed
	waits an automatic configuration matter rather than a separate
	user option (acinclude.m4, configure.ac, async_queue.h, mutex.h
	and mutex.cpp).

	Make detection of whether sched_yield() is available an automatic
	configuration matter rather than a separate user
	option (acinclude.m4, configure.ac, emitter.h and emitter.cpp).

	Make detection of whether headers include provision for recursive
	mutexes an automatic configuration matter, and provide a new
	GrecmutexLock class for cases where they are not available and
	GStaticRecMutex is used (acinclude.m4, configure.ac, mutex.h and
	mutex.cpp).

	Provide user-definable symbol which a library user can define so
	as to cause mutexes rather than glib atomic functions to protect
	reference counts (intrusve_ptr.h, shared_handle.h and
	shared_ptr.h).

	Correct error in the operator<() functions for FunctorArg and
	SafeFunctorArg objects (callback.h).

	Provide a new Thread::JoinableHandle::is_managing()
	method (thread.h and thread.cpp).

	Make Thread::JoinableHandle constructors strongly exception safe
	and correct documentation (thread.h).

	Improve error detection in Thread::Thread::start() (thread.cpp).

	Correction of documentation (callback.h).

Version 1.0.3 (2 March 2010)
-------------

	Provide new --with-glib-memory-slices-compat and
	--with-glib-memory-slices-no-compat compilation configuration
	options so that library classes uses glib memory slices when
	constructed on free store (acinclude.m4, configure.in, README,
	doxygen.main.in, memory.h.in, async_queue.h, callback.h,
	convert.h, emitter.h, fdstream.h, file_print_manager.h, future.h,
	mutex.h, notifier.h, pipes.h, reassembler.h, shared_handle.h,
	shared_ptr.h, text_print_manager.h, thread.h, widget.h and
	window.h).

	Provide new GSliceFree, GSliceFreeSize and GSliceDestroy deleter
	functors to enable the SharedHandle, SharedLockHandle and
	ScopedHandle classes to manage glib memory slices
	(shared_handle.h).

	Guard against a case where, in relation to a GtkDialog object,
	both a response signal handler and WinBase::on_delete_event() call
	WinBase::close() when a delete-event happens (window.h and
	window.cpp).

	Add documentation about the use of GtkDialog objects with the
	WinBase class, and about the modal and parent arguments of the
	WinBase constructor (window.h).

	Improve the FilePrintManager implementation
	(file_print_manager.cpp).

	Other documentation improvements (gerror_handle.h, notifier.h and
	shared_handle.h)

Version 1.0.2 (27 January 2010)
-------------

	Provide new Thread::Future class (future.h and future.tcc).

	Provide new Thread::JoinableHandle class (thread.h and
	thread.cpp).

	Enable SharedHandle/ScopedHandle/SharedLockHandle classes to
	manage pointers to const objects (shared_handle.h and
	gerror_handle.h).

	Add release() method to ScopedHandle class (shared_handle.h).

	Documentation improvements (callback.h and mutex.h).

Version 1.0.1 (29 December 2009)
-------------

	Disconnect the timeout from the main loop where a Releaser object
	has given rise to an empty EmitterArg object for the
	timeout (timeout.cpp).

	Provide Utf8::Iterator and Utf8::ReverseIterator classes for
	iterating through a std::string object by UTF-8 character rather
	than by bytes (convert.h).

	Amend the exception in applying the LGPL to templates so as to
	include also inline functions and macros of any
	length (async_queue.h, callback.h, callback.cpp, convert.h,
	emitter.h, emitter.cpp, fdstream.h, fdstream.tcc, gobj_handle.h,
	intrusive_ptr.h, mem_fun.h, mutex.h, shared_handle.h and
	shared_ptr.h).

	Document the StandardArrayDelete<>, CFree, GFree and GerrorFree
	functors (shared_handle.h and gerror_handle.h).

	Provide further comments in the documentation on use of wfdostream
	and wfdistream (fdstream.h).

Version 1.0.0 (6 November 2009)
-------------

	If start_iowatch(), start_timeout, or Callback::post() throw,
	delete the CallbackArg argument passed to them, and document
	this (callback.h, callback.cpp, io_watch.h, io_watch.cpp,
	timeout.h, timeout.cpp).

	Make PipeFifo::connect_to_stdin(), PipeFifo::connect_to_stdout()
	and PipeFifo::connect_to_stderr() return better error
	information (this means they may now return -2 as well as -1 in
	the case of error) (pipes.h and pipes.cpp).

	Make FilePrintManager implementation exception-safe if
	std::bad_alloc thrown (configure.ac, file_print_manager.cpp).

	Remove unnecessary header (gobj_handle.h).

	Improve implementation of 'make uninstall' with respect to html
	documentation (docs/reference/Makefile.am,
	docs/reference/Makefile.in).

	Documentation improvements, including stating version number at
	which new interfaces after version 0.9.0 available (callback.h,
	convert.h, emitter.h, file_print_manager.h, gobj_handle.h,
	intrusive_ptr.h, io_watch.h, notifier.h, pipes.h, shared_handle.h,
	shared_ptr.h, text_print_manager.h, thread.h, timeout.h,
	window.h).

Version 0.9.2 (6 October 2009)
-------------

	Provide a new start_timeout() function to start timeouts in a glib
	main loop with Callback objects with automatic disconnection
	(timeout.h, timeout.cpp).

	Provide functions for converting between codesets (convert.h,
	convert.cpp).

	Permit Callback::post() to post to any thread with a main loop and
	start_iowatch() to have other than default priority (these keep
	API compatibility but require bumping of the libtool interface
	number because of binary interface incompatibility) (callback.h,
	callback.cpp, io_watch.h, io_watch.cpp).

	Implement Releaser, EmitterArg<void> and SafeEmitterArg<void> so
	they are compiled into the library rather than as inline
	(emitter.h, emitter.cpp).

	Take the incorporated libtool version to libtool-2.2.6.

	Make minor documentation improvements (callback.h, io_watch.h,
	mutex.h, shared_handle.h, shared_ptr.h, thread.h, window.h,
	doxygen.main, doxygen.main.in).

Version 0.9.1 (22 September 2009)
-------------

	Provide version of SharedPtr, SharedLockPtr, SharedHandle and
	SharedLockHandle with an additional reset() method and constructor
	taking a pointer which do not delete the contained object if
	allocation fails (shared_handle.h, shared_ptr.h).

	Make the constructors of SharedPtr, SharedLockPtr, SharedHandle
	and SharedLockHandle which take a pointer no-throw if they are
	passed a NULL argument (shared_handle.h, shared_ptr.h).

	Provide a reset() method for the ScopedHandle class
	(shared_handle.h).

	Provide a restore() method for the CancelBlock class and make the
	destructor of that class restore cancellation state to the state
	it was in prior to it being constructed, rather than automatically
	make the thread cancellable (thread.h, thread.cpp).

	Make throwing/catching NPTL cancellation friendly
	(file_print_manager.cpp, io_watch.cpp, shared_handle.h,
	shared_ptr.h).

	Make blocking methods of AsyncQueueDispatch cancellation
	safe (async_queue.h).

	Standardise on glib error reporting system (callback.cpp,
	file_print_manager.cpp, io_watch.cpp, lib_defs.h, notifier.cpp,
	prog_present.cpp, text_print_manager.cpp).

	Add to permissible single-instance program names for delimiting
	(prog_present.cpp).

	Improve documentation (async_queue.h, gobj_handle.h, io_watch.h,
	pipes.h, notifier.h, reassembler.h, thread.h).

Version 0.9.0 (15 September 2009)
-------------

	First public release.
