commit 599c669b23a56d605fc69d96a93a198d27b08b28
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Mon Mar 17 17:18:47 2014 -0400
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Mon Mar 17 17:18:47 2014 -0400

    GLib 2.39.92

 NEWS         | 28 ++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 29 insertions(+), 1 deletion(-)

commit b0630a37b8310907e5389bb17eb62a7412747345
Author:     Claude Paroz <claude@2xlibre.net>
AuthorDate: Sat Mar 15 19:45:27 2014 +0000
Commit:     GNOME Translation Robot <gnome-sysadmin@gnome.org>
CommitDate: Sat Mar 15 19:45:27 2014 +0000

    Updated French translation

 po/fr.po | 2052
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1123 insertions(+), 929 deletions(-)

commit 3f119b2fd408fb2e0f4eea07ed9618d2faa749ee
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Tue Mar 11 21:41:36 2014 -0400
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Fri Mar 14 09:46:39 2014 -0400

    GSettingsBackend: fix a nasty race condition

    In the event that a GSettings object is being destroyed just as
    a change
    signal is being delivered, the destroying thread will race with the
    dconf worker thread for acquiring the lock on the GSettingsBackend.

    If the signalling thread gets there first then the destroying thread
    will block on the lock.  The signalling thread adds a reference to the
    GSettings object that is being destroyed and releases the lock.  The
    idea is that this should prevent the GSettings object from being
    destroyed and thus maintain its entry in the list.  Unfortunately, the
    weak reference notify function is already running and as soon as we
    release the lock, the list entry is removed.

    The signalling thread crashes.

    This bug is indicative of a serious problem encountered in many
    situations where GObject instances are touched from multiple threads.
    Ideally, we will move to a place where g_object_ref() is not called at
    all on the GSettings object from the dconf worker thread and
    instead, a
    dispatch will be done without holding a reference (similar to how
    GAppInfoMonitor presently works).  This would also prevent the
    unfortunate case of someone dropping what they assume to be the last
    reference on a GSettings object, only to have an already-pending
    signal
    delivered once they return to the mainloop, crashing their program.

    Making this change for GSettings (with multiple instances per thread,
    the possibility of multiple backends and each instance being
    interested
    in different events) is going to be extremely non-trivial, so it's
    not a
    change that makes sense at this point in the cycle.

    For now, we can do a relatively small and isolated tweak so that we
    never access the list except under a lock.  We still perform the bad
    pattern of acquiring a ref in a foreign thread which means that
    we still
    risk delivering a signal to a GSettings object that the user has
    assumed
    is dead (unless they explicitly disconnect their signal handler).
    This
    is a problem that we already had, however.

    https://bugzilla.gnome.org/show_bug.cgi?id=710367

 gio/gsettingsbackend.c | 44 ++++++++++++++++++++------------------------
 1 file changed, 20 insertions(+), 24 deletions(-)

commit 698970f1f70f1821df5ac83ffa6d797fa4579881
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Wed Feb 26 17:09:59 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Fri Mar 14 09:46:39 2014 -0400

    gsettingsbackend: a minor simplification

    Change the order of the arguments on the (internal) keys_changed
    callback in
    GSettingsListenerVTable.

    This means that all functions in the table now fit the following
    signature:

      void (* f) (GObject             *target,
                  GSettingsBackend    *backend,
                  const gchar         *name_or_path,
                  gpointer             origin_tag,
                  const gchar * const *names);

    allowing the possibility of arguments ignored at the end.

    This allows us to simplify our dispatch-to-thread code in
    GSettingsBackend,
    making it a bit less generic.

    So far, this should be a straight refactor.

    https://bugzilla.gnome.org/show_bug.cgi?id=710367

 gio/gdelayedsettingsbackend.c  |  4 +--
 gio/gsettings.c                |  4 +--
 gio/gsettingsbackend.c         | 74
 ++++++++++++++----------------------------
 gio/gsettingsbackendinternal.h |  4 +--
 4 files changed, 31 insertions(+), 55 deletions(-)

