Version 2.2.20 (17 December 2020)
--------------

	If this library is employed in a program compiled with -std=c++17
	or greater, permit objects with references or const members to be
	stored in AsyncChannel objects (async_channel.h).

	Deal with Cgu::WinBase and Cgu::Application breakage when testing
	using glib for gtk-3.99.3 onwards.

	When compiling for GTK-4, require version >= 3.98.4 and make
	consequential changes including to documentation (acinclude.m4,
	README; doxygen.main.in).

	Add fixes for gtk-3.98.0, gtk-3.98.1 and gtk-3.98.4
	(file_print_manager.cpp, text_print_manager.cpp, window.h,
	window.cpp; tests/test_application.cpp;
	tests/extra/test_file_print_manager.cpp,
	tests/extra/test_text_print_manager.cpp).

	Enable Cgu::FilePrintManager dialogs to be resizable
	(file_print_manager.cpp).

	Update documentation (application.h, parallel.h, shared_handle.h,
	window.h).

Version 2.2.19 (27 January 2020)
--------------

	Use autoconf's TAP support for running tests (Makefile.am,
	configure-gtk2.ac, configure-gtk3.ac, configure-gtk4.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, configure-gtk4.ac;
	cgu_config.h.in, mutex.h).

Version 2.2.18 (9 June 2019)
--------------

	When compiling for GTK-4, require version >= 3.96.0 and make
	consequential changes including to documentation (acinclude.m4,
	README; doxygen.main.in, application.h, extension.h,
	file_print_manager.h, file_print_manager.cpp, gobj_handle.h,
	notifier.h, prog_present.h, reassembler.h, shared_handle.h,
	text_print_manager.h, text_print_manager.cpp, thread.h, widget.h,
	window.h and window.cpp; tests/test_application.cpp;
	tests/extra/test_file_print_manager.cpp,
	tests/extra/test_text_print_manager.cpp).

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

Version 2.2.17 (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).

Version 2.2.16.1 (27 June 2018)
----------------

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

Version 2.2.16 (27 June 2018)
--------------

	When compiling for GTK+-4, require version >= 3.94.0
	(acinclude.m4, README; doxygen.main.in).

	Fix changes in GTK+-3.94 (file_print_manager.h,
	file_print_manager.cpp, window.h, window.cpp).

	Fix the change from GdkPixbuf to GdkTexture in GTK+-3.93
	(file_print_manager.h, file_print_manager.cpp, window.h,
	window.cpp).

	Let the CGU_USE_GTK manifest constant in cgu_config.h indicate the
	version of GTK+ that the library is configured for, and set
	GDK_VERSION_MIN_REQUIRED for GTK+-4 (acinclude.m4;
	tests/test_application.cpp,
	tests/extra/test_file_print_manager.cpp,
	tests/extra/test_text_print_manager.cpp; cgu_config.h,
	text_print_manager.cpp).

	Correct documentation (application.h, extension.h, window.h).

Version 2.2.15 (24 December 2017)
--------------

	Provide configuration option for GTK+-4 (acinclude.m4,
	bootstrap-gtk2.sh, bootstrap-gtk3.sh, bootstrap-gtk4.sh,
	configure-gtk4.ac, Makefile.am, README; doxygen.main.in,
	file_print_manager.cpp, text_print_manager.cpp, window.h;
	tests/test_application.cpp;
	tests/extra/test_file_print_manager.cpp,
	tests/extra/test_text_print_manager.cpp).

	Use streambuffers not streams when testing fdstream and gstream
	with char16_t and char32_t character types
	(tests/test_fdstream.cpp, tests/test_gstream.cpp).

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

Version 2.2.14.1 (23 November 2016)
----------------

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

	Do not document the Cgu::Thread::FutureHelper and
	Cgu::Thread::TaskManagerHelper2 namespaces (future.h,
	task_manager.h).

	Update documentation (async_channel.h).

