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

	* === Released 2.5.4 ===

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

	Introduce the idea of a filename encoding, which is 
	*literally* the filename encoding on Unix. On windows, 
	use the Unicode name converted to UTF-8. (#156325,
	Tor Lillqvist, Owen Taylor)
	
	* glib/gdir.[hc]: 
	* glib/gconvert.[hc]: 
	* glib/gfileutils.[hc]: 
	* glib/gutils.[hc]: 
	* glib/giowin32.c: On Windows, keep old ABI versions 
	of GLib pathname api for DLL ABI stability. Use different 
	names for the new-style UTF-8 versions. Hide this through 
	a #define.

	* glib/gstdio.[hc]: New files containing wrappers for
	POSIX pathname api.

	* glib/glib.symbols: Add new symbols.

	* glib/makegalias.pl: Drop Win32 specific .def syntax,
	include gstdio.h

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

	* glib/gkeyfile.c: Fix includes. (#156500, #156499, 
	Kazuki IWAMOTO)

	* glib/Makefile.am (galias.h): Fix srcdir != builddir 
	builds.  (#156447, Thomas Fitzsimmons)

2004-10-26  Gora Mohanty  <gmohanty@cvs.gnome.org>

	* configure.in: Added 'or' to ALL_LINGUAS.

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

	* glib/gkeyfile.c: Include galias.h.
	
	* glib/gkeyfile.c (g_key_file_parse_value_as_comment): 
	Don't compare strings and chars.

	* glib/glib.symbols: Add new symbols.

	* glib/gkeyfile.c (g_key_file_new): Fix docs.

	* glib/gkeyfile.h: Use the same parameter names as in
	the implementation and the docs.

	* glib/gwin32.c (g_win32_get_windows_version): Make this
	function thread-safe in the GLib style.
	* glib/gthreadinit.h: 
	* glib/gwin32.c (_g_win32_thread_init): New function to
	initialize the version.
	* glib/gthread.c (g_thread_init_glib): Call 
	_g_win32_thread_init() from here.

2004-10-26  Ray Strode  <rstrode@redhat.com>

	* glib/gkeyfile.c: Add Matthias to "Written by" lines
	 (GKeyFileGroup): add field to hold comments about groups
	 (g_key_file_load_from_fd): return TRUE on success and
	 FALSE on failure.  Don't close fd's opened by other
	 parent function.  
	 (g_key_file_load_from_file): run FILE_IS_REGULAR test
	 before trying to open file, to save an fd from being
	 leaked (would probably be better to use fstat()). Close
	 fd when done with it. Return TRUE on success and FALSE
	 on failure.
	 (g_key_file_load_from_data): Return TRUE on success and
	 FALSE on failure.
	 (g_key_file_load_from_data_dirs): remove superfluous
	 const modifier.  Return TRUE on success and FALSE on
	 failure.  Stop trying to load files when one succeeds.
	 (g_key_file_parse_key_value_pair): don't validate input
	 for UTF-8 until users uses a getter that does
	 validation.  Don't leak copy of start_group_name.
	 (g_key_file_to_data): serialize new comment field for
	 groups.
	 (g_key_file_get_keys): Remove convenience code to let
	 NULL group mean start group.  Get rid of unneeded NULL
	 check before g_strdup.
	 (g_key_file_get_groups): Reverse groups list before
	 sending to user because it is maintained in backward
	 order internally. 
	 (g_key_file_get_value),
	 (g_key_file_set_value): add g_return checks at top of
	 public functions.
	 (g_key_file_get_string), 
	 (g_key_file_get_string_list): validate key value is UTF-8.
	 (g_key_file_[sg]et_*comment): new functions for
	 setting/getting comments
	 (g_key_file_remove_comment): new function to remove
	 comment block
	 (g_key_file_remove_key_value_pair_node): new function to
	 pull a key-value pair out of the list and free it.
	 (g_key_file_remove_group_node): call
	 g_key_file_remove_key_value_pair_node instead of 
	 freeing the list immediately to get better statistics
	 for approximate_size.
	 (g_key_file_remove_group): use lookup_group_node instead
	 of lookup_group to prevent a g_list_find call.
	 (g_key_file_add_key): report group also when unable to
	 find key.
	 (g_key_file_lookup_group_node): new function to make
	 getting the group node from a group name easier.
	 (g_key_file_lookup_group): use lookup_group_node under
	 the hood.
	 (g_key_file_lookup_key_value_pair_node): new function to
	 make getting the key-value pair from a group and key
	 name eaiser.
	 (g_key_file_parse_comment_as_value): new function to add '#' to the
	 beginning of every line.
	 (g_key_file_parse_value_as_comment): new function that
	 attempts to be the inverse of comment as value.

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

	* glib/gutils.c: 
	* glib/gkeyfile.c: Don't include ctype.h needlessly.  (#156424,
	Morten Welinder)

	* tests/strtod-test.c (test_string): Improve error reporting.