commit 62206576c34d4ea10d43324144db44970c99dd97
Author:     Chun-wei Fan <fanchunwei@src.gnome.org>
AuthorDate: Wed Mar 12 17:26:45 2014 +0800
Commit:     Chun-wei Fan <fanchunwei@src.gnome.org>
CommitDate: Wed Mar 12 17:26:45 2014 +0800

    Update config.h.win32.in

    Make the entries of config.h.win32.in match those that are being
    checked
    in config.h.in.

 config.h.win32.in | 36 ++++++++++++++++--------------------
 1 file changed, 16 insertions(+), 20 deletions(-)

commit bb43d78aff72d406e64a47d2592919c58152aba3
Author:     Duarte Loreto <happyguy_pt@hotmail.com>
AuthorDate: Wed Mar 12 02:10:55 2014 +0000
Commit:     GNOME Translation Robot <gnome-sysadmin@gnome.org>
CommitDate: Wed Mar 12 02:10:55 2014 +0000

    Updated Portuguese translation

 po/pt.po | 2040
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1121 insertions(+), 919 deletions(-)

commit ffe4e94e3afa16c4e28d6e299f68d8a7ca408b8c
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Tue Mar 11 12:19:19 2014 -0400
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Tue Mar 11 21:28:58 2014 -0400

    GUnixVolume: implement _finish functions

    The _finish functions for GUnixVolume _mount and _eject functions were
    never implemented, having been simply stubbed out as 'return TRUE;'.

    Implement them.

    https://bugzilla.gnome.org/show_bug.cgi?id=724916

 gio/gunixvolume.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 62fa9c578f4ee3f2ca5127961a4609596a4bdaee
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Sun Mar 2 21:24:14 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Tue Mar 11 21:28:58 2014 -0400

    GUnixVolume: port to GSubprocess

    Do the same as we just did for GUnixMount, for GUnixVolume too.

    https://bugzilla.gnome.org/show_bug.cgi?id=724916

 gio/gunixvolume.c | 174
 ++++++++++++------------------------------------------
 1 file changed, 37 insertions(+), 137 deletions(-)

commit 64ec757d058dae045e275577da8f14f463cc7c44
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Sun Mar 2 17:39:11 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Tue Mar 11 21:28:58 2014 -0400

    GUnixMount: port unmount to GSubprocess

    The existing code is buggy and now that we have GSubprocess, we
    should just use
    it instead, allowing for some substantial reduction in complexity.

    https://bugzilla.gnome.org/show_bug.cgi?id=724916

 gio/gunixmount.c | 158
 +++++++++++--------------------------------------------
 1 file changed, 32 insertions(+), 126 deletions(-)

commit cee80dc8c4a1707f8a2e5540540d220f9ca89de2
Author:     Yuri Myasoedov <ymyasoedov@yandex.ru>
AuthorDate: Tue Mar 11 21:21:57 2014 +0400
Commit:     Yuri Myasoedov <ymyasoedov@yandex.ru>
CommitDate: Tue Mar 11 21:21:57 2014 +0400

    Updated Russian translation

 po/ru.po | 2957
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1624 insertions(+), 1333 deletions(-)

commit 8c78fb827b51aa6e48fa20bac3f1ede4c699dd43
Author:     Lars Uebernickel <lars@uebernic.de>
AuthorDate: Mon Mar 10 19:46:23 2014 +0100
Commit:     Lars Uebernickel <lars.uebernickel@canonical.com>
CommitDate: Tue Mar 11 11:47:57 2014 +0100

    glocalfileinfo: don't special-case directory icons

    As of e6af432, g_content_type_get_symbolic_icon() returns non-symbolic
    fallbacks. Thus, we can't append another symbolic icon to the
    fallbacks.

    The special case was a bit of a hack anyway. It was only applied to
    themed icons and there was no generic fallback for mime types that are
    not folders.

    https://bugzilla.gnome.org/show_bug.cgi?id=726046

 gio/glocalfileinfo.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