Version 2.2.14 (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).

	Remove the 'noexcept' specifier for Cgu::Thread::Cond::wait() and
	Cgu::Thread::Cond::timed_wait(): any cancellation pseudo-exception
	is inconsistent with this specifier (mutex.h).

	Provide TaskManager::get_max_tasks() method with documentation on
	rate limiting (parallel.h, 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 (async_queue.h, async_result.h, future.h,
	task_manager.h, thread.h).

Version 2.2.13 (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 (callback.h, extension.h, future.h).

Version 2.2.12 (18 October 2015)
--------------

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

	Minor implementation improvement for
	Cgu::Thread::parallel_transform* functions (do pointer arithmetic
	before not after tasks are launched) (parallel.h).

	Permit return value optimisation when returning thread object on
	starting new thread (thread.cpp).

	Update libtool to version 2.4.6.

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

	Update code comments (emitter.h).

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

Version 2.2.11 (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).

	Update libtool to version 2.4.4.

	Update code comments (extension.h, future.h, parallel.h,
	task_manager.h, task_manager.tpp).

	Update documentation (README; application.h, parallel.h, param.h).

Version 2.2.10 (24 November 2014)
--------------

	Permit Cgu::Thread::parallel_for_each(),
	Cgu::Thread::parallel_for_each_partial(),
	Cgu::Thread::parallel_transform() and
	Cgu::Thread::parallel_transform_partial() to take const source
	iterators (parallel.h).

	Provide Cgu::IntIter class to enable for loops to be more easily
	implemented with the parallel algorithms (doxygen.h.in,
	parallel.h; tests/test_parallel.cpp).

	With gcc >= 4.8 or clang >= 3.4, implement callback classes using
	std::tuple (this enables Callback::make() and Callback::make_ref()
	to take up to 10 bound arguments, avoids a lot of code duplication
	and makes for a cleaner implementation) (acinclude.m4,
	configure-gtk2.ac, configure-gtk3.ac; cgu_config.h.in,
	doxygen.main.in; callback.h, param.h; tests/Makefile.am,
	tests/test_tuple.cpp).

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

	Correct information about clang compatibility (doxygen.main.in).

	Update documentation (async_queue.h).

Version 2.2.9 (6 October 2014)
-------------

	Provide AsyncQueue::move_pop_basic(),
	AsyncQueueDispatch::move_pop_basic(),
	AsyncQueueDispatch::move_pop_dispatch_basic() and
	AsyncQueueDispatch::move_pop_timed_dispatch_basic() methods
	(async_queue.h; tests/test_async_queue.cpp).

	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, including to cover C++14 (README;
	doxygen.main.in, async_queue.h, callback.h, convert.h,
	extension.h, fdstream.h, future.h, gstream.h, mem_fun.h, mutex.h,
	shared_handle.h, shared_ptr.h, task_manager.h, thread.h,
	window.h).

Version 2.2.8 (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 EmitterArg::connect() and
	SafeEmitterArg::connect() (emitter.h).

	Update documentation (callback.h, emitter.h, extension.h,
	notifier.h, parallel.h, task_manager.h).

Version 2.2.7 (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 2.2.6 (16 April 2014)
-------------

	Provide Cgu::Callback::to_unique(), Cgu::Callback::to_functor()
	and Cgu::Callback::to_safe_functor() functions (callback.h;
	tests/test_callback.cpp, tests/test_application.cpp).

	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 documentation (doxygen.main.in; callback.h, extension.h).

Version 2.2.5.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).

Version 2.2.5 (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.h.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).

	Provide TaskManager::make_task_packaged_when() and
	TaskManager::make_task_packaged_compose() methods, which will pass
	a std::future object for a task running on a TaskManager object
	asynchronously (task_manager.h, task_manager.tpp;
	tests/test_task_manager.cpp).

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

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

	Update documentation (task_manager.h).

Version 2.2.4 (29 November 2013)
-------------

	Provide a TaskManager::make_task_packaged() method, which will
	return a std::future object for a task running on a TaskManager
	object (task_manager.h; tests/test_task_manager.cpp).

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

	Guarantee strong exception safety of
	AsyncQueue::push(value_type&&) and
	AsyncQueueDispatch::push(value_type&&) for std::list container
	specialization (async_queue.h).

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

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

Version 2.2.3 (16 September 2013)
-------------

	Revise implementation of parallel_transform() functions and add
	parallel_for_each_partial() and parallel_transform_partial()
	functions returning position iterators (parallel.h,
	task_manager.h; doxygen.main.in; tests/test_parallel.cpp).

	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).

	Improve scalability of TaskManager objects by starting new threads
	and adding to the task queue outside the mutex (task_manager.h,
	task_manager.cpp).

	As the 2.2 series of c++-gtk-utils has minimum requirements of gcc
	>= 4.6 and clang >= 3.2, make non-throwing functions 'noexcept'
	where this does not affect ABI (a more complete use of 'noexcept'
	must await the next ABI break as it affects name mangling)
	(callback.h, do_if.h, future.h, future.tpp, gerror_handle.h,
	gobj_handle.h, intrusive_ptr.h, mutex.h, notifier.h, parallel.h,
	reassembler.h, thread.h, rw_lock.h, shared_handle.h,
	shared_ptr.h).

	Really delete copy constructor and assignment operator of
	Thread::RWLock::WriterTrackLock (rw_lock.h).

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

Version 2.2.2 (17 August 2013)
-------------

	Add parallel_for_each() and parallel_transform() functions for
	TaskManager objects (parallel.h, task_manager.h; doxygen.main.in;
	c++-gtk-utils/Makefile.am; tests/test_parallel.cpp,
	tests/Makefile.am).

	Provide a move constructor and move assignment operator for
	MainWidgetBase, PipeFifo and ScopedHandle classes (pipes.h,
	pipes.cpp, shared_handle.h, widget.h, widget.cpp;
	tests/test_iowatch.cpp, tests/test_shared_handle.cpp,
	tests/test_widget.cpp).

	Really delete fdstream's copy constructor and assignment operator
	(fdstream.h).

	Do not deprecate the version of Future::make() taking a function
	pointer and no arguments - it is equivalent to a callable object
	(future.h).

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

	Update documentation (application.h, fdstream.h, gstream.h,
	task_manager.h).

Version 2.2.1 (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).

	Make the TaskManager::add_task() overload taking callable objects
	fully exception safe (task_manager.h).

	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; async_result.h,
	callback.h, future.h, task_manager.h).

Version 2.2.0 (1 June 2013)
-------------

	Un-deprecate the overloads of EmitterArg::connect() taking a
	Callback::FunctorArg object.  This was not intended (emitter.h).

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

	Update unit tests (tests/test_callback.cpp,
	tests/test_emitter.cpp, tests/test_task_manager.cpp,
	tests/test_thread.cpp, tests/test_timeout.cpp).

	Update documentation (callback.h, convert.h, future.h, io_watch.h,
	task_manager.h, timeout.h).

Version 2.1.0 (21 May 2013)
-------------

	Bump version to version 2.1.0 in the 2.2 series of c++-gtk-utils
	(configure-gtk2.ac, configure-gtk3.ac, c++-gtk-utils-2-2.2.pc.in,
	c++-gtk-utils-3-2.2.pc.in, Makefile.am; c++-gtk-utils/Makefile.am;
	docs/Makefile.am; README, doxygen.main.in; omit PORTING-TO-2.0,
	add PORTING-TO-2.2).

	Provide a generic callable object interface for Callback::post(),
	start_iowatch(), start_timeout(), Emitter::connect(),
	Future::fail(), Future::when(), Notifer::connect(),
	SafeEmitter::connect(), TaskManager::add_task(),
	TaskManager::make_task_when(), TaskManager::make_task_when_full(),
	TaskManager::make_task_compose() and Thread::start(); deprecate
	the starting of tasks using Thread::Future and Thread::TaskManager
	except by callable objects (callback.h, emitter.h, future.h,
	io_watch.h, notifier.h, task_manager.h, thread.h, timeout.h;
	tests/test_callback.cpp, tests/test_emitter.cpp,
	tests/test_future.cpp, tests/test_iowatch.cpp,
	tests/test_notifier.cpp, tests/test_task_manager.h,
	tests/test_thread.cpp, tests/test_timeout.cpp).

	Make move construction of AsyncQueue and AsyncQueueDispatch
	objects strongly exception safe (async_queue.h).

	Remove the --with-auto-ptr option (acinclude.m4,
	configure-gtk2.ac, configure-gtk3.ac; cgu_config.h.in,
	task_manager.h, task_manager.cpp, task_manager.tpp,
	text_print_manager.h, text_print_manager.cpp, thread.h,
	thread.cpp; tests/test_task_manager.cpp, tests/test_thread.cpp;
	tests/extra/test_text_print_manager.cpp).

	Simplify emitter/releaser implementation now lambdas and range-for
	are available in gcc-4.6 and above (emitter.h, emitter.cpp).

	No longer document the deprecated Callback::make_val() functions
	(callback.h).

	Remove redundant Callback::Callback_function class (callback.h).

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

	Stop clang++ mismatched-tags and unused-private-field warnings
	(acinclude.m4).

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

	Make other documentation changes (reassembler.h).

Version 2.0.16 (9 March 2013)
--------------

	Allow the Callback::lambda() factory function to be passed
	callable objects which are lvalues (callback.h).

	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, shared_handle.h, shared_ptr.h,
	task_manager.h, text_print_manager.h, thread.h, widget.h,
	window.h).

	Update documentation (PORTING-TO-2.0; doxygen.main.in; callback.h,
	mem_fun.h, task_manager.h).

