2004-11-01 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c:
(g_key_file_get_locale_string): don't return an
error if we come across a value with invalid utf8 or
if we don't find a translated string. Just fallback
to the untranslated string (Mark McLoughlin, bug
#156790).
* glib/gkeyfile.c:
(g_key_file_init), (g_key_file_clear): track the
actual start GKeyFileGroup rather than just its name
(g_key_file_parse_group): allow add_group() to
update the start group.
(g_key_file_remove_group_node): update the start
group if it gets removed (Mark McLoughlin, bug
#156790).
* glib/gkeyfile.c:
(g_key_file_parse_string_as_value): Don't escape
tabs and spaces in the middle of key values.
2004-11-01 Matthias Clasen <mclasen@redhat.com>
Handle conflicts between options in different groups. (#156808)
* glib/goption.c (g_option_context_parse): When a long option does not
match exactly, try to parse it as --group-option.
(g_option_context_add_group): Warn if a group name conflict occurs.
* glib/goption.c (print_help): Print out the effective options, ie
don't print shadowed short options, and for long options print
--group-option instead of --option if appropriate.
2004-10-29 Hans Breuer <hans@breuer.org>
* glibconfig.h */makefile.msc.in : updated [and finally fixed my
script to produce ready to go de-in(ed) files, w/o autotools]
* */*.rc.in : updated copyrights to 2004
* glib/gutils.c : some CSIDL_* defines lacking from older SDK;
use the same fallback mecahnism as on *NIX where ever applicable
2004-10-29 Matthias Clasen <mclasen@redhat.com>
* tests/option-test.c: Add tests for the handling of
non-option arguments, "--" and G_OPTION_REMAINING.
* glib/goption.[hc]: #define G_OPTION_REMAINING, which is
a special long option name, which can be used for an option
in the main group which collects the non-option arguments.
It must be of type G_OPTION_ARG_STRING_ARRAY or
G_OPTION_ARG_FILENAME_ARRAY. If the main group doesn't contain
an option whose name is G_OPTION_REMAINING, the non-option
arguments are left behind in argv as before.
2004-10-29 Tor Lillqvist <tml@iki.fi>
* glib/giochannel.h (g_io_channel_new_file): Redefine also
g_io_channel_new_file to the UTF-8 version on Win32. [156725,
Kazuki IWAMOTO)
2004-10-28 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c
(find_file_in_data_dirs): clean up a leak (#156652,
Morten Welinder)
(g_key_file_load_from_fd): propagate fstat() error
conditions and retry read on EAGAIN (#156647, Morten
Welinder). Return error if file is NOT regular, not if
it is regular (bug introduced from last commited bug
fix).
(g_key_file_load_from_data_dirs): allocate enough space
for the terminating NULL.
2004-10-27 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c:
(g_key_file_load_from_fd),
(g_key_file_load_from_file):
Move file is regular check to load_from_file to use
fstat() instead of race prone g_file_test(). Don't
clear/init until needed. Change error messages to be
more consistent.
(g_key_file_load_from_data),
(g_key_file_load_from_data_dirs),
(g_key_file_parse_data),
(g_key_file_get_value),
(g_key_file_get_string),
(g_key_file_set_string),
(g_key_file_get_string_list),
(g_key_file_set_string_list),
(g_key_file_set_locale_string),
(g_key_file_get_locale_string),
(g_key_file_set_locale_string_list),
(g_key_file_get_boolean),
(g_key_file_set_boolean),
(g_key_file_get_boolean_list),
(g_key_file_set_boolean_list),
(g_key_file_get_integer),
(g_key_file_get_integer_list),
(g_key_file_set_integer_list),
(g_key_file_remove_key):
Add more g_return_*if_fail checks for public functions.
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-26 Matthias Clasen <mclasen@redhat.com>
* 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.
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-23 Matthias Clasen <mclasen@redhat.com>
* glib/gnulib/g-gnulib.h: Undef libc functions before defining
them, since they may also be macros. (#155177, Andrea Campi)
2004-10-23 Matthias Clasen <mclasen@redhat.com>
* 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-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)