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

	* === Released 2.15.5 ===

	* NEWS: Updates

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

	* glib/gtestutils.h: Make the g_test_add macro work with 
	gcc 4.3

	* tests/gobject/paramspec-test.c: Adapt to recent changes in 
	GParamGType initialization.

2008-02-10  Matthias Clasen <mclasen@redhat.com>

	* glib/gtestutils.c: Fix a typo in the docs.

2008-02-09  Matthias Clasen <mclasen@redhat.com>

	* configure.in: Check for getmntent_r.

2008-02-09  Matthias Clasen <mclasen@redhat.com>

	* Makefile.decl: /bin/ksh can't handle a for-loop with no 
	arguments, so add a "." for when $(SUBDIRS) is empty.

	* glib/tests/option-context.c:
	* glib/tests/testing.c:
	* gthread/gthread-posix.c:
	* tets/testingbase64.c:
	* glib/gtester.c: 
	* glib/gsequence.c: Portability fixes.  (#515154)

2008-02-07  Tor Lillqvist  <tml@novell.com>

	* configure.in: Unfortunately the mingw implementations of
	C99-style snprintf and vsnprintf don't seem to be quite good
	enough, at least not in mingw-runtime-3.14. I don't know exactly
	what the problem is, but it is related to floating point
	formatting and decimal point vs. comma, and the symptoms show up
	in some dialogs in GIMP, presumably also elsewhere. The simple
	tests in AC_FUNC_VSNPRINTF_C99 and AC_FUNC_SNPRINTF_C99 aren't
	rigorous enough to notice, though. So preset
	ac_cv_func_vsnprintf_c99 and ac_cv_func_snprintf_c99 to "no".

2008-02-07 12:58:54  Tim Janik  <timj@imendio.com>

	* Makefile.am: fixed build order to build gobject after gmodule gthread
	so gobject tests can be threaded.

2008-02-07  Ryan Lortie  <desrt@desrt.ca>

	* glib/gmessages.h (g_error): add for(;;); after the g_log call so
	that GCC stops issuing false warnings about reachability  Bug #514920

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

	* glib/pcre/*: Update the internal copy of PCRE to 7.6

2008-02-06  Behdad Esfahbod  <behdad@gnome.org>

	* glib/pltcheck.sh: Skip g_bit_*().  Inline functions may end up with
	a local plt if the compiler doesn't support what we want.  Bug #514702

2008-02-06  Murray Cumming  <murrayc@murrayc.com>

	* glib/gconvert.c:
	* glib/pcre/pcre_internal.h: Fixed some minor typos in documentation.

2008-02-06  Christian Persch  <chpe@gnome.org>

	* gio/gdesktopappinfo.c: (ensure_dir):
	* gio/glocalfile.c: (g_local_file_query_filesystem_info),
	(g_local_file_read), (g_local_file_delete), (g_local_file_trash),
	(g_local_file_move):
	* gio/glocalfileinfo.c: (set_xattr), (_g_local_file_info_get),
	(_g_local_file_info_get_from_fd), (set_unix_mode),
	(set_unix_uid_gid), (set_symlink), (set_mtime_atime):
	* gio/glocalfileinputstream.c: (g_local_file_input_stream_read),
	(g_local_file_input_stream_skip),
	(g_local_file_input_stream_close),
	(g_local_file_input_stream_seek):
	* gio/glocalfileoutputstream.c: (g_local_file_output_stream_write),
	(g_local_file_output_stream_close),
	(g_local_file_output_stream_seek),
	(g_local_file_output_stream_truncate), (copy_file_data),
	(handle_overwrite_open):
	* gio/gunixinputstream.c: (g_unix_input_stream_read),
	(g_unix_input_stream_close), (read_async_cb), (close_async_cb):
	* gio/gunixoutputstream.c: (g_unix_output_stream_write),
	(g_unix_output_stream_close), (write_async_cb), (close_async_cb): Save
	errno before calling other funcs that potentially alter it. Bug
	#514766.

2008-02-05 18:42:42  Tim Janik  <timj@imendio.com>

	* configure.in: generate gobject/tests/Makefile.

2008-02-05  Tor Lillqvist  <tml@novell.com>

	* glib-zip.in: Include the gio import library and gio-2.0.pc in
	the developer zipfile.

2008-02-02  Jonathon Jongsma  <jjongsma@gnome.org>

	* gio/gbufferedoutputstream.c:
	* gio/gbufferedoutputstream.h: modify the new_sized() constructor to take a
	gsize param instead of guint to match the GBufferedInputStream constructor.

2008-02-03  Hans Breuer  <hans@breuer.org>

	* **/makefile.msc.in : update

2008-02-03  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.in: Check for gmtime_r. Missing part of bug #511807.

2008-02-01  Yannig Marchegay  <yannig@marchegay.org>

	* configure.in: Add oc since oc.po is back.

2008-01-31  Michael Natterer  <mitch@imendio.com>

	* glib/gmem.c: use %G_GSIZE_FORMAT instead of %lu since sizes have
	changed from gulong to gsize in this file.

2008-01-30  Johan Dahlin  <johan@gnome.org>

	* configure.in: Remove oc since oc.po is gone.

2008-01-30  Wouter Bolsterlee  <wbolster@svn.gnome.org>

	* glib/gchecksum.c:
	* glib/gtestutils.c:
	* glib/gutils.c:

	Fixed gtk-doc warnings by updating the documentation of
	various functions.

2008-01-29  Christian Persch  <chpe@gnome.org>

	* docs/reference/glib/tmpl/macros_misc.sgml: G_GNUC_[PRETTY_]FUNCTION
	are deprecated since 2.16, not 2.14.

2008-01-29 14:58:31  Tim Janik  <timj@imendio.com>

	* glib/gmem.[hc]: changed size argument type from gulong to gsize as
	discussed on gtk-devel-list:
	  http://mail.gnome.org/archives/gtk-devel-list/2007-March/msg00062.html
	this should be ABI compatible on all platforms except win64 for which
	no ABI binding port exists yet.

2008-01-29  Sebastian Wilhelmi  <wilhelmi@google.com>

	* tests/threadpool-test.c (test_thread_pools): Grab
	thread_counter_pools LOCK when increasing
	leftover_task_counter. Fixes race in test. (#512624, Simon Murray)

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

	* configure.in: Bump version

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

	* === Released 2.15.4 ===

	* 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. Bug #409360.

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 ===