Version 2.0.15 (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-2-2.0.pc.in, c++-gtk-utils-3-2.0.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 (README; doxygen.main.in, callback.h,
	fdstream.h, future.h, gstream.h, intrusive_ptr.h, mutex.h,
	rw_lock.h, shared_handle.h, shared_ptr.h, task_manager.h,
	thread.h).

Version 2.0.14 (1 January 2013)
--------------

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

	Generalise the Cgu::Thread::Future and Cgu::Thread::TaskManager
	methods which take a function object so as to take the object via
	a template parameter rather than via a std::function object, and
	deduce return types automatically in the
	Cgu::Thread::Taskmanger::make_task_*() and
	Cgu::Thread::make_future() methods (future.h, future.tpp,
	task_manager.h, task_manager.tpp; tests/test_task_manager.cpp).

	Make efficiency improvement when executing 'when' and 'fail'
	callback in a Cgu::Thread::TaskManager object (task_manager.h,
	task_manager.tpp).

	Make efficiency improvement when executing 'when' and 'fail'
	callback in a Cgu::Thread::Future object (future.h, future.tpp).

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

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

Version 2.0.13 (28 November 2012)
--------------

	Provide TaskManager::make_task_result(),
	TaskManager::make_task_when(), TaskManager::make_task_when_full()
	and TaskManager::make_task_compose() 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).

	Make explicit move operations where relevant (future.tpp).

	Update unit tests (tests/test_async_queue.cpp,
	tests/test_async_result.cpp, tests/test_task_manager.cpp).

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