commit 25f36d8e5efb1312bc684a28158ecfba2dd2ace0
Author:     David King <amigadave@amigadave.com>
AuthorDate: Mon Mar 10 19:16:28 2014 +0000
Commit:     David King <amigadave@amigadave.com>
CommitDate: Mon Mar 10 19:16:28 2014 +0000

    Add g_application_command_line_get_options_dict() to docs

 docs/reference/gio/gio-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit a9ac71b50361f035163b7611e06d5b470467d125
Author:     Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
AuthorDate: Sun Mar 9 11:39:30 2014 +0800
Commit:     Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
CommitDate: Sun Mar 9 11:39:30 2014 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1759
 +++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 1759
 +++++++++++++++++++++++++++++------------------------------
 2 files changed, 1736 insertions(+), 1782 deletions(-)

commit 012011538f4513569f92e322c4377efa2cb64378
Author:     Sebastian Dröge <sebastian@centricular.com>
AuthorDate: Sun Feb 9 23:08:21 2014 +0100
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Sat Mar 8 09:01:52 2014 -0500

    gtype – Mark _get_instance_private() function as G_GNUC_UNUSED

    clang likes to complain about it being unused.

    https://bugzilla.gnome.org/show_bug.cgi?id=723899

 gobject/gtype.h | 1 +
 1 file changed, 1 insertion(+)

commit 1a736f5f51d19904ab82d684674d003b51364c32
Author:     Rūdolfs Mazurs <rudolfsm@src.gnome.org>
AuthorDate: Sat Mar 8 15:58:53 2014 +0200
Commit:     Rūdolfs Mazurs <rudolfsm@src.gnome.org>
CommitDate: Sat Mar 8 15:58:53 2014 +0200

    Updated Latvian translation

 po/lv.po | 2101
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1168 insertions(+), 933 deletions(-)

commit 0fa3a8dd602fba7149825ec3c030d9ac9e70dd42
Author:     Wylmer Wang <wantinghard@gmail.com>
AuthorDate: Sat Mar 8 12:26:07 2014 +0000
Commit:     GNOME Translation Robot <gnome-sysadmin@gnome.org>
CommitDate: Sat Mar 8 12:26:07 2014 +0000

    Updated Chinese (China) translation

 po/zh_CN.po | 1709
 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 862 insertions(+), 847 deletions(-)

commit 66e2ffe97869e13562b13c51d5dbd3ea1a89bd51
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Fri Mar 7 07:41:50 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Fri Mar 7 07:47:14 2014 -0500

    gio tests: add codegen to BUILT_SOURCES

    We need to have these in BUILT_SOURCES so that 'make' knows to
    generate them
    before attempting to compile other .c files in the same directory
    (since some
    of these files include the header).

    Should fix up remaining issues about partial versions of this
    file being
    included under parallel builds.

    https://bugzilla.gnome.org/show_bug.cgi?id=725891

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 7a6dfd75d66d274020805b6c770ba683900a3402
Author:     Matthias Clasen <mclasen@redhat.com>
AuthorDate: Fri Mar 7 06:10:36 2014 -0500
Commit:     Matthias Clasen <mclasen@redhat.com>
CommitDate: Fri Mar 7 06:10:36 2014 -0500

    GObject: Remove more leftover markup from headers

 gobject/gbinding.h    |  2 +-
 gobject/gobject.h     | 10 +++++-----
 gobject/gparam.h      |  8 ++++----
 gobject/gtypemodule.h |  2 +-
 gobject/gtypeplugin.h |  5 ++---
 5 files changed, 13 insertions(+), 14 deletions(-)

commit fdd7ed94fe7d7427b962c5c0faa66f68b18a3fc1
Author:     Changwoo Ryu <cwryu@debian.org>
AuthorDate: Fri Mar 7 02:02:27 2014 +0900
Commit:     Changwoo Ryu <cwryu@debian.org>
CommitDate: Fri Mar 7 02:02:27 2014 +0900

    Updated Korean translation

 po/ko.po | 2035
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1109 insertions(+), 926 deletions(-)

