Sun Jul 18 19:40:30 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* === Released 2.5.0 ===

	* Makefile.am (BUILT_EXTRA_DIST): move gtk-doc.make here.

Sun Jul 18 01:40:28 2004  Matthias Clasen  <maclas@gmx.de>

	* NEWS: Updates for 2.5.0

Mon Jul 12 00:02:40 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gi18n-lib.h: Remove the ENABLE_NLS check here as well.

2004-07-09  Matthias Clasen  <mclasen@redhat.com>

	* glib/gdir.c (g_dir_open): Convert filename to UTF-8 
	before using it in the error message.  (#146054, Federico
	Mena Quintero)

Thu Jul  8 00:54:32 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gi18n.h: Remove the ENABLE_NLS check, since GLib can't
	be built without anyway.  (#135899, Murray Cumming)

Mon Jul  5 18:50:27 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmessages.h (g_debug): Complete the g_log() 
	family.  (#135730, Sven Herzberg)

Mon Jul  5 18:42:30 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gnulib/Makefile.am (INCLUDES): Add top_srcdir to 
	make srcdir != . work.  (#145166, Kaz Sasayama)

Sun Jul  4 01:52:18 2004  Matthias Clasen  <maclas@gmx.de>

	* configure.in: Use a small test library instead of
	libpthread.so for testing RTLD_GLOBAL brokenness.  (#139567,
	Julio M. Merino Vidal)
	
2004-07-02  Sebastian Wilhelmi  <seppi@seppi.de>

	* glib/gatomic.c: Rename __asm to __asm__ and __volatile to
	__volatile__ to make the file consistent. Spotted by Benoit
	Carpentier <gtkool_2kx@yahoo.fr>.

2004-07-01  John Ehresman  <jpe@wingide.com>

	* glib/giowin32.c (g_io_channel_win32_init, g_io_win32_free)
	Initialize reset_send & reset_recv fields and don't close
	sockets unless they were created.  (#145153)

Fri Jun 11 22:56:46 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gscanner.c (g_scanner_get_token_ll): Ignore a 
	missing newline at EOF for single line comments.  
	(#83674, Sven Neumann)

Thu Jun 10 23:38:02 2004  Matthias Clasen  <maclas@gmx.de>

	* tests/printf-test.c (TEST): Actually set any_failed on 
	failure.  (#143552, Philippe Blain)

2004-06-09  Federico Mena Quintero  <federico@ximian.com>

	* tests/uri-test.c (to_uri_tests): Fix expected results (ha ha)
	for URIs that *should* have been invalid, or viceversa.
	(from_uri_tests): Likewise.

2004-06-07  Federico Mena Quintero  <federico@ximian.com>

	Fixes #140532.

	* glib/gconvert.c (is_asciialphanum): Renamed from
	is_escalphanum(); ensures that this is an ASCII character.
	(is_asciiescalpha): Renamed from is_escalpha().
	(hostname_validate): Use the two functions above.
	(g_filename_to_uri): Don't convert the filename to UTF-8.
	(g_filename_from_uri): Don't convert the filename from UTF-8.

Mon Jun  7 22:25:24 2004  Matthias Clasen  <maclas@gmx.de>

	* tests/run-markup-tests.sh: Default to silence, but support
	a -v argument to get the old output back. 

2004-06-06  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_get_any_init): Check home for being
	NULL. (#143812, Ivan Wong)

Sun Jun  6 15:23:00 2004  Pawan Chitrakr  <pawan@nplinu.org>

	* configure.in: Added "ne" (Nepali) in ALL_LINGUAS

Fri Jun  4 19:26:47 2004  Manish Singh  <yosh@gimp.org>

        * glib/galloca.h: cpp #directives should always have the "#" in the
        first column of the the line. Do that for "#pragma alloca". Fixes
        bug #143744.

Wed Jun  2 00:57:16 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gtypes.h: Use higher precision for the mathematical
	constants.  (#141941, Morten Welinder)

Tue Jun  1 22:01:40 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmarkup.c (advance_char): Fix an off-by-one error 
	in g_markup_parse_context_parse().  (#142794, Morten Welinder)

Sun May 16 23:23:29 2004  Matthias Clasen  <maclas@gmx.de>

        Merged from 2.4:
	
	* glib/gcompletion.c (g_completion_add_items):
	(g_completion_remove_items): Remove unnecessary 
	checks.  (#142559, Morten Welinder)

2004-05-15  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_get_any_init): [Win32] Only believe HOME if it
	is an absolute path and exists. (#138618)

2004-05-14  Tor Lillqvist  <tml@iki.fi>

	* glib/gnulib/vasnprintf.c (vasnprintf): Handle empty digit string
	for precision correctly. (#142400)

	For backward compatibility with the Trio implementation, make "ll"
	format modifer work on Win32, too. Change into "I64" before
	passing to the system printf. (#142433)

	* tests/printf-test.c (main): Add tests for the above.

2004-05-10  Matthias Clasen  <mclasen@redhat.com>

	Merge from 2.4:
	
	* glib/gmain.c (block_source, unblock_source): Make these 
	static.  (#142230, Morten Welinder)

2004-05-10  Tor Lillqvist  <tml@iki.fi>

	* glib/giowin32.c (g_win32_print_gioflags): Remove two duplicated
	lines. Thanks to Benoît Carpentier.

Sun May  9 02:04:14 2004  Matthias Clasen  <maclas@gmx.de>

	Merge from 2.4:
	
	* glib/guniprop.c (g_utf8_casefold): Avoid an unnecessary
	memleak.  (#141998, Nikolai Weibull)

Sat May  8 23:02:26 2004  Matthias Clasen  <maclas@gmx.de>

	Merge from 2.4:
	
	* glib/gutils.h: Remove vestigial g_get_codeset().
	* glib/gutils.c (g_get_codeset): Call g_get_charset().
	(#137703, Owen Taylor)

2004-05-06  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Bump version number to 2.5.0.

Wed May  5 23:35:44 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gconvert.c (g_filename_from_uri): Quote the file
	scheme to mark it as untranslatable. String change.  
	(#133144, Danilo Segan)

2004-05-03  Pablo Saratxaga  <pablo@mandrakesoft.com>

	* configure.in: Added Walloon (wa) to ALL_LINGUAS

Sun May  2 03:51:59 2004  Manish Singh  <yosh@gimp.org>

	* glib/gtypes.h: check for __pentium4__ when deciding whether to
	use bswap for GUINT32_SWAP_LE_BE_IA32(). Fixes bug #141620.

2004-05-01  Hans Breuer  <hans@breuer.org>

	* glib/gnulib/Makefile.am : added makefile.msc to EXTRA_DIST
	fixes #141563, Steve Lhomme

2004-04-30  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.4.1 ===

	* configure.in: Version 2.4.1, interface age 1. 

	* NEWS: Updates
	
2004-04-25  Tor Lillqvist  <tml@iki.fi>

	* glib/gwin32.c (g_win32_get_package_installation_subdirectory):
	Plug memory leak. (#140770, John Ehresman)

2004-04-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/libcharset/localcharset.c (_g_locale_get_charset_aliases): 
	Reinstate LIBCHARSET_ALIAS_DIR support which got lost at some
	point.  (#139134, Piotr Klaban)

	* glib/gconvert.c (open_converter): Don't call g_strerror() here, 
	since it can lead to infinite recursion.  (#139133, Piotr Klaban)

2004-04-22  Matthias Clasen  <mclasen@redhat.com>

	* tests/testglib.c (main): Trivial warning fix.  (#140345)

	* tests/queue-test.c (main): Add some tests for off-by-one errors.

	* glib/gqueue.c (g_queue_pop_nth_link): Fix an off-by-one 
	error.  (#139703, Philippe Blain)

	* tests/testglib.c (main): Add testcases for g_message() involving
	non-printable and unsafe characters.

	* glib/gmessages.c (escape_string): Don't assume that
	string->str remains unchanged over g_string_insert() 
	calls.  (#139030, Christophe Saout)

	* glib/gstrfuncs.c (g_ascii_strtod): Fix problems when a 
	locale-specific decimal separator directly follows a 
	number.  (#138424, Nickolay V. Shmyrev)

	* tests/strtod-test.c (main): Add some more testcases.

	* glib/gmain.c (g_main_context_query): Only set time_is_current to 
	FALSE if context->timeout is not zero.  (#137795, Christian Krause)

2004-04-21  Matthias Clasen  <mclasen@redhat.com>

	* tests/printf-test.c (main): Comment out a nonessential testcase
	which fails on HP-UX.  (#136283, Jonas Jonsson)

2004-04-15  Matthias Clasen  <mclasen@redhat.com>

	* tests/patterntest.c (main): Add tests for the empty pattern.

	* glib/gpattern.c (g_pattern_spec_new): Don't read and write out 
	of bounds when the pattern is empty.  (#140032, Stanislav Brabec,
	Stefan Fent)

2004-04-10  Tor Lillqvist  <tml@iki.fi>

	* glib/gwin32.c (g_win32_getlocale): Add new language and
	sublanguage codes, from GNU gettext. (#137958)
	
	* glib/giowin32.c
	* glib/gmain.c
	* glib/gstrfuncs.c
	* glib/gthread.c: Decorating variable definitions with
	__declspec(dllexport) causes problems on Cygwin build, and isn't
	really needed for a native Win32 build with mingw or MSVC, so
	remove. (#138402, Roger Leigh)

	* glib/libcharset/localcharset.c: Use Win32-specific code also on
	Cygwin.
	* tests/uri-test.c: Don't assume that local filenames are in UTF-8
	on Cygwin, either. (#138412, Roger Leigh)

2004-04-08  Guntupalli Karunakar  <karunakar@freedomink.org>

        * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.

2004-04-03  Tor Lillqvist  <tml@iki.fi>

	* configure.in: Remove AC_CYGWIN, obsolete. Don't let pthreads be
	found on Cygwin, they don't work. (#138401, Roger Leigh)

2004-03-31  Tor Lillqvist  <tml@iki.fi>

	* tests/spawn-test-win32-gui.c: Minor Cygwin fix. (#138405, Roger
	Leigh)

	* tests/unicode-encoding.c (process): Use UTF-16LE explicitly also
	on Cygwin. (#138423, Roger Leigh)

2004-03-30  Adam Weinberger  <adamw@gnome.org>

	* configure.in: Added en_CA to ALL_LINGUAS.

2004-03-21  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_path_get_dirname): Fix Win32 behaviour in some
	cases where a drive letter is present. For 'a:' or 'a:foo', return
	'a:.'. This is mostly just for consistency with the behaviour
	without a drive letter. But very important is to for 'a:\foo' or
	'a:\', return 'a:\', and not 'a:'. (Ditto for forward slashes
	instead of backslashes.) (#137316)

	* tests/dirname-test.c (main): More complete testing on Win32. If
	a test fails, include expected and actual result in error message.

Fri Mar 19 15:21:09 2004  Owen Taylor  <otaylor@redhat.com>

	* glib/gmain.c: Fix the accidental revert of the
	fixes from #112222 that happened when the GChildWatch
	code was added. (Caught by Christian Persch)

Fri Mar 19 11:07:06 2004  Owen Taylor  <otaylor@redhat.com>

	* tests/atomic-test.c (main): Make computation
	of "biggest_pointer" vaguely more portable.
	(#137498, Jonas Jonsson)

2004-03-16  Tor Lillqvist  <tml@iki.fi>

	* configure.in: Define HAVE_INT64_AND_I64 also in the mingw (gcc
	on Win32) case, where the 64-bit type is called long long, but the
	system printf/scanf format modifier for 64-bit integers is still I64.

2004-03-16  Gareth Owen  <gowen72@yahoo.com>

	* configure.in: Added en_GB to ALL_LINGUAS