Version 2.0.12 (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_queue.h, async_result.h, callback.h,
	fdstream.h, future.h, mutex.h, shared_handle.h, shared_ptr.h,
	thread.h).

Version 2.0.11 (2 August 2012)
--------------

	Add move_pop() methods to AsyncQueue and AsyncQueueDispatch
	classes, and move_pop_dispatch() and move_pop_timed_dispatch()
	methods to the AsyncQueueDispatch class (async_queue.h;
	tests/test_async_queue.cpp, tests/test_async_result.cpp).

	Add move_get() method to AsyncResult class (async_result.h;
	tests/test_async_result.cpp).

	Add move_get() method to Thread::Future class (future.h;
	tests/test_future.cpp).

	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).

	Merge c++11 branch with trunk in SVN (doxygen.main.in).

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

Version 2.0.10 (1 July 2012)
--------------

	Enable Callback objects created with Cgu::Callback::lambda() to be
	constructed for mutable lambda objects (callback.h).

	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 test (tests/test_async_result.cpp).

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

Version 2.0.9 (29 May 2012)
-------------

	Provide a new Callback::lambda() factory function for more
	convenient construction of callback objects from C++11 lambda
	expressions (callback.h; tests/test_callback.cpp)).

	Provide for unblocking of threads waiting on an AsyncQueueDispatch
	object where it acquires items from a move assignment
	(async_queue.h).

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

	Update documentation (doyxgen.main.in; async_queue.h,
	async_result.h, callback.h, future.h, thread.h).

