2004-10-27 Matthias Clasen * === Released 2.5.4 === 2004-10-27 Matthias Clasen 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 * 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 * configure.in: Added 'or' to ALL_LINGUAS. 2004-10-26 Matthias Clasen * 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 * 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 * 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 * 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 * glib/gkeyfile.c (g_key_file_remove_group_node): Don't destroy the lookup map if it is NULL. 2004-10-23 Matthias Clasen * 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 * 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 * glib/goption.c (get_change): Don't return the wrong change. (#155856, Lucas Rocha) 2004-10-17 Matthias Clasen * glib/gutils.h (G_IS_DIR_SEPARATOR): * glib/gutils.c: Make public. (#155589, Tim-Philipp Müller) 2004-10-08 Matthias Clasen * 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 * glib/gfileutils.c: Fix some C99isms. (#154676, Kjartan Maraas) 2004-10-05 Anders Carlsson * 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 * NEWS: Update 2004-10-04 Matthias Clasen * glib/gmem.c (g_mem_set_vtable): Only set vtable_set if the vtable is set. (#154352, Philippe Blain) 2004-10-03 Anders Carlsson * 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 * 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 * glib/gfileutils.c: Convert filenames to UTF-8 before putting them in GErrors. (#154078, Morten Welinder) 2004-09-29 Matthias Clasen * 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 * 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 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 * 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 * 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 * 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 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 * 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 * 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)