2007-02-03 Soren Sandmann * glib/gsequence.[ch]: New files implementing GSequence, a list implemented using a binary tree. * glib/glib.h, glib/glib.symbols: Update for GSequence. * docs/reference: Add documentation for GSequence * tests: Add sequence-test.c, a thorough test of all of the GSequence API. 2007-01-30 Matthias Clasen * glib/glib.symbols: * glib/gslice.h: * glib/gslice.c: Don't make ABI depend on G_ENABLE_DEBUG, just add an empty g_slice_debug_tree_statistics () implementation in the !G_ENABLE_DEBUG case. 2007-01-26 Matthias Clasen * configure.in: Define G_GNUC_INTERNAL for Sun Studio as __hidden. (#342981, Brian Cameron) * glib/gconvert.c: * glib/gutf8.c: Move G_GNUC_INTERNAL uses to the right spot. 2007-01-26 Matthias Clasen * gmem.c: * gslice.c: * gmessages.c: * gutils.c: Make some structs which are used only once non-static. 2007-01-24 Benjamin Otte * glib/gprintf.c (g_sprintf): Clarify the documentation regarding overflows (wording by Jan Schmidt) 2007-01-23 Roozbeh Pournader * README: Remove mention of no-longer-existing PATCH keyword in bugzilla. (#396899) 2007-01-23 Matthias Clasen * glib/gutf8.c (g_utf8_get_char_validated): Clarify the behaviour is max_len is zero. (#400044, Benjamin Dauvergne) 2007-01-23 Matthias Clasen * glib/goption.c (print_help): Use bitwise & when operating on flags. (#399971, Jon Oberheide) 2007-01-19 Matthias Clasen Some file list updates (#398069, Owen Taylor) * docs/Changes-2.0.txt * docs/reference/README.cvs-commits * glib.spec.in: Remove obsolete files * tests/Makefile.am: * glib/libcharset/Makefile.am: * gobject/Makefile.am: * Makefile.am: Add some missing files to EXTRA_DIST * tests/timeloop-basic.c: Make it build * HACKING: Small updates 2007-01-18 Matthias Clasen * glib/gdate.c (g_date_set_time): Fix a typo. (#398203, Owen Taylor) 2007-01-17 Tor Lillqvist * config.h.win32.in * glib/galloca.h * glib/gbacktrace.h * glib/gwin32.c * glibconfig.h.win32.in * README.win32: More minor tweaks for Digital Mars compiler. (#346808, Serhat Sevki Dincer) 2007-01-17 Tor Lillqvist * glib-zip.in: DLLs are always installed in "bin" with current libtool, drop unnecessary logic to check where they are. Include also the COPYING file. 2007-01-17 Tor Lillqvist * glib/galloca.h: Use also with Digital Mars compiler on Win32. (#346808, Serhat Sevki Dincer) 2007-01-16 Matthias Clasen * glib/gthread.h: * glib/gthread.c: * glib/glib.symbols: Revert an accidental ABI break by moving gettime out of the GThreadFunctions struct and making it a separate variable. (#397139, Joe Marcus Clarke) * gthread/*.c: Adapt. 2007-01-16 Tor Lillqvist * glib/gthread.c (gettime): GetSystemTimeAsFileTime() returns 100s of nanoseconds since 1601, so offset to Unix epoch (1970) and multiply by 100 to get nanoseconds which is what we want. 2007-01-15 Tor Lillqvist * glib/gmain.h (struct _GPollFD): Fix mistake in my last commit. 2005-01-15 Matthias Clasen * glib/giochannel.c: * glib/gbookmarkfile.c: Remove redundant NULL-checks. (#369668, Morten Welinder) 2005-01-15 Matthias Clasen * glib/gthread.c: * gthread/gthread-posix.c: Correct the gettime calculations once more. (#395203, Chris Wilson) 2007-01-15 Tor Lillqvist * glib/gmain.h (struct _GPollFD): Prepare for potential Win64 build: Use gint64 for the fd field on Win64, as we want to be able to store a HANDLE in it. (#395422) (Other changes will surely also be necessary when building on Win64, at least in giowin32.c.) 2007-01-15 Tor Lillqvist * glib/gwin32.c (g_win32_getlocale): Simplify greatly. Instead of hardcoding a large switch statement, just ask Windows for the ISO639 and ISO3166 codes. Tack on @Latn or @Cyrl for those languages which can alternatively be written in Latin or Cyrillic. Fixes #395419. 2007-01-12 Matthias Clasen * glib/gkeyfile.c: Rework the handling of invalid keys/groups again. We are back to being liberal about what we accept, and only reject things that would lead to non-rereadable keyfiles. * tests/keyfile-test.c: Adapt tests. 2007-01-12 Matthias Clasen * glib/gutils.c (g_get_home_dir): Clarify docs. (#394687, Marc Brockschmidt) 2007-01-12 Matthias Clasen * glib/gthread.c: Include windows.h and fix include order. (#394258, Kazuki Iwamoto) 2007-01-12 Matthias Clasen * configure.in: Make G_GNUC_INTERNAL a no-op for gcc 2.95. (#329031, David Schleef, Marc Brockschmidt) 2007-01-12 Matthias Clasen * gthread/gthread-posix.c: * glib/gtimer.c: * glib/gthread.c: Fix errors in the recently moved time calculations. (#395203, Chris Wilson) 2007-01-10 Matthias Clasen * configure.in: Actually link gthread against librt. (#394641, Marco Pesenti Gritti) 2007-01-10 Matthias Clasen * glib/gkeyfile.c (g_key_file_is_key_name): Grr, allow '*' in keys, too. (#394262) 2007-01-09 Behdad Esfahbod * glib/gutils.h: Use a more optimized g_bit_storage() when gcc is available. (#371670, Daniel Elstner) 2007-01-08 Matthias Clasen * gthread/gthread-posix.c (g_thread_impl_init): Don't use _SC_MONOTONIC_CLOCK unless USE_CLOCK_GETTIME is defined. (#394150) 2007-01-07 Matthias Clasen Don't link glib against libpthread. (#393812) * configure.in: Link gthread against librt, not glib itself. * glib/gthread.h: * glib/gthread.c: Add a new thread function, gettime. * glib/gtimer.c: Use gettime instead of directly working with the various system interfaces. * gthread/gthread-impl.c: * gthread/gthread-posix.c: * gthread/gthread-win32.c: Implement gettime. 2007-01-07 Matthias Clasen * m4macros/glib-2.0.m4: Use PKG_PROG_PKG_CONFIG. (#392636, Yevgen Muntyan) 2007-01-07 Tor Lillqvist * glib/giowin32.c: Handle GIOChannels for file descriptors connected to the console separately. This would typically be the fd 0, 1, or 2 (if not redirected) in a console application. For such fds we don't need a separate thread, as console HANDLEs are waitable objects. (#359202, Michiel de Hoon) 2007-01-04 Behdad Esfahbod * tests/bit-test.c (builtin_bit_nth_lsf1), (builtin_bit_nth_lsf2), (builtin_bit_nth_msf): Fix tests on x86_64. 2007-01-03 Behdad Esfahbod * glib/goption.c (_g_unichar_get_width), (_g_utf8_strwidth), (calculate_max_length), (print_entry), (print_help): Take zerowidth and double-width chars into consideration when computing width of a string. Also fix another bug in width computation. (#346955) * glib/guniprop.c (g_unichar_iszerowidth): Fix typo. It was not working correctly. 2007-01-03 Behdad Esfahbod * glib/glib.symbols: * glib/gunicode.h: * glib/guniprop.c: Add g_unichar_iszerowidth(). (#347645) 2007-01-03 Behdad Esfahbod * glib/gutils.h: Fix bug in g_bit_nth_lsf (#371631) and use __builtin_clzl for g_bit_storage if available (#371670). * tests/Makefile.am: * tests/bit-test.c: New test, to test g_bit_* operations against naive and builtin implementations. 2007-01-02 Behdad Esfahbod * configure.in: Avoid more warnings from running libtool --config. (#391364) 2007-01-03 Michael Natterer * removed all .cvsignore files. SVN doesn't need them. 2007-01-02 Emmanuele Bassi * glib/gbookmarkfile.c (expand_exec_line): Add support for expanding the desktop entry spec variables %U (list of URIs) and %F (list of filenames), so that using the command line from the Exec and TryExec key of a desktop entry file works as intended. 2007-01-02 Matthias Clasen * configure.in: Avoid warnings from running libtool --config. (#391364, Loïc Minier) 2007-01-02 Matthias Clasen * glib/gbookmarkfile.c (g_bookmark_file_get_app_info): Return an error if the uri is bad. (#391370, Maciej Piechotka) 2007-01-02 Matthias Clasen * glib/glib.symbols: Guard g_slice_debug_tree_statistics by G_ENABLE_DEBUG. (#390940, Kazuki Iwamoto) 2007-01-02 Michael Natterer * configure.in * Makefile.am: remove references to build/ until a proper decision has been made what to do with it. 2007-01-01 Matthias Clasen * glib-gettextize.in: Silence autoconf warnings about datarootdir. (#391367, Loïc Minier) 2006-12-31 Matthias Clasen * glib/gslice.c: Fix some C99isms. (#390913, Kazuki Iwamoto) Fri Dec 29 13:28:07 2006 Tim Janik * glib/gslice.c: turned detection of too late g_thread_init() calls into a warning. this is a temporary work-around for some head-room to fix affected programs, memory corruption still occours regardless. 2006-12-29 Matthias Clasen * tests/gobject/Makefile.am: * tests/gobject/dynamictype.c: New test for dynamic type registration macros. Thu Dec 28 21:14:45 2006 Tim Janik * glib/gslice.c: removed pthread-dependant debugging bits, the code was already converted to GMutex. this obsoletes Tor's recent fixups. 2006-12-28 Tor Lillqvist * glib/gutils.h (G_WIN32_DLLMAIN_FOR_DLL_NAME) * glib/gutils.c (get_windows_directory_root): : Use only the wide character API here, too. * glib/gslice.c: Make it compile on Win32 without pthreads: Use a Win32 critical section instead. * glib/gmessages.c (g_logv): On Win32, if we get a fatal error message while being debugged we break into the debugger with G_BREAKPOINT(). Don't call abort() if the user is foolhardy enough to continue after the breakpoint. The user presumably knows what he is doing and deserves what he gets. (#376645, Andreas Köhler) Thu Dec 28 12:50:31 2006 Tim Janik * glib/gslice.h, glib/gslice.c: implemented static debugging hash-tree to validate slice adresses and sizes with G_SLICE=debug-blocks. use abort() to exit in mem_error() to allow catching of these in gdb. abort programs with a descriptive error message if g_thread_init() is called after GSlice was in use. previously this just silently corrupted the magazines. * glib/ghash.c (struct _GHashNode): reordered fields to keep 8-byte pointer alignment on 64bit systems and request smaller slice sizes on 32bit systems. * tests/slice-test.c: support '~' option flag to introduce slice allocation/release corruption with a significant probability. this allowes testing of G_SLICE=debug-blocks. 2006-12-27 Matthias Clasen * glib/gconvert.[hc]: * glib/gfileutils.c: * glib/giochannel.c: * glib/goption.c: * glib/gspawn.c: * glib/gunicollate.c: * glib/gutils.c: * tests/timeloop-basic.c: Consistently use gsize rather than size_t. (#333310, Morten Welinder) 2006-12-27 Matthias Clasen * configure.in: Use AC_CACHE_CHECK for the nl_langinfo check. (#304517, Lőrinczy Zsigmond) 2006-12-27 Tor Lillqvist * glib/gwin32.h * glib/gwin32.c (get_package_directory_from_module) (g_win32_get_package_installation_directory) (g_win32_get_package_installation_subdirectory): Add const to gchar* arguments. (#384523, Yevgen Muntyan) 2006-12-27 Ryan Lortie * glib/ghash.c: cache the value of the hash function in the GHashNode. this speeds up resizing the hash table and it also allows a slight optimisation on lookups. (#388332) 2006-12-27 Matthias Clasen * glib/gunicollate.c (g_utf8_collate_key): Don't modify the current locale. (#389300) 2006-12-26 Matthias Clasen * glib/gutf8.c: Add hints for locale-dependent interfaces. * glib/gconvert.c: Add hints for locale-dependent interfaces. * glib/gconvert.c (g_get_filename_charsets): Improve formatting of docs. 2006-12-26 Behdad Esfahbod * configure.in: Use libtool to determine shared library suffix. (#357245) 2006-12-24 Matthias Clasen * tests/run-collate-tests.sh: * tests/unicode-collate.c: Silently skip tests if we can't set LC_COLLATE to en_US. (#336438) 2006-12-19 Matthias Clasen * glib/gkeyfile.c (g_key_file_is_key_name): Accept '/', '+' and '.' in key names, since gnome-vfs uses mime types as keys in some cache. * tests/keyfile-test.c: Tests for the above. 2006-12-18 Matthias Clasen * configure.in: Fix the broken poll test. (#387260, Christian Persch) * glib/gmain.c (child_watch_helper_thread): Readd a return which was removed as dead code a while ago. icc may consider it dead, but gcc doesn't like non-void functions without a return... (#354707) * tests/Makefile.am: Try a different fix for bug 346373. 2006-12-18 Matthias Clasen Fix bug 161288: * configure.in: Check for wcslen. * glib/gnulib/vasnprintf.c: Handle wcslen missing. 2006-12-18 Matthias Clasen * glib/gkeyfile.c: Accept '@' in locale names. * glib/gkeyfile.c: Tighten up the check for allowed key and group names. (#343191, Tommi Komulainen) * tests/keyfile-test.c: Test handling of key and group names. * tests/Makefile.am: Don't use $RANDOM if the shell doesn't have it. (#346373, Thomas Klausner) 2006-12-17 Behdad Esfahbod * glib/gstring.c: Improve docs about string functions taking a length. (#378727) 2006-12-17 Matthias Clasen * glib/gconvert.c: * glib/gutf8.c (_g_charset_get_aliases): Put the G_GNUC_INTERNAL where gcc doesn't complain about it. * glib/ghash.c: Make ref_count an int to avoid compiler warnings. * configure.in: Use AC_LANG_SOURCE for the clock test. * glib/gthreadpool.h: * glib/gthreadpool.c (g_thread_pool_free): Don't use "wait" as parameter name. (#379207, Christian Biere) * glib/gspawn.c: Refer to g_child_watch_add() in addition to waitpid(). * glib/gstrfuncs.c (g_strndup, g_strnfill): Move docs inline, and improve wording. (#372598, Behdad Esfahbod) * glib/gspawn.c: Add some pointers to the gdk_spawn_ variants. (#338134, Federico Mena Quintero) * configure.in: Make montonic clock test work again. Does AC_COMPILE_IFELSE not get confdefs ? Also, move the clock tests below the thread checks to fix #364663. * tests/run-markup-tests.sh: Don't use diff -u (#380801, Marek Rouchal) * glib/gspawn.c: Fix the recent fdwalk()-related changes to not break mapping-test. (#286838, Marco Barisione) * glib/gstring.c (g_string_chunk_new): Don't shadow size. (#386760, Kazuki IWAMOTO) 2006-12-16 Matthias Clasen * glib/gstring.c: Move more documentation inline. * configure.in: Use AC_COMPILE_IFELSE for the monotonic clock test. (#362918, Han-Wen Nienhuys, Jeremy Lainé) * glib/gstring.c: Move documentation inline. 2006-12-15 Matthias Clasen * glib/giochannel.h: Make ref_count a gint to avoid compiler warnings. (#321977, Andrew Paprocki) * configure.in: On Solaris, set CFLAGS and LDFLAGS that work both with Sun cc and gcc. (#315061, Lazlo Peter) * glib/gspawn.c: Undefine READ_OK to fix the build on old versions of Darwin. (#327800) * glib/glib.symbols: * glib/gstring.[hc] (g_string_chunk_clear): Add a function for clearing a GStringChunk. (#364608, Matt Barnes) * glib/guniprop.c (interval_compare): Avoid a compiler warning. * glib/gspawn.c (do_exec): Call set_cloexec() with the right parameters. (#386252, Guillaume Desmottes) 2006-12-15 Matthias Clasen Fix #357585, Padraig O'Briain. * configure.in: Check for fdwalk. * glib/gspawn.c (do_exec): Use fdwalk() to close all file descriptors. * glib/gspawn.c (fdwalk): Fallback implementation of fdwalk. 2006-12-14 Matthias Clasen * glib/gconvert.c (open_converter): Don't use alloca and avoid allocating memory for small keys that are already cached. (#172406, Morten Welinder) * glib/gmain.c (g_child_watch_add_full): Improve the docs. (#345569, Tim-Philipp Müller) * glib/gkeyfile.c (g_key_file_add_group): If the group is already there, make it current. (#385910, Joe Halliwell) * tests/keyfile-test.c: Add a test for duplicate groups/keys. 2006-12-13 Matthias Clasen * m4macros/glib-gettext.m4: Require AC_CANONICAL_HOST in GLIB_WITH_NLS. (#385132, Laszlo Peter) 2006-12-12 Matthias Clasen * configure.in: Add a check for broken poll on Mac OS X. * glib/gmain.c: Use poll emulation on OS X. (#302672, Toby Peterson, patch by Dave Vasilevsky) 2006-12-11 Matthias Clasen * glib/gatomic.c: Don't use local numeric labels in inline assembler on AIX. (#316434, Hans Rosenfeld) * glib/gunicode.h (g_utf8_next_char): Cast to const char *, not char *. (#138153, Nikolai Weibull) Wed Nov 22 16:09:13 2006 Tim Janik * glib/gmacros.h: added G_GNUC_MAY_ALIAS, suggested by Mathias Hasselmann in bug #335341, fixes bug #335853. 2006-11-15 Matthias Clasen * m4macros/glib-gettext.m4: Apply a patch from James Henstridge for compatibility with automake 2.60 (#343825) 2006-11-14 Behdad Esfahbod * sanity_check: Replace bash-specific == with sh-understood =. Fixes bug #373864. 2006-11-05 Hans Breuer * glib/makefile.msc.in : glib/ version not the gobject/ one I accidentially commited. Fixes bug #371074. 2006-11-05 Tor Lillqvist * makefile.mingw * gmodule/makefile.mingw.in * glib/makefile.mingw.in * gobject/makefile.mingw.in * gthread/makefile.mingw.in * tests/makefile.mingw.in: Remove from CVS. Haven't been maintained or distributed for long. 2006-10-26 Pascal Terjan * glib/libcharset/localcharset.c: Fix small leak on failed realloc in _g_locale_get_charset_aliases (#338582) 2006-10-16 Behdad Esfahbod * glib/gnulib/Makefile.am: Add $(GLIB_DEBUG_FLAGS). (#362543, Peter Kjellerstedt) 2006-10-15 Sebastian Wilhelmi * tests/Makefile.am: Compile errorcheck-mutex-test with thread libraries explicitly. (#74748, Javier Villavicencio) 2006-10-08 Matthias Clasen Add a way to obtain Unicode script information. (#348348, Marco Barisione) * glib/glib.symbols: * glib/gunicode.h: Add GUnicodeScript enumeration and g_unichar_get_script. * glib/guniprop.c: Implement g_unichar_get_script. * glib/gscripttable.h: Generated private header containing script tables. * glib/gen-script-table.pl: Script to generate gscripttable.h. * glib/Makefile.am: Update 2006-10-08 Matthias Clasen * tests/run-markup-tests.sh: Small portability fix. (#347944, Dan McMahill) 2006-10-07 Tor Lillqvist * glib/gwin32.c (get_package_directory_from_module) (g_win32_get_package_installation_directory): g_strdup the keys that we are passed before adding them to the hash tables, to guard against the caller freeing them. (#355955, Andreas Köhler) 2006-10-06 Matthias Clasen * glib/gtimer.c: Fix a typo. (#359190) 2006-10-02 Behdad Esfahbod * glib/Makefile.am: * gobject/Makefile.am: Include pltcheck.sh in EXTRA_DIST, and remove redefinition of TESTS. (#358966) 2006-10-01 Matthias Clasen * glib/gtimer.c (g_usleep): Use nsleep to implement g_usleep on AIX. (#321974, Andrew Paprocki) * configure.in: Check for nsleep * glib/gmain.c: Fix typos in doc comments. (#358421, Tom Tromey) 2006-09-30 Matthias Clasen * glib/pltcheck.sh: A script to check PLT entries. * glib/Makefile.am (TESTS): Run pltcheck.sh * glib/*: Fix includes to correct some issues with PLT entries. (#354522, Behdad Esfahbod) 2006-09-17 Hans Breuer * glib/makefile.msc.in gobject/makefile.msc.in : better filtering of G_GNUC_* stuff when generating .def files. Now also works with newer (less tolerant) linkers, e.g. from vc2500e 2006-09-10 Matthias Clasen * glib/gbacktrace.c: Assume string.h is available. (#354523, Behdad Esfahbod) * configure.in: Bump version to 2.13.0 * glib/glib.symbols: * glib/gmain.[hc]: Add functions to create approximate timeouts. (#353942, Arjan van de Ven) * glib/gstdio.c (g_rename): Initialize save_errno. (#355206, Mike Edenfield) 2006-09-03 Matthias Clasen * glib/gerror.c: Allocate GErrors using the slice allocator. (#354054, Matt Barnes) 2006-09-02 Matthias Clasen * glib/gtimer.c: Forgotten HAVE_CLOCK_GETTIME. 2006-09-02 Tor Lillqvist * glib/gutils.c (g_get_any_init_do): Correct C99ism (mixed declarations and code) in Win32 ifdef branch. (#353903, Mike Edenfield) 2006-09-01 Abel Cheung * configure.in: Added 'dz' 'hy' to ALL_LINGUAS. 2006-09-01 Matthias Clasen * configure.in: Check for CLOCK_MONOTONIC. * glib/gtimer.c: Only use clock_gettime if we have a monotonic clock. 2006-08-31 Matthias Clasen * configure.in: Add missing includes to a few test programs. (#353580, Chris Wilson) 2006-08-30 Matthias Clasen * glib/gmarkup.c (g_markup_vprintf_escaped): Don't call va_end on caller-provided va_args. (#353584, Chris Wilson) 2006-08-29 Tor Lillqvist Remove support for Windows 9x/ME, as will be done also in Pango and GTK+. GTK+ hasn't worked on Win9x since 2.6 or 2.8 anyway, so it's pretty pointless to keep the Win9x code in here either. If somebody is interested, the code can always be found in older GLib versions, and in CVS. * glib/gdir.c * glib/gfileutils.c * glib/gspawn-win32-helper.c * glib/gspawn-win32.c * glib/gstdio.c * glib/gutils.c * glib/gwin32.c * glib/gwin32.h: Remove the G_WIN32_IS_NT_BASED() and G_WIN32_HAVE_WIDECHAR_API() tests and their false (Win9x) branches, and any variables or static functions used only by the Win9x branches. * glib/gwin32.c (g_win32_windows_version_init): Call g_error() if run on Win9x. 2006-08-27 Matthias Clasen * configure.in: Fix pthread compiler flag detection. * glib/gtimer.c: Use Posix monotonic clocks instead of gettimeofday when available. (#336114, William Jon McCann) 2006-08-26 Matthias Clasen * glib/gutils.h: * glib/gscanner.c: Fix some typos. (#351741, Kjartan Maraas) 2006-08-25 Matthias Clasen * configure.in: Fix the pthread compiler flag detection. * glib/gunicode.h: * glib/gutf8.c (_g_utf8_make_valid): Rename make_valid_utf8 from gconvert.c, move it to gutf8.c, and export it privately. * glib/gconvert.c (g_filename_display_name): Adjust callers. * glib/gkeyfile.c: Use _g_utf8_make_valid() in a number of places to ensure error messages are valid UTF-8. (#351853, Simon Budig) 2006-08-22 Matthias Clasen * Branch for 2.12