Version 2.0.8 (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).

	Add gcc-4.7 to the list of compilers requiring use of the
	-std=c++0x flag (doxygen.main.in).

	Update other documentation (async_queue.h, callback.h, emitter.h,
	fdstream.h, future.h, gstream.h, mutex.h, notifier.h,
	prog_present.h, reassembler.h, shared_handle.h, shared_ptr.h,
	thread.h).

Version 2.0.7 (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,
	do_if.h, future.h, io_watch.h, mutex.h, notifier.h, param.h,
	rw_lock.h, thread.h, timeout.h, window.h).

Version 2.0.6 (27 January 2012)
-------------

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

Version 2.0.5 (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,
	future.h).

Version 2.0.4 (28 November 2011)
-------------

	Provide Thread::make_future() convenience wrapper functions for
	creating Thread::Future<> objects (PORTING-TO-2.0, README;
	future.h).

	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 2.0.3 (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 2.0.2 (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, shared_handle.h, shared_ptr.h,
	thread.h, timeout.h).

Version 2.0.1 (12 September 2011)
-------------

	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).

	Reimplement the test of type relatedness using decltype rather
	than sizeof (configure-gtk2.ac, configure-gtk3.ac; do_if.h).

	Update documentation (doxygen.main.in; application.h, convert.h,
	do_if.h, mem_fun.h, mutex.h, param.h, rw_lock.h, shared_handle.h,
	shared_ptr.h, thread.h).

Version 2.0.0-rc5 (19 July 2011)
-----------------

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

	Provide a push() method taking a r-value reference and an
	emplace() method for AsyncQueue and AsyncQueueDispatch objects
	(async_queue.h).

	Update documentation (application.h, async_queue.h, callback.h,
	fdstream.h, future.h, gobj_handle.h, instrusive_ptr.h,
	shared_handle.h, shared_ptr.h, timeout.h).

Version 2.0.0-rc4 (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).

	Use templated rvalue reference implementation for
	Callback::make_ref() and deprecate Callback::make_val()
	(callback.h).

	Use templated rvalue reference implementation for
	Thread::Future::make() (future.h, future.tpp).

	Use 'delete' keyword for copy constructor and assignment operator
	of IntrusiveCounter, IntrusiveLockCounter and ScopedHandle classes
	(intrusive_ptr.h, shared_handle.h).

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

        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, param.h, widget.h, window.h).

Version 2.0.0-rc3 (8 April 2011)
-----------------

	NOTE: Because Cgu::Releaser now uses std::unordered_set instead of
	a std::list, and Cgu::Notifier uses std::unordered_set instead of
	std::set, and some private Releaser and EmitterArg/SafeEmitterArg
	methods have changed their signature, c++-gtk-utils-2.0.0-rc3 is
	not binary compatible with c++-gtk-utils-2.0.0-rc2 (it is however
	API compatible).

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

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

	Correct implementation of Thread::Future objects constructed for a
	std::function object (future.tpp).

	Use a std::unordered_set container instead of a std::list
	container in Cgu::Releaser (emitter.h, emitter.cpp;
	configure-gtk2.ac, configure-gtk3.ac).

	Use a std::unordered_set container instead of a std::set container
	in Cgu::Notifier (notifier.h, notifier.cpp; configure-gtk2.ac,
	configure-gtk3.ac).

	Provide std::hash specializations for Callback::FunctorArg,
	Callback::SafeFunctorArg, GobjHandle, GvarHandle, IntrusivePtr,
	SharedHandle, SharedLockHandle, SharedPtr and SharedLockPtr
	(callback.h, gobj_handle.h, gvar_handle.h, intrusive_ptr.h,
	shared_handle.h, shared_ptr.h; doxygen.main.in; configure-gtk2ac,
	configure-gtk3.ac).

	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).

	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).

	Use 'delete' keyword for copy constructor and assignment operator
	of Thread::CancelBlock class (thread.h).

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

