2006-08-22 Matthias Clasen * Branch for 2.12 2006-08-20 Tor Lillqvist * glib/gnulib/vasnprintf.c (vasnprintf): Fix crash when printing large 64-bit values on Win32 using the %I64x format. (#351034, Neil Piercy) Wed Aug 16 13:59:07 2006 Tim Janik * tests/gobject/Makefile.am: * tests/gobject/singleton.c: added test program which demonstrates and checks singleton construction. 2006-08-15 Matthias Clasen * glib/gbookmarkfile.c (g_bookmark_file_get_groups): * glib/gmain.c (g_source_is_destroyed): Add Since tags. * glib/gkeyfile.c (g_key_file_get_double_list): Fix Since tag. (#351583, Brian Cameron) * configure.in: Bump version * === Released 2.12.2 === * NEWS: Updates 2006-08-08 Emmanuele Bassi * glib/gbookmarkfile.c (g_bookmark_file_remove_group) (g_bookmark_file_set_app_info): Plug a couple of leaks when removing data from a bookmark. 2006-08-05 Matthias Clasen * glib/gbookmarkfile.c (find_file_in_data_dirs): Correct the grammar of an error message. (#349792, Jakub Friedl) * glib/gkeyfile.c (g_key_file_to_data): Don't insert unnecessary newlines in keyfiles. (#349825, Chris Wilson) * glib/guniprop.c (g_unichar_toupper, g_unichar_tolower) (real_toupper, real_tolower): If a character can't be converted, don't replace it with a NUL byte, but leave it unchanged. (#348491, Nikolai Weibull) * tests/unicode-caseconv.c: Adapt to this change. * tests/unicode-caseconv.c (main): Add a comment to point out a quirk in the test data that we are working around here. 2006-07-31 Behdad Esfahbod * glib/guniprop.c (g_unichar_isxdigit): Make it only accept those characters that we accept i g_unichar_xdigit_value(), i.e. don't accept non-decimal digits. (#347842, Nikolai Weibull) 2006-07-31 Behdad Esfahbod * glib/gunidecomp.c (_g_utf8_normalize_wc): Update to reflect Unicode PR #29 (#348694, Nikolai Weibull) * tests/unicode-normalize.c (encode), (test_form): Make output more useful, reporting the unexpected output of the test. 2006-07-24 Tor Lillqvist * tests/slice-test.c: Use g_get_current_time() insted of gettimeofday(). 2006-07-22 Matthias Clasen * configure.in: Bump version * === Released 2.12.1 === * glib/gconvert.c: Fix the prototype of _g_charset_get_aliases. (#346494, Thomas Klausner) * NEWS: Updates 2006-07-21 Behdad Esfahbod * glib/gmirroringtable.h: Updated to Unicode Character Database 5.0.0. 2006-07-20 Matthias Clasen * glib/guniprop.c (real_toupper, real_tolower): Small optimization. (#348011, Nikolai Weibull) 2006-07-19 Behdad Esfahbod * glib/gunibreak.h: * glib/gunichartables.h: * glib/gunicomp.h: * glib/gunidecomp.h: Update to final Unicode Character Database 5.0.0. (#336281) 2006-07-06 Behdad Esfahbod * glib/gutils.c (g_parse_debug_string): When matching debug flag keys, ignore case and accept any of comma, colon, semicolon, space, and tab as separators. Also, match dash with underscore. 2006-07-05 Matthias Clasen * glib/gbase64.c: Fix typos in the docs. (#346660, Mark Drago) 2006-07-03 Runa Bhattacharjee * configure.in: Added Bengali India (bn_IN) in ALL_LINGUAS. 2006-07-02 Matthias Clasen * configure.in: Bump version * === Released 2.12.0 === 2006-06-30 Matthias Clasen * NEWS: Updates * configure.in: Set version to 2.12.0 2006-06-20 Matthias Clasen * glib/gtimer.c (mktime_utc): Fix an off-by-2 error in the leap year calculation. (#344905, Dan Winship) * tests/testglib.c (main): Change the test data for the g_time_val_from_iso8601 tests to expose an off-by-2 error in the leap year calculation. * configure.in: Bump version * === Released 2.11.4 === * NEWS: Updates 2006-06-16 Matthias Clasen * tests/file-test.c (test_mkstemp): Add tests. * glib/gfileutils.c (g_mkstemp): Allow the XXXXXX to occur inside the template, not just at the end. 2006-06-14 Matthias Clasen * glib/gkeyfile.c (g_key_file_to_data): Separate groups by an empty line (#344868, Christian Persch) 2006-06-14 Tor Lillqvist * glib/gutils.c (g_listenv): Add Windows notes to doc comment. 2006-06-12 Emmanuele Bassi * glib/gbookmarkfile.h: * glib/gbookmarkfile.c (g_bookmark_file_remove_item): Return a boolean instead of void. * tests/bookmarkfile-test.c (test_modify): Add a test case for g_bookmark_file_remove_item(). 2006-06-12 Matthias Clasen * Bump version * === Released 2.11.3 === * NEWS: Updates 2006-06-09 Emmanuele Bassi * glib/gbookmarkfile.c (g_bookmark_file_remove_application): Use an empty string to pass the test in set_app_info. (g_bookmark_file_move_item): Remove the old item from the look up table; return success in case of empty target. 2006-06-08 Tor Lillqvist * glib/gunicollate.c (msc_strxfrm_wrapper): Workaround for bug in strxfrm() in Microsoft's newer C runtimes. (#343919, Kazuki Iwamoto) 2006-06-05 Matthias Clasen * configure.in: Bump version * === Released 2.11.2 === * configure.in: Set interface age to 0. * NEWS: Updates * glib/gmain.c: Fix some doc formatting issues. * glib/gstrfuncs.c: Revert accidental commit. * glib/gmain.c (get_dispatch): Don't leak the dispatch struct. (#321886) * tests/strtod-test.c: Add some tests involving leading whitespace. * glib/gstrfuncs.c (g_ascii_formatd): Skip leading whitespace. (#343899, Øystein Johansen) 2006-06-01 Matthias Clasen * glib/gmain.h: * glib/gmain.c: Add three new functions, g_main_current_source, g_source_set_funcs and g_source_is_destroyed, that will be necessary to solve thread-safety issues with idles in GTK+. (#321886, Chris Wilson) 2006-06-01 Matthias Clasen * glib/giochannel.c (g_io_channel_write_chars): Avoid running in an assertion with small writes. (#343566, Chris Wilson) * tests/iochannel-test.c: Add a testcase for small writes. * glib/glib.symbols: * glib/ghash.h: * glib/ghash.c: Add g_hash_table_{remove,steal}_all to remove all nodes from a hash table. (#168538, Matt Barnes) 2006-06-01 Behdad Esfahbod * glib/gkeyfile.c (g_key_file_to_data), (g_key_file_parse_value_as_comment), (g_key_file_parse_comment_as_value): * glib/gscanner.c (g_scanner_get_token_ll): Cleanup. Use return value of g_string_free(...). (#343548, Chris Wilson) 2006-05-28 Matthias Clasen * glib/gmarkup.c (g_markup_parse_context_parse): Don't use g_str_has_{prefix,suffix} here. 2006-05-28 Matthias Clasen * glib/gmarkup.h: Add a GMarkupParseFlags flag for treating CDATA as text. * glib/gmarkup.c (g_markup_parse_context_parse): Implement it here. 2006-05-28 Matthias Clasen * tests/markups/expected-*: Output that test-markup is expected to produce when run on the valid gmarkup examples. * tests/markup-test.c: Only dump the results of the first, unchunked parse, to compare it against the expected output. * tests/run-markup-tests.sh: For valid examples, compare the output of test-markup against the corresponding expected- file. 2006-05-24 Matthias Clasen * configure.in: Don't compile timeloop on Minix. (Leonard den Ottolander) 2006-05-22 Sebastian Wilhelmi * glib/gthread.c (g_thread_init_glib): Run _g_atomic_thread_init as the first of the full fledged initializers to allow the later to potentially use atomic ints (which they currently do not). (#342563, Peter Kjellerstedt) 2006-05-16 Matthias Clasen * tests/Makefile.am: * tests/strtoll-test.c: Add tests for g_ascii_strtoll() and g_ascii_strtoull(). * glib/glib.symbols: * glib/gstrfuncs.h: * glib/gstrfuncs.c (g_ascii_strtoll): New function to parse signed 64bit integers like strtoll does. * glib/goption.c (parse_int64): Use g_ascii_strtoll(), since strtoll() is C99 and not available on some systems. (#341826, Kazuki Iwamoto) 2006-05-15 Matthias Clasen * configure.in: Bump version * === Released 2.11.1 === * NEWS: Updates 2006-05-13 Matthias Clasen * glib/grel.c: Fix several cases of deref-before-NULL-check. (#341191, Pascal Terjan) * glib/glib.symbols: * glib/goption.h: * glib/goption.c: Allow optional summary and description texts before and after the option descriptions, and add a way to translate them. (#336120, Behdad Esfahbod) 2006-05-12 Tor Lillqvist * glib/giowin32.c (g_io_win32_sock_set_flags): Implement setting/clearing G_IO_FLAG_NONBLOCK for channels attached to sockets. (#341192) (g_io_win32_unimpl_set_flags): set_flags method for the unimplemented case. 2006-05-11 Bastien Nocera * glib/goption.c: (parse_int64), (parse_arg), (free_changes_list): * glib/goption.h: * tests/option-test.c: (arg_test6), (main): add an int64 type for GOption (G_OPTION_ARG_INT64) (#341237) 2006-05-10 Sebastian Wilhelmi * glib/gthread.h, gthread/gthread-impl.c: Make the magic and location arguments to the error-checking-mutex functions const and do not write to them, as we might not own them. Clean up the error-checking-mutex code quite a bit. (#335198, Chris Wilson) * glib/gthread.c: Use g_atomic_pointer_set instead of old homegrown version now that we have it. (#335198, Chris Wilson) * gthread/gthread-posix.c, gthread/gthread-win32.c: Prevent calling into g_cond_wait resp. g_mutex_lock/unlock directly to avoid recursions into the errorcheking mutex code (and out of principle anyway). (#335198, Chris Wilson) * tests/errorcheck-mutex-test.c: Adapt to GLib coding standards. 2006-05-09 Sebastian Wilhelmi * glib/gthreadinit.h: Renamed to glib/gthreadprivate.h and moved system thread identifier comparision and assignment macros from glib/gthread.c to glib/gthreadprivate.h. * glib/Makefile.am, glib/gatomic.c, glib/gconvert.c, glib/gmain.c, glib/gmem.c, glib/gmessages.c, glib/grand.c, glib/gslice.c, glib/gthread.c, glib/gutils.c, gthread/gthread-impl.c: Use glib/gthreadprivate.h instead of glib/gthreadinit.h. * gthread/gthread-impl.c: Use GSystemThread instead of GThread for owner determination. (#311043, jylefort@FreeBSD.org) * tests/Makefile.am, tests/errorcheck-mutex-test: New test program to test for all checked violations. * glib/gprintf.c, glib/gspawn-win32.c, glib/gutf8.c, gthread/gthread-impl.c, gthread/gthread-posix.c, gthread/gthread-win32.c: Use canonical include form for internal headers. config.h is always there. * Remove obsolete gthread/gthread-solaris.c. 2006-05-08 Matthias Clasen * tests/convert-test.c (test_one_half): Use encoding names which may work better on Solaris. (#340434, Alessandro Vesely) * tests/keyfile-test.c (test_number): Add some tests for invalid floating point numbers. * glib/gkeyfile.c (g_key_file_parse_value_as_double): Return an error for the empty string. (#339105, Morten Welinder) * glib/gscanner.c (g_scanner_config_template): Make const, noticed by Kjartan Maraas. 2006-05-06 Matthias Clasen * glib/gkeyfile.c (g_key_file_set_string_list) (g_key_file_set_locale_string_list): Fix invalid memory reads. (#340816, Nick Treleaven) 2006-05-04 Alexander Larsson * glib/gbase64.c: (g_base64_decode_step): Fix OOB write (#340538) 2006-05-03 Matthias Clasen * tests/base64-test.c: Add some more tests. * glib/gbase64.c (g_base64_decode_step): Avoid writing beyond the guaranteed lenght of the output buffer, if there is padding. * tests/base64-test.c (test_incremental): Use malloced memory instead of stack-allocated, so that MALLOC_CHECK_=2 catches the OOB write... * glib/gbookmarkfile.c (g_bookmark_file_load_from_data): Remove an overzealous return_if_fail check that causes make check to fail. 2006-05-02 Matthias Clasen * configure.in: Bump version * === Released 2.11.0 === * NEWS: Updates * tests/casemap.txt: * tests/casefold.txt: Regenerate from Unicode 5.0 data. * glib/guniprop.c: Make interval_compare static. Tue May 2 15:00:00 2006 Tim Janik * tests/gobject/deftype.c: added test code from Behdad Esfahbod, see #337128. Tue May 2 14:18:25 2006 Tim Janik * glib/goption.c (g_option_context_parse): fixed leak in short option parsing. rewrote parts of the code to be more concise to enhance readability. fixed exaggerated uses of strlen. 2006-04-28 Behdad Esfahbod * glib/guniprop.c: #include 2006-04-27 Matthias Clasen * glib/glib.symbols: Add g_unichar_iswide_cjk. * glib/guniprop.c: Add a "Since: 2.12". * NEWS: Updates 2006-04-27 Behdad Esfahbod * docs/reference/glib/glib-sections.txt, * glib/gunicode.h glib/guniprop.c: Implement g_unichar_iswide_cjk(). (#105626) 2006-04-27 Matthias Clasen * glib/gbookmarkfile.c (g_bookmark_file_set_description) (g_bookmark_file_set_title, g_bookmark_file_set_icon): Remove some special-casing of empty string which led to dangling pointers. (#339337, Morten Welinder) (expand_exec_line): Don't use printf() needlessly, handle trailing '%' gracefully. (#339338, Morten Welinder) (is_element_full): Silence the compiler. (g_bookmark_file_dump, bookmark_metadata_dump): (bookmark_app_info_dump): Escape strings before dumping them in xml. (#339340, Morten Welinder) 2006-04-27 Behdad Esfahbod * glib/gunibreak.h, glib/gunichartables.h: Regenerated using Unicode Character Database 5.0 beta. 2006-04-26 Matthias Clasen * glib/grand.c (g_rand_new): Don't repeat a failed fclose() call, since that invokes undefined behaviour. (Coverity) 2006-04-25 Matthias Clasen * glib/gbookmarkfile.c (is_element_full): Avoid a possible NULL dereference (found by Coverity), also avoid some pointless strdups. * tests/keyfile-test.c (test_comments): Add a test for the previous change. * glib/gkeyfile.c (g_key_file_lookup_group_node): Remove redundant code. (g_key_file_get_group_comment): Don't dereference before checking for NULL. (#338572, Coverity, Pascal Terjan) 2006-04-19 Matthias Clasen * glib/gdataset.c: Add some missing Since: 2.8 tags. 2006-04-19 Tor Lillqvist * glib/gatomic.c: Adapt to the changed prototype of InterlockedCompareExchange() in newer SDKs. Use InterlockedCompareExchangePointer() when applicable. (#155884, John Ehresman) 2006-04-18 Matthias Clasen * glib/gkeyfile.h: * glib/glib.symbols: * glib/gkeyfile.c: Add api to get and set doubles and lists of doubles. (#164719, Maurizio Monge, Dom Lachowicz) * tests/keyfile-test.c: Add tests for new api. * glib/gkeyfile.c (g_key_file_add_group): Accept duplicate groups. (#157877, Sebastien Bacher) * tests/keyfile-test.c: Add tests for duplicate key and duplicate group handling. 2006-04-17 Matthias Clasen * glib/gcompletion.c (g_completion_complete_utf8): Make passing NULL for new_prefix work as documented. (#338845, Yevgen Muntyan) * tests/completion-test.c: Test that passing NULL for new_prefix in g_completion_complete_utf8 works. 2006-04-17 Kjartan Maraas * configure.in: Remove obsolete entry for no_NO. * po/no.po: And the translation. 2006-04-16 Matthias Clasen * glib/gdate.c (g_date_fill_parse_tokens): Avoid an array overrun. (Coverity, fix by Pascal Terjan) 2006-04-12 Bastien Nocera reviewed by: Matthias Clasen * glib/gconvert.c: add more details about which RFC is concerned when using g_filename_to_uri (#337553) 2006-04-12 Matthias Clasen * glib/goption.c (parse_arg): Add an assert to make it clear when value can be NULL. 2006-04-07 Martyn Russell * tests/threadpool-test.c: (test_thread_stop_unused): Removed an assertion which can fail and is not a critical test. 2006-04-07 Hans Breuer * glib/makefile.msc.in : added gbase64.obj and derive the static libs name from auto* variables * glib/makefile.msc.in : link user32.lib for MessageBox() 2006-04-07 Martyn Russell * glib/gasyncqueue.[ch]: Added private API _g_async_queue_get_mutex so that g_thread_pool_free() can use the async queue mutex. * glib/gthreadpool.c: Make sure g_thread_pool_stop_unused_threads() actually stops unused threads and global limits (like max idle time and max unused threads) can be set without creating a thread pool first. Fixed #335215 (patch from Chris Wilson). * tests/threadpool-test.c: Added two new tests, tests setting global limits before creating a thread pool. The second test makes sure unused threads are actually stopped when using the g_thread_pool_stop_unused_threads(). 2006-04-05 Matthias Clasen * glib/gnulib/vasnprintf.c (vasnprintf): Make long long printing work if snprintf is not available. (#332841, Michael McDonald) 2006-04-05 Behdad Esfahbod * tests/option-test.c: Check the return value of g_get_prgname for NULL before passing to strcmp. * tests/slice-test.c: Report the correct name in Usage summary. 2006-04-05 Matthias Clasen * tests/run-collate-tests.sh: Fix up shell script. * tests/option-test.c (arg_test5): Skip the test if setting the locale fails. (empty_test1): Reset prgname before the test. * tests/Makefile.am: Arrange for run-bookmark-test.sh to be run by make check. * tests/utf8-pointer.c: * tests/tree-test.c: Silence warnings. 2006-04-04 Matthias Clasen * glib/glib.symbols: * glib/gbase64.[hc]: Add G_GNUC_MALLOC where appropriate, use glib types. 2006-04-04 Alexander Larsson * glib/Makefile.am: * glib/gbase64.[ch]: * glib/glib.symbols: Add base64 encode/decode functions * glib/glib.h: Include gbase64.h * tests/Makefile.am: * tests/base64-test.c: Tests for base64 functions 2006-04-04 Matthias Clasen * glib/gdate.c: Move short_month_names and long_month_names to bss. * glib/gspawn-win32.c (g_spawn_error_quark): * glib/gspawn.c (g_spawn_error_quark): * glib/gshell.c (g_shell_error_quark): * glib/gmarkup.c (g_markup_error_quark): * glib/goption.c (g_option_error_quark): * glib/gkeyfile.c (g_key_file_error_quark): * glib/giochannel.c (g_io_channel_error_quark): * glib/gfileutils.c (g_file_error_quark): * glib/gconvert.c (g_convert_error_quark): * glib/gbookmarkfile.c (g_bookmark_file_error_quark): * glib/gthread.c (g_thread_error_quark): No point in making the error path fast by caching quarks. * glib/gbookmarkfile.c: Make the parser struct const. 2006-04-04 Behdad Esfahbod * glib/gbookmarkfile.c: Fix accidentally broken build. 2006-04-03 Matthias Clasen * glib/gbookmarkfile.c: Don't include sys/time.h (#337027, Kazuki IWAMOTO) 2006-03-31 Tor Lillqvist * glib/gstdio.c (g_remove): Revert change below. It wasn't a good idea after all, says the original bug reporter. See bug for discussion. 2006-03-30 Tor Lillqvist * glib/gstdio.c (g_remove): [Win32] call rmdir() only if remove() fails with errno set to ENOENT, to leave errno set to EACCESS if that is the problem. (#334799, Yevgen Muntyan) 2006-03-30 Matthias Clasen * glib/gbookmarkfile.c (g_bookmark_file_get_app_info): Sync the parameter names with the .h files, otherwise gtk-doc misbehaves. 2006-03-27 Emmanuele Bassi * tests/.cvsignore: Add bookmarkfile-test to the ignored files. 2006-03-27 Emmanuele Bassi * tests/Makefile.am: * tests/bookmarkfile-test.c: * tests/run-bookmark-test.sh: * tests/bookmarks/*.xbel: Add test suite for GBookmarkFile. 2006-03-27 Emmanuele Bassi * docs/reference/glib/glib-docs.sgml: * docs/reference/glib/glib-sections.txt: * docs/reference/glib/tmpl/bookmarkfile.sgml: Add documentation for GBookmarkFile to GLib's reference guide. 2006-03-27 Emmanuele Bassi * glib/glib.h: * glib/gbookmarkfile.h * glib/gbookmarkfile.c: Add GBookmarkFile, a parser for files containing bookmarks stored using the Desktop Bookmark specification. Fixes bug #327662. * glib/glib.symbols: * glib/Makefile.am: * glib/makefile.msc.in: * glib/makefile.mingw.in: Build glue for GBookmarkFile. 2006-03-27 Dom Lachowicz * tests/option-test.c: Copy-and-paste error slipped into test5. Enable test5, as per Matthias' comments in bug 329548#c11. Change a gboolean to an int. Fixes bug #329789. * configure.in: Bump version number to 2.11.0 2006-03-27 Matthias Clasen Add support for floating point numbers to goption. (#329548, Behdad Esfahbod, patch by Antoine Dopffer and Dom Lachowicz) * glib/goption.h: * glib/goption.c: Support double arguments. * tests/option-test.c: Test double arguments.` 2006-03-26 Matthias Clasen * glib/goption.c (g_option_context_new): Improve the description of parameter_string in the docs. (#336085, Claudio Saavedra) 2006-03-24 Martyn Russell * glib/gthreadpool.c: Updated the documentation to explain that when the maximum threads is > 1 the sort functionality is not 100% accurate due to the ramdom nature of the scheduler choosing which threads to execute. Fixes bug #334943. * tests/threadpool-test.c: Disabled the debugging by default and fixed the sort test to set the maximum threads to 1 to guarantee the thread entry function is called in order. 2006-03-23 Matthias Clasen === Branch for 2.10 ===