2008-01-28  Matthias Clasen  <mclasen@redhat.com>

	* NEWS: Updates

2008-01-28  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Check for gmtime_r.  
	* glib/gtimer.c: Use gmtime_r when available.  (#511807,
	Sebastian Dröge)

2008-01-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gnode.[hc]: Move docs inline.  (#316260, Philippe Blain)

2008-01-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutf8.c (g_utf8_strreverse): Document limitations
	of this function.  (#487909, Peter Moulder)

2008-01-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/goption.c (group_list_has_visible_entries):
	Removed unused variable is_main_group.  (#512381,
	Wouter Bolsterlee)

2008-01-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmacros.h: Deprecate G_GNUC_(PRETTY)_FUNCTION.

2008-01-27  Matthias Clasen  <mclasen@redhat.com>

	* m4macros/glib-gettext.m4: Remove AC_CANONICAL_HOST from
	GLIB_WITH_NLS again.  (#385132)

2008-01-27  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Fix the pcre Unicode test to work with
	LDFLAGS=-Wl,--as-needed.  (#484261, Mark Lee)

2008-01-27  Murray Cumming  <murrayc@murrayc.com>

	* gio/gfile.c: (g_file_replace_contents),
	(g_file_replace_contents_finish): Document that the new_etags output 
	gchar* should be freed.

2008-01-25  Loïc Minier  <lool@dooz.org>

	* glib/goption.c: (group_has_visible_entries),
	(group_list_has_visible_entires), (g_option_context_get_help): Pass
	context down the implementation to check for the main_group.
	Bug #510292.
	* glib/tests/option-context.c:
	Don't set G_OPTION_FLAG_IN_MAIN in main_entries
	(group_captions): only create group when actually adding it to the
	context; add an exit(0) to make sure the test succeeds.

2008-01-23  Jens Granseuer  <jensgr@gmx.net>

	* glib/gtestutils.c: (g_test_trap_fork):
	* glib/tests/testing.c: (test_assertions): Only declare variables at
	the beginning of a code block. Bug #511654.

2008-01-21  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Bump version

	* === Released 2.15.3 ===

2008-01-21  Tor Lillqvist  <tml@novell.com>

	* glib-zip.in: Add the gio DLL to the runtime zipfile.

2008-01-21  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.15.3 ===

	* NEWS: Updates

2008-01-20  Murray Cumming  <murrayc@murrayc.com>

	* glib/gchecksum.c: (g_checksum_update): Accept -1 for the data 
	length if the data is a null-terminated string. Bug #510855.

2008-01-21  Alexander Larsson  <alexl@redhat.com>

        * configure.in:
	Only check for sys/inotify.h (see gio/ChangeLog) 

2008-01-18 16:51:23  Tim Janik  <timj@imendio.com>

	* glib/gutils.h: don't define __GNUC_PREREQ which is not in the glib
	namespace. for gcc, define G_INLINE_FUNC to "static inline" as with
	all other C compilers, because newer GCC versions incompatibly
	changed "extern inline" semantics.

2008-01-18  Murray Cumming  <murrayc@murrayc.com>

	* glib/gfileutils.c:
	* glib/gsequence.c:
	* glib/gstring.c: Fixed some minor typos in the documentation.

2008-01-16  Dan Winship  <danw@gnome.org>

	* glib/gchecksum.c (md5_sum_update): Fix another bug (which
	doesn't affect the results, but may cause it to read bad memory).

2008-01-15  Alexander Larsson  <alexl@redhat.com>

        * glib/gurifuncs.c:
	Clarify docs for g_uri_unescape_string() (#508773)

2008-01-14  Dan Winship  <danw@gnome.org>

	* m4macros/glib-2.0.m4: Support gio in AM_PATH_GLIB_2_0 (#509465)

2008-01-15  Dan Winship  <danw@gnome.org>

	* glib/gchecksum.c (md5_sum_update): fix this; the previous code
	gave the wrong md5sum when called in certain ways with buffers
	larger than 64 bytes.
	(g_checksum_update): remove the unnecessary "length > 1"
	restriction

	* tests/checksum-test.c: Rewrite this to be much more exhaustive
	(and in particular to test the md5_sum_update bugfix).

2008-01-14  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Bump version

	* === Released 2.15.2 ===

	* NEWS: Updates

2008-01-14  Alexander Larsson  <alexl@redhat.com>

        * glib/gurifuncs.c:
	Clarify docs for g_uri_escape_string (#508773)

2008-01-12  Andre Klapper  <a9016009@gmx.de>

	* configure.in: ALL_LINGUAS: remove line breaks from previous 
	commit to get damned-lies stats correct again. Add Sinhala (si).

2008-01-11  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtestutils.c: Fix a docs typo

2008-01-11 12:55:19  Tim Janik  <timj@imendio.com>

	* tests/testingbase64.c: added g_base64_encode()/g_base64_decode()
	test case by Asbjoern Pettersen. fixed up coding style.

2008-01-11 09:00:28  Tim Janik  <timj@imendio.com>

	* glib/Makefile.am (install-exec-hook): use mv/sed/rm on a temporary
	file instead of "sed -i" which is not portable enough.

2008-01-08  Alexander Larsson  <alexl@redhat.com>

	* tests/cxx-test.C:
	Add gio/gio.h include to check for c++ problems.

2008-01-07  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Bump version

	* === Released 2.15.1 ===

2008-01-07  Alexander Larsson  <alexl@redhat.com>

	* configure.in:
	Add gio/test/Makefile to AC_CONFIG_FILES

2008-01-07  Matthias Clasen  <mclasen@redhat.com>

	* NEWS: Updates

2008-01-06  Matthias Clasen  <mclasen@redhat.com>

	* glib/gregex.c: Add a translator comment (#503051, 
	Pedro de Medeiros)

2008-01-06  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.h: Cope with gcc 4.3 changed 'extern inline'
	semantics.  (#315437, patch by Loïc Minier)

2008-01-06  Matthias Clasen  <mclasen@redhat.com>

	* glib/gspawn.c (fdwalk): Don't set open_max to
	RLIM_INFINITY.  (#495589, Tommi Komulainen)

2008-01-06  Matthias Clasen  <mclasen@redhat.com>

	* README.in, INSTALL.in: Document new dependencies.

2008-01-06  Matthias Clasen  <mclasen@redhat.com>

	* gio-2.0.pc.in, gio-2.0-uninstalled.pc.in: Require glib-2.0
	(#507628)

2008-01-04  Mathias Hasselmann  <mathias@openismus.com>

	Resolve 64 bit-shift bug in g_markup_collect_attributes.
	Spotted by Lieven van der Heide.

	* glib/gmarkup.c: Use G_GUINT64_CONSTANT in bit-shift.

2008-01-02  Alvaro Lopez Ortega  <alvaro@sun.com>

	* gio/gunixmount.c (g_unix_mount_unmount, g_unix_mount_eject):
	These void functions were trying to return a value. It was causing
	the compilation to fail.

2008-01-02  Alvaro Lopez Ortega  <alvaro@sun.com>

	* glib/ghash.c (g_hash_table_replace, g_hash_table_insert): These
	functions prototype defines its output as void, and therefore they
	should not return any value. This patch fixes a compilation error:
	the "return" clauses were incompatible with the functions prototype.

2007-12-31  Matthias Clasen  <mclasen@redhat.com>

	* glib/gslice.c: Remove C99 comments

2007-12-24  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtestutils.h:
	* glib/glib.symbols: Mark assertion functions as G_GNUC_NORETURN.
	(#506461, Sebastian Dröge)

2007-12-24  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtestutils.c: Include sys/time.h.  (#505258)

2007-12-22  Mathias Hasselmann  <mathias@openismus.com>

	Do not show empty groups in --help output. Initial patch from Yevgen
	Muntyan. (#504142)

	* glib/goption.c: Do not show empty groups in --help output.
	* glib/tests/Makefile.am: Add option-context.c
	* glib/tests/option-context.c: Test skipping of empty groups.

2007-12-22  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Remove wrong documentation about start group
	handling.  (#476856, Areg Beketovski)

2007-12-21 18:02:30  Tim Janik  <timj@imendio.com>

	* glib/Makefile.am: use "sed -i.bak <CMD> <FILE> && rm -f <FILE>.bak"
	syntax for install-exec-hook, which seems to be the only "sed -i"
	variant that is portable across linux and MacOS.

2007-12-21  Matthias Clasen  <mclasne@redhat.com>

	* glib/gtestutils.h: Bring up to GLib coding standards: remove
	C99 comments, trailing commas in enumerations and extra ; after
	G_BEGIN/END_DECLS. Among other things, this makes xulrunner build
	against GLib 2.15.

	* glib/gtester.c: More of the same

2007-12-09  Hans Breuer  <hans@breuer.org>

	* tests/gio-ls.c : adapt to recent api changes
	* tests/testglib.c : variable declaration at the beginning of a block
	
	(Lieven van der Heide, #503602)
	* win32-fixup.pl : process *.rc.in as well; substitute 
	LT_CURRENT_MINUS_AGE
	* glib/makefile.msc.in : alphabetic sorting of OBJECTS

2007-12-20  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Bump version

	* === Released 2.15.0 ===

	* NEWS: Updates

	* glib/Makefile.am: Fix make dist

2007-12-20 16:34:04  Tim Janik  <timj@imendio.com>

	* glib/gtester-report: commented class definitions. moved HTML character
	escaping out of javascript. fixed string->bool conversions. added performance
	results to test case "Details" window.

2007-12-20  Matthias Clasen  <mclasen@redhat.com>

	* glib/gchecksum.[hc] (g_checksum_new): Return NULL when 
	the checksum_type is unknown.  (#501853)

2007-12-20  Christian Persch  <chpe@gnome.org>

	* glib/gchecksum.c (g_checksum_new): Use g_slice_new0, to fix
	"conditional jump or move depends on uninitialised value(s)" error
	from valgrind. Bug #504527.

2007-12-20 15:17:04  Tim Janik  <timj@imendio.com>

	* Makefile.decl: generate HTML reports for test-report perf-report full-report.

2007-12-20 15:03:51  Tim Janik  <timj@imendio.com>

	* glib/gtester-report: new python script that generates an HTML
	unit test report from the XML files generated by gtester.

	* glib/Makefile.am: install gtester-report in $bindir and configure
	it upon installation (version number and python shebang).

2007-12-19  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols: Add g_async_queue_new_full

2007-12-19 20:30:18  Tim Janik  <timj@imendio.com>

        * glib/gtestutils.c: capture g_log() messages and send to gtester.
	also, send assertion messages to gtester.

	* glib/gtester.c: add error messages to output log file.
	force child poll loop to abort if waitpid() signaled child exit,
	eventhough the child's report file descriptor wasn't closed.

2007-12-19  Christian Persch  <chpe@gnome.org>

	* glib/gchecksum.c: (g_checksum_type_get_length),
	(g_checksum_get_digest):
	* glib/gchecksum.h:
	* glib/glib.symbols:
	* tests/checksum-test.c: (test_checksum): Add
	g_checksum_type_get_length, and change g_checksum_get_digest to use a
	provided buffer instead of returning allocated memory. Bug #501853.

2007-12-19  Emmanuele Bassi  <ebassi@gnome.org>

	* glib/gtimer.c (g_time_val_from_iso8601): Fix the date validation
	check. (#503029)

	* tests/testglib.c (various_string_tests): Add an invalid date
	for testing the above fix.

2007-12-19  Alexander Larsson  <alexl@redhat.com>

        * glib/gfileutils.[ch]:
        * glib/glib.symbols:
        Rename g_format_file_size_for_display to g_format_size_for_display.

2007-12-18  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/reference/glib/glib-sections.txt:
	* glib/gasyncqueue.c: (g_async_queue_new), (g_async_queue_new_full),
	  (g_async_queue_unref):
	* glib/gasyncqueue.h: add g_async_queue_new_full() which takes a
	  GDestroyNotify function to free any remaining queue items when the
	  queue is destroyed after the final atomic unref (#367550).

2007-12-18 13:45:23  Tim Janik  <timj@imendio.com>

	* glib/gtestutils.[hc]: added g_test_trap_assert_stdout_unmatched() and
	g_test_trap_assert_stderr_unmatched(), based on a suggestion by Mathias
	Hasselmann. reworked g_test_trap_assertions() to use flags to encode
	assertion semantics, fixes #504227.

2007-12-16  Mathias Hasselmann  <mathias@openismus.com>

	* glib/gutils.c:
	Allow NULL strings in g_parse_debug_string. (#503862, Matthew Barnes)

2007-12-14  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/ghash.[hc]: Add hash table iterators.  (#500507,
	Jean-Yves Lefort)

	* tests/hash-test.c: Test iterators. 

2007-12-13  Mathias Hasselmann  <mathias@openismus.com>

	Give exmples in error message unsupported case-changing escape
	sequences. (503222)

	* glib/gregex.c: Add examples to error message for PCRE-ERR37.

2007-12-13  Bastien Nocera  <hadess@hadess.net>

	* glib/gtimer.c: (g_time_val_from_iso8601):
	Don't try to parse dates that start with anything but a
	digit, a plus or a minus sign, as those can't be valid
	ISO8601 dates (Closes: #503029)

2007-12-13  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_clear): Free group_hash.
	(#503420, Christian Persch)

2007-12-12 16:06:11  Tim Janik  <timj@imendio.com>

	* tests/testglib.c: split up tests and reworked code to use
	the new test framework.

	* tests/Makefile.am: added testglib to TEST_PROGS.

2007-12-11 Rahul Bhalerao <b.rahul.pm@gmail.com>

	* configure.in: Added entry for Marathi Translations

2007-12-10  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.h: Include gurifuncs.h

2007-12-10  Benjamin Otte  <otte@gnome.org>

	* glib/garray.h: use an intermediate cast to void * in g_array_index()
	to not trigger cast alignment warnings, fixes #502927.

2007-12-10 15:08:59  Tim Janik  <timj@imendio.com>

        * let g_warn_if_fail replace g_assert as discussed here:
          http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html

        * fix bug #502498: Test framework assertion failures should follow
        gcc error format.

        * gmessages.h, gmessages.c: deprecated g_assert_warning() which is
        unused now. removed g_assert*() definitions whcih are provided by 
        gtestutils.h now. added g_warn_if_reached() and g_warn_if_fail()  
        which are recommended as g_assert/g_assert_not_reached replacements
        for non-test programs.
        added g_warn_message() to implement g_warn_*() macros.
        use emacs-next-error friendly formatting for file:line: for warnings.

        * gtestutils.h, gtestutils.c: use emacs-next-error friendly formatting.
        implement g_assert_not_reached() with g_assertion_message() and
        g_assert() in terms of g_assertion_message_expr() so we'll be able to
        provide assertion messages in test logs.

        * gkeyfile.c, gbookmarkfile.c: changed g_assert*() to g_warn_if_fail()
        or g_return_if_fail() where suitable.

        * gio/: changed g_assert to g_warn_if_fail.

2007-12-10 13:02:08  Tim Janik  <timj@imendio.com>

	* glib/gtestutils.c (g_assertion_message_cmpnum): applied patch by Tommi
	Komulainen to fix int64 printouts, fixes #502511.

2007-12-10  Matthias Clasen  <mclasen@redhat.com>

	* glib/gstrfuncs.h:
	* glib/gstrfuncs.c (g_dpgettext): Change prototype to take 
	msgctxtid + offset instead of two strings, to avoid duplication
	of string constants if the compiler/linker don't perform constant
	suffix merging.  (#502590, Christian Persch)

	* glib/gi18n.h:
	* glib/gi18n-lib.h: Adapt the definitions of C_() and Q_().

2007-12-09  Hans Breuer  <hans@breuer.org>

	* tests/gio-ls.c : (new file) a test program emulating some of 'ls'
	* tests/makefile.msc.in : build it (currently on win32)

	* **/makefile.msc glib/makefile.msc.in : removed -GD to compile
	with msvc9 (vs2008) with less complains
	
	* glibconfig.h.win32.in : #define G_HAVE_ISO_VARARGS 1 for
	msv8 (vs2005) and above
	
	* glib/gfileutils.c : s/stricmp/_stricmp/
	* msvc_recommended_pragmas.h : work around Microsoft's premature 
	attempt to deprecate the C-Library

	* tests/makefile.msc.in : added checksum-test

2007-12-08  Christian Persch  <chpe@gnome.org>

	* gio/glocalfileinfo.c: (get_thumbnail_attributes): Add forgotten
	#ifdef G_OS_WIN32 to fix the build on linux.

2007-12-08  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in : build gchecksum.obj

2007-12-06  Mathias Hasselmann  <mathias@openismus.com>

	* glib/ghash.c: Call destroy notify when destroying
	the hash table in g_hash_table_unref.

2007-12-06 13:29:00  Tim Janik  <timj@imendio.com>

	* glib/gtester.c (child_report_cb): detect non-blocking fd EOF
	by read()==0 following poll(), needed on MacOS.

2007-12-06  Mathias Hasselmann  <mathias@openismus.com>

	* glib/gunidecomp.c: Mention g_utf8_normalize()
	returns NULL on invalid string. (#501997)

2007-12-06  Mathias Hasselmann  <mathias@openismus.com>

	* glib/gerror.c: Improve wording for g_propagate_error docs.

2007-12-06 09:27:42  Tim Janik  <timj@imendio.com>

	* tests/scannerapi.c: added new scanner test from #501654, by
	Patrick Hulin with various modifications.
	reworked coding style, adapted to new testing framework, fixed
	token parser test and use a forked sub process to test
	g_scanner_error() output messages.

2007-12-05 17:58:18  Tim Janik  <timj@imendio.com>

	* glib/gtester.c: added -m=thorough support to gtester.

2007-12-05 17:21:05  Tim Janik  <timj@imendio.com>

	* glib/glib/gtestutils.c: print out random seed for verbose tests,
	also adapted test result reporting slightly in verbose mode to allow
	custom debugging output. support "thorough" as test mode alis for "slow".

	* glib/glib/gtestutils.h: added g_test_thorough().

	* glib/glib/gtester.c: print out the last random seed when tests fail.
	added result attribute to test case status logging to easily spot
	failing tests in log files. disabled debugging output when skipping tests.

2007-12-05 11:43:22  Tim Janik  <timj@imendio.com>

        * glib/gtestutils.[hc]: added g_test_add_data_func() to pass data
	into tests. allow data arguments for fixture tests.

	* glib/gtestutils.c: fixed fatal log flag setup, so tests really abort
	upon criticals/warnings/errors.

	* glib/tests/testing.c: test test_data arguments.

	* glib/gtester.c: some prototype fixups.

2007-12-05  Tor Lillqvist  <tml@novell.com>

	* glib/win_iconv.c: Add "shift-jis" as an alternative spelling of
	"shift_jis".

2007-12-05  Ryan Lortie  <desrt@desrt.ca>

	* autogen.sh: for the benefit of git users, checkout build/ if it is
	missing
	* .gitignore: but after that, ignore it.

2007-12-05  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c: ungtk-docify some comments for internal functions

2007-12-04  Emmanuele Bassi  <ebassi@gnome.org>

	* gio/glocalfileinfo.c: Replace the copy-and-paste MD5 digest
	generation with GChecksum.

2007-12-04  Emmanuele Bassi  <ebassi@gnome.org>

	* glib/gchecksum.[ch]: Add GChecksum, a generic wrapper around
	various hashing algorithms. At the moment, the MD5, SHA-1 and
	SHA-256 algorithms are supported. (#443648)

	* glib/glib.h:
	* glib/Makefile.am:
	* glib/glib.symbols: Build glue for GChecksum

	* tests/Makefile.am
	* tests/checksum-test.c: Add test suite for GChecksum.

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c: no code changes; add comments to document the internal
	functions.

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c: no code changes; reorder functions to remove the need
	for forward declarations.

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c (g_hash_table_lookup_node,
	g_hash_table_lookup_extended, g_hash_table_insert_internal,
	g_hash_node_new): improve clarity in some functions

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c: rename 'node' to 'node_ptr' where appropriate

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c: convert G_HASH_TABLE_RESIZE() macro to inline function

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/glib.symbols (glib_gettext): remove stray (duplicate) entry
	from file to fix the build

2007-12-03  Behdad Esfahbod  <behdad@gnome.org>

	* glib/gnulib/Makefile.am: Fix EXTRA_DIST automake warnings. (#501107)

2007-12-03  Hans Breuer  <hans@breuer.org>

	* glib/glib.symbols : added glib_gettext (in use by gio)
	* makefile.msc : also try building gio
	
	* glib/gmarkup.c : use G_GUINT64_CONSTANT() to avoid 
	'bad suffix on number'
	* glib/gtestutils.c : declare cariable at the beginning of the block,
	include <io.h> for G_OS_WIN32
	* makefile.msc.in : add gurifuncs and gtestutils

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c: create a common function for the many places where all
	nodes in the table are removed (remove_all, steal_all, destroy, unref,
	etc...)

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* tests/hash-test.c (second_hash_test): fix memory leak, add a few
	extra sanity tests.

2007-12-03  Matthias Clasen  <mclasen@redhat.com>
	
	* glib/gkeyfile.c: Don't call g_get_language_names() per-key.
	(#500638, Michael Meeks)

2007-12-03  Marco Barisione <marco@barisione.org>

	* glib/gregex.c:
	* glib/gregex.h: Add new error codes for when compilation fails and
	make compilation error translatable. (#482313, Morten Welinder)

2007-12-03  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Add a hash table to speed up group lookups,
	which GKeyFile does quite a lot.  

2007-12-03  Alexander Larsson  <alexl@redhat.com>

        * configure.in:
	Add xattr checks for OSX style API (#500506)

2007-12-03  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c: merge more common code into functions.  Vastly
	simplify loop logic in g_hash_table_foreach_remove_or_steal().

2007-12-01  Behdad Esfahbod  <behdad@gnome.org>

	* Makefile.am: Don't descend into build/. (#500875)

2007-11-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.h:
	* glib/gmarkup.c: 
	* glib/gerror.c: Add Since: tags to new API, other doc improvements.

2007-11-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gurifuncs.c: Some doc cleanups

2007-11-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtestutils.c: Fix up some doc comments, avoid C99 comments

	* glib/gconvert.c: De-doc-commentify static functions to
	shut up gtk-doc.

	* glib/gutils.c: Fix the glib_gettext doc comment.

2007-11-28  Tor Lillqvist  <tml@novell.com>

	* config.h.win32.in: Update to match what configure produces.

2007-11-28  Alexander Larsson  <alexl@redhat.com>

	* glib/gstring.c (g_string_append_uri_escaped):
	Move this function before g_string_append_c so that
	we avoid the plt call due to the undefinf of g_string_append_c

2007-11-28  Emmanuele Bassi  <ebassi@gnome.org>

	* gio/Makefile.am: Remove makegioalias.pl from the marshal files
	and avoid it being cleaned up when running make clean.

2007-11-28  Alexander Larsson  <alexl@redhat.com>

        * glib/glib.symbols:
	Add in the new symbols
	
        * glib/gurifuncs.c:
	Use the aliases framework
	
        * glib/glibintl.h:
        * glib/gutils.c:
	Make the alias stuff work now that glib_gettext
	is exported to libgio. 

2007-11-27  Ryan Lortie  <desrt@desrt.ca>

	* glib/ghash.c (g_hash_table_insert, g_hash_table_replace,
	g_hash_table_insert_internal): insert/replace were identical except
	for a single line.  Replace both with a common function.

2007-11-27  Alexander Larsson  <alexl@redhat.com>

        * gio/Makefile.am:
        * gio/gurifuncs.[ch]:
        * glib/Makefile.am:
        * glib/gstring.[ch]:
        * glib/gurifuncs.[ch]:
	Moved gurifuncs from gio to glib

2007-11-27  Alexander Larsson  <alexl@redhat.com>

        * gio/gfileinfo.[ch]:
        * glib/gfileutils.[ch]:
        Move g_format_file_size_for_display from gio to glib

2007-11-27  Alexander Larsson  <alexl@redhat.com>

        * configure.in:
	Allow configuration of gio-module-dir
	
        * gio-2.0.pc.in:
	Export giomodules location as giomodule variable

2007-11-26  Matthias Clasen  <mclasen@redhat.com>

	* tests/markup-collect.c: Add some tests for invalid booleans

2007-11-26  Ryan Lortie  <desrt@desrt.ca>
 
 	Add new function g_markup_collect_attributes (bug #496847).
 
 	* glib/glib.symbols: add g_markup_collect_attributes
 
 	* docs/reference/glib/glib-sections.txt: 
 	* glib/gmarkup.h:
 	* glib/gmarkup.c: add g_markup_collect_attributes and new enumerated
 	type GMarkupCollectType.  Add new error code
 	G_MARKUP_ERROR_MISSING_ATTRIBUTE that is thrown by the attribute
 	collector.

2007-11-27  Tor Lillqvist  <tml@novell.com>

	* glib/win_iconv.c: Some improvements, being upstreamed.
	(must_use_null_useddefaultchar): New function, checks for those
	codepages for which one must pass a NULL lpUsedDefaultChar pointer
	to WideCharToMultiByte().
	(kernel_wctomb): Use it.
	(kernel_wctomb): Return with E2BIG immediately if bufsize is zero.

2007-11-27  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (_glib_get_locale_dir) [Win32]: Use either
	lib/locale or share/locale depending on which one is in
	GLIB_LOCALE_DIR. When the configury recognizes GNU gettext (based
	on the _nl_msg_cat_cntr variable, eek), share/locale gets used.

	* glib-zip.in: Likewise, look for message catalogs either in
	lib/locale or share/locale.

2007-11-26  Matthias Clasen  <mclasen@redhat.com>

	* gio/gfileattribute.c: Fix up a doc comment.

2007-11-26  Alexander Larsson  <alexl@redhat.com>

        * Makefile.am:
        * configure.in:
        * gio-2.0-uninstalled.pc.in:
        * gio-2.0.pc.in: 
        * gio-unix-2.0-uninstalled.pc.in:
        * gio-unix-2.0.pc.in:
	* gio/
	* docs/reference/gio
	Merged gio-standalone into glib.
	
        * glib/glibintl.h:
        * glib/gutils.c:
	Export glib_gettext so that gio can use it
	Add P_ (using same domain for now)
	Add I_ as g_intern_static_string

2007-11-26  Tor Lillqvist  <tml@novell.com>

	* glib/win_iconv.c: ISO8859-1 is CP28591, not CP1252.

2007-11-26  Tor Lillqvist  <tml@novell.com>

	Implement #491549: On Windows, always use the native API for
	character set conversions instead of GNU libiconv. Almost all
	codesets supported by GNU libiconv exist as Windows codepages.
	One missing feature is the "C99" and "JAVA" pseudo codesets, but I
	doubt that is worth worrying about.
	
	* glib/win_iconv.c: New file. iconv() implementation for
	Windows. Placed in the public domain by Yukihiro Nakadaira
	<yukihiro.nakadaira@gmail.com>. From
	http://yukihiro.nakadaira.googlepages.com/win_iconv.zip, his
	2007-11-17 version.

	* glib/gconvert.c: Include win_iconv.c on Windows.

	* glib/Makefile.am: Add win_iconv.c to EXTRA_DIST.
	
	* configure.in: Bypass iconv checks on Windows. 

2007-11-25  Tor Lillqvist  <tml@novell.com>

	* glib/gtestutils.c: Add conditionals for non-Unix. Just g_error()
	unless G_OS_UNIX for now.

2007-11-25  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Require gtk-doc 1.8.

	* glib/gasyncqueue.c:
	* glib/gdate.c:
	* glib/gfileutils.c:
	* glib/gmain.c:
	* glib/gmarkup.c:
	* glib/gregex.c:
	* glib/gtestutils.c:
	* glib/gutils.c: Use gtk-doc abbreviations for 
	examples in doc comments.

2007-11-24  Matthias Clasen  <mclasen@redhat.com>

	* */Makefile.am: Replace INCLUDES by AM_CPPFLAGS, other
	cleanups.

2007-11-24  Matthias Clasen  <mclasen@redhat.com>

	* tests/base64-test.c: Fix a memory overrun.

2007-11-24  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c: Remove leftover ENABLE_NLS #ifdefs.

2007-11-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gbase64.c (g_base64_encode): Don't refuse to encode
	a single byte.  (Milan Crha)

	* tests/base64-test.c: Test encoding short strings.

2007-11-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gi18n-lib.h: 
	* glib/gi18n.h: Define a two-argument macro C_() for marking
	translatable strings with context and implement C_() and Q_()
	using g_dpgettext().  (#142676, Morten Welinder)

	* glib/glib.symbols:
	* glib/gstrfuncs.[hc]: Implement g_dpgettext().

2007-11-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/goption.c: Use g_print to print out --help text in 
	locale encoding.  (#469551, Takao Fujiwara)

2007-11-22  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Set length out param in list-returning functions
	to 0 when returning NULL.  (#498728, Christian Persch)

2007-11-21 21:06:47  Tim Janik  <timj@imendio.com>

	* Makefile.decl: initialize automake variables EXTRA_DIST and
	TEST_PROGS for unconditional appending via += in other makefiles.
	define recursive test targets: test, test-report, perf-report,
	full-report, as described here:
      http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html

	* Makefile.am:
	* build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
	* build/win32/Makefile.am, build/Makefile.am:
	* docs/Makefile.am, docs/reference/Makefile.am:
	* docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
	* gmodule/Makefile.am, tests/Makefile.am:
	* tests/refcount/Makefile.am, tests/gobject/Makefile.am:
	* glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
	* glib/tests/Makefile.am, glib/pcre/Makefile.am:
	* glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
	* gthread/Makefile.am, glib/Makefile.am:
	include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.

	* glib/tests/Makefile.am: removed example testing rules.

	* glib/tests/testing.c: conditionalized performance and slow tests.

	* glib/gtestutils.h:
	* glib/gtestutils.c: work around g_test_config_vars not changing its
	exported value after value assignments, aparently due to symbol aliases.

	* glib/gtester.c: fixed off-by-one error which produced junk in logs.

	* configure.in: check for python >= 2.4 and provide $PYTHON for scripts.

Tue Nov 20 15:59:55 2007 +0100 Tim Janik

	Renamed gtestframework to gtestutils.

	* glib/glib.h:
	* glib/Makefile.am: added gtestutils.h to public includes.

	* glib/gtestutils.c: include gtestutils.h.

	* glib/gtestutils.h:
	* glib/glib.symbols:
	* glib/tests/testing.c: renamed gtestframework to gtestutils.

	* glib/gtestframework.h: renamed to gtestutils.h.

	* glib/gtestframework.c: renamed to gtestutils.c.

Tue Nov 20 15:29:34 2007 +0100 Tim Janik

	glib/gtestframework.c: g_test_init(): make warnings and criticals fatal for all test programs.

Wed Nov 14 20:35:05 2007 +0100 Tim Janik

	gtestframework.c: added test API documentation by Sven Herzberg and Tim Janik.

Wed Nov 14 19:10:28 2007 +0100 Tim Janik

	gtestframework.[hc]: implemented g_test_queue_destroy() and g_test_queue_unref().

Fri Nov 9 12:28:52 2007 +0100 Tim Janik

	Added g_test_bug() and related API.

	* gtester.c: handle G_TEST_LOG_MESSAGE and test test message API.

	* gtestframework.h, gtestframework.c: added test message API and convenience
	API to send test messages about bug URLs.

Fri Nov 9 11:35:11 2007 +0100 Tim Janik

	Added API to access test framework configuration.

	* gtestframework.h, gtestframework.c: export testing configuration to test
	programs with g_test_quick(), g_test_perf(), g_test_verbose(), g_test_quiet().

Thu Nov 8 17:55:09 2007 +0100 Tim Janik

	gtester: implemented logic to handle failing tests, self tests, and validate XML reports.

	* gtester.c: terminate when tests failed. keep XML valid when test cases fail.
	restart test binaries when tests fail, resuming after the last processed test.
	support --gtester-selftest to run gtester itself as test program.
	support --test-arg=<arg> to pass args along to test programs. added
	main_selftest() which does a simplistic fixture test. fail if exit
	code of test programs is not 0.

	* gtestframework.h: added G_TEST_LOG_SKIP_CASE test log message type.

	* gtestframework.c: support --GTestSkipCount=<n> to skip a number of tests.

	* tests/Makefile.am: added test-report: for demonstration purposes.
	added gtester-xmllint-check: and hooked it up into check:, this rule calls
	gtester as test program, running it's selftest, and then uses xmllint to
	validate the generate XML test log file.

Thu Nov 8 14:51:37 2007 +0100 Tim Janik

	gtester: implemented XML logging.

	* glib/gtester.c: log test messages to XML output file. beautified normal test
	result output.

	* glib/gtestframework.c: fixed GTimer leak.

	* glib/tests/Makefile.am: start gtester with --verbose.

Thu Nov 8 12:33:31 2007 +0100 Tim Janik

	tests/Makefile.am: execute test programs with gtester, add test: to check:

Thu Nov 8 12:18:51 2007 +0100 Tim Janik

	Fixed PLT symbol exports for gtestframework.h.

	* glib/glib.symbols: added all exported gtestframework.h symbols.

	* glib/gtestframework.c: include galias.h, galiasdef.c, define __G_TESTFRAMEWORK_C__.

Thu Nov 8 11:31:12 2007 +0100 Tim Janik

	glib/gtester.c: fixed debugging flag.

Wed Nov 7 17:56:26 2007 +0100 Tim Janik

	fixed bogus unistd.h include.

Wed Nov 7 17:53:30 2007 +0100 Tim Janik

	Implemented test log IPC.

	* gtester.c: read and decode log messages from test binary child processes.
	fixed GIOChannel and child watch handling to process all messages and avoid
	hangs. pass --verbose and --quiet on to children, default to --quiet.

	* gtestframework.h: export g_test_log_type_name().

	* gtestframework.c: send test log to --GTestLogFD=<fd> if given, removed
	bogus -o-option.

Tue Nov 6 20:07:44 2007 +0100 Tim Janik

	gtester.c: support test case listing through gtester.

Tue Nov 6 20:01:06 2007 +0100 Tim Janik

	gtestframework.c: fixed testpath matches for automatic root suite.

Tue Nov 6 19:50:33 2007 +0100 Tim Janik

	gtester.c: adapted to become a rudimentary test binary launcher.

	* gtester.c: increased read buffer size to match common unix pipe buffer size.
	added argument parsing and usage. changed io handling to capture and replicate
	stdout. fixed io handlers to be cleaned up when the child process exits (catch
	G_IO_ERR | G_IO_HUP). we now use pending/iteration instead of a main loop
	structure, to keep running until the child process exits and all io has been
	processed. launch the test binaries given on the command line. don't quit when
	a child couldn't be launched but --keep-going was specified.

Tue Nov 6 17:11:37 2007 +0100 Tim Janik

	Integrated gtester program into build process.

	* Makefile.am: build and install gtester binary.

	* gtester.c: fixed up coding style and removed hard wired test coded.

Tue Nov 6 16:12:32 2007 +0100 Sven Herzberg

	glib/gtester.c:Small -Wall fix

Tue Nov 6 16:05:06 2007 +0100 Sven Herzberg

	glib/gtester.c:Implemented nonblocking reading properly now

Mon Nov 5 13:53:23 2007 +0100 Sven Herzberg

	glib/gtester.c:Quit the application when the output is parsed completely, not just the process finished

Mon Nov 5 12:00:16 2007 +0100 Sven Herzberg

	glib/gtester.c:Read the output of the child process

Mon Nov 5 11:50:59 2007 +0100 Sven Herzberg

	glib/gtester.c:Use g_spawn_async_with_pipes()

Mon Nov 5 11:50:08 2007 +0100 Sven Herzberg

	glib/gtester.c:Spawn a process async and quit gtester after the child process exited

Mon Nov 5 11:30:45 2007 +0100 Sven Herzberg

	glib/gtester.c:Added a first revision of gtester

Tue Nov 6 16:47:06 2007 +0100 Tim Janik

	Implemented test log serialization.

	* glib/gtestframework.h: added g_test_log*() API.

	* glib/gtestframework.c: implement test log serialization.

Tue Nov 6 14:24:54 2007 +0100 Tim Janik

	Implemented test logging basics.

	* glib/gtestframework.c: added --debug-log and --verbose, implemented
	test information logging.

	* testing.c: test g_test_maximized_result() and g_test_minimized_result().

Tue Nov 6 11:52:14 2007 +0100 Tim Janik

	Implemented g_test_timer*().

	* gtestframework.c: implemented g_test_timer*().

	* tests/testing.c: added a g_test_timer*() test.

Mon Nov 5 18:28:24 2007 +0100 Tim Janik

	Implemented support for testpaths.

	* gtestframework.c: implemented g_test_add_vtable() and g_test_add_func().

	* tests/testing.c: use g_test_add() and g_test_add_func() to majorly simplify main().

Mon Nov 5 15:56:42 2007 +0100 Tim Janik

	testing.c: added tests for the g_test_rand*() API.

Mon Nov 5 15:55:38 2007 +0100 Tim Janik

	Implemented g_test_rand*().

	* gtestframework.h: fixed g_assert_cmp*() to evaluate arguments only once.
	added g_assert_cmpuint(). completed g_test_rand*() to cover bits, ints,
	doubles and ranges.

	* gtestframework.c: fixed "--seed" option and implemented g_test_rand*().

Mon Nov 5 15:51:43 2007 +0100 Tim Janik

	testing.c: added tests for g_assert_cmphex() and forked test traps.

Mon Nov 5 15:10:18 2007 +0100 Tim Janik

	Implemented g_test_trap_fork() API.

	* gtestframework.h: added g_assert_cmphex(). reworked g_test_trap*() API.

	* gtestframework.c: implemented g_test_trap_fork() API.

Thu Nov 1 15:05:07 2007 +0100 Tim Janik

	* glib/gtestframework.c:

	that match a given test path.
	(g_test_run_suite): run suite only if it matches the existing test paths.

	* glib/tests/testing.c: minor rename.

Thu Nov 1 13:45:55 2007 +0100 Tim Janik

	GTest framework started.

	* glib/gtestframework.h: testing framework API as proposed on gtk-devel-list.
	includes elaborate assertions, performance report functions, test traps,
	test timer, test random numbers, teardoiwn garbage collection functions
	and general test case / test suite management APIs.

	* glib/gtestframework.c: first test framework implementation. already covers
	some test suite management APIs and assertion message implementations.

	* glib/tests/testing.c: test program for the testing framework.

	* glib/tests/Makefile.am: complie testing.c as test. run all tests as part of
	make test:.

Wed Oct 31 15:42:48 2007 +0100 Tim Janik

	glib/Makefile.am: build tests/ subdir after building libglib.

Tue Oct 30 16:17:32 2007 +0100 Tim Janik

	Fixed up internal 'g_test*' names.

	* refcount/signals.c:
	* refcount/objects.c:
	* refcount/objects2.c:
	* refcount/closures.c:
	* refcount/properties.c:
	* refcount/properties2.c: changed namespace prefix from g_test_* to my_test_*
	to not clash with newly introduced g_test* API in glib.

Tue Oct 30 14:41:26 2007 +0100 Tim Janik

	Added gtestframework.[hc] and glib/tests/.

2007-11-20  Sven Neumann  <sven@gimp.org>

	* glib/gerror.c (g_error_add_prefix): use g_strconcat() instead of
	g_strjoin() to concatenate two strings.

2007-11-19  Marco Barisione  <marco@barisione.org>

	* glib/gregex.c: When the compilation of a pattern fails in the error
	message use the character offset and not the byte offset.

	* glib/gregex.c: Pass an unsigned long instead of an int to
	pcre_fullinfo() to avoid problems on 64-bit systems (#498113, Kouhei
	Sutou)

2007-11-19 10:30:33  Tim Janik  <timj@imendio.com>

	* configure.in: updated version number to 2.15.0 for development.

2007-11-18  Matthias Clasen  <mclasen@redhat.com>

	* glib/gbase64.c: Documentation improvements.  (#496518,
	Stefan Schulze Frielinghaus)

2007-11-18  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Check whether assembler supports numerical local
	labels.  

	* glib/gatomic.c: Fix powerpc implementation of atomic ops for 
	platforms where the assembler doesn't support numerical local
	labels.  (#445362)

2007-11-15  Ryan Lortie  <desrt@desrt.ca>

	* docs/reference/glib/tmpl/markup.sgml:
	* glib/gmarkup.h:
	* glib/gmarkup.c: new flag G_MARKUP_PREFIX_ERROR_POSITION to cause the
	parser to prepend location information (ie: "Error on line %d, char
	%d:") to errors generated by the GMarkupParser callbacks.

	Closes #496046.

2007-11-15  Ryan Lortie  <desrt@desrt.ca>

	* docs/reference/glib/glib-sections.txt:
	* glib/glib.symbols:
	* glib/gerror.h:
	* glib/gerror.c: new functions g_prefix_error and
	g_propagate_prefixed_error.

2007-11-13  Cody Russell  <bratsche@gnome.org>

	* docs/reference/gobject/gobject-docs.sgml:
	* docs/reference/gobject/tut_gsignal.xml:
	* docs/reference/gobject/tut_gtype.xml:
	* docs/reference/gobject/tut_intro.xml:
	* docs/reference/gobject/tut_tools.xml:
	* docs/reference/gobject/tut_howto.xml:
	* docs/reference/gobject/tut_gobject.xml: Documentation fixes.
	Recommend macro type names such as NAUTILUS_TYPE_WINDOW (not
	NAUTILUS_WINDOW_TYPE).  Fixed text which erroneously stated that 
	superclass initializers don't run when an object is 
	instantiated.  Fixed numerous spelling mistakes.  Minor grammar 
	edits. (#490637, Adam Dingle)

2007-11-09  Matthias Clasen <mclasen@redhat.com>

	* glib/gkeyfile.c: Coding style cleanups and doc 
	improvements.  (#491979, #491982, Areg Beketovski)

2007-11-09  Matthias Clasen <mclasen@redhat.com>

	* glib/giochannel.c: Coding style cleanups and doc 
	improvements.  (#491975, Areg Beketovski)

2007-11-09  Matthias Clasen <mclasen@redhat.com>

	* glib/gmain.c (g_main_context_iteration): Improve the
	docs.  (#491974, Areg Beketovski)

2007-11-09  Matthias Clasen <mclasen@redhat.com>

	* glib/gdate.c: Coding style fixes.

2007-11-09  Matthias Clasen <mclasen@redhat.com>

	* configure.in: Add AM_PROG_CC_C_O.

	* Makefile.am: Remove the install-exec-local hook and use
	configexecincludedir_DATA instead, in an attempt to avoid
	automake 1.9 <> 1.10 incompatibilities.

	* glib/Makefile.am: Rename MIRRORING_TAB_SOURCES, since
	automake 1.10 complains.

2007-11-09  Matthias Clasen <mclasen@redhat.com>

	* glib/gspawn.c (g_spawn_sync): Improve the docs.  (#491968,
	Areg Beketovski)

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* glib/gmain.c (g_main_context_release): 
	(g_main_context_acquire):
	(g_main_context_new): Fix the doc wording.  (#491957, 
	#491965, #491966, Areg Beketovski)

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* glib/gutils.c (g_set_application_name): Add a missing
	since tag.  (#464259, Mark Doliner)

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* glib/goption.c (g_option_context_new): Improve the docs.
	(#436293, Vincent Untz)

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* glib/gmain.c (g_main_loop_quit): Expand the docs 
	a bit.  (#317775, Søren Sandmann)

2007-11-08  Matthias Clasen <mclasen@redhat.com>
	
	* autogen.sh: Accept automake 1.10, too

	* mkinstalldirs: Temporarily add this script, to fix building
	from svn.

	* Makefile.am: Use MKDIRS_P instead of mkinstalldirs, add
	ChangeLog.pre-2-14 and mkinstalldirs to EXTRA_DIST.

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* glib/gmarkup.h: Include gslist.h. Pointed out by Michael Natterer.

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* glib/gconvert.c (g_convert_with_iconv): Try harder to reset
	shift state with AIX iconv().  (#467537)

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* configure.in:
	* m4macros/glib-2.0.m4: Require pkg-config 0.16 in configure
	and in AM_PATH_GLIB_2_0 to be consistent with the use of
	PKG_PROG_PKG_CONFIG which was introduced in 0.16.  (#418778,
	Loïc Minier)

2007-11-08  Matthias Clasen <mclasen@redhat.com>

	* glib/gstrfuncs.c (g_parse_long_long): Don't leave
	out parameters uninitialized.  (#490061, Benjamin Otte)

2007-11-07  Matthias Clasen <mclasen@redhat.com>

	* glib/gmain.c (g_main_context_unref): Don't leak the
	condvar.  (#479724, Areg Beketovski)

2007-11-07  Matthias Clasen <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/gmarkup.[hc] (g_markup_parse_context_get_element_stack): 
	New function, to get the stack of open elements.  (#452887,
	Ryan Lortie)

2007-11-07  Matthias Clasen <mclasen@redhat.com>

	* glib/gkeyfile.[hc]: Make some functions that take
	a GError return boolean instead of void.  (#375651, Matt Barnes)

2007-11-07  Matthias Clasen <mclasen@redhat.com>
	
	* autogen.sh: Use automake 1.9

	* acinclude.m4:
	* configure.in: Move some inter-*.m4 includes from
	configure.in to acinclude.m4 to avoid warnings when
	using automake 1.9.  (#449937)

2007-11-07  Matthias Clasen <mclasen@redhat.com>

	=== Branch for 2.14 ===