Version 2.0.0-rc2 (9 March 2011)
-----------------

	NOTE: Because of the implementation of support for the
	Cgu::Application class and required changes to Cgu::WinBase,
	c++-gtk-utils-2.0.0-rc2 not binary compatible with
	c++-gtk-utils-2.0.0-rc1 (it is however API compatible).

	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; config.h.in, gobj_handle.h, gvar_handle.h,
	intrusive_ptr, shared_handle.h, shared_ptr.h)

	Omit use of uniform initialiser syntax where it confuses doxygen
	(fdstream.h, gstream.h, pipes.h).

	Update documentation (PORTING-TO-2.0, README, doxygen.main.in,
	gstream.h, io_watch.h, pipes.h, thread.h).

Version 2.0.0-rc1 (11 February 2011)
-----------------

	Use variadic templates for callback and emitter objects, and
	enable callback objects to be constructed from std::function
	objects (callback.h, emitter.h, param.h).

	Use variadic templates for Thread::Future objects, and enable
	future objects to be constructed from std::function objects
	(future.h, future.tpp).

	Use rvalue references and std::forward() for argument forwarding
	in Cgu::DoIf::mem_fun() and Cgu::DoIf::fun() and static_assert for
	static assertion functions (do_if.h).

	Provide move constructors and assignment operators for smart
	pointer classes and functors (callback.h, gobj_handle.h,
	gvar_handle.h, intrusive_ptr.h, shared_handle.h, shared_ptr.h).

	Provide typedef'ed versions of the stream and streambuffer classes
	for char16_t and char32_t as well as wchar_t (fdstream.h,
	gstream.h).

	Provide Cgu::Utf8::utf32_from_utf8(), Cgu::Utf8::utf32_to_utf8(),
	Cgu::Utf8::utf16_from_utf8(), Cgu::Utf8::utf16_to_utf8() functions
	(convert.h, convert.cpp).

	Substitute std::auto_ptr for std::unique_ptr (but have
	std::auto_ptr option for public interfaces) (acinclude.m4,
	configure-gtk2.ac, configure-gtk3.ac; cgu_config.h.in, future.h,
	future.tpp, text_print_manager.h, text_print_manager.cpp,
	thread.h, thread.cpp).

	Where copying is to be prohibited, use 'delete' keyword
	(async_queue.h, emitter.h, fdstream.h, file_print_manager.h,
	future.h, gstream.h, mutex.h, notifier.h, pipes.h, rw_lock.h,
	text_print_manager.h, thread.h, widget.h, window.h).

	No longer use dynamic exception specifications (except for virtual
	functions of std::exception to retain gcc < 4.6 compatibility)
	(cgu_config.h.in, convert.h).

	Use uniform resource initialisation syntax (callback.h, convert.h,
	convert.cpp, emitter.h, emitter.cpp, fdstream.h,
	file_print_manager.cpp, future.tpp, gstream.h, notifier.cpp,
	pipes.h, prog_present.cpp, text_print_manager.cpp, thread.cpp).

	Omit deprecated start_iowatch() overloads (io_watch.h).

	Cgu::present_func() now returns a bool rather than gboolean value
	(prog_present.h, prog_present.cpp).

	Adjust build system for C++0x (acinclude.m4,
	c++-gtk-utils-2-2.0.pc.in, c++-gtk-utils-3-2.0.pc.in,
	configure-gtk2.in, configure-gtk3.in, Makefile.am,
	c++-gtk-utils/Makefile.am).

	Change implemenation of Utf8::ConversionError (convert.h).

	Update documentation (mutex.h, rw_lock.h, shared_handle.h,
	shared_ptr.h, thread.h), and provide new PORTING-TO-2.O file.

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.
