2004-12-12 Tor Lillqvist <tml@iki.fi>
* glib/glib.symbols
* glib/gconvert.[ch]: Implement Windows DLL ABI stability also for
g_filename_{to,from}_uri().
2004-12-11 Tor Lillqvist <tml@iki.fi>
* glib/gstdio.c (g_rename, g_unlink, g_remove): Add doc comments
about Windows restrictions on renaming and removing.
(g_remove): Mimic POSIX remove() on Windows: Try also to rmdir if
removal as a file fails. Document this.
* glib/gstdio.h: Clarify comment about file name encoding on
Windows.
2004-12-09 Matthias Clasen <mclasen@redhat.com>
* glib/goption.c (print_help): Don't print help options
if the options of a specific group have been
requested. (#160645, Glynn Foster)
2004-12-07 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.c (g_get_language_names): Update the returned
value after locale changes. (#160271, Christian Persch)
(_g_utils_thread_init): Initialize the language name cache
before going threaded.
* glib/gthread.c (g_thread_init_glib): Call _g_utils_thread_init().
* glib/gthreadinit.h: Add _g_utils_thread_init().
2004-12-06 Tor Lillqvist <tml@iki.fi>
* glib/giowin32.c (g_io_win32_finalize): Fix a write to freed
memory: Unlock the channel's mutex before unrefing the channel.
2004-12-05 Tor Lillqvist <tml@iki.fi>
* glib/glib.symbols
* glib/gwin32.[hc]: Implement DLL ABI stability also for
g_win32_get_package_installation_directory()) and
g_win32_get_package_installation_subdirectory().
2004-12-05 Tor Lillqvist <tml@iki.fi>
* glib/Makefile.am (install-libtool-import-lib): Remove the DLL
binary compatibilty entries from the import library. They aren't
used by newly compiled code, so no need to have them in the import
library. (The "PRIVATE" keyword in the .def file is supposed to do
this, but not implemented in the GNU linker yet.)
2004-12-02 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols: Protect the the various push/pop allocator
functions by #ifndef DISABLE_MEM_POOLS. (#160215, Frederic Crozat)
* glib/makegalias.pl: Support #ifndef'ed sections.
2004-11-30 Tor Lillqvist <tml@iki.fi>
* glib/Makefile.am (glib.def)
* gobject/Makefile.am (gobject.def): gcc -E complains "linker
unused because linking not done" if told to preprocess an
*.symbols file. Use '-' and redirection to pass it as standard
input instead.
2004-11-30 Tor Lillqvist <tml@iki.fi>
* glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
true errors from spawn*(). (#157258, reported by Bruce Hochstetler)
2004-11-29 Matthias Clasen <mclasen@redhat.com>
* glib/gmarkup.c: Remove leftover noinline attributes.
(is_name_start_char, is_name_char): Avoid possible reads
beyond the end of g_ascii_table.
Sun Nov 28 13:13:56 2004 Manish Singh <yosh@gimp.org>
* glib/abicheck.sh: filter G_GNUC before PRIVATE so $ is still true.
* tests/utf8-validate.c: cast pointer math to gint for error print
message.
2004-11-28 Tor Lillqvist <tml@iki.fi>
* glib/gutils.[hc]
* glib/glib.symbols: [Win32] Make also g_get_user_name() and
g_get_real() name return UTF-8. As for the similar changes to fix
#101792, for DLL ABI stability we use preprocessor defines to get
the new UTF-8 versions, and keep the old names for versions
returning strings in the system codepage.
Fix g_get_tmp_dir() and g_get_home_dir() to actually return UTF-8
as was intended in the fix for bug #101792. (#159664, noticed by
Robert Ögren)
2004-11-27 Matthias Clasen <mclasen@redhat.com>
* glib/gspawn.c (g_spawn_async_with_pipes): Update the @flags
documentation with references to GChildWatch and
g_spawn_close_pid(). (#136255, noted by Owen Taylor)
2004-11-25 Matthias Clasen <mclasen@redhat.com>
* tests/strtod-test.c (main): Add a testcase for the previous fix.
* glib/gstrfuncs.c (g_ascii_strtod): Make it work again for floats
starting with a decimal point, like .75 (#156421, Hans Breuer)
Thu Nov 25 14:02:43 2004 Manish Singh <yosh@gimp.org>
* glib/abicheck.sh: filter out G_GNUC stuff when doing the compare.
* glib/gmessages.c (g_assert_warning): call abort() at the end, so
gcc doesn't warn.
2004-11-24 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message,
get_package_directory_from_module,
g_win32_get_package_installation_directory,
g_win32_get_package_installation_subdirectory): Use wide character
API when available. Document that string parameters and return
values are in UTF-8.
2004-11-24 Matthias Clasen <mclasen@redhat.com>
* glib/gutf8.c: Replace g_utf8_validate() with an
optimized version, and clarify the docs a bit. (#159131,
Owen Taylor)
2004-11-23 Matthias Clasen <mclasen@redhat.com>
* glib/goption.h: Don't mark g_option_error_quark() as const,
to be consistent with all the other error_quark functions.
(technically they are const, but since these are called only
in error paths, giving the compiler better optimization
opportunities doesn't matter much)
2004-11-23 Matthias Clasen <mclasen@redhat.com>
Fix a problem with the PLT reduction changes which caused the
internal aliases to lose all attributes.
* glib/glib.symbols: Add attribute annotations.
* glib/makegalias.pl: Keep attribute annotations, but strip PRIVATE.
* glib/Makefile.am (glib.def): Strip attribute annotations, but keep
PRIVATE.
2004-11-15 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c (g_key_file_load_from_fd): Use S_ISREG(), since
S_IFMT and S_IFREG are apprarently missing on some systems (they
are SUS, but not Posix). (#158263)
2004-11-11 J. Ali Harlow <ali@juiblex.co.uk>
* gobject/Makefile.am:
* glib/Makefile.am (gtk.def): Use embedded tab rather than '\t'
escape sequence. (#157951)
2004-11-08 Matthias Clasen <mclasen@redhat.com>
* glib/gnode.h (enum GTraverseFlags): Add G_TRAVERSE_LEAVES
and G_TRAVERSE_NON_LEAVES as alternative names for
G_TRAVERSE_LEAFS and G_TRAVERSE_NON_LEAFS, which are
grammatically brutal. (#138853, Morten Welinder)
Mon Nov 8 10:45:50 2004 Manish Singh <yosh@gimp.org>
* glib/gasyncqueue.c
* glib/ghook.c
* glib/giochannel.c: g_return_if_fail -> g_return_val_if_fail
* glib/gmain.c: Ditto, plus also make g_main_context_ref() actually
return the passed in pointer.
2004-11-08 Matthias Clasen <mclasen@redhat.com>
* glib/gmain.c: Initialize child_watch_count to 1, so
that we don't miss the very first child if it exits
before we set up the child watch. In that case we had
previously source->count == child_watch_count == 0,
causing g_child_watch_check() to skip the waitpid()
call. (#154827, Gustavo Carneiro)
* glib/gmain.c (g_child_watch_source_init_single)
(g_child_watch_source_init_multi_threaded): Use sigaction()
instead of signal(). (#136867, Jonas Jonsson, patch by
Archana Shah)
2004-11-06 Tor Lillqvist <tml@iki.fi>
* glibconfig.h.win32.in: Cosmetics: move the G_GNUC_INTERNAL
define to the same place where it is in a configure-generated
glibconfig.h
2004-11-04 Tor Lillqvist <tml@iki.fi>
* glib/goption.h (enum GOptionFlags): Add G_OPTION_FLAG_REVERSE,
to reverse the sense of a G_OPTION_ARG_NONE (boolean) option.
* glib/goption.c (parse_arg): Obey the above flag.
2004-11-04 Tor Lillqvist <tml@iki.fi>
* glib/gconvert.c (g_filename_display_name): Document that the
result is guaranteed to be non-NULL.
* glib/gfileutils.c (get_contents_stdio, get_contents_regfile,
get_contents_posix, get_contents_win32, g_file_open_tmp,
g_file_read_link): Use g_filename_display_name() for error
messages.
(g_mkstemp): Document that the template should be in the GLib file
name encoding.
(g_file_open_tmp): Ditto. Also document that the actual name
returned is also in the GLib file name encoding.
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)
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-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.
2004-09-29 Matthias Clasen <mclasen@redhat.com>
* 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 open a console window 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.
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: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: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)
Thu Sep 16 18:15:32 2004 Manish Singh <yosh@gimp.org>
* glib/gstrfuncs.c (g_strncasecmp): Make it take a guint for number
of characters, instead of a gsize. Technically this is incorrect,
but this makes it match the prototype, and this is a deprecated
function anyway.
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
UTF-8. Technically this breaks API, but the actual use cases in
gdk/win32 have assumed it is UTF-8 anyway. Fix
documentation. (#152618, Kazuki Iwamoto)
* glib/gwin32.h: Don't define ftruncate as a macro. Was never a
good idea, and it clashes with newest mingw headers, which have a
ftruncate implementation as an inline function. Thanks to Dominik R.
* glib/gwin32.c (g_win32_ftruncate): Simplify implementation, just
call _chsize() in the C library.
2004-09-09 Matthias Clasen <mclasen@redhat.com>
* glib/gmessages.c (g_return_if_fail_warning): Strip the
prefix "IA__" from function names, since that is what
GTK+ uses for the PLT-reduction aliases.
Thu Sep 9 13:52:26 2004 Owen Taylor <otaylor@redhat.com>
* glib/gmessages.c (g_return_if_fail_warning):
Include implementation of g_return_if_fail_internal().
Thu Sep 9 10:37:41 2004 Owen Taylor <otaylor@redhat.com>
* glib/gmessages.h (g_return_[val_]if_fail): Use
a helper function to reduce code size; omit FILE/LINE
when we have __PRETTY_FUNCTION__.
Thu Sep 9 00:10:40 2004 Matthias Clasen <maclas@gmx.de>
* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strv_length): Add a function to
calculate the length of a NULL-terminated string
array. (#150455, Tim-Philipp Müller)
* tests/strfunc-test.c (main): Add a test for g_strv_length().
2004-09-08 Tor Lillqvist <tml@iki.fi>
* glib/gutils.c (guess_category_value): On Win32, as last resort
call g_win32_getlocale() to get the current thread locale. There
usually aren't any POSIXish LANG or LC_* environment variables
present on Windows machines.
* glib/glib.def: Add g_get_language_names.
2004-09-07 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.h:
* glib/gutils.c (g_get_language_names): Add a function to
return a list of applicable locale names. (#95587,
Hidetoshi Tajima)
(guess_category_value, compute_locale_variants):
(explode_locale, unalias_lang, read_aliases): Helper
functions for g_get_language_names()
* tests/testglib.c (main): Show the results of
g_get_language_names()