2005-01-09  Hans Breuer  <hans@breuer.org>

	* glib/gfileutils.c : make it compile with mvc6 default sdk,
	(#define INVALID_FILE_ATTRIBUTES, FILE_ATTRIBUTE_DEVICE)

2005-01-09  Tor Lillqvist  <tlillqvist@novell.com>

	* glib/gwin32.c: Include also wchar.h for wcslen on
	Cygwin.
	(g_win32_error_message): Fix cast. (#163133, Roger Leigh)

	* glib/gfileutils.c: Include <io.h> on Windows for
	prototypes. (#163390, Kazuki Iwamoto)

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

	* NEWS: Typo fixes.

	* configure.in: Bump version

	* === Released 2.6.1 ===

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

	* configure.in: 
	* Makefile.am: Generate and distribute gmodule-export-2.0.pc,
	which is currently just a copy of gmodule-2.0.pc, but makes
	it explicit that it adds --export-dynamic.
	
	* gmodule-export-2.0.pc.in: Copy of gmodule-2.0.pc.in.

2005-01-06  Tor Lillqvist  <tml@iki.fi>

	* glib/Makefile.am
	* gobject/Makefile.am: glib.def and gobject.def are generated, not
	in $(srcdir). (#163143, J. Ali Harlow)

	* configure.in
	* glib/Makefile.am
	* gobject/Makefile.am: Win32 cross-compilation fixes. (#163144,
	J. Ali Harlow)

2005-01-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.h: Simplify the inlining magic to make it
	work at Oh zero.  (#162990, Kalpesh Shah) 

2005-01-04  Tor Lillqvist  <tml@iki.fi>

	* glib/guniprop.c (get_locale_type): Use g_win32_getlocale()
	instead of setlocale() on Windows. setlocale() returns strings
	like "Turkish_Turkey".

2005-01-04  Matthias Clasen  <mclasen@redhat.com>

	Fix the inlining magic.  (#157536, Jens Hatlak, and
	#149907, Morten Welinder)
	
	* configure.in: Define G_CAN_INLINE in glibconfig.h

	* glib/gutils.h: Streamline the inlining magic a bit,
	don't use extern when implementing the non-inlined 
	version.

2005-01-03  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_find_program_in_path): Don't return
	directories.  (#160738, Tommi Komulainen)

	* glib/gfileutils.c (g_file_get_contents): Clarify the 
	documentation.  (#162251, Mariano Suárez-Alvarez)

2005-01-02  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_setenv, g_unsetenv): Clarify the 
	docs.  (#162747, Crispin Flowerday)

2005-01-01  J. Ali Harlow  <ali@juiblex.co.uk>

	* configure.in: Don't use AC_TRY_RUN to test for long long format
	when using the MSVCRT.DLL runtime since we know the answer anyway
	and it causes some mild inconvience when cross compiling.

	* README.win32: Add a reference to the cross compiling section
	of the reference manual.

	* docs/reference/glib/cross.sgml: MinGW uses MSVCRT.DLL which
	requires %I64i instead of %lli. (#161306)

2005-01-01  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c: Make the g_getenv() ABI backward compatibility
	wrapper more robust.

2005-01-01  Tor Lillqvist  <tml@iki.fi>

	* glib/glib.symbols
	* glib/gutils.h
	* glib/gutils.c: Make also g_getenv(), g_setenv(), g_unsetenv()
	and g_find_program_in_path() take and return UTF-8 strings on
	Win32. Implement DLL ABI backward compatility for them, too. Move
	all the DLL ABI stability wrappers to the end of the file. Use
	wide character API when available in inner_find_program_in_path().

	* glib/gfileutils.c: With the UTF-8ness of g_getenv() above, just
	use g_getenv() to get PATHEXT. (Yeah, it's probably overdoing it
	to consider somebody actually having anything else than ASCII
	in PATHEXT, but...)

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

	* glib/gfileutils.c (g_file_test): Rewrite the Win32 version to
	use GetFileAttributes() instead of stat(). stat() is unreliable
	for corner cases like '\\server\share' or '.\'. Part of fixing
	#161797. When testing for executability, in addition to the fixed
	set of executable file name extensions also check the PATHEXT
	environment variable.

2004-12-30  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_get_current_dir): In the Win32 version, use
	GetCurrentDirectory() directly for simpler buffer length
	management. I don't trust getcwd() getting it right all the time.

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

	* glib/gfileutils.c (g_file_test): Typo fix.

2004-12-30  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_path_skip_root): Require UNC paths to start
	with exactly two slashes.
	(g_get_current_dir): Use wide character API when available.
	(g_path_get_dirname): Handle UNC paths better. Part of fix for
	#161797.

2004-12-27  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Add an OS_LINUX conditional.

	* glib/Makefile.am (TESTS): Only check the ABI on 
	linux, since the shell script is not portable, and libtool
	deficiencies may distort the ABI on other platforms.  (#161741)

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

	* glib/goption.c (print_entry): Don't show
	the special G_OPTION_REMAINING entry.  (#161934,
	Matthew F. Barnes)

2004-12-20  Tor Lillqvist  <tml@iki.fi>

	* glib/gconvert.c (g_locale_to_utf8, g_filename_to_uri): Improve
	docs.

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

	* tests/option-test.c: Add some tests for '--' 
	stripping.

	* glib/goption.c (g_option_context_parse): Don't
	strip '--' if it would be needed by a second option
	parser.  (#161701)

	* glib/gunicollate.c (g_utf8_collate): Make docs 
	more accurate.  (#161683, Marcin Krzyzanowski)

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

	* glib/goption.c (g_option_context_parse): Call
	post-parse hooks also if argv is NULL.  (#161668,
	Marcin Krzyzanowski)