Mon Oct 25 15:05:18 2004  Manish Singh  <yosh@gimp.org>

	* autogen.sh: rm autom4te.cache, since it might interfere with
	differing autoconf versions.

	* tests/child-test.c: use GINT_TO_POINTER for g_child_watch_add
	user data.

	* glib/gfileutils.c: G_IS_DIR_SEPARATOR is defined in gutils.h now,
	don't redefine it here.

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

	* glib/gkeyfile.c (g_key_file_remove_group_node): Don't
	destroy the lookup map if it is NULL.

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

	* glib/gasyncqueue.c, glib/gatomic.c, glib/gdate.c, 
	glib/giochannel.c, glib/gmain.c, glib/gspawn.c, 
	glib/libcharset/localcharset.c: Apply a patch to fix
	sparse warnings. (#154696, Kjartan Maraas)

	* glib/gnulib/g-gnulib.h: Undef libc functions before defining
	them, since they may also be macros.  (#155177, Andrea Campi)

	* glib/gkeyfile.h: 
	* glib/gkeyfile.c: Add a parser for desktop entries and
	similar files with a .ini-like syntax.  (#139974, Ray Strode)

	* glib/glib.h: Include gkeyfile.h

	* glib/Makefile.am (libglib_2_0_la_SOURCES): Add gkeyfile.c
	(glibsubinclude_HEADERS): Add gkeyfile.h

	* glib/gutils.c (_g_compute_locale_variants): Make this 
	non-static and use it in gkeyfile.c

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

	* tests/uri-test.c (run_uri_list_tests): Add some
	uri list tests.c.

	* glib/gconvert.h:
	* glib/gconvert.c (g_uri_list_extract_uris): New function to
	split a text/uri-list data into individual uris and strip comments.

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

	* glib/goption.c (get_change): Don't return the wrong 
	change.  (#155856, Lucas Rocha)

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

	* glib/gutils.h (G_IS_DIR_SEPARATOR): 
	* glib/gutils.c: Make public.  (#155589, Tim-Philipp Müller) 

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

	* glib/gmain.c (g_child_watch_add_full): 
	* glib/gmain.c (g_child_watch_add): Document that GLib supports only
	a single callback per pid. (#154828, Gustavo Carneiro)

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

	* glib/gfileutils.c: Fix some C99isms.  (#154676, Kjartan Maraas)

2004-10-05  Anders Carlsson  <andersca@gnome.org>

	* glib/goption.c: (g_option_context_parse):
	Add check for if argc is 0.
	
	* tests/option-test.c: (empty_test3), (main):
	Add test case.
	
2004-10-05  Matthias Clasen  <mclasen@redhat.com>

	* NEWS: Update

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

	* glib/gmem.c (g_mem_set_vtable): Only set vtable_set if the
	vtable is set.  (#154352, Philippe Blain)

2004-10-03  Anders Carlsson  <andersca@gnome.org>

	* glib/goption.c: (parse_arg):
	Set arg_data on filenames. (Discovered by Mats-Ola Persson).
	
	* tests/option-test.c: (arg_test3), (ignore_test3), (main):
	Add test for filename args.
	
2004-10-01  Tor Lillqvist  <tml@iki.fi>

	* glib/goption.c (g_option_context_parse): Use
	g_path_get_basename() instead of strrchr(), so that either slash
	is accepted on Windows.

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

	* glib/gfileutils.c: Convert filenames to UTF-8 before 
	putting them in GErrors.  (#154078, Morten Welinder)

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

	* glib/glib.symbols: Add g_assert_warning.

	* glib/gmessages.h:
	* glib/gmessages.c (g_assert_warning): Treat g_assert 
	in the same way as g_return_if_fail and move the string 
	constants into a helper function, which also takes 
	care of removing the "IA__" prefix from internal aliases.

	* glib/gmessages.h: Move the declaration of 
	g_return_if_fail_warning() out of the ifdefs, so that
	building with G_DISABLE_ASSERT works.

2004-09-27  Murray Cumming  <murrayc@murrayc.com>

	* glib/goptions.[h|c], glib/glib.symbols: Rename 
	g_context_option_error_quark() to g_option_error_quark(), because that 
	is consistent with normal naming conventions, and what bindings expect.

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

	Fix #153649, Hidetaka Iwai:
	
	* glib/goption.c (parse_long_option): Don't forget to set parsed
	to TRUE when parsing a long ARG_NONE option. 
	(free_changes_list): Fix the memory management for string
	and filename arrays.

2004-09-22  Tor Lillqvist  <tml@iki.fi>

	* glib/gmessages.c: [Win32] Don't ever open a console
	window. (Which we used to do if standard output or standard error
	are invalid, as they are for GUI applications.) These console
	windows that open up unexpectedly have caused endless amounts of
	confusion among end-users. (#141102, #151175)

	Don't output the process id on Windows. Only output the program
	name. If not set with g_set_prgname(), fetch the application
	executable's name and use that.

Mon Sep 20 00:35:14 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gutf8.c (g_utf16_to_utf8): Add a note explaining how to
	convert UTF-16 byte stream of ambiguous endianness.  (#152954,
	Linus Walleij)

Mon Sep 20 00:17:37 2004  Matthias Clasen  <maclas@gmx.de>

	* tests/option-test.c (error_test3_post_parse): 
	* tests/option-test.c (error_test2_post_parse): 
	* tests/option-test.c (error_test1_post_parse): Don't call 
	g_set_error () with a NULL format.  (#153103, Robert Ögren) 

Mon Sep 20 00:13:48 2004  Matthias Clasen  <maclas@gmx.de>

	Make GOption remove long options completely. (#153113, Robert Ögren)

	* glib/goption.c (parse_long_option): Fix a wrong index.

	* tests/option-test.c (ignore_test3): Test handling of unknown
	options some more.

Sun Sep 19 23:56:15 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/goption.c (g_option_context_parse): Call error_func
	on error, not post_parse_func again.  (#153107, Robert Ögren)

Sun Sep 19 23:52:35 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmessages.c (mklevel_prefix): 
	* glib/gmessages.c (g_logv): Fix the types of some variables
	to be GLogLevelFlags instead of guint.  (#153042, Philippe Blain)