commit d41dad89681837498202743cd8ee63e62a024f4a
Author:     Kjartan Maraas <kmaraas@gnome.org>
AuthorDate: Wed Mar 5 19:24:18 2014 +0100
Commit:     Kjartan Maraas <kmaraas@gnome.org>
CommitDate: Wed Mar 5 19:24:18 2014 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 61
 ++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 30 insertions(+), 31 deletions(-)

commit b22f02a94bc4449f1f7741a73e8d4c899b69d627
Author:     Giovanni Campagna <gcampagna@gnome.org>
AuthorDate: Tue Mar 4 15:30:12 2014 +0100
Commit:     Giovanni Campagna <gcampagna@gnome.org>
CommitDate: Wed Mar 5 17:14:14 2014 +0100

    Unskip GVariantDict

    There is no reason to (skip) GVariantDict, it's a boxed type
    and perfectly usable from gobject-introspection.

    https://bugzilla.gnome.org/show_bug.cgi?id=725656

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c9cda16a4f607bf9b6498051d2b83aad99e391e4
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Wed Mar 5 09:04:00 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Wed Mar 5 09:05:42 2014 -0500

    cond test: remove alarm() usage

    This means that the test can't build on Windows (and we do want
    it there).

    This will be properly resolved with bug 725266, but let's not
    block the
    build before then.

    https://bugzilla.gnome.org/show_bug.cgi?id=724859

 glib/tests/cond.c | 5 -----
 1 file changed, 5 deletions(-)

commit fd8c1a306725ed7f877c0ec6d5c27f5436c5941f
Author:     Matthias Clasen <mclasen@redhat.com>
AuthorDate: Tue Mar 4 20:20:52 2014 -0500
Commit:     Matthias Clasen <mclasen@redhat.com>
CommitDate: Tue Mar 4 20:20:52 2014 -0500

    Work around gtk-doc problems

    Returns shall never be at the beginning of a line.

 gio/gsubprocess.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2b11af4f1f336f8e7fda26045fe76375176c8a17
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Tue Mar 4 09:08:24 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Tue Mar 4 09:08:24 2014 -0500

    gsubprocess: test environment a bit more

    Add a test for GSubprocess to test setting, unsetting and inheritance
    of
    environment variables.  Use communicate() to give it a bit more of a
    workout as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=725651

 gio/tests/gsubprocess-testprog.c | 18 ++++++++++++++++++
 gio/tests/gsubprocess.c          | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)

commit e767204e0e8108df66893e23209b22b041be893d
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Tue Mar 4 08:55:00 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Tue Mar 4 08:55:00 2014 -0500

    GSubprocessLauncher: don't get empty environment

    Use g_get_environ() to get the environment variables with their values
    instead of g_listenv() which only lists off the keys.

    https://bugzilla.gnome.org/show_bug.cgi?id=725651

 gio/gsubprocesslauncher.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9da88a12c52f122e1e2b8faaed6c95ec1bcef104
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Mon Mar 3 21:25:16 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Mon Mar 3 21:26:24 2014 -0500

    gsubprocess: test empty splices

    Make sure we handle the case that our splice returns no data properly.

    https://bugzilla.gnome.org/show_bug.cgi?id=724916

 gio/tests/gsubprocess.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit 9f71965becd919a736cb57bbd3501b22e6341fa7
Author:     Ryan Lortie <desrt@desrt.ca>
AuthorDate: Sun Mar 2 21:01:12 2014 -0500
Commit:     Ryan Lortie <desrt@desrt.ca>
CommitDate: Mon Mar 3 21:26:24 2014 -0500

    gsubprocess: fix communicate() with empty buffers

    On the splice for stdout or stderr completing, GSubprocess calls
    _slice_finish() to collect the result.

    We assume that a zero return value here means failure, but in
    fact this
    function returns a gssize -- the number of bytes transferred, or
    -1 for
    an error.

    This causes GSubprocess to mistakenly think that it has an error
    when it
    actually just has an empty buffer (as would be the case when
    collecting
    stderr from a successful command).

    Check for -1 instead of FALSE to detect the error.

    https://bugzilla.gnome.org/show_bug.cgi?id=724916

 gio/gsubprocess.